From 961474eb66ccadeafe40d54c691d21a98ae4108d Mon Sep 17 00:00:00 2001 From: "Maria Odea B. Ching" Date: Mon, 20 Oct 2008 02:30:39 +0000 Subject: [PATCH] delete archiva-security-fix branch git-svn-id: https://svn.apache.org/repos/asf/archiva/branches@706108 13f79535-47bb-0310-9956-ffa450edef68 --- archiva-security-fix/LICENSE | 261 - archiva-security-fix/archiva-cli/pom.xml | 116 - .../main/assembly/archiva-cli-assembly.xml | 47 - .../archiva/cli/AbstractProgressConsumer.java | 63 - .../apache/maven/archiva/cli/ArchivaCli.java | 285 - .../archiva/cli/ArtifactCountConsumer.java | 96 - .../archiva/cli/ProjectReaderConsumer.java | 125 - .../src/main/resources/log4j.properties | 10 - archiva-security-fix/archiva-docs/pom.xml | 114 - .../apt/adminguide/configuration-files.apt | 68 - .../src/site/apt/adminguide/configuration.apt | 22 - .../src/site/apt/adminguide/consumers.apt | 91 - .../apt/adminguide/customising-security.apt | 50 - .../src/site/apt/adminguide/databases.apt | 93 - .../src/site/apt/adminguide/index.apt | 26 - .../src/site/apt/adminguide/installing.apt | 15 - .../src/site/apt/adminguide/legacy.apt | 44 - .../site/apt/adminguide/network-proxies.apt | 21 - .../site/apt/adminguide/proxy-connectors.apt | 68 - .../src/site/apt/adminguide/reports.apt | 66 - .../src/site/apt/adminguide/repositories.apt | 180 - .../src/site/apt/adminguide/roles.apt | 44 - .../src/site/apt/adminguide/security.apt | 16 - .../src/site/apt/adminguide/standalone.apt | 169 - .../src/site/apt/adminguide/webapp.apt | 84 - .../site/apt/customising/writing-consumer.apt | 87 - .../archiva-docs/src/site/apt/index.apt | 23 - .../archiva-docs/src/site/apt/quick-start.apt | 73 - .../src/site/apt/release-notes.apt | 403 -- .../src/site/apt/userguide/browsing.apt | 70 - .../src/site/apt/userguide/deploy.apt | 206 - .../src/site/apt/userguide/find-artifact.apt | 36 - .../src/site/apt/userguide/index.apt | 27 - .../src/site/apt/userguide/rss.apt | 64 - .../src/site/apt/userguide/searching.apt | 69 - .../site/apt/userguide/using-repository.apt | 124 - .../apt/userguide/virtual-repositories.apt | 117 - .../archiva-docs/src/site/assembly/docs.xml | 33 - .../src/site/resources/css/site.css | 71 - .../site/resources/images/archiva-report.jpg | Bin 103875 -> 0 bytes .../images/find-artifact-security.png | Bin 38000 -> 0 bytes .../site/resources/images/find-artifact.png | Bin 75362 -> 0 bytes .../site/resources/images/search-results.jpg | Bin 122843 -> 0 bytes .../src/site/resources/images/tour/admin.png | Bin 57385 -> 0 bytes .../resources/images/tour/maintenance.png | Bin 56101 -> 0 bytes .../site/resources/images/tour/project.png | Bin 71573 -> 0 bytes .../src/site/resources/images/tour/proxy.png | Bin 48509 -> 0 bytes .../site/resources/images/tour/reports.png | Bin 121796 -> 0 bytes .../src/site/resources/images/tour/rss.png | Bin 34613 -> 0 bytes .../src/site/resources/images/tour/search.png | Bin 28978 -> 0 bytes .../site/resources/images/tour/security.png | Bin 45493 -> 0 bytes .../src/site/resources/images/tour/upload.png | Bin 38969 -> 0 bytes .../resources/images/tour/virtual-repos.png | Bin 46088 -> 0 bytes .../archiva-docs/src/site/site.xml | 78 - .../archiva-docs/src/site/xdoc/tour/admin.xml | 26 - .../archiva-docs/src/site/xdoc/tour/index.xml | 104 - .../src/site/xdoc/tour/maintenance.xml | 28 - .../src/site/xdoc/tour/project.xml | 26 - .../archiva-docs/src/site/xdoc/tour/proxy.xml | 26 - .../src/site/xdoc/tour/reports.xml | 26 - .../archiva-docs/src/site/xdoc/tour/rss.xml | 25 - .../src/site/xdoc/tour/search.xml | 26 - .../src/site/xdoc/tour/security.xml | 26 - .../src/site/xdoc/tour/upload.xml | 25 - .../src/site/xdoc/tour/virtual-repos.xml | 26 - archiva-security-fix/archiva-jetty/pom.xml | 293 - .../appended-resources/notice-supplements.xml | 141 - .../archiva-jetty/src/main/assembly/bin.xml | 119 - .../archiva-jetty/src/main/conf/archiva.xml | 1 - .../src/main/conf/jetty-logging.xml | 32 - .../archiva-jetty/src/main/conf/jetty.xml | 341 - .../archiva-jetty/src/main/conf/shared.xml | 1 - .../archiva-jetty/src/main/resources/LICENSE | 261 - .../archiva-artifact-converter/pom.xml | 72 - .../artifact/ArtifactConversionException.java | 50 - .../converter/artifact/ArtifactConverter.java | 58 - .../artifact/LegacyToDefaultConverter.java | 690 -- .../archiva/converter/artifact/Messages.java | 71 - .../converter/artifact/messages.properties | 51 - .../expected-files/converted-artifact-one.pom | 6 - .../converted-artifact-three.pom | 6 - .../expected-files/converted-artifact-two.pom | 6 - .../expected-files/converted-v3-snapshot.pom | 28 - .../converted-v3-timestamped-snapshot.pom | 28 - .../expected-files/converted-v3-warnings.pom | 28 - .../src/test/expected-files/converted-v3.pom | 28 - .../expected-files/maven-foo-plugin-1.0.pom | 7 - .../newversion-artifact-metadata.xml | 10 - .../1.0.0/maven-metadata.xml | 6 - .../1.0.0/relocated-v3artifact-1.0.0.jar | Bin 3 -> 0 bytes .../1.0.0/relocated-v3artifact-1.0.0.pom | 28 - .../relocated-v3artifact/maven-metadata.xml | 9 - .../1.0.0/relocated-v3artifact-1.0.0.pom | 12 - .../expected-files/v3-artifact-metadata.xml | 9 - .../v3-snapshot-artifact-metadata.xml | 9 - .../expected-files/v3-snapshot-metadata.xml | 6 - .../v3-timestamped-snapshot-metadata.xml | 11 - .../expected-files/v3-version-metadata.xml | 6 - .../expected-files/v4-artifact-metadata.xml | 9 - .../v4-snapshot-artifact-metadata.xml | 9 - .../expected-files/v4-snapshot-metadata.xml | 6 - .../v4-timestamped-snapshot-metadata.xml | 11 - .../expected-files/v4-version-metadata.xml | 6 - .../LegacyToDefaultConverterTest.java | 1010 --- .../artifact/LegacyToDefaultConverterTest.xml | 85 - .../1.0.0/incorrectArtifactMetadata-1.0.0.jar | Bin 13 -> 0 bytes .../1.0.0/incorrectArtifactMetadata-1.0.0.pom | 25 - .../maven-metadata.xml | 29 - ...apshotMetadata-1.0.0-20060102.030405-6.jar | Bin 13 -> 0 bytes ...apshotMetadata-1.0.0-20060102.030405-6.pom | 25 - .../1.0.0-SNAPSHOT/maven-metadata.xml | 31 - .../maven-metadata.xml | 29 - .../test/jars/artifact-one-1.0.0.jar | Bin 4 -> 0 bytes .../test/jars/artifact-three-1.0.0.jar | Bin 6 -> 0 bytes .../test/jars/artifact-two-1.0.0.jar | Bin 4 -> 0 bytes .../test/jars/dryrun-artifact-1.0.0.jar | Bin 9 -> 0 bytes .../test/jars/existing-artifact-1.0.0.jar | Bin 9 -> 0 bytes .../test/jars/incorrectMd5Artifact-1.0.0.jar | Bin 13 -> 0 bytes .../jars/incorrectMd5Artifact-1.0.0.jar.md5 | 1 - .../test/jars/incorrectSha1Artifact-1.0.0.jar | Bin 14 -> 0 bytes .../jars/incorrectSha1Artifact-1.0.0.jar.sha1 | 1 - .../test/jars/modified-artifact-1.0.0.jar | Bin 9 -> 0 bytes .../test/jars/newversion-artifact-1.0.1.jar | Bin 3 -> 0 bytes .../test/jars/noPomArtifact-1.0.0.jar | Bin 6 -> 0 bytes .../test/jars/relocated-v3artifact-1.0.0.jar | Bin 3 -> 0 bytes .../jars/rollback-created-artifact-1.0.0.jar | Bin 3 -> 0 bytes .../test/jars/unmodified-artifact-1.0.0.jar | Bin 11 -> 0 bytes .../test/jars/v3-warnings-artifact-1.0.0.jar | Bin 3 -> 0 bytes .../v3artifact-1.0.0-20060105.130101-3.jar | Bin 3 -> 0 bytes .../test/jars/v3artifact-1.0.0-SNAPSHOT.jar | Bin 3 -> 0 bytes .../test/jars/v3artifact-1.0.0.jar | Bin 3 -> 0 bytes .../v4artifact-1.0.0-20060111.120115-1.jar | Bin 3 -> 0 bytes .../test/jars/v4artifact-1.0.0-SNAPSHOT.jar | Bin 3 -> 0 bytes .../test/jars/v4artifact-1.0.0.jar | Bin 3 -> 0 bytes .../test/jars/v4artifact-1.0.0.jar.md5 | 1 - .../test/jars/v4artifact-1.0.0.jar.sha1 | 1 - .../test/plugins/maven-foo-plugin-1.0.jar | Bin 4 -> 0 bytes .../test/poms/artifact-one-1.0.0.pom | 6 - .../test/poms/artifact-three-1.0.0.pom | 6 - .../test/poms/artifact-two-1.0.0.pom | 6 - .../test/poms/dryrun-artifact-1.0.0.pom | 22 - .../test/poms/incorrectMd5Artifact-1.0.0.pom | 6 - .../test/poms/incorrectSha1Artifact-1.0.0.pom | 6 - .../test/poms/maven-foo-plugin-1.0.pom | 6 - .../test/poms/modified-artifact-1.0.0.pom | 22 - .../test/poms/newversion-artifact-1.0.1.pom | 22 - .../test/poms/relocated-v3artifact-1.0.0.pom | 27 - .../poms/rollback-created-artifact-1.0.0.pom | 39 - .../test/poms/unmodified-artifact-1.0.0.pom | 25 - .../test/poms/v3-warnings-artifact-1.0.0.pom | 48 - .../v3artifact-1.0.0-20060105.130101-3.pom | 40 - .../test/poms/v3artifact-1.0.0-SNAPSHOT.pom | 40 - .../test/poms/v3artifact-1.0.0.pom | 24 - .../v4artifact-1.0.0-20060111.120115-1.pom | 22 - .../test/poms/v4artifact-1.0.0-SNAPSHOT.pom | 22 - .../test/poms/v4artifact-1.0.0.pom | 6 - .../1.0.0/modified-artifact-1.0.0.jar | Bin 11 -> 0 bytes .../1.0.0/modified-artifact-1.0.0.pom | 25 - .../1.0.0/newversion-artifact-1.0.0.jar | Bin 11 -> 0 bytes .../1.0.0/newversion-artifact-1.0.0.pom | 25 - .../newversion-artifact/maven-metadata.xml | 29 - .../1.0.0/unmodified-artifact-1.0.0.jar | Bin 11 -> 0 bytes .../1.0.0/unmodified-artifact-1.0.0.pom | 25 - .../archiva-base/archiva-checksum/pom.xml | 56 - .../org/apache/archiva/checksum/Checksum.java | 105 - .../archiva/checksum/ChecksumAlgorithm.java | 96 - .../archiva/checksum/ChecksummedFile.java | 354 - .../java/org/apache/archiva/checksum/Hex.java | 32 - .../checksum/AbstractChecksumTestCase.java | 77 - .../checksum/ChecksumAlgorithmTest.java | 59 - .../apache/archiva/checksum/ChecksumTest.java | 103 - .../archiva/checksum/ChecksummedFileTest.java | 269 - .../metadata/maven-metadata-remote.xml | 0 .../metadata/maven-metadata-remote.xml.md5 | 1 - .../metadata/maven-metadata-remote.xml.sha1 | 1 - .../resources/examples/redback-authz-open.jar | Bin 4080 -> 0 bytes .../examples/redback-authz-open.jar.md5 | 1 - .../examples/redback-authz-open.jar.sha1 | 1 - .../resources/examples/redback-keys-api.jar | Bin 6616 -> 0 bytes .../examples/redback-keys-api.jar.md5 | 1 - .../examples/redback-keys-api.jar.sha1 | 1 - .../archiva-base/archiva-common/pom.xml | 78 - .../archiva/common/ArchivaException.java | 40 - .../maven/archiva/common/utils/BaseFile.java | 105 - .../maven/archiva/common/utils/DateUtil.java | 130 - .../maven/archiva/common/utils/PathUtil.java | 107 - .../common/utils/Slf4JPlexusLogger.java | 130 - .../common/utils/VersionComparator.java | 260 - .../archiva/common/utils/VersionUtil.java | 204 - .../archiva/common/utils/BaseFileTest.java | 132 - .../archiva/common/utils/DateUtilTest.java | 69 - .../archiva/common/utils/PathUtilTest.java | 94 - .../archiva/common/utils/ResourceUtils.java | 90 - .../common/utils/VersionComparatorTest.java | 131 - .../src/test/legacy-repository/CVS/Root | 1 - .../src/test/legacy-repository/KEYS | 0 .../invalid/foo/invalid-1.0.foo | 0 .../legacy-repository/invalid/invalid-1.0.jar | Bin .../invalid/jars/1.0/invalid-1.0.jar | Bin .../invalid/jars/invalid-1.0.rar | 0 .../invalid/jars/invalid.jar | Bin .../invalid/jars/no-extension | 0 .../javax.sql/jars/jdbc-2.0.jar | Bin .../jars/test-not-updated-1.0.jar | Bin 34 -> 0 bytes .../jars/test-updated-1.0.jar | Bin 34 -> 0 bytes .../jars/some-ejb-1.0-client.jar | Bin .../jars/testing-1.0-20050611.112233-1.jar | Bin .../jars/testing-1.0-sources.jar | Bin .../org.apache.maven/jars/testing-1.0.jar | Bin .../org.apache.maven/jars/testing-1.0.tar.gz | 0 .../org.apache.maven/jars/testing-1.0.zip | 0 .../org.apache.maven/jars/testing-UNKNOWN.jar | Bin .../src/test/repository/CVS/Root | 1 - .../archiva-common/src/test/repository/KEYS | 1 - .../test/repository/invalid/invalid-1.0.jar | Bin .../invalid-1.0-20050611.123456-1.jar | Bin .../invalid/1.0-SNAPSHOT/invalid-1.0.jar | Bin .../invalid/invalid/1.0/invalid-1.0b.jar | Bin .../invalid/invalid/1.0/invalid-2.0.jar | Bin .../repository/invalid/invalid/1/invalid-1 | 0 .../test/repository/javax/maven-metadata.xml | 26 - .../javax/sql/jdbc/2.0/jdbc-2.0.jar | Bin .../jdbc/2.0/maven-metadata-repository.xml | 25 - .../sql/jdbc/maven-metadata-repository.xml | 30 - .../javax/sql/maven-metadata-repository.xml | 25 - .../org/apache/maven/A/1.0/A-1.0.pom | 28 - .../org/apache/maven/A/1.0/A-1.0.war | Bin 34 -> 0 bytes .../org/apache/maven/B/1.0/B-1.0.pom | 28 - .../org/apache/maven/B/2.0/B-2.0.pom | 28 - .../org/apache/maven/C/1.0/C-1.0.pom | 28 - .../org/apache/maven/C/1.0/C-1.0.war | Bin 34 -> 0 bytes .../maven/discovery/1.0/discovery-1.0.pom | 28 - .../org/apache/maven/maven-metadata.xml | 23 - .../maven/samplejar/1.0/samplejar-1.0.jar | Bin 34 -> 0 bytes .../maven/samplejar/1.0/samplejar-1.0.pom | 29 - .../maven/samplejar/2.0/samplejar-2.0.jar | Bin 34 -> 0 bytes .../maven/samplejar/2.0/samplejar-2.0.pom | 29 - .../maven/some-ejb/1.0/maven-metadata.xml | 0 .../some-ejb/1.0/some-ejb-1.0-client.jar | Bin .../test-1.0-20050611.112233-1-javadoc.jar | Bin .../test-1.0-20050611.112233-1.jar | Bin ...wrong-artifactId-1.0-20050611.112233-1.jar | Bin .../maven/testing/1.0/testing-1.0-sources.jar | Bin .../testing/1.0/testing-1.0-test-sources.jar | Bin .../apache/maven/testing/1.0/testing-1.0.jar | Bin .../maven/testing/1.0/testing-1.0.tar.gz | 0 .../apache/maven/testing/1.0/testing-1.0.zip | 0 .../1.0/test-not-updated-1.0.jar | Bin 34 -> 0 bytes .../1.0/test-not-updated-1.0.pom | 29 - .../test-not-updated/maven-metadata.xml | 24 - .../test-updated/1.0/test-updated-1.0.jar | Bin 34 -> 0 bytes .../test-updated/1.0/test-updated-1.0.pom | 29 - .../update/test-updated/maven-metadata.xml | 24 - .../testgroup/discovery/1.0/discovery-1.0.pom | 28 - .../discovery/1.0/maven-metadata.xml | 25 - .../testgroup/discovery/maven-metadata.xml | 24 - .../src/test/resources/checksums/artifact.jar | Bin 2422 -> 0 bytes .../resources/checksums/artifact.jar.md5-bad | 1 - .../resources/checksums/artifact.jar.md5-good | 1 - .../resources/checksums/artifact.jar.sha1-bad | 1 - .../checksums/artifact.jar.sha1-good | 1 - .../consumers/GenericArtifactConsumerTest.xml | 34 - .../consumers/GenericModelConsumerTest.xml | 34 - .../GenericRepositoryMetadataConsumerTest.xml | 34 - .../archiva-configuration/pom.xml | 99 - .../configuration/ArchivaConfiguration.java | 82 - .../configuration/ConfigurationEvent.java | 77 - .../configuration/ConfigurationListener.java | 34 - .../configuration/ConfigurationNames.java | 69 - .../ConfigurationRuntimeException.java | 32 - .../DefaultArchivaConfiguration.java | 736 -- .../archiva/configuration/FileTypes.java | 252 - .../IndeterminateConfigurationException.java | 32 - .../InvalidConfigurationException.java | 49 - .../MavenProxyPropertyLoader.java | 154 - .../functors/FiletypeSelectionPredicate.java | 55 - .../functors/FiletypeToMapClosure.java | 52 - .../functors/NetworkProxyComparator.java | 56 - .../NetworkProxySelectionPredicate.java | 54 - ...ConnectorConfigurationOrderComparator.java | 73 - .../ProxyConnectorSelectionPredicate.java | 59 - .../RepositoryConfigurationComparator.java | 54 - .../src/main/mdo/configuration.mdo | 1136 --- ...ositoryConfiguration-conversion.properties | 21 - .../archiva/configuration/default-archiva.xml | 178 - .../src/test/conf/archiva-0.9.xml | 44 - .../src/test/conf/archiva-v1.xml | 191 - .../src/test/conf/autodetect-v1.xml | 190 - .../src/test/conf/conf-base.xml | 65 - .../test/conf/conf-single-list-elements.xml | 97 - .../src/test/conf/conf-user.xml | 49 - .../src/test/conf/corrupt.xml | 20 - .../src/test/conf/escape-cron-expressions.xml | 54 - .../src/test/conf/maven-proxy-complete.conf | 144 - .../src/test/conf/repository-manager.xml | 193 - .../ArchivaConfigurationTest.java | 819 --- .../configuration/ConfigurationTest.java | 144 - .../archiva/configuration/FileTypesTest.java | 55 - .../configuration/LegacyArtifactPathTest.java | 56 - .../MavenProxyPropertyLoaderTest.java | 108 - ...ectorConfigurationOrderComparatorTest.java | 131 - ...RepositoryConfigurationComparatorTest.java | 52 - .../src/test/resources/log4j.properties | 10 - .../ArchivaConfigurationTest.xml | 495 -- .../configuration/test-default-archiva.xml | 176 - .../archiva-consumer-api/pom.xml | 45 - .../consumers/AbstractMonitoredConsumer.java | 109 - .../consumers/ArchivaArtifactConsumer.java | 81 - .../maven/archiva/consumers/BaseConsumer.java | 64 - .../archiva/consumers/ConsumerException.java | 42 - .../archiva/consumers/ConsumerMonitor.java | 55 - .../consumers/DatabaseCleanupConsumer.java | 32 - .../DatabaseUnprocessedArtifactConsumer.java | 32 - .../InvalidRepositoryContentConsumer.java | 32 - .../KnownRepositoryContentConsumer.java | 32 - .../consumers/RepositoryContentConsumer.java | 101 - .../functors/PermanentConsumerPredicate.java | 48 - .../archiva-core-consumers/pom.xml | 65 - .../ArtifactMissingChecksumsConsumer.java | 202 - .../consumers/core/AutoRemoveConsumer.java | 152 - .../consumers/core/AutoRenameConsumer.java | 147 - .../core/MetadataUpdaterConsumer.java | 299 - .../core/ValidateChecksumConsumer.java | 156 - .../repository/AbstractRepositoryPurge.java | 139 - .../repository/ArtifactFilenameFilter.java | 49 - ...eanupReleasedSnapshotsRepositoryPurge.java | 255 - .../repository/DaysOldRepositoryPurge.java | 196 - .../core/repository/RepositoryPurge.java | 36 - .../repository/RepositoryPurgeConsumer.java | 218 - .../repository/RepositoryPurgeException.java | 49 - .../RetentionCountRepositoryPurge.java | 130 - .../test/conf/repository-manager-daysOld.xml | 203 - .../src/test/conf/repository-manager.xml | 203 - .../core/AbstractArtifactConsumerTest.java | 76 - .../ArtifactMissingChecksumsConsumerTest.java | 35 - .../core/MetadataUpdateConsumerTest.java | 35 - .../AbstractRepositoryPurgeTest.java | 151 - ...pReleasedSnapshotsRepositoryPurgeTest.java | 223 - .../DaysOldRepositoryPurgeTest.java | 262 - .../RepositoryPurgeConsumerTest.java | 282 - .../RetentionCountRepositoryPurgeTest.java | 197 - ...upReleasedSnapshotsRepositoryPurgeTest.xml | 104 - .../repository/DaysOldRepositoryPurgeTest.xml | 58 - .../RepositoryPurgeConsumerTest.xml | 189 - .../RetentionCountRepositoryPurgeTest.xml | 58 - .../released-artifact-in-diff-repo-1.0.jar | Bin ...released-artifact-in-diff-repo-1.0.jar.md5 | 0 ...eleased-artifact-in-diff-repo-1.0.jar.sha1 | 0 .../released-artifact-in-diff-repo-1.0.pom | 0 ...released-artifact-in-diff-repo-1.0.pom.md5 | 0 ...eleased-artifact-in-diff-repo-1.0.pom.sha1 | 0 ...sed-artifact-in-diff-repo-1.0-SNAPSHOT.jar | Bin ...artifact-in-diff-repo-1.0-SNAPSHOT.jar.md5 | 0 ...rtifact-in-diff-repo-1.0-SNAPSHOT.jar.sha1 | 0 ...sed-artifact-in-diff-repo-1.0-SNAPSHOT.pom | 0 ...artifact-in-diff-repo-1.0-SNAPSHOT.pom.md5 | 0 ...rtifact-in-diff-repo-1.0-SNAPSHOT.pom.sha1 | 0 ...ssembly-plugin-1.1.2-20070427.065136-1.jar | Bin ...bly-plugin-1.1.2-20070427.065136-1.jar.md5 | 0 ...ly-plugin-1.1.2-20070427.065136-1.jar.sha1 | 0 ...ssembly-plugin-1.1.2-20070427.065136-1.pom | 0 ...bly-plugin-1.1.2-20070427.065136-1.pom.md5 | 0 ...ly-plugin-1.1.2-20070427.065136-1.pom.sha1 | 0 ...ssembly-plugin-1.1.2-20070506.163513-2.jar | Bin ...bly-plugin-1.1.2-20070506.163513-2.jar.md5 | 0 ...ly-plugin-1.1.2-20070506.163513-2.jar.sha1 | 0 ...ssembly-plugin-1.1.2-20070506.163513-2.pom | 0 ...bly-plugin-1.1.2-20070506.163513-2.pom.md5 | 0 ...ly-plugin-1.1.2-20070506.163513-2.pom.sha1 | 0 ...ssembly-plugin-1.1.2-20070615.105019-3.jar | Bin ...bly-plugin-1.1.2-20070615.105019-3.jar.md5 | 0 ...ly-plugin-1.1.2-20070615.105019-3.jar.sha1 | 0 ...ssembly-plugin-1.1.2-20070615.105019-3.pom | 0 ...bly-plugin-1.1.2-20070615.105019-3.pom.md5 | 0 ...ly-plugin-1.1.2-20070615.105019-3.pom.sha1 | 0 ...n-install-plugin-2.2-20061118.060401-2.jar | Bin ...stall-plugin-2.2-20061118.060401-2.jar.md5 | 0 ...tall-plugin-2.2-20061118.060401-2.jar.sha1 | 0 ...n-install-plugin-2.2-20061118.060401-2.pom | 0 ...stall-plugin-2.2-20061118.060401-2.pom.md5 | 0 ...tall-plugin-2.2-20061118.060401-2.pom.sha1 | 0 ...n-install-plugin-2.2-20070513.034619-5.jar | Bin ...stall-plugin-2.2-20070513.034619-5.jar.md5 | 0 ...tall-plugin-2.2-20070513.034619-5.jar.sha1 | 0 ...n-install-plugin-2.2-20070513.034619-5.pom | 0 ...stall-plugin-2.2-20070513.034619-5.pom.md5 | 0 ...tall-plugin-2.2-20070513.034619-5.pom.sha1 | 0 .../maven-install-plugin-2.2-SNAPSHOT.jar | Bin .../maven-install-plugin-2.2-SNAPSHOT.jar.md5 | 0 ...maven-install-plugin-2.2-SNAPSHOT.jar.sha1 | 0 .../maven-install-plugin-2.2-SNAPSHOT.pom | 0 .../maven-install-plugin-2.2-SNAPSHOT.pom.md5 | 0 ...maven-install-plugin-2.2-SNAPSHOT.pom.sha1 | 0 .../2.2-SNAPSHOT/maven-metadata.xml | 9 - .../2.2/maven-plugin-plugin-2.2.jar | Bin .../2.2/maven-plugin-plugin-2.2.jar.md5 | 0 .../2.2/maven-plugin-plugin-2.2.jar.sha1 | 0 .../2.2/maven-plugin-plugin-2.2.pom | 0 .../2.2/maven-plugin-plugin-2.2.pom.md5 | 0 .../2.2/maven-plugin-plugin-2.2.pom.sha1 | 0 .../2.3-SNAPSHOT/maven-metadata.xml | 11 - .../maven-plugin-plugin-2.3-SNAPSHOT.jar | Bin .../maven-plugin-plugin-2.3-SNAPSHOT.jar.md5 | 0 .../maven-plugin-plugin-2.3-SNAPSHOT.jar.sha1 | 0 .../maven-plugin-plugin-2.3-SNAPSHOT.pom | 0 .../maven-plugin-plugin-2.3-SNAPSHOT.pom.md5 | 0 .../maven-plugin-plugin-2.3-SNAPSHOT.pom.sha1 | 0 .../2.3/maven-plugin-plugin-2.3-sources.jar | Bin .../maven-plugin-plugin-2.3-sources.jar.md5 | 0 .../maven-plugin-plugin-2.3-sources.jar.sha1 | 0 .../2.3/maven-plugin-plugin-2.3.jar | Bin .../2.3/maven-plugin-plugin-2.3.jar.md5 | 0 .../2.3/maven-plugin-plugin-2.3.jar.sha1 | 0 .../2.3/maven-plugin-plugin-2.3.pom | 0 .../2.3/maven-plugin-plugin-2.3.pom.md5 | 0 .../2.3/maven-plugin-plugin-2.3.pom.sha1 | 0 .../maven-plugin-plugin/maven-metadata.xml | 13 - .../maven-source-plugin-2.0.2-sources.jar | Bin .../maven-source-plugin-2.0.2-sources.jar.md5 | 0 ...maven-source-plugin-2.0.2-sources.jar.sha1 | 0 .../2.0.2/maven-source-plugin-2.0.2.jar | Bin .../2.0.2/maven-source-plugin-2.0.2.jar.md5 | 0 .../2.0.2/maven-source-plugin-2.0.2.jar.sha1 | 0 .../2.0.2/maven-source-plugin-2.0.2.pom | 0 .../2.0.2/maven-source-plugin-2.0.2.pom.md5 | 0 .../2.0.2/maven-source-plugin-2.0.2.pom.sha1 | 0 .../2.0.3-SNAPSHOT/maven-metadata.xml | 11 - .../maven-source-plugin-2.0.3-SNAPSHOT.jar | Bin ...maven-source-plugin-2.0.3-SNAPSHOT.jar.md5 | 0 ...aven-source-plugin-2.0.3-SNAPSHOT.jar.sha1 | 0 .../maven-source-plugin-2.0.3-SNAPSHOT.pom | 0 ...maven-source-plugin-2.0.3-SNAPSHOT.pom.md5 | 0 ...aven-source-plugin-2.0.3-SNAPSHOT.pom.sha1 | 0 .../2.0.4-SNAPSHOT/maven-metadata.xml | 11 - .../maven-source-plugin-2.0.4-SNAPSHOT.jar | Bin ...maven-source-plugin-2.0.4-SNAPSHOT.jar.md5 | 0 ...aven-source-plugin-2.0.4-SNAPSHOT.jar.sha1 | 0 .../maven-source-plugin-2.0.4-SNAPSHOT.pom | 0 ...maven-source-plugin-2.0.4-SNAPSHOT.pom.md5 | 0 ...aven-source-plugin-2.0.4-SNAPSHOT.pom.sha1 | 0 .../maven-source-plugin/maven-metadata.xml | 13 - ...astor-anttasks-1.1.2-20070427.065136-1.jar | Bin ...r-anttasks-1.1.2-20070427.065136-1.jar.md5 | 0 ...-anttasks-1.1.2-20070427.065136-1.jar.sha1 | 0 ...astor-anttasks-1.1.2-20070427.065136-1.pom | 0 ...r-anttasks-1.1.2-20070427.065136-1.pom.md5 | 0 ...-anttasks-1.1.2-20070427.065136-1.pom.sha1 | 0 ...ttasks-1.1.2-20070506.163513-2-sources.jar | Bin ...ks-1.1.2-20070506.163513-2-sources.jar.md5 | 0 ...s-1.1.2-20070506.163513-2-sources.jar.sha1 | 0 ...astor-anttasks-1.1.2-20070506.163513-2.jar | Bin ...r-anttasks-1.1.2-20070506.163513-2.jar.md5 | 0 ...-anttasks-1.1.2-20070506.163513-2.jar.sha1 | 0 ...astor-anttasks-1.1.2-20070506.163513-2.pom | 0 ...r-anttasks-1.1.2-20070506.163513-2.pom.md5 | 0 ...-anttasks-1.1.2-20070506.163513-2.pom.sha1 | 0 ...ttasks-1.1.2-20070615.105019-3-sources.jar | Bin ...ks-1.1.2-20070615.105019-3-sources.jar.md5 | 0 ...s-1.1.2-20070615.105019-3-sources.jar.sha1 | 0 ...astor-anttasks-1.1.2-20070615.105019-3.jar | Bin ...r-anttasks-1.1.2-20070615.105019-3.jar.md5 | 0 ...-anttasks-1.1.2-20070615.105019-3.jar.sha1 | 0 ...astor-anttasks-1.1.2-20070615.105019-3.pom | 0 ...r-anttasks-1.1.2-20070615.105019-3.pom.md5 | 0 ...-anttasks-1.1.2-20070615.105019-3.pom.sha1 | 0 .../maven-metadata-codehaus-snapshots.xml | 12 - ...maven-metadata-codehaus-snapshots.xml.sha1 | 1 - .../plexus-utils-1.4.3-20070113.163208-4.jar | Bin ...xus-utils-1.4.3-20070113.163208-4.jar.sha1 | 0 .../plexus-utils-1.4.3-20070113.163208-4.pom | 0 ...xus-utils-1.4.3-20070113.163208-4.pom.sha1 | 0 .../plexus-utils-1.4.3-SNAPSHOT.jar | Bin .../plexus-utils-1.4.3-SNAPSHOT.pom | 0 ...y-rake-plugin-1.0RC1-20070504.153317-1.jar | Bin ...ke-plugin-1.0RC1-20070504.153317-1.jar.md5 | 0 ...e-plugin-1.0RC1-20070504.153317-1.jar.sha1 | 0 ...y-rake-plugin-1.0RC1-20070504.153317-1.pom | 0 ...ke-plugin-1.0RC1-20070504.153317-1.pom.md5 | 0 ...e-plugin-1.0RC1-20070504.153317-1.pom.sha1 | 0 ...y-rake-plugin-1.0RC1-20070504.160758-2.jar | Bin ...ke-plugin-1.0RC1-20070504.160758-2.jar.md5 | 0 ...e-plugin-1.0RC1-20070504.160758-2.jar.sha1 | 0 ...y-rake-plugin-1.0RC1-20070504.160758-2.pom | 0 ...ke-plugin-1.0RC1-20070504.160758-2.pom.md5 | 0 ...e-plugin-1.0RC1-20070504.160758-2.pom.sha1 | 0 ...y-rake-plugin-1.0RC1-20070505.090015-3.jar | Bin ...ke-plugin-1.0RC1-20070505.090015-3.jar.md5 | 0 ...e-plugin-1.0RC1-20070505.090015-3.jar.sha1 | 0 ...y-rake-plugin-1.0RC1-20070505.090015-3.pom | 0 ...ke-plugin-1.0RC1-20070505.090015-3.pom.md5 | 0 ...e-plugin-1.0RC1-20070505.090015-3.pom.sha1 | 0 ...y-rake-plugin-1.0RC1-20070506.090132-4.jar | Bin ...ke-plugin-1.0RC1-20070506.090132-4.jar.md5 | 0 ...e-plugin-1.0RC1-20070506.090132-4.jar.sha1 | 0 ...y-rake-plugin-1.0RC1-20070506.090132-4.pom | 0 ...ke-plugin-1.0RC1-20070506.090132-4.pom.md5 | 0 ...e-plugin-1.0RC1-20070506.090132-4.pom.sha1 | 0 .../1.0RC1-SNAPSHOT/maven-metadata.xml | 12 - .../1.0RC1-SNAPSHOT/maven-metadata.xml.md5 | 1 - .../1.0RC1-SNAPSHOT/maven-metadata.xml.sha1 | 1 - .../archiva-database-consumers/pom.xml | 67 - .../ArtifactUpdateDatabaseConsumer.java | 275 - .../BytecodeStatsToDatabaseConsumer.java | 93 - ...DatabaseCleanupRemoveArtifactConsumer.java | 163 - .../DatabaseCleanupRemoveProjectConsumer.java | 180 - .../ProjectModelToDatabaseConsumer.java | 360 - ...VerifyMetadataAgainstDatabaseConsumer.java | 93 - .../src/test/conf/repository-manager.xml | 203 - .../database/AbstractDatabaseCleanupTest.java | 98 - .../ArtifactUpdateDatabaseConsumerTest.java | 79 - ...baseCleanupRemoveArtifactConsumerTest.java | 97 - ...abaseCleanupRemoveProjectConsumerTest.java | 115 - .../ArtifactUpdateDatabaseConsumerTest.xml | 56 - ...abaseCleanupRemoveArtifactConsumerTest.xml | 65 - ...tabaseCleanupRemoveProjectConsumerTest.xml | 87 - .../1.0/do-not-cleanup-artifact-test-1.0.jar | Bin 308 -> 0 bytes .../1.0/do-not-cleanup-artifact-test-1.0.pom | 5 - .../archiva-dependency-tree-consumer/pom.xml | 47 - .../DependencyTreeGeneratorConsumer.java | 336 - .../DependencyTreeGeneratorConsumerTest.java | 126 - .../test-data/maven-core-2.0-tree.xml | 200 - .../test-data/surefire-testng-2.0-tree.xml | 59 - .../jaxb-xjc/2.0EA3/jaxb-xjc-2.0EA3.pom | 6 - .../maven/maven-core/2.0/maven-core-2.0.pom | 186 - .../2.0/surefire-testng-2.0.pom | 82 - .../archiva-lucene-consumers/pom.xml | 59 - .../IndexArchiveTableOfContentsConsumer.java | 93 - .../lucene/IndexArtifactConsumer.java | 217 - .../lucene/IndexContentConsumer.java | 225 - .../IndexJavaPublicMethodsConsumer.java | 269 - .../LuceneCleanupRemoveIndexedConsumer.java | 153 - .../src/test/conf/repository-manager.xml | 129 - .../IndexJavaPublicMethodsConsumerTest.java | 124 - ...avaPublicMethodsCrossRepositorySearch.java | 191 - ...uceneCleanupRemoveIndexedConsumerTest.java | 77 - ...ceneRepositoryContentIndexFactoryStub.java | 54 - .../LuceneRepositoryContentIndexStub.java | 145 - .../IndexJavaPublicMethodsConsumerTest.xml | 64 - ...LuceneCleanupRemoveIndexedConsumerTest.xml | 86 - .../archiva-index-methods-jar-test-1.0.jar | Bin 4460 -> 0 bytes .../1.0/pom.xml | 18 - .../1.0/archiva-lucene-cleanup-1.0.jar | Bin .../archiva-signature-consumers/pom.xml | 29 - .../archiva-base/archiva-consumers/pom.xml | 48 - .../archiva-base/archiva-converter/pom.xml | 53 - .../RepositoryConversionException.java | 39 - .../DefaultLegacyRepositoryConverter.java | 104 - .../LegacyConverterArtifactConsumer.java | 162 - .../legacy/LegacyRepositoryConverter.java | 48 - .../DefaultRepositoryConverter.properties | 38 - .../expected-files/converted-artifact-one.pom | 6 - .../converted-artifact-three.pom | 6 - .../expected-files/converted-artifact-two.pom | 6 - .../expected-files/converted-v3-snapshot.pom | 28 - .../converted-v3-timestamped-snapshot.pom | 28 - .../expected-files/converted-v3-warnings.pom | 28 - .../src/test/expected-files/converted-v3.pom | 28 - .../expected-files/maven-foo-plugin-1.0.pom | 7 - .../newversion-artifact-metadata.xml | 10 - .../1.0.0/maven-metadata.xml | 6 - .../1.0.0/relocated-v3artifact-1.0.0.jar | Bin 3 -> 0 bytes .../1.0.0/relocated-v3artifact-1.0.0.pom | 28 - .../relocated-v3artifact/maven-metadata.xml | 9 - .../1.0.0/relocated-v3artifact-1.0.0.pom | 12 - .../expected-files/v3-artifact-metadata.xml | 9 - .../v3-snapshot-artifact-metadata.xml | 9 - .../expected-files/v3-snapshot-metadata.xml | 6 - .../v3-timestamped-snapshot-metadata.xml | 11 - .../expected-files/v3-version-metadata.xml | 6 - .../expected-files/v4-artifact-metadata.xml | 9 - .../v4-snapshot-artifact-metadata.xml | 9 - .../expected-files/v4-snapshot-metadata.xml | 6 - .../v4-timestamped-snapshot-metadata.xml | 11 - .../expected-files/v4-version-metadata.xml | 6 - .../converter/RepositoryConverterTest.java | 153 - .../src/test/resources/log4j.properties | 10 - .../converter/RepositoryConverterTest.xml | 125 - .../1.0.0/incorrectArtifactMetadata-1.0.0.jar | Bin 13 -> 0 bytes .../1.0.0/incorrectArtifactMetadata-1.0.0.pom | 25 - .../maven-metadata.xml | 29 - ...apshotMetadata-1.0.0-20060102.030405-6.jar | Bin 13 -> 0 bytes ...apshotMetadata-1.0.0-20060102.030405-6.pom | 25 - .../1.0.0-SNAPSHOT/maven-metadata.xml | 31 - .../maven-metadata.xml | 29 - .../test/jars/artifact-one-1.0.0.jar | Bin 4 -> 0 bytes .../test/jars/artifact-three-1.0.0.jar | Bin 6 -> 0 bytes .../test/jars/artifact-two-1.0.0.jar | Bin 4 -> 0 bytes .../test/jars/dryrun-artifact-1.0.0.jar | Bin 9 -> 0 bytes .../test/jars/existing-artifact-1.0.0.jar | Bin 9 -> 0 bytes .../test/jars/incorrectMd5Artifact-1.0.0.jar | Bin 13 -> 0 bytes .../jars/incorrectMd5Artifact-1.0.0.jar.md5 | 1 - .../test/jars/incorrectSha1Artifact-1.0.0.jar | Bin 14 -> 0 bytes .../jars/incorrectSha1Artifact-1.0.0.jar.sha1 | 1 - .../test/jars/modified-artifact-1.0.0.jar | Bin 9 -> 0 bytes .../test/jars/newversion-artifact-1.0.1.jar | Bin 3 -> 0 bytes .../test/jars/noPomArtifact-1.0.0.jar | Bin 6 -> 0 bytes .../test/jars/relocated-v3artifact-1.0.0.jar | Bin 3 -> 0 bytes .../jars/rollback-created-artifact-1.0.0.jar | Bin 3 -> 0 bytes .../test/jars/unmodified-artifact-1.0.0.jar | Bin 11 -> 0 bytes .../test/jars/v3-warnings-artifact-1.0.0.jar | Bin 3 -> 0 bytes .../v3artifact-1.0.0-20060105.130101-3.jar | Bin 3 -> 0 bytes .../test/jars/v3artifact-1.0.0-SNAPSHOT.jar | Bin 3 -> 0 bytes .../test/jars/v3artifact-1.0.0.jar | Bin 3 -> 0 bytes .../v4artifact-1.0.0-20060111.120115-1.jar | Bin 3 -> 0 bytes .../test/jars/v4artifact-1.0.0-SNAPSHOT.jar | Bin 3 -> 0 bytes .../test/jars/v4artifact-1.0.0.jar | Bin 3 -> 0 bytes .../test/jars/v4artifact-1.0.0.jar.md5 | 1 - .../test/jars/v4artifact-1.0.0.jar.sha1 | 1 - .../test/plugins/maven-foo-plugin-1.0.jar | Bin 4 -> 0 bytes .../test/poms/artifact-one-1.0.0.pom | 6 - .../test/poms/artifact-three-1.0.0.pom | 6 - .../test/poms/artifact-two-1.0.0.pom | 6 - .../test/poms/dryrun-artifact-1.0.0.pom | 22 - .../test/poms/incorrectMd5Artifact-1.0.0.pom | 6 - .../test/poms/incorrectSha1Artifact-1.0.0.pom | 6 - .../test/poms/maven-foo-plugin-1.0.pom | 6 - .../test/poms/modified-artifact-1.0.0.pom | 22 - .../test/poms/newversion-artifact-1.0.1.pom | 22 - .../test/poms/relocated-v3artifact-1.0.0.pom | 27 - .../poms/rollback-created-artifact-1.0.0.pom | 39 - .../test/poms/unmodified-artifact-1.0.0.pom | 25 - .../test/poms/v3-warnings-artifact-1.0.0.pom | 48 - .../v3artifact-1.0.0-20060105.130101-3.pom | 40 - .../test/poms/v3artifact-1.0.0-SNAPSHOT.pom | 40 - .../test/poms/v3artifact-1.0.0.pom | 24 - .../v4artifact-1.0.0-20060111.120115-1.pom | 22 - .../test/poms/v4artifact-1.0.0-SNAPSHOT.pom | 22 - .../test/poms/v4artifact-1.0.0.pom | 6 - .../1.0.0/modified-artifact-1.0.0.jar | Bin 11 -> 0 bytes .../1.0.0/modified-artifact-1.0.0.pom | 25 - .../1.0.0/newversion-artifact-1.0.0.jar | Bin 11 -> 0 bytes .../1.0.0/newversion-artifact-1.0.0.pom | 25 - .../newversion-artifact/maven-metadata.xml | 29 - .../1.0.0/unmodified-artifact-1.0.0.jar | Bin 11 -> 0 bytes .../1.0.0/unmodified-artifact-1.0.0.pom | 25 - .../archiva-dependency-graph/pom.xml | 61 - .../dependency/DependencyGraphFactory.java | 198 - .../dependency/graph/DependencyGraph.java | 228 - .../graph/DependencyGraphBuilder.java | 51 - .../dependency/graph/DependencyGraphEdge.java | 188 - .../dependency/graph/DependencyGraphKeys.java | 79 - .../dependency/graph/DependencyGraphNode.java | 191 - .../graph/DependencyGraphUtils.java | 289 - .../graph/DependencyResolutionEvent.java | 57 - .../dependency/graph/GraphListener.java | 35 - .../dependency/graph/GraphPhaseEvent.java | 79 - .../archiva/dependency/graph/GraphTask.java | 44 - .../dependency/graph/GraphTaskException.java | 42 - .../graph/PotentialCyclicEdgeProducer.java | 31 - .../graph/functors/EdgeCyclicPredicate.java | 55 - .../graph/functors/EdgeDisabledPredicate.java | 48 - .../functors/EdgeExactScopePredicate.java | 71 - .../graph/functors/EdgeExcludedPredicate.java | 54 - .../graph/functors/EdgeFromPredicate.java | 62 - .../graph/functors/EdgeScopeClosure.java | 49 - .../graph/functors/EdgeToPredicate.java | 55 - .../functors/EdgeWithinScopePredicate.java | 54 - .../functors/NodeFromParentPredicate.java | 46 - .../graph/functors/NodeInEdgePredicate.java | 54 - .../graph/functors/NodePredicate.java | 59 - .../graph/functors/OrphanedNodePredicate.java | 56 - .../ToArtifactReferenceTransformer.java | 43 - .../UnresolvedGraphNodePredicate.java | 53 - .../tasks/AbstractReduceEdgeVisitor.java | 43 - .../tasks/DependencyManagementApplier.java | 218 - .../tasks/DependencyManagementStack.java | 152 - .../graph/tasks/FlagCyclicEdgesTask.java | 48 - .../graph/tasks/FlagCyclicEdgesVisitor.java | 70 - .../graph/tasks/FlagExcludedEdgesTask.java | 47 - .../graph/tasks/FlagExcludedEdgesVisitor.java | 86 - .../dependency/graph/tasks/GraphCopier.java | 81 - .../PopulateDependencyManagementTask.java | 48 - .../graph/tasks/PopulateGraphMasterTask.java | 87 - .../graph/tasks/ReduceEnabledEdgesTask.java | 49 - .../tasks/ReduceEnabledEdgesVisitor.java | 42 - .../graph/tasks/ReduceScopeTask.java | 64 - .../graph/tasks/ReduceScopeVisitor.java | 51 - .../tasks/ReduceTransitiveEdgesTask.java | 48 - .../tasks/ReduceTransitiveEdgesVisitor.java | 161 - .../graph/tasks/RefineConflictsTask.java | 93 - .../graph/tasks/RefineConflictsVisitor.java | 303 - .../graph/tasks/ResolveGraphTask.java | 109 - .../graph/tasks/UpdateScopesTask.java | 49 - .../graph/tasks/UpdateScopesVisitor.java | 82 - .../dependency/graph/walk/BaseVisitor.java | 73 - .../graph/walk/DependencyGraphVisitor.java | 76 - .../graph/walk/DependencyGraphWalker.java | 89 - .../graph/walk/WalkBreadthFirstSearch.java | 157 - .../graph/walk/WalkDepthFirstSearch.java | 145 - ...bstractDependencyGraphFactoryTestCase.java | 392 -- .../graph/AbstractMemoryRepository.java | 176 - .../archiva/dependency/graph/AllTests.java | 51 - .../ArchivaCommonDependencyGraphTest.java | 77 - .../graph/ArchivaCommonMemoryRepository.java | 3469 --------- .../ArchivaWebappDependencyGraphTest.java | 200 - .../graph/ArchivaWebappMemoryRepository.java | 3469 --------- .../ArchivaXmlToolsDependencyGraphTest.java | 86 - .../ArchivaXmlToolsMemoryRepository.java | 3469 --------- .../ContinuumStoreDependencyGraphTest.java | 98 - .../graph/ContinuumStoreMemoryRepository.java | 4142 ----------- .../DepManDeepVersionDependencyGraphTest.java | 74 - .../DepManDeepVersionMemoryRepository.java | 77 - .../dependency/graph/GraphvizDotTool.java | 347 - ...tInfoReportsPluginDependencyGraphTest.java | 135 - ...jectInfoReportsPluginMemoryRepository.java | 1040 --- .../dependency/graph/MemoryRepository.java | 35 - ...emoryRepositoryDependencyGraphBuilder.java | 96 - .../graph/SimpleDependencyGraphTest.java | 71 - .../graph/SimpleMemoryRepository.java | 48 - .../WagonManagerDependencyGraphTest.java | 104 - .../graph/WagonManagerMemoryRepository.java | 772 -- .../graph/functors/ToKeyTransformer.java | 67 - .../tasks/DependencyManagementStackTest.java | 226 - .../graph/walk/DependencyGraphWalkerTest.java | 229 - .../dependency/graph/walk/WalkCollector.java | 113 - .../archiva-base/archiva-indexer/pom.xml | 80 - .../maven/archiva/indexer/ArtifactKeys.java | 45 - .../indexer/RepositoryContentIndex.java | 152 - .../RepositoryContentIndexEventListener.java | 70 - .../RepositoryContentIndexFactory.java | 54 - .../indexer/RepositoryIndexException.java | 37 - .../RepositoryIndexSearchException.java | 32 - .../indexer/bytecode/BytecodeAnalyzer.java | 73 - .../bytecode/BytecodeEntryConverter.java | 114 - .../indexer/bytecode/BytecodeHandlers.java | 77 - .../indexer/bytecode/BytecodeKeys.java | 42 - .../indexer/bytecode/BytecodeRecord.java | 178 - .../filecontent/FileContentAnalyzer.java | 48 - .../filecontent/FileContentConverter.java | 100 - .../filecontent/FileContentHandlers.java | 70 - .../indexer/filecontent/FileContentKeys.java | 38 - .../filecontent/FileContentRecord.java | 130 - .../functors/BytecodeIndexTransformer.java | 51 - .../functors/FileContentIndexTransformer.java | 51 - .../functors/HashcodesIndexTransformer.java | 51 - .../functors/IndexExistsPredicate.java | 61 - .../functors/SearchableTransformer.java | 58 - ...serAllowedToSearchRepositoryPredicate.java | 46 - .../indexer/hashcodes/HashcodesAnalyzer.java | 63 - .../hashcodes/HashcodesEntryConverter.java | 91 - .../indexer/hashcodes/HashcodesHandlers.java | 76 - .../indexer/hashcodes/HashcodesKeys.java | 37 - .../indexer/hashcodes/HashcodesRecord.java | 139 - .../indexer/lucene/LuceneDocumentMaker.java | 119 - .../indexer/lucene/LuceneEntryConverter.java | 50 - .../indexer/lucene/LuceneIndexHandlers.java | 60 - .../archiva/indexer/lucene/LuceneQuery.java | 43 - .../lucene/LuceneRepositoryContentIndex.java | 448 -- .../LuceneRepositoryContentIndexFactory.java | 104 - .../lucene/LuceneRepositoryContentRecord.java | 42 - .../lucene/analyzers/ClassnameTokenizer.java | 58 - .../lucene/analyzers/FilenamesTokenizer.java | 51 - .../lucene/analyzers/GroupIdTokenizer.java | 51 - .../lucene/analyzers/VersionTokenizer.java | 50 - .../archiva/indexer/query/CompoundQuery.java | 108 - .../indexer/query/CompoundQueryTerm.java | 103 - .../maven/archiva/indexer/query/Query.java | 29 - .../archiva/indexer/query/QueryTerm.java | 64 - .../archiva/indexer/query/RangeQuery.java | 153 - .../indexer/query/SingleTermQuery.java | 65 - .../indexer/search/CrossRepositorySearch.java | 89 - .../search/DefaultCrossRepositorySearch.java | 482 -- .../indexer/search/SearchResultHit.java | 153 - .../indexer/search/SearchResultLimits.java | 70 - .../archiva/indexer/search/SearchResults.java | 190 - .../archiva-indexer/src/site/site.xml | 27 - .../artifact-dumps/archiva-common-1.0.jar.txt | 56 - .../continuum-webapp-1.0.3-SNAPSHOT.war.txt | 1492 ---- .../artifact-dumps/daytrader-ear-1.1.ear.txt | 18 - ...maven-archetype-simple-1.0-alpha-4.jar.txt | 19 - ...elp-plugin-2.0.2-20070119.121239-2.jar.txt | 88 - ...rization-open-1.0-alpha-1-SNAPSHOT.jar.txt | 26 - .../artifact-dumps/testng-5.1-jdk15.jar.txt | 4789 ------------- ...r-api-1.0-beta-3-20070209.213958-2.jar.txt | 435 -- .../AbstractIndexCreationTestCase.java | 191 - .../indexer/AbstractIndexerTestCase.java | 236 - .../indexer/AbstractSearchTestCase.java | 195 - .../archiva/indexer/MockConfiguration.java | 104 - ...positoryContentIndexEventListenerTest.java | 167 - .../archiva/indexer/bytecode/AllTests.java | 44 - .../indexer/bytecode/BytecodeIndexTest.java | 66 - .../bytecode/BytecodeRecordLoader.java | 137 - .../indexer/bytecode/BytecodeSearchTest.java | 329 - .../archiva/indexer/hashcodes/AllTests.java | 44 - .../indexer/hashcodes/HashcodesIndexTest.java | 66 - .../hashcodes/HashcodesRecordLoader.java | 106 - .../hashcodes/HashcodesSearchTest.java | 289 - .../maven/archiva/indexer/query/AllTests.java | 43 - .../archiva/indexer/query/QueryTest.java | 159 - .../search/BytecodeIndexPopulator.java | 141 - .../DefaultCrossRepositorySearchTest.java | 337 - .../search/FileContentIndexPopulator.java | 94 - .../search/HashcodesIndexPopulator.java | 139 - .../indexer/search/IndexPopulator.java | 39 - .../record/parent-pom/1/parent-pom-1.pom | 41 - .../test-archetype/1.0/test-archetype-1.0.jar | Bin 4371 -> 0 bytes .../test-archetype/1.0/test-archetype-1.0.pom | 27 - .../test-child-pom-1.0-20060728.121314-1.jar | Bin 1408 -> 0 bytes .../test-child-pom-1.0-20060728.121314-1.pom | 31 - .../1.0/test-corrupt-jar-1.0.jar | Bin .../test-dll/1.0.1.34/test-dll-1.0.1.34.dll | 0 .../test-jar-and-pom-1.0-alpha-1-jdk14.jar | Bin 1408 -> 0 bytes .../test-jar-and-pom-1.0-alpha-1.jar | Bin 1408 -> 0 bytes .../test-jar-and-pom-1.0-alpha-1.pom | 50 - .../test-jar/1.0/test-jar-1.0-jdk14.jar | Bin 1408 -> 0 bytes .../record/test-jar/1.0/test-jar-1.0.jar | Bin 1408 -> 0 bytes .../test-plugin/1.0/test-plugin-1.0.jar | Bin 4402 -> 0 bytes .../test-plugin/1.0/test-plugin-1.0.pom | 41 - .../record/test-pom/1.0/test-pom-1.0.pom | 30 - .../record/test-skin/1.0/test-skin-1.0.jar | Bin 3475 -> 0 bytes .../record/test-skin/1.0/test-skin-1.0.pom | 27 - .../2.0.1/maven-artifact-2.0.1.jar | Bin 78377 -> 0 bytes .../2.0.1/maven-artifact-2.0.1.pom | 64 - .../maven-artifact/2.0.1/maven-metadata.xml | 25 - .../maven/maven-artifact/maven-metadata.xml | 32 - .../2.0/maven-corrupt-jar-2.0.jar | Bin .../2.0/maven-corrupt-jar-2.0.pom | 114 - .../org/apache/maven/maven-metadata.xml | 29 - .../maven/maven-model/2.0/maven-model-2.0.jar | Bin 78476 -> 0 bytes .../maven/maven-model/2.0/maven-model-2.0.pom | 114 - .../1.0.15/test-inherited-1.0.15.pom | 30 - .../test/repository/test/maven-metadata.xml | 29 - .../1.0/test-artifactId-1.0.jar | Bin 2467 -> 0 bytes .../1.0/test-artifactId-1.0.pom | 25 - .../resources/META-INF/plexus/components.xml | 22 - .../src/test/resources/log4j.xml | 76 - ...epositoryContentIndexEventListenerTest.xml | 22 - .../indexer/bytecode/BytecodeIndexTest.xml | 22 - .../indexer/bytecode/BytecodeSearchTest.xml | 22 - .../indexer/hashcodes/HashcodesIndexTest.xml | 22 - .../indexer/hashcodes/HashcodesSearchTest.xml | 22 - .../DefaultCrossRepositorySearchTest.xml | 40 - .../archiva-base/archiva-model/pom.xml | 156 - .../archiva/model/AbstractArtifactKey.java | 290 - .../archiva/model/AbstractProjectKey.java | 182 - .../archiva/model/AbstractVersionedKey.java | 201 - .../maven/archiva/model/ArchivaArtifact.java | 228 - .../model/ArchivaArtifactPlatformDetails.java | 31 - .../archiva/model/ArchivaModelCloner.java | 472 -- .../maven/archiva/model/CompoundKey.java | 31 - .../maven/archiva/model/DependencyScope.java | 103 - .../org/apache/maven/archiva/model/Keys.java | 80 - .../model/RepositoryProblemReport.java | 80 - .../maven/archiva/model/RepositoryURL.java | 170 - .../UnprocessedArtifactPredicate.java | 59 - .../jpox/ArchivaArtifactJavaDetailsKey.java | 47 - .../model/jpox/ArchivaArtifactModelKey.java | 47 - .../model/jpox/ArchivaProjectModelKey.java | 47 - .../jpox/ArchivaRepositoryMetadataKey.java | 47 - .../model/jpox/ArtifactReferenceKey.java | 47 - .../model/jpox/ProjectReferenceKey.java | 47 - .../model/jpox/VersionedReferenceKey.java | 48 - .../model/platform/JavaArtifactHelper.java | 44 - .../src/main/mdo/archiva-base.xml | 2400 ------- .../archiva/model/ArchivaArtifactTest.java | 47 - .../archiva/model/ArchivaModelClonerTest.java | 60 - .../archiva/model/DependencyScopeTest.java | 73 - .../archiva/model/RepositoryURLTest.java | 97 - .../src/test/resources/log4j.xml | 76 - .../archiva-base/archiva-policies/pom.xml | 76 - .../policies/AbstractUpdatePolicy.java | 209 - .../policies/CachedFailuresPolicy.java | 120 - .../archiva/policies/ChecksumPolicy.java | 169 - .../archiva/policies/DownloadErrorPolicy.java | 50 - .../archiva/policies/DownloadPolicy.java | 46 - .../apache/maven/archiva/policies/Policy.java | 55 - .../PolicyConfigurationException.java | 44 - .../policies/PolicyViolationException.java | 42 - .../archiva/policies/PostDownloadPolicy.java | 32 - .../archiva/policies/PreDownloadPolicy.java | 31 - .../PropagateErrorsDownloadPolicy.java | 118 - ...PropagateErrorsOnUpdateDownloadPolicy.java | 105 - .../policies/ProxyDownloadException.java | 66 - .../archiva/policies/ReleasesPolicy.java | 63 - .../archiva/policies/SnapshotsPolicy.java | 63 - .../urlcache/DefaultUrlFailureCache.java | 60 - .../policies/urlcache/UrlFailureCache.java | 48 - .../META-INF/plexus/components-fragment.xml | 24 - .../resources/META-INF/spring-context.xml | 32 - .../policies/CachedFailuresPolicyTest.java | 103 - .../archiva/policies/ChecksumPolicyTest.java | 332 - .../archiva/policies/ReleasePolicyTest.java | 347 - .../archiva/policies/SnapshotsPolicyTest.java | 347 - .../src/test/resources/checksums/artifact.jar | Bin 2422 -> 0 bytes .../resources/checksums/artifact.jar.md5-bad | 1 - .../resources/checksums/artifact.jar.md5-good | 1 - .../resources/checksums/artifact.jar.sha1-bad | 1 - .../checksums/artifact.jar.sha1-good | 1 - .../src/test/resources/log4j.xml | 55 - .../policies/CachedFailuresPolicyTest.xml | 24 - .../archiva/policies/ChecksumPolicyTest.xml | 24 - .../archiva/policies/ReleasePolicyTest.xml | 24 - .../archiva/policies/SnapshotsPolicyTest.xml | 24 - .../archiva-base/archiva-proxy/pom.xml | 106 - .../DefaultRepositoryProxyConnectors.java | 1154 --- .../archiva/proxy/NotFoundException.java | 40 - .../archiva/proxy/NotModifiedException.java | 48 - .../maven/archiva/proxy/ProxyConnector.java | 162 - .../proxy/ProxyConnectorOrderComparator.java | 71 - .../maven/archiva/proxy/ProxyException.java | 37 - .../proxy/RepositoryProxyConnectors.java | 92 - .../maven/archiva/proxy/WagonFactory.java | 39 - .../resources/META-INF/spring-context.xml | 30 - .../archiva/proxy/AbstractProxyTestCase.java | 629 -- .../proxy/CacheFailuresTransferTest.java | 175 - .../archiva/proxy/ChecksumTransferTest.java | 527 -- .../archiva/proxy/ErrorHandlingTest.java | 629 -- .../archiva/proxy/HttpProxyTransferTest.java | 215 - .../proxy/ManagedDefaultTransferTest.java | 549 -- .../proxy/ManagedLegacyTransferTest.java | 225 - .../archiva/proxy/MetadataTransferTest.java | 1352 ---- .../archiva/proxy/MockConfiguration.java | 105 - .../archiva/proxy/SnapshotTransferTest.java | 314 - .../maven/archiva/proxy/WagonDelegate.java | 244 - .../maven/archiva/proxy/WagonFactoryTest.java | 43 - .../create-managed-to-proxy-map.sh | 60 - .../jars/get-default-layout-present-1.0.jar | Bin 47 -> 0 bytes .../get-default-layout-present-1.0.jar.md5 | 1 - .../jars/managed-only-lib-2.1.jar | Bin .../poms/get-relocated-artefact-1.0.pom | 32 - .../jars/example-lib-2.2.jar | Bin 41 -> 0 bytes .../jars/get-default-layout-1.0.jar | Bin 27 -> 0 bytes .../jars/get-default-layout-present-1.0.jar | Bin 47 -> 0 bytes .../example-maven-plugin-0.42.jar | Bin 56 -> 0 bytes .../plugins/get-legacy-plugin-1.0.jar | Bin 27 -> 0 bytes .../repositories/managed-to-proxy-map.txt | 89 - .../1.0/get-bad-local-checksum-1.0.jar | Bin 45 -> 0 bytes .../1.0/get-bad-local-checksum-1.0.jar.md5 | 1 - .../1.0/get-bad-local-checksum-1.0.jar.sha1 | 1 - ...et-checksum-from-managed-repo-1.0.jar.sha1 | 1 - ...et-default-layout-present-with-pom-1.0.jar | Bin 46 -> 0 bytes ...et-default-layout-present-with-pom-1.0.pom | 24 - .../1.0/get-default-layout-present-1.0.jar | Bin 46 -> 0 bytes .../get-default-layout-present-1.0.jar.asc | 7 - .../get-default-layout-present-1.0.jar.md5 | 1 - .../1.0/get-default-metadata-1.0.jar | Bin .../1.0/maven-metadata.xml | 24 - .../1.0/get-doubly-relocated-artefact-1.0.pom | 32 - .../get-merged-metadata/maven-metadata.xml | 33 - .../get-not-on-remotes-1.0-beta-2.jar | Bin .../1.0-beta-2/maven-metadata.xml | 24 - .../get-not-on-remotes/maven-metadata.xml | 28 - .../1.0.22/get-on-local-on-remote-1.0.22.pom | 0 .../1.0.22/maven-metadata.xml | 24 - .../1.0.8/get-on-local-on-remote-1.0.8.pom | 0 .../get-on-local-on-remote/maven-metadata.xml | 29 - .../1.0/get-on-multiple-repos-1.0.pom | 0 .../1.0/maven-metadata.xml | 24 - .../get-on-multiple-repos/maven-metadata.xml | 28 - ...etadata-snapshot-1.0-20050831.101112-1.jar | Bin 66 -> 0 bytes .../1.0-SNAPSHOT/maven-metadata.xml | 31 - ...sent-timestamped-snapshot-1.0-SNAPSHOT.jar | Bin 60 -> 0 bytes .../1.0/get-project-metadata-1.0.jar | Bin .../1.1/get-project-metadata-1.1.jar | Bin .../2.0/get-project-metadata-2.0.pom | 0 .../get-project-metadata/maven-metadata.xml | 28 - .../2.2/get-release-metadata-2.2.jar | Bin .../2.2/maven-metadata.xml | 24 - .../get-relocated-artefact-with-pom-1.0.pom | 32 - .../1.0/get-relocated-artefact-1.0.pom | 32 - .../1.0/get-removed-from-proxies-1.0.jar | Bin 44 -> 0 bytes .../1.0/maven-metadata.xml | 22 - ...t-remote-2.0-alpha-2-20070821.123456-1.jar | Bin ...t-remote-2.0-alpha-2-20070821.220304-2.jar | Bin .../2.0-alpha-2-SNAPSHOT/maven-metadata.xml | 31 - ...snapshot-popular-2.0-20070821.102030-1.jar | Bin ...snapshot-popular-2.0-20070821.185701-2.jar | Bin ...snapshot-popular-2.0-20070822.021008-3.jar | Bin .../2.0-SNAPSHOT/maven-metadata.xml | 31 - .../get-updated-metadata/.metadata-proxied1 | 25 - .../1.0-SNAPSHOT/.metadata-proxied1 | 27 - .../1.0-SNAPSHOT/maven-metadata.xml | 30 - .../get-updated-metadata/maven-metadata.xml | 28 - .../get-not-on-remotes/maven-metadata.xml | 29 - .../get-on-local-on-remote/maven-metadata.xml | 34 - .../get-on-multiple-repos/maven-metadata.xml | 29 - .../get-project-metadata/maven-metadata.xml | 29 - .../1.0/get-bad-local-checksum-1.0.jar | Bin 47 -> 0 bytes .../1.0/get-checksum-both-bad-1.0.jar | Bin 33 -> 0 bytes .../1.0/get-checksum-both-bad-1.0.jar.md5 | 1 - .../1.0/get-checksum-both-bad-1.0.jar.sha1 | 1 - .../1.0/get-checksum-both-right-1.0.jar | Bin 33 -> 0 bytes .../1.0/get-checksum-both-right-1.0.jar.md5 | 1 - .../1.0/get-checksum-both-right-1.0.jar.sha1 | 1 - ...et-checksum-from-managed-repo-1.0.jar.sha1 | 2 - .../1.0/get-checksum-md5-bad-sha1-1.0.jar | Bin 37 -> 0 bytes .../1.0/get-checksum-md5-bad-sha1-1.0.jar.md5 | 1 - .../get-checksum-md5-bad-sha1-1.0.jar.sha1 | 1 - .../1.0/get-checksum-md5-only-1.0.jar | Bin 31 -> 0 bytes .../1.0/get-checksum-md5-only-1.0.jar.md5 | 1 - .../1.0/get-checksum-sha1-bad-md5-1.0.jar | Bin 35 -> 0 bytes .../1.0/get-checksum-sha1-bad-md5-1.0.jar.md5 | 1 - .../get-checksum-sha1-bad-md5-1.0.jar.sha1 | 1 - .../1.0/get-checksum-sha1-only-1.0.jar | Bin 32 -> 0 bytes .../1.0/get-checksum-sha1-only-1.0.jar.sha1 | 1 - .../1.0/get-default-layout-present-1.0.jar | Bin 48 -> 0 bytes .../get-default-layout-present-1.0.jar.asc | 1 - .../1.0/get-default-layout-1.0.jar | Bin 28 -> 0 bytes .../1.0/get-default-layout-1.0.jar.asc | 7 - .../get-default-layout/1.0/maven-metadata.xml | 24 - .../get-default-layout/maven-metadata.xml | 28 - .../1.0/maven-metadata.xml | 24 - .../get-found-in-proxy-1.0.5-javadoc.jar | Bin .../get-found-in-proxy/maven-metadata.xml | 28 - .../1.0/get-in-both-proxies-1.0.jar | Bin 41 -> 0 bytes .../get-merged-metadata/maven-metadata.xml | 33 - ...etadata-snapshot-1.0-20050831.101112-1.jar | Bin 38 -> 0 bytes .../1.0-SNAPSHOT/maven-metadata.xml | 31 - .../1.0.22/maven-metadata.xml | 24 - .../get-on-local-on-remote/maven-metadata.xml | 29 - .../1.0/maven-metadata.xml | 24 - .../get-on-multiple-repos/maven-metadata.xml | 29 - ...etadata-snapshot-1.0-20050831.101112-1.jar | Bin 68 -> 0 bytes .../1.0-SNAPSHOT/maven-metadata.xml | 31 - ...sent-timestamped-snapshot-1.0-SNAPSHOT.jar | Bin 62 -> 0 bytes ...snapshot-popular-2.0-20070819.040004-1.jar | Bin ...snapshot-popular-2.0-20070822.145534-9.jar | Bin .../2.0-SNAPSHOT/maven-metadata.xml | 31 - ...snapshot-in-both-1.0-20061222.034118-1.jar | Bin ...snapshot-in-both-1.0-20061227.112101-2.jar | Bin ...estamped-snapshot-in-both-1.0-SNAPSHOT.jar | Bin 62 -> 0 bytes .../1.0-SNAPSHOT/maven-metadata.xml | 31 - .../get-timestamped-snapshot-1.0-SNAPSHOT.jar | Bin 41 -> 0 bytes .../1.0-SNAPSHOT/maven-metadata.xml | 30 - .../get-updated-metadata/maven-metadata.xml | 29 - .../get-default-layout/maven-metadata.xml | 29 - .../get-found-in-proxy/maven-metadata.xml | 29 - .../get-on-local-on-remote/maven-metadata.xml | 34 - .../get-on-multiple-repos/maven-metadata.xml | 34 - .../1.0.1/get-default-layout-1.0.1.pom | 0 .../1.0/get-default-layout-1.0.jar | Bin 28 -> 0 bytes .../get-default-layout/1.0/maven-metadata.xml | 24 - .../get-default-layout/maven-metadata.xml | 28 - .../1.0/get-in-both-proxies-1.0.jar | Bin 41 -> 0 bytes .../1.0/get-in-second-proxy-1.0.jar | Bin 29 -> 0 bytes .../get-merged-metadata/maven-metadata.xml | 33 - .../1.0/maven-metadata.xml | 24 - .../get-on-multiple-repos/maven-metadata.xml | 29 - ...snapshot-popular-2.0-20070821.102030-1.jar | Bin ...snapshot-popular-2.0-20070823.111741-5.jar | Bin ...snapshot-popular-2.0-20070823.212711-6.jar | Bin .../2.0-SNAPSHOT/maven-metadata.xml | 31 - ...snapshot-in-both-1.0-20061222.034118-1.jar | Bin ...snapshot-in-both-1.0-20070101.000103-2.jar | Bin ...estamped-snapshot-in-both-1.0-SNAPSHOT.jar | Bin 62 -> 0 bytes .../1.0-SNAPSHOT/maven-metadata.xml | 31 - .../get-default-layout/maven-metadata.xml | 29 - .../get-on-multiple-repos/maven-metadata.xml | 34 - .../src/test/resources/log4j.xml | 47 - .../proxy/CacheFailuresTransferTest.xml | 108 - .../archiva/proxy/ChecksumTransferTest.xml | 106 - .../maven/archiva/proxy/ErrorHandlingTest.xml | 111 - .../archiva/proxy/HttpProxyTransferTest.xml | 102 - .../proxy/ManagedDefaultTransferTest.xml | 106 - .../proxy/ManagedLegacyTransferTest.xml | 106 - .../archiva/proxy/MetadataTransferTest.xml | 125 - .../archiva/proxy/RelocateTransferTest.xml | 106 - .../archiva/proxy/SnapshotTransferTest.xml | 106 - .../archiva-repository-layer/pom.xml | 99 - .../repository/ContentNotFoundException.java | 51 - .../repository/ManagedRepositoryContent.java | 226 - .../repository/RemoteRepositoryContent.java | 104 - .../repository/RepositoryContentFactory.java | 204 - .../repository/RepositoryException.java | 52 - .../RepositoryNotFoundException.java | 50 - .../archiva/repository/audit/AuditEvent.java | 122 - .../repository/audit/AuditListener.java | 36 - .../archiva/repository/audit/AuditLog.java | 57 - .../archiva/repository/audit/Auditable.java | 48 - .../connector/RepositoryConnector.java | 46 - .../AbstractDefaultRepositoryContent.java | 136 - .../AbstractLegacyRepositoryContent.java | 120 - .../content/ArtifactClassifierMapping.java | 54 - .../content/ArtifactExtensionMapping.java | 124 - .../repository/content/DefaultPathParser.java | 205 - .../repository/content/FilenameParser.java | 259 - .../repository/content/LegacyPathParser.java | 212 - .../ManagedDefaultRepositoryContent.java | 406 -- .../ManagedLegacyRepositoryContent.java | 457 -- .../repository/content/PathParser.java | 44 - .../RemoteDefaultRepositoryContent.java | 88 - .../RemoteLegacyRepositoryContent.java | 90 - .../repository/content/RepositoryRequest.java | 233 - .../repository/events/RepositoryListener.java | 37 - .../repository/layout/LayoutException.java | 41 - .../repository/metadata/MetadataTools.java | 952 --- .../metadata/RepositoryMetadataException.java | 52 - .../metadata/RepositoryMetadataMerge.java | 258 - .../metadata/RepositoryMetadataReader.java | 98 - .../metadata/RepositoryMetadataWriter.java | 151 - .../project/ProjectModelException.java | 41 - .../project/ProjectModelFilter.java | 40 - .../repository/project/ProjectModelMerge.java | 693 -- .../project/ProjectModelMonitor.java | 40 - .../project/ProjectModelReader.java | 35 - .../project/ProjectModelResolver.java | 42 - .../project/ProjectModelResolverFactory.java | 137 - .../project/ProjectModelWriter.java | 57 - .../ProjectModelBasedGraphBuilder.java | 116 - .../filters/EffectiveProjectModelFilter.java | 309 - .../filters/ProjectModelExpressionFilter.java | 441 -- .../readers/ProjectModel300Reader.java | 419 -- .../readers/ProjectModel400Reader.java | 552 -- .../resolvers/FalseProjectResolver.java | 41 - .../resolvers/FilesystemBasedResolver.java | 32 - .../ManagedRepositoryProjectResolver.java | 62 - .../project/resolvers/NopProjectResolver.java | 59 - .../ProjectModelResolutionListener.java | 97 - .../resolvers/ProjectModelResolverStack.java | 259 - .../writers/ProjectModel400Writer.java | 539 -- .../scanner/DefaultRepositoryScanner.java | 141 - .../scanner/RepositoryContentConsumers.java | 320 - .../scanner/RepositoryScanStatistics.java | 146 - .../repository/scanner/RepositoryScanner.java | 111 - .../scanner/RepositoryScannerInstance.java | 160 - .../functors/ConsumerProcessFileClosure.java | 83 - .../functors/ConsumerWantsFilePredicate.java | 136 - .../functors/TriggerBeginScanClosure.java | 73 - .../META-INF/plexus/components-fragment.xml | 25 - .../expected-poms/archiva-model-effective.pom | 794 --- .../src/test/expected-poms/cocoon-1.pom | 284 - .../src/test/expected-poms/maven-parent-4.pom | 227 - .../expected-poms/model-write-400-simple.pom | 9 - .../AbstractRepositoryLayerTestCase.java | 94 - .../archiva/repository/MockConfiguration.java | 105 - .../archiva/repository/RepositoryURLTest.java | 92 - ...tractDefaultRepositoryContentTestCase.java | 452 -- ...stractLegacyRepositoryContentTestCase.java | 409 -- .../content/ArtifactExtensionMappingTest.java | 58 - .../content/DefaultPathParserTest.java | 459 -- .../content/FilenameParserTest.java | 188 - .../content/LegacyPathParserTest.java | 448 -- .../ManagedDefaultRepositoryContentTest.java | 223 - .../ManagedLegacyRepositoryContentTest.java | 193 - .../RemoteDefaultRepositoryContentTest.java | 63 - .../RemoteLegacyRepositoryContentTest.java | 65 - .../content/RepositoryRequestTest.java | 532 -- .../metadata/MetadataToolsTest.java | 566 -- .../RepositoryMetadataReaderTest.java | 67 - .../RepositoryMetadataWriterTest.java | 61 - .../EffectiveProjectModelFilterTest.java | 280 - .../ProjectModelExpressionExpanderTest.java | 161 - .../readers/ProjectModel300ReaderTest.java | 67 - .../readers/ProjectModel400ReaderTest.java | 97 - .../writers/ProjectModel400WriterTest.java | 150 - .../scanner/InvalidScanConsumer.java | 98 - .../repository/scanner/KnownScanConsumer.java | 115 - .../RepositoryContentConsumersStub.java | 15 - .../RepositoryContentConsumersTest.java | 307 - .../scanner/RepositoryScannerTest.java | 390 -- .../scanner/SampleKnownConsumer.java | 89 - .../repositories/default-repository/CVS/Root | 1 - .../test/repositories/default-repository/KEYS | 1 - .../invalid/invalid-1.0.jar | Bin .../invalid-1.0-20050611.123456-1.jar | Bin .../invalid/1.0-SNAPSHOT/invalid-1.0.jar | Bin .../invalid/invalid/1.0/invalid-1.0b.jar | Bin .../invalid/invalid/1.0/invalid-2.0.jar | Bin .../invalid/invalid/1/invalid-1 | 0 .../javax/maven-metadata.xml | 26 - .../javax/sql/jdbc/2.0/jdbc-2.0.jar | Bin .../jdbc/2.0/maven-metadata-repository.xml | 25 - .../sql/jdbc/maven-metadata-repository.xml | 30 - .../javax/sql/maven-metadata-repository.xml | 25 - .../axis2-1.3-20070725.210059-1.pom | 300 - .../axis2-1.3-20070725.210059-1.pom.md5 | 1 - .../axis2-1.3-20070725.210059-1.pom.sha1 | 1 - .../axis2-1.3-20070725.232304-2.pom | 300 - .../axis2-1.3-20070725.232304-2.pom.md5 | 1 - .../axis2-1.3-20070725.232304-2.pom.sha1 | 1 - .../axis2-1.3-20070726.053327-3.pom | 300 - .../axis2-1.3-20070726.053327-3.pom.md5 | 1 - .../axis2-1.3-20070726.053327-3.pom.sha1 | 1 - .../axis2-1.3-20070726.173653-5.pom | 300 - .../axis2-1.3-20070726.173653-5.pom.md5 | 1 - .../axis2-1.3-20070726.173653-5.pom.sha1 | 1 - .../axis2-1.3-20070727.113106-7.pom | 300 - .../axis2-1.3-20070727.113106-7.pom.md5 | 1 - .../axis2-1.3-20070727.113106-7.pom.sha1 | 1 - .../axis2-1.3-20070728.053229-10.pom | 300 - .../axis2-1.3-20070728.053229-10.pom.md5 | 1 - .../axis2-1.3-20070728.053229-10.pom.sha1 | 1 - .../axis2-1.3-20070728.112043-11.pom | 300 - .../axis2-1.3-20070728.112043-11.pom.md5 | 1 - .../axis2-1.3-20070728.112043-11.pom.sha1 | 1 - .../axis2-1.3-20070729.171937-16.pom | 300 - .../axis2-1.3-20070729.171937-16.pom.md5 | 1 - .../axis2-1.3-20070729.171937-16.pom.sha1 | 1 - .../axis2-1.3-20070730.232112-20.pom | 300 - .../axis2-1.3-20070730.232112-20.pom.md5 | 1 - .../axis2-1.3-20070730.232112-20.pom.sha1 | 1 - .../axis2-1.3-20070731.113304-21.pom | 268 - .../axis2-1.3-20070731.113304-21.pom.md5 | 1 - .../axis2-1.3-20070731.113304-21.pom.sha1 | 1 - .../axis2-1.3-20070731.172936-22.pom | 268 - .../axis2-1.3-20070731.172936-22.pom.md5 | 1 - .../axis2-1.3-20070731.172936-22.pom.sha1 | 1 - .../axis2-1.3-20070802.113139-29.pom | 268 - .../axis2-1.3-20070802.113139-29.pom.md5 | 1 - .../axis2-1.3-20070802.113139-29.pom.sha1 | 1 - .../axis2/1.3-SNAPSHOT/maven-metadata.xml | 12 - .../axis2/1.3-SNAPSHOT/maven-metadata.xml.md5 | 1 - .../1.3-SNAPSHOT/maven-metadata.xml.sha1 | 1 - .../org/apache/cocoon/cocoon/1/cocoon-1.pom | 379 - .../org/apache/maven/A/1.0/A-1.0.pom | 28 - .../org/apache/maven/A/1.0/A-1.0.war | Bin 34 -> 0 bytes .../org/apache/maven/B/1.0/B-1.0.pom | 28 - .../org/apache/maven/B/2.0/B-2.0.pom | 28 - .../org/apache/maven/C/1.0/C-1.0.pom | 28 - .../org/apache/maven/C/1.0/C-1.0.war | Bin 34 -> 0 bytes .../archiva-applet-1.0-SNAPSHOT.pom | 69 - .../archiva-base-1.0-SNAPSHOT.pom | 42 - .../1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom | 68 - .../archiva-common-1.0-SNAPSHOT.pom | 98 - .../archiva-configuration-1.0-SNAPSHOT.pom | 109 - .../archiva-consumer-api-1.0-SNAPSHOT.pom | 38 - .../archiva-consumers-1.0-SNAPSHOT.pom | 41 - .../archiva-converter-1.0-SNAPSHOT.pom | 79 - .../archiva-core-consumers-1.0-SNAPSHOT.pom | 50 - .../archiva-core-1.0-SNAPSHOT.pom | 113 - .../archiva-discoverer-1.0-SNAPSHOT.pom | 65 - .../archiva-indexer-1.0-SNAPSHOT.pom | 81 - .../archiva-model-1.0-SNAPSHOT.pom | 159 - .../archiva-parent-1.0-SNAPSHOT.pom | 566 -- ...rchiva-plexus-application-1.0-SNAPSHOT.pom | 62 - .../archiva-plexus-runtime-1.0-SNAPSHOT.pom | 145 - .../archiva-proxy-1.0-SNAPSHOT.pom | 60 - .../archiva-reports-standard-1.0-SNAPSHOT.pom | 176 - .../archiva-repository-layer-1.0-SNAPSHOT.pom | 103 - .../archiva-security-1.0-SNAPSHOT.pom | 45 - .../archiva-webapp-1.0-SNAPSHOT.pom | 334 - .../archiva-xml-tools-1.0-SNAPSHOT.pom | 79 - .../archiva-1.0-20061126.005254-2.pom | 505 -- .../archiva-1.0-SNAPSHOT-site.xml | 28 - .../1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom | 556 -- .../maven/discovery/1.0/discovery-1.0.pom | 28 - .../org/apache/maven/maven-metadata.xml | 23 - .../maven-parent/4/maven-parent-4-site.xml | 0 .../maven-parent/4/maven-parent-4-site_en.xml | 0 .../maven/maven-parent/4/maven-parent-4.pom | 304 - .../maven-parent/4/maven-parent-4.pom.sha1 | 1 - .../maven/samplejar/1.0/samplejar-1.0.jar | Bin 34 -> 0 bytes .../maven/samplejar/1.0/samplejar-1.0.pom | 29 - .../maven/samplejar/2.0/samplejar-2.0.jar | Bin 34 -> 0 bytes .../maven/samplejar/2.0/samplejar-2.0.pom | 29 - .../apache/maven/samplejar/maven-metadata.xml | 35 - .../1.0/maven-downloader-1.0-javadoc.jar | Bin 38527 -> 0 bytes .../1.0/maven-downloader-1.0-javadoc.jar.md5 | 1 - .../1.0/maven-downloader-1.0-javadoc.jar.sha1 | 1 - .../1.0/maven-downloader-1.0-sources.jar | Bin 2819 -> 0 bytes .../1.0/maven-downloader-1.0-sources.jar.md5 | 1 - .../1.0/maven-downloader-1.0-sources.jar.sha1 | 1 - .../1.0/maven-downloader-1.0.jar | Bin 6480 -> 0 bytes .../1.0/maven-downloader-1.0.jar.md5 | 1 - .../1.0/maven-downloader-1.0.jar.sha1 | 1 - .../1.0/maven-downloader-1.0.pom | 56 - .../1.0/maven-downloader-1.0.pom.md5 | 1 - .../1.0/maven-downloader-1.0.pom.sha1 | 1 - .../1.1/maven-downloader-1.1-javadoc.jar | Bin 38215 -> 0 bytes .../1.1/maven-downloader-1.1-javadoc.jar.md5 | 1 - .../1.1/maven-downloader-1.1-javadoc.jar.sha1 | 1 - .../1.1/maven-downloader-1.1-sources.jar | Bin 2822 -> 0 bytes .../1.1/maven-downloader-1.1-sources.jar.md5 | 1 - .../1.1/maven-downloader-1.1-sources.jar.sha1 | 1 - .../1.1/maven-downloader-1.1.jar | Bin 6478 -> 0 bytes .../1.1/maven-downloader-1.1.jar.md5 | 1 - .../1.1/maven-downloader-1.1.jar.sha1 | 1 - .../1.1/maven-downloader-1.1.pom | 56 - .../1.1/maven-downloader-1.1.pom.md5 | 1 - .../1.1/maven-downloader-1.1.pom.sha1 | 1 - .../maven-downloader/maven-metadata.xml | 15 - .../maven-downloader/maven-metadata.xml.md5 | 1 - .../maven-downloader/maven-metadata.xml.sha1 | 1 - .../maven/some-ejb/1.0/maven-metadata.xml | 0 .../some-ejb/1.0/some-ejb-1.0-client.jar | Bin .../test-1.0-20050611.112233-1-javadoc.jar | Bin .../test-1.0-20050611.112233-1.jar | Bin ...wrong-artifactId-1.0-20050611.112233-1.jar | Bin .../2.0.4-SNAPSHOT/test-2.0.4-SNAPSHOT.pom | 143 - .../maven/testing/1.0/testing-1.0-sources.jar | Bin .../testing/1.0/testing-1.0-test-sources.jar | Bin .../apache/maven/testing/1.0/testing-1.0.jar | Bin .../maven/testing/1.0/testing-1.0.tar.gz | 0 .../apache/maven/testing/1.0/testing-1.0.zip | 0 .../1.0/test-not-updated-1.0.jar | Bin 34 -> 0 bytes .../1.0/test-not-updated-1.0.pom | 29 - .../test-not-updated/maven-metadata.xml | 24 - .../test-updated/1.0/test-updated-1.0.jar | Bin 34 -> 0 bytes .../test-updated/1.0/test-updated-1.0.pom | 29 - .../update/test-updated/maven-metadata.xml | 24 - .../testgroup/discovery/1.0/discovery-1.0.pom | 28 - .../discovery/1.0/maven-metadata.xml | 25 - .../testgroup/discovery/maven-metadata.xml | 24 - .../repositories/legacy-repository/CVS/Root | 1 - .../test/repositories/legacy-repository/KEYS | 0 .../invalid/foo/invalid-1.0.foo | 0 .../legacy-repository/invalid/invalid-1.0.jar | Bin .../invalid/jars/1.0/invalid-1.0.jar | Bin .../invalid/jars/invalid-1.0.rar | 0 .../invalid/jars/invalid.jar | Bin .../invalid/jars/no-extension | 0 .../javax.sql/jars/jdbc-2.0.jar | Bin .../maven/poms/wagon-ssh-1.0.pom | 52 - .../jars/test-not-updated-1.0.jar | Bin 34 -> 0 bytes .../jars/test-updated-1.0.jar | Bin 34 -> 0 bytes .../jars/some-ejb-1.0-client.jar | Bin .../jars/testing-1.0-20050611.112233-1.jar | Bin .../org.apache.maven/jars/testing-1.0.jar | Bin .../org.apache.maven/jars/testing-1.0.tar.gz | 0 .../org.apache.maven/jars/testing-1.0.zip | 0 .../org.apache.maven/jars/testing-UNKNOWN.jar | Bin .../java-sources/testing-1.0-sources.jar | Bin .../javadoc.jars/testing-1.0-javadoc.jar | Bin .../poms/maven-model-v3-2.0.pom | 15 - .../org.apache.maven/poms/testing-1.0.pom | 0 .../tests/include_xml/1.0/include_xml-1.0.pom | 25 - .../tests/include_xml/1.0/include_xml-1.0.xml | 2 - .../tests/include_xml/1.0/maven-metadata.xml | 3 - .../1.0/incomplete_metadata_a-1.0.pom | 0 .../incomplete_metadata_a/maven-metadata.xml | 5 - .../1.0/missing_metadata_a-1.0.pom | 0 .../1.0.1/missing_metadata_b-1.0.1.pom | 0 .../1.0/missing_metadata_b-1.0.pom | 0 .../missing_metadata_b-2.0-20070821-dev.pom | 0 .../2.0.1/missing_metadata_b-2.0.1.jar | Bin .../2.0/missing_metadata_b-2.0.pom | 0 .../proxied_multi/1.0/proxied_multi-1.0.pom | 0 .../proxied_multi/1.1/proxied_multi-1.1.pom | 0 .../proxied_multi/2.1/proxied_multi-2.1.pom | 0 .../proxied_multi/maven-metadata-central.xml | 16 - .../proxied_multi/maven-metadata-java.net.xml | 16 - .../tests/proxied_multi/maven-metadata.xml | 14 - .../maven-metadata-apache-snapshots.xml | 5 - .../maven-metadata-internal-snapshots.xml | 5 - .../maven-metadata-snapshots.codehaus.org.xml | 12 - .../1.0-alpha-11-SNAPSHOT/maven-metadata.xml | 9 - ...1.0-alpha-11-20070221.194724-2-javadoc.jar | Bin ...1.0-alpha-11-20070221.194724-2-sources.jar | Bin ...shots_a-1.0-alpha-11-20070221.194724-2.pom | 0 ...shots_a-1.0-alpha-11-20070221.194724-2.war | Bin ...1.0-alpha-11-20070302.212723-3-sources.jar | Bin ...shots_a-1.0-alpha-11-20070302.212723-3.pom | 0 ...shots_a-1.0-alpha-11-20070302.212723-3.war | Bin ...1.0-alpha-11-20070303.152828-4-sources.jar | Bin ...shots_a-1.0-alpha-11-20070303.152828-4.pom | 0 ...shots_a-1.0-alpha-11-20070303.152828-4.war | Bin ...shots_a-1.0-alpha-11-20070305.215149-5.pom | 0 ..._a-1.0-alpha-11-20070305.215149-5.pom.sha1 | 0 ...shots_a-1.0-alpha-11-20070305.215149-5.war | Bin ..._a-1.0-alpha-11-20070305.215149-5.war.sha1 | 0 ...shots_a-1.0-alpha-11-20070307.170909-6.pom | 0 ..._a-1.0-alpha-11-20070307.170909-6.pom.sha1 | 0 ...shots_a-1.0-alpha-11-20070307.170909-6.war | Bin ..._a-1.0-alpha-11-20070307.170909-6.war.sha1 | 0 ...shots_a-1.0-alpha-11-20070314.211405-9.pom | 0 ..._a-1.0-alpha-11-20070314.211405-9.pom.sha1 | 0 ...shots_a-1.0-alpha-11-20070314.211405-9.war | Bin ..._a-1.0-alpha-11-20070314.211405-9.war.sha1 | 0 ...hots_a-1.0-alpha-11-20070316.175232-11.pom | 0 ...a-1.0-alpha-11-20070316.175232-11.pom.sha1 | 0 ...hots_a-1.0-alpha-11-20070316.175232-11.war | Bin ...a-1.0-alpha-11-20070316.175232-11.war.sha1 | 0 ..._shots_a-1.0-alpha-11-SNAPSHOT-sources.jar | Bin .../snap_shots_a-1.0-alpha-11-SNAPSHOT.pom | 0 .../snap_shots_a-1.0-alpha-11-SNAPSHOT.war | Bin .../2.2-SNAPSHOT/maven-metadata.xml | 12 - .../snap_shots_b-2.2-20070221.172940-1.jar | Bin ...snap_shots_b-2.2-20070221.172940-1.jar.md5 | 0 ...nap_shots_b-2.2-20070221.172940-1.jar.sha1 | 0 .../snap_shots_b-2.2-20070221.172940-1.pom | 0 ...snap_shots_b-2.2-20070221.172940-1.pom.md5 | 0 ...nap_shots_b-2.2-20070221.172940-1.pom.sha1 | 0 ..._shots_b-2.2-20070221.194724-2-sources.jar | Bin ...ts_b-2.2-20070221.194724-2-sources.jar.md5 | 0 ...s_b-2.2-20070221.194724-2-sources.jar.sha1 | 0 .../snap_shots_b-2.2-20070221.194724-2.jar | Bin ...snap_shots_b-2.2-20070221.194724-2.jar.md5 | 0 ...nap_shots_b-2.2-20070221.194724-2.jar.sha1 | 0 .../snap_shots_b-2.2-20070221.194724-2.pom | 0 ...snap_shots_b-2.2-20070221.194724-2.pom.md5 | 0 ...nap_shots_b-2.2-20070221.194724-2.pom.sha1 | 0 ..._shots_b-2.2-20070302.212723-3-sources.jar | Bin ...ts_b-2.2-20070302.212723-3-sources.jar.md5 | 0 ...s_b-2.2-20070302.212723-3-sources.jar.sha1 | 0 .../snap_shots_b-2.2-20070302.212723-3.jar | Bin ...snap_shots_b-2.2-20070302.212723-3.jar.md5 | 0 ...nap_shots_b-2.2-20070302.212723-3.jar.sha1 | 0 .../snap_shots_b-2.2-20070302.212723-3.pom | 0 ...snap_shots_b-2.2-20070302.212723-3.pom.md5 | 0 ...nap_shots_b-2.2-20070302.212723-3.pom.sha1 | 0 ..._shots_b-2.2-20070303.152828-4-sources.jar | Bin ...ts_b-2.2-20070303.152828-4-sources.jar.md5 | 0 ...s_b-2.2-20070303.152828-4-sources.jar.sha1 | 0 .../snap_shots_b-2.2-20070303.152828-4.jar | Bin ...snap_shots_b-2.2-20070303.152828-4.jar.md5 | 0 ...nap_shots_b-2.2-20070303.152828-4.jar.sha1 | 0 .../snap_shots_b-2.2-20070303.152828-4.pom | 0 ...snap_shots_b-2.2-20070303.152828-4.pom.md5 | 0 ...nap_shots_b-2.2-20070303.152828-4.pom.sha1 | 0 .../snap_shots_b-2.2-20070305.215149-5.jar | Bin ...snap_shots_b-2.2-20070305.215149-5.jar.md5 | 0 ...nap_shots_b-2.2-20070305.215149-5.jar.sha1 | 0 .../snap_shots_b-2.2-20070305.215149-5.pom | 0 ...snap_shots_b-2.2-20070305.215149-5.pom.md5 | 0 ...nap_shots_b-2.2-20070305.215149-5.pom.sha1 | 0 .../snap_shots_b-2.2-20070307.170909-6.jar | Bin ...snap_shots_b-2.2-20070307.170909-6.jar.md5 | 0 ...nap_shots_b-2.2-20070307.170909-6.jar.sha1 | 0 .../snap_shots_b-2.2-20070307.170909-6.pom | 0 ...snap_shots_b-2.2-20070307.170909-6.pom.md5 | 0 ...nap_shots_b-2.2-20070307.170909-6.pom.sha1 | 0 .../snap_shots_b-2.2-20070314.190911-7.jar | Bin ...snap_shots_b-2.2-20070314.190911-7.jar.md5 | 0 ...nap_shots_b-2.2-20070314.190911-7.jar.sha1 | 0 .../snap_shots_b-2.2-20070314.190911-7.pom | 0 ...snap_shots_b-2.2-20070314.190911-7.pom.md5 | 0 ...nap_shots_b-2.2-20070314.190911-7.pom.sha1 | 0 .../snap_shots_b-2.2-20070314.193642-8.jar | Bin ...snap_shots_b-2.2-20070314.193642-8.jar.md5 | 0 ...nap_shots_b-2.2-20070314.193642-8.jar.sha1 | 0 .../snap_shots_b-2.2-20070314.193642-8.pom | 0 ...snap_shots_b-2.2-20070314.193642-8.pom.md5 | 0 ...nap_shots_b-2.2-20070314.193642-8.pom.sha1 | 0 ..._shots_b-2.2-20070314.211405-9-javadoc.jar | Bin ...ts_b-2.2-20070314.211405-9-javadoc.jar.md5 | 0 ...s_b-2.2-20070314.211405-9-javadoc.jar.sha1 | 0 ..._shots_b-2.2-20070314.211405-9-sources.jar | Bin ...ts_b-2.2-20070314.211405-9-sources.jar.md5 | 0 ...s_b-2.2-20070314.211405-9-sources.jar.sha1 | 0 .../snap_shots_b-2.2-20070314.211405-9.jar | Bin ...snap_shots_b-2.2-20070314.211405-9.jar.md5 | 0 ...nap_shots_b-2.2-20070314.211405-9.jar.sha1 | 0 .../snap_shots_b-2.2-20070314.211405-9.pom | 0 ...snap_shots_b-2.2-20070314.211405-9.pom.md5 | 0 ...nap_shots_b-2.2-20070314.211405-9.pom.sha1 | 0 .../snap_shots_b-2.2-20070316.153953-10.jar | Bin ...nap_shots_b-2.2-20070316.153953-10.jar.md5 | 0 ...ap_shots_b-2.2-20070316.153953-10.jar.sha1 | 0 .../snap_shots_b-2.2-20070316.153953-10.pom | 0 ...nap_shots_b-2.2-20070316.153953-10.pom.md5 | 0 ...ap_shots_b-2.2-20070316.153953-10.pom.sha1 | 0 .../1.0-alpha-1/artifactId-1.0-alpha-1.jar | Bin 45568 -> 0 bytes .../1.0-alpha-1/artifactId-1.0-alpha-1.pom | 25 - .../groupId/artifactId/maven-metadata.xml | 30 - ...artifact-1.0-alpha-1-20050611.202024-1.pom | 19 - .../src/test/resources/log4j.xml | 40 - .../src/test/resources/m1-repo-filelist.txt | 6230 ----------------- .../content/RepositoryRequestTest.xml | 55 - .../repository/metadata/MetadataToolsTest.xml | 66 - .../EffectiveProjectModelFilterTest.xml | 50 - .../RepositoryContentConsumersTest.xml | 144 - .../src/test/resources/scanner-archiva.xml | 109 - .../archiva-base/archiva-transaction/pom.xml | 53 - .../transaction/AbstractTransactionEvent.java | 234 - .../archiva/transaction/CopyFileEvent.java | 119 - .../archiva/transaction/CreateFileEvent.java | 81 - .../archiva/transaction/FileTransaction.java | 100 - .../archiva/transaction/TransactionEvent.java | 46 - .../transaction/TransactionException.java | 51 - .../transaction/AbstractFileEventTest.java | 91 - .../transaction/CopyFileEventTest.java | 179 - .../transaction/CreateFileEventTest.java | 120 - .../archiva-base/archiva-xml-tools/pom.xml | 80 - .../archiva/xml/ElementTextListClosure.java | 52 - .../maven/archiva/xml/LatinEntities.java | 327 - .../xml/LatinEntityResolutionReader.java | 190 - .../maven/archiva/xml/XMLException.java | 41 - .../apache/maven/archiva/xml/XMLReader.java | 331 - .../apache/maven/archiva/xml/XMLWriter.java | 88 - .../src/test/examples/commons-codec-1.2.pom | 113 - .../src/test/examples/no-prolog-basic.xml | 14 - .../test/examples/no-prolog-with-entities.xml | 6 - .../src/test/examples/no-prolog-with-utf8.xml | 6 - .../src/test/examples/prolog-with-utf8.xml | 8 - .../xml/AbstractArchivaXmlTestCase.java | 54 - .../maven/archiva/xml/LatinEntitiesTest.java | 45 - .../xml/LatinEntityResolutionReaderTest.java | 201 - .../maven/archiva/xml/XMLReaderTest.java | 96 - .../maven/archiva/xml/XMLWriterTest.java | 63 - .../archiva-modules/archiva-base/pom.xml | 46 - .../archiva-modules/archiva-database/pom.xml | 102 - .../maven/archiva/database/ArchivaDAO.java | 58 - .../database/ArchivaDatabaseException.java | 42 - .../maven/archiva/database/ArtifactDAO.java | 70 - .../maven/archiva/database/Constraint.java | 43 - .../database/DeclarativeConstraint.java | 105 - .../database/ObjectNotFoundException.java | 53 - .../archiva/database/ProjectModelDAO.java | 68 - .../RepositoryContentStatisticsDAO.java | 41 - .../RepositoryDatabaseEventListener.java | 55 - .../database/RepositoryProblemDAO.java | 63 - .../archiva/database/SimpleConstraint.java | 60 - .../database/browsing/BrowsingResults.java | 126 - .../browsing/DefaultRepositoryBrowsing.java | 309 - .../database/browsing/GroupIdFilter.java | 171 - .../database/browsing/RepositoryBrowsing.java | 93 - .../AbstractDeclarativeConstraint.java | 85 - .../constraints/AbstractSimpleConstraint.java | 49 - .../ArchivaRepositoryByUrlConstraint.java | 50 - .../ArtifactVersionsConstraint.java | 71 - .../ArtifactsByChecksumConstraint.java | 88 - .../ArtifactsByRepositoryConstraint.java | 77 - .../ArtifactsProcessedConstraint.java | 72 - .../ArtifactsRelatedConstraint.java | 52 - .../MostRecentRepositoryScanStatistics.java | 53 - .../OlderArtifactsByAgeConstraint.java | 60 - ...OlderSnapshotArtifactsByAgeConstraint.java | 60 - .../ProjectsByArtifactUsageConstraint.java | 81 - .../database/constraints/RangeConstraint.java | 60 - .../RecentArtifactsByAgeConstraint.java | 61 - ...ntentStatisticsByRepositoryConstraint.java | 63 - ...RepositoryProblemByArtifactConstraint.java | 57 - .../RepositoryProblemByGroupIdConstraint.java | 61 - ...sitoryProblemByRepositoryIdConstraint.java | 61 - .../RepositoryProblemByTypeConstraint.java | 52 - .../RepositoryProblemConstraint.java | 61 - .../database/constraints/SqlBuilder.java | 80 - .../UniqueArtifactIdConstraint.java | 125 - .../constraints/UniqueFieldConstraint.java | 57 - .../constraints/UniqueGroupIdConstraint.java | 101 - .../constraints/UniqueVersionConstraint.java | 121 - .../maven/archiva/database/jdo/JdoAccess.java | 599 -- .../archiva/database/jdo/JdoArchivaDAO.java | 98 - .../archiva/database/jdo/JdoArtifactDAO.java | 122 - .../database/jdo/JdoProjectModelDAO.java | 94 - .../JdoRepositoryContentStatisticsDAO.java | 67 - .../database/jdo/JdoRepositoryProblemDAO.java | 63 - .../project/DatabaseProjectModelResolver.java | 66 - .../ProjectModelToDatabaseListener.java | 155 - .../database/updater/DatabaseConsumers.java | 161 - .../database/updater/DatabaseUpdater.java | 79 - .../database/updater/JdoDatabaseUpdater.java | 174 - .../ProcessArchivaArtifactClosure.java | 69 - .../maven/archiva/database/ArtifactKey.xml | 26 - .../maven/archiva/database/ManageTables.xml | 87 - .../maven/archiva/database/MetadataKey.xml | 33 - .../archiva/database/RepositoryMetadata.xml | 50 - .../AbstractArchivaDatabaseTestCase.java | 208 - .../RepositoryDatabaseEventListenerTest.java | 90 - .../browsing/RepositoryBrowsingTest.java | 153 - .../database/constraints/AllTests.java | 48 - .../ArtifactVersionsConstraintTest.java | 107 - .../ArtifactsByChecksumConstraintTest.java | 202 - .../ArtifactsByRepositoryConstraintTest.java | 175 - .../ArtifactsProcessedConstraintTest.java | 136 - .../ArtifactsRelatedConstraintTest.java | 91 - ...ostRecentRepositoryScanStatisticsTest.java | 86 - .../OlderArtifactsByAgeConstraintTest.java | 103 - ...rSnapshotArtifactsByAgeConstraintTest.java | 118 - ...ProjectsByArtifactUsageConstraintTest.java | 115 - .../constraints/RangeConstraintTest.java | 88 - .../RecentArtifactsByAgeConstraintTest.java | 104 - ...tStatisticsByRepositoryConstraintTest.java | 102 - ...ositoryProblemByGroupIdConstraintTest.java | 96 - ...ryProblemByRepositoryIdConstraintTest.java | 93 - .../RepositoryProblemConstraintTest.java | 129 - .../UniqueArtifactIdConstraintTest.java | 157 - .../UniqueFieldConstraintTest.java | 117 - .../UniqueGroupIdConstraintTest.java | 310 - .../UniqueVersionConstraintTest.java | 193 - .../database/jdo/JdoArchivaDAOTest.java | 39 - .../database/jdo/JdoArtifactDAOTest.java | 115 - .../database/jdo/JdoProjectModelDAOTest.java | 172 - ...JdoRepositoryContentStatisticsDAOTest.java | 84 - .../updater/DatabaseConsumersTest.java | 84 - .../database/updater/DatabaseUpdaterTest.java | 103 - .../updater/TestDatabaseCleanupConsumer.java | 100 - .../TestDatabaseUnprocessedConsumer.java | 111 - .../resources/META-INF/plexus/components.xml | 31 - .../src/test/resources/archiva-test.xml | 152 - .../src/test/resources/log4j.xml | 76 - .../updater/DatabaseConsumersTest.xml | 37 - .../database/updater/DatabaseUpdaterTest.xml | 37 - .../maven-shared-jar-1.0-SNAPSHOT.pom | 229 - .../archiva-artifact-reports/pom.xml | 63 - .../artifact/CorruptArtifactReport.java | 75 - .../artifact/DuplicateArtifactReport.java | 80 - .../artifact/DuplicateArtifactsConsumer.java | 231 - .../artifact/LocationArtifactsConsumer.java | 361 - .../artifact/LocationArtifactsReport.java | 81 - .../reporting/artifact/OldArtifactReport.java | 76 - .../artifact/OldSnapshotArtifactReport.java | 76 - .../AbstractArtifactReportsTestCase.java | 126 - .../artifact/DuplicateArtifactReportTest.java | 166 - .../resources/META-INF/plexus/components.xml | 70 - .../src/test/resources/log4j.xml | 76 - .../archiva-metadata-reports/pom.xml | 58 - .../reporting/metadata/MetadataReport.java | 81 - .../metadata/MetadataValidateConsumer.java | 308 - .../archiva-project-reports/pom.xml | 58 - .../project/MissingDependenciesReport.java | 80 - .../project/ProjectDependenciesConsumer.java | 101 - .../archiva-report-manager/pom.xml | 59 - .../reporting/ArchivaReportException.java | 40 - .../maven/archiva/reporting/DataLimits.java | 77 - .../reporting/DefaultReportingManager.java | 50 - .../reporting/DynamicReportSource.java | 62 - .../archiva/reporting/ReportingException.java | 50 - .../archiva/reporting/ReportingManager.java | 35 - .../reporting/RepositoryProblemMonitor.java | 33 - .../reporting/RepositoryStatistics.java | 234 - .../RepositoryStatisticsReportGenerator.java | 50 - ...leRepositoryStatisticsReportGenerator.java | 147 - ...positoryStatisticsReportGeneratorTest.java | 356 - .../resources/META-INF/plexus/components.xml | 9 - .../src/test/resources/log4j.properties | 10 - ...plicateArtifactFileReportProcessorTest.xml | 47 - .../OldArtifactReportProcessorTest.xml | 38 - ...OldSnapshotArtifactReportProcessorTest.xml | 39 - .../archiva-modules/archiva-reporting/pom.xml | 38 - .../archiva-modules/archiva-scheduled/pom.xml | 107 - .../scheduled/ArchivaTaskScheduler.java | 60 - .../archiva/scheduled/DatabaseTaskJob.java | 85 - .../DefaultArchivaTaskScheduler.java | 428 -- .../archiva/scheduled/RepositoryTaskJob.java | 88 - .../ArchivaDatabaseUpdateTaskExecutor.java | 91 - ...ArchivaRepositoryScanningTaskExecutor.java | 178 - .../archiva/scheduled/tasks/ArchivaTask.java | 68 - .../archiva/scheduled/tasks/DatabaseTask.java | 68 - .../scheduled/tasks/RepositoryTask.java | 79 - .../RepositoryTaskSelectionPredicate.java | 54 - .../resources/META-INF/plexus/components.xml | 104 - .../TestDatabaseCleanupConsumer.java | 100 - .../TestDatabaseUnprocessedConsumer.java | 111 - ...ArchivaDatabaseUpdateTaskExecutorTest.java | 199 - ...ivaRepositoryScanningTaskExecutorTest.java | 176 - .../javax/maven-metadata.xml | 26 - .../javax/sql/jdbc/2.0/jdbc-2.0.jar | Bin .../javax/sql/jdbc/2.0/jdbc-2.0.jar.md5 | 1 - .../javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1 | 1 - .../jdbc/2.0/maven-metadata-repository.xml | 25 - .../sql/jdbc/maven-metadata-repository.xml | 30 - .../javax/sql/maven-metadata-repository.xml | 25 - .../org/apache/maven/A/1.0/A-1.0.pom | 28 - .../org/apache/maven/A/1.0/A-1.0.pom.md5 | 1 - .../org/apache/maven/A/1.0/A-1.0.pom.sha1 | 1 - .../org/apache/maven/A/1.0/A-1.0.war | Bin 34 -> 0 bytes .../org/apache/maven/A/1.0/A-1.0.war.md5 | 1 - .../org/apache/maven/A/1.0/A-1.0.war.sha1 | 1 - .../org/apache/maven/B/1.0/B-1.0.pom | 28 - .../org/apache/maven/B/1.0/B-1.0.pom.md5 | 1 - .../org/apache/maven/B/1.0/B-1.0.pom.sha1 | 1 - .../org/apache/maven/B/2.0/B-2.0.pom | 28 - .../org/apache/maven/B/2.0/B-2.0.pom.md5 | 1 - .../org/apache/maven/B/2.0/B-2.0.pom.sha1 | 1 - .../org/apache/maven/C/1.0/C-1.0.pom | 28 - .../org/apache/maven/C/1.0/C-1.0.pom.md5 | 1 - .../org/apache/maven/C/1.0/C-1.0.pom.sha1 | 1 - .../org/apache/maven/C/1.0/C-1.0.war | Bin 34 -> 0 bytes .../org/apache/maven/C/1.0/C-1.0.war.md5 | 1 - .../org/apache/maven/C/1.0/C-1.0.war.sha1 | 1 - .../org/apache/maven/maven-metadata.xml | 23 - .../testgroup/discovery/1.0/discovery-1.0.pom | 28 - .../discovery/1.0/discovery-1.0.pom.md5 | 1 - .../discovery/1.0/discovery-1.0.pom.sha1 | 1 - .../discovery/1.0/maven-metadata.xml | 25 - .../testgroup/discovery/maven-metadata.xml | 24 - .../src/test/resources/archiva-test.xml | 119 - .../src/test/resources/log4j.xml | 47 - .../ArchivaDatabaseUpdateTaskExecutorTest.xml | 98 - ...hivaRepositoryScanningTaskExecutorTest.xml | 94 - .../archiva-web/archiva-applet/pom.xml | 89 - .../maven/archiva/applet/ChecksumApplet.java | 143 - .../archiva-web/archiva-rss/pom.xml | 45 - .../org/apache/archiva/rss/RssFeedEntry.java | 161 - .../apache/archiva/rss/RssFeedGenerator.java | 97 - .../AbstractArtifactsRssFeedProcessor.java | 101 - .../NewArtifactsRssFeedProcessor.java | 141 - ...NewVersionsOfArtifactRssFeedProcessor.java | 126 - .../rss/processor/RssFeedProcessor.java | 43 - .../archiva/rss/RssFeedGeneratorTest.java | 161 - .../NewArtifactsRssFeedProcessorTest.java | 128 - ...ersionsOfArtifactRssFeedProcessorTest.java | 115 - .../archiva/rss/stubs/ArtifactDAOStub.java | 80 - .../archiva-web/archiva-security/pom.xml | 79 - .../security/AccessDeniedException.java | 40 - .../security/ArchivaRoleConstants.java | 86 - .../security/ArchivaSecurityException.java | 42 - .../security/ArchivaServletAuthenticator.java | 128 - .../security/ArchivaStandardRolesCheck.java | 105 - .../archiva/security/ArchivaXworkUser.java | 93 - .../security/DefaultUserRepositories.java | 165 - .../security/PrincipalNotFoundException.java | 40 - .../archiva/security/SecurityStartup.java | 208 - .../security/ServletAuthenticator.java | 80 - .../archiva/security/UserRepositories.java | 65 - .../resources/META-INF/redback/redback.xml | 228 - .../security/AbstractSecurityTest.java | 126 - .../ArchivaServletAuthenticatorTest.java | 224 - .../security/DefaultUserRepositoriesTest.java | 86 - .../archiva/security/RoleManagerTest.java | 58 - .../archiva/security/SecurityStartupTest.java | 49 - .../META-INF/redback/redback-core.xml | 204 - .../src/test/resources/log4j.properties | 10 - .../ArchivaServletAuthenticatorTest.xml | 202 - .../security/DefaultUserRepositoriesTest.xml | 188 - .../archiva/security/RoleManagerTest.xml | 100 - .../archiva/security/SecurityStartupTest.xml | 205 - .../src/test/resources/repository-archiva.xml | 111 - .../archiva-web/archiva-webapp-test/pom.xml | 321 - .../web/test/AbstractArchivaTestCase.java | 90 - .../web/test/BrowseRepositoryTest.java | 194 - .../maven/archiva/web/test/LoginTest.java | 102 - .../web/test/ManagedRepositoryTest.java | 201 - .../archiva/web/test/MavenConnectionTest.java | 397 -- .../web/test/ProxiedRepositoryTest.java | 233 - .../maven/archiva/web/test/SearchTest.java | 129 - .../maven/archiva/web/test/SettingsTest.java | 184 - .../resources/appserver-base/conf/archiva.xml | 3 - .../resources/appserver-base/conf/shared.xml | 1 - .../src/test/resources/index/_7.cfs | Bin 5106 -> 0 bytes .../src/test/resources/index/deletable | Bin 4 -> 0 bytes .../src/test/resources/index/segments | Bin 27 -> 0 bytes .../test/resources/local-repo/settings.xml | 44 - .../bad-dependency/bad-dependency.log | 0 .../bad-dependency/bad-dependency2.log | 0 .../resources/projects/bad-dependency/pom.xml | 41 - .../dependency-in-proxied.log | 0 .../projects/dependency-in-proxied/pom.xml | 41 - .../test/resources/repository/.datarefresh | 7 - .../artifact-a/1.0/artifact-a-1.0.jar.md5 | 1 - .../artifact-a/1.0/artifact-a-1.0.jar.sha1 | 1 - .../test/artifact-a/1.0/artifact-a-1.0.pom | 25 - .../artifact-a/1.0/artifact-a-1.0.pom.md5 | 1 - .../artifact-a/1.0/artifact-a-1.0.pom.sha1 | 1 - .../web/test/artifact-a/maven-metadata.xml | 11 - .../test/artifact-a/maven-metadata.xml.md5 | 1 - .../test/artifact-a/maven-metadata.xml.sha1 | 1 - .../artifact-b/2.0/artifact-b-2.0.jar.md5 | 1 - .../artifact-b/2.0/artifact-b-2.0.jar.sha1 | 1 - .../test/artifact-b/2.0/artifact-b-2.0.pom | 25 - .../artifact-b/2.0/artifact-b-2.0.pom.md5 | 1 - .../artifact-b/2.0/artifact-b-2.0.pom.sha1 | 1 - .../web/test/artifact-b/maven-metadata.xml | 11 - .../test/artifact-b/maven-metadata.xml.md5 | 1 - .../test/artifact-b/maven-metadata.xml.sha1 | 1 - .../artifact-c/3.0/artifact-c-3.0.jar.md5 | 1 - .../artifact-c/3.0/artifact-c-3.0.jar.sha1 | 1 - .../test/artifact-c/3.0/artifact-c-3.0.pom | 26 - .../artifact-c/3.0/artifact-c-3.0.pom.md5 | 1 - .../artifact-c/3.0/artifact-c-3.0.pom.sha1 | 1 - .../web/test/artifact-c/maven-metadata.xml | 11 - .../test/artifact-c/maven-metadata.xml.md5 | 1 - .../test/artifact-c/maven-metadata.xml.sha1 | 1 - .../artifact-s/0.1/artifact-s-0.1.jar.md5 | 1 - .../artifact-s/0.1/artifact-s-0.1.jar.sha1 | 1 - .../test/artifact-s/0.1/artifact-s-0.1.pom | 25 - .../artifact-s/0.1/artifact-s-0.1.pom.md5 | 1 - .../artifact-s/0.1/artifact-s-0.1.pom.sha1 | 1 - .../web/test/artifact-s/maven-metadata.xml | 11 - .../test/artifact-s/maven-metadata.xml.md5 | 1 - .../test/artifact-s/maven-metadata.xml.sha1 | 1 - .../src/test/resources/snapshots/.datarefresh | 7 - .../1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar | Bin 773 -> 0 bytes .../1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar.md5 | 1 - .../foo-bar-1.0-SNAPSHOT.jar.sha1 | 1 - .../1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.pom | 9 - .../1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.pom.md5 | 1 - .../foo-bar-1.0-SNAPSHOT.pom.sha1 | 1 - .../foo-bar/1.0-SNAPSHOT/maven-metadata.xml | 11 - .../1.0-SNAPSHOT/maven-metadata.xml.md5 | 1 - .../1.0-SNAPSHOT/maven-metadata.xml.sha1 | 1 - .../web/test/foo-bar/maven-metadata.xml | 11 - .../web/test/foo-bar/maven-metadata.xml.md5 | 1 - .../web/test/foo-bar/maven-metadata.xml.sha1 | 1 - .../conf/Catalina/localhost/archiva.xml | 36 - .../conf/Catalina/localhost/host-manager.xml | 32 - .../conf/Catalina/localhost/manager.xml | 36 - .../src/test/tomcat5x/conf/catalina.policy | 172 - .../test/tomcat5x/conf/catalina.properties | 85 - .../src/test/tomcat5x/conf/context.xml | 31 - .../src/test/tomcat5x/conf/logging.properties | 74 - .../src/test/tomcat5x/conf/server-minimal.xml | 44 - .../src/test/tomcat5x/conf/server.xml | 384 - .../src/test/tomcat5x/conf/tomcat-users.xml | 29 - .../src/test/tomcat5x/conf/web.xml | 1183 ---- .../archiva-web/archiva-webapp/pom.xml | 525 -- .../src/appserver-base/conf/shared.xml | 1 - .../src/appserver-base/logs/.donotdelete | 0 .../archiva-webapp/src/jetty-env-mysql.xml | 161 - .../archiva-webapp/src/jetty-env-postgres.xml | 92 - .../archiva-webapp/src/jetty-env.xml | 89 - .../filtered-resources/application.properties | 1 - .../src/main/jasperreports/report.jrxml | 170 - .../archiva/web/action/BrowseAction.java | 188 - .../archiva/web/action/GlobalResults.java | 31 - .../archiva/web/action/SearchAction.java | 561 -- .../web/action/ShowArtifactAction.java | 295 - .../archiva/web/action/UploadAction.java | 638 -- .../web/action/admin/SchedulerAction.java | 188 - .../appearance/AbstractAppearanceAction.java | 101 - .../EditOrganisationInfoAction.java | 74 - .../appearance/OrganisationInfoAction.java | 30 - .../proxy/AbstractProxyConnectorAction.java | 137 - .../AbstractProxyConnectorFormAction.java | 452 -- .../proxy/AddProxyConnectorAction.java | 81 - .../proxy/DeleteProxyConnectorAction.java | 106 - .../proxy/DisableProxyConnectorAction.java | 98 - .../proxy/EditProxyConnectorAction.java | 114 - .../proxy/EnableProxyConnectorAction.java | 98 - .../proxy/ProxyConnectorsAction.java | 83 - .../proxy/SortProxyConnectorsAction.java | 136 - .../AddAdminDatabaseConsumerClosure.java | 67 - .../admin/database/AdminDatabaseConsumer.java | 65 - .../AdminDatabaseConsumerComparator.java | 67 - .../action/admin/database/DatabaseAction.java | 199 - .../legacy/AddLegacyArtifactPathAction.java | 184 - .../DeleteLegacyArtifactPathAction.java | 93 - .../legacy/LegacyArtifactPathAction.java | 97 - .../ConfigureNetworkProxyAction.java | 229 - .../networkproxies/NetworkProxiesAction.java | 79 - .../AbstractManagedRepositoriesAction.java | 129 - .../AbstractRemoteRepositoriesAction.java | 51 - .../AbstractRepositoriesAdminAction.java | 115 - .../AddManagedRepositoryAction.java | 151 - .../AddRemoteRepositoryAction.java | 119 - .../DeleteManagedRepositoryAction.java | 245 - .../DeleteRemoteRepositoryAction.java | 118 - .../DeleteRepositoryGroupAction.java | 96 - .../EditManagedRepositoryAction.java | 167 - .../EditRemoteRepositoryAction.java | 120 - .../repositories/RepositoriesAction.java | 145 - .../repositories/RepositoryGroupsAction.java | 264 - .../repositories/SortRepositoriesAction.java | 122 - .../scanning/AddAdminRepoConsumerClosure.java | 66 - .../scanning/AdminRepositoryConsumer.java | 63 - .../AdminRepositoryConsumerComparator.java | 66 - .../scanning/RepositoryScanningAction.java | 320 - .../action/reports/GenerateReportAction.java | 649 -- .../interceptor/ConfigurationInterceptor.java | 64 - .../web/mapper/RepositoryActionMapper.java | 214 - .../maven/archiva/web/rss/RssFeedServlet.java | 342 - .../archiva/web/startup/ArchivaStartup.java | 67 - .../archiva/web/startup/ArchivaVersion.java | 84 - .../maven/archiva/web/startup/Banner.java | 226 - .../web/startup/ResolverFactoryInit.java | 68 - .../web/startup/SecuritySynchronization.java | 208 - .../archiva/web/tags/CopyPasteSnippetTag.java | 180 - .../archiva/web/tags/DependencyTree.java | 265 - .../archiva/web/tags/DependencyTreeTag.java | 225 - .../archiva/web/tags/DownloadArtifact.java | 300 - .../archiva/web/tags/DownloadArtifactTag.java | 96 - .../archiva/web/tags/ExpressionTool.java | 114 - .../maven/archiva/web/tags/GroupIdLink.java | 148 - .../archiva/web/tags/GroupIdLinkTag.java | 86 - .../maven/archiva/web/tags/PlexusTagUtil.java | 82 - .../maven/archiva/web/util/ContextUtils.java | 117 - .../maven/archiva/web/util/VersionMerger.java | 212 - .../validator/CronExpressionValidator.java | 47 - .../web/validator/IntervalValidator.java | 64 - .../validator/SyncedRepositoryValidator.java | 114 - .../resources/META-INF/plexus/application.xml | 419 -- .../src/main/resources/META-INF/taglib.tld | 154 - .../src/main/resources/archiva-mime-types.txt | 127 - .../src/main/resources/freemarker.properties | 20 - .../src/main/resources/log4j.xml | 125 - .../maven/archiva/redback/custom.properties | 4 - .../apache/maven/archiva/security.properties | 27 - ...SearchAction-checksumSearch-validation.xml | 33 - ...SearchAction-filteredSearch-validation.xml | 34 - .../SearchAction-quickSearch-validation.xml | 30 - .../web/action/UploadAction-validation.xml | 45 - .../admin/ConfigureAction-validation.xml | 30 - .../admin/ConfigureAppearance-validation.xml | 35 - .../admin/ConfigureAppearance.properties | 21 - ...gureProxiedRepositoryAction-validation.xml | 91 - .../ConfigureRepositoryAction-validation.xml | 51 - ...addSelectedSyncedRepository-validation.xml | 54 - ...igureSyncedRepositoryAction-validation.xml | 34 - .../EditOrganisationInfoAction-validation.xml | 40 - ...onnector-saveProxyConnector-validation.xml | 37 - .../database/DatabaseAction-validation.xml | 32 - ...AddLegacyArtifactPathAction-validation.xml | 50 - ...roxyAction-saveNetworkProxy-validation.xml | 64 - .../AddManagedRepositoryAction-validation.xml | 53 - .../AddRemoteRepositoryAction-validation.xml | 40 - ...EditManagedRepositoryAction-validation.xml | 53 - .../EditRemoteRepositoryAction-validation.xml | 40 - .../src/main/resources/validators.xml | 39 - .../src/main/resources/webwork.properties | 31 - .../src/main/resources/xwork.xml | 523 -- .../webapp/WEB-INF/applicationContext.xml | 33 - .../src/main/webapp/WEB-INF/decorators.xml | 34 - .../webapp/WEB-INF/jsp/accessToNoRepos.jsp | 46 - .../jsp/admin/addLegacyArtifactPath.jsp | 100 - .../WEB-INF/jsp/admin/addProxyConnector.jsp | 45 - .../WEB-INF/jsp/admin/addRemoteRepository.jsp | 48 - .../WEB-INF/jsp/admin/addRepository.jsp | 48 - .../webapp/WEB-INF/jsp/admin/appearance.jsp | 68 - .../jsp/admin/confirmAddRepository.jsp | 135 - .../webapp/WEB-INF/jsp/admin/database.jsp | 178 - .../WEB-INF/jsp/admin/deleteNetworkProxy.jsp | 53 - .../jsp/admin/deleteProxyConnector.jsp | 54 - .../jsp/admin/deleteRemoteRepository.jsp | 73 - .../WEB-INF/jsp/admin/deleteRepository.jsp | 74 - .../jsp/admin/deleteRepositoryGroup.jsp | 65 - .../jsp/admin/disableProxyConnector.jsp | 50 - .../WEB-INF/jsp/admin/editAppearance.jsp | 46 - .../WEB-INF/jsp/admin/editNetworkProxy.jsp | 73 - .../WEB-INF/jsp/admin/editProxyConnector.jsp | 46 - .../jsp/admin/editRemoteRepository.jsp | 50 - .../WEB-INF/jsp/admin/editRepository.jsp | 51 - .../jsp/admin/enableProxyConnector.jsp | 50 - .../WEB-INF/jsp/admin/errorMessages.jsp | 29 - .../jsp/admin/include/networkProxyForm.jspf | 26 - .../jsp/admin/include/proxyConnectorForm.jspf | 259 - .../admin/include/remoteRepositoryForm.jspf | 28 - .../jsp/admin/include/repositoryForm.jspf | 36 - .../WEB-INF/jsp/admin/legacyArtifactPath.jsp | 113 - .../WEB-INF/jsp/admin/networkProxies.jsp | 128 - .../WEB-INF/jsp/admin/proxyConnectors.jsp | 249 - .../webapp/WEB-INF/jsp/admin/repositories.jsp | 347 - .../WEB-INF/jsp/admin/repositoryGroups.jsp | 161 - .../WEB-INF/jsp/admin/repositoryScanning.jsp | 259 - .../webapp/WEB-INF/jsp/advancedSearch.jsp | 67 - .../src/main/webapp/WEB-INF/jsp/alert.jsp | 45 - .../WEB-INF/jsp/artifact/dependencyTree.jsp | 28 - .../src/main/webapp/WEB-INF/jsp/browse.jsp | 106 - .../webapp/WEB-INF/jsp/browseArtifact.jsp | 59 - .../main/webapp/WEB-INF/jsp/browseGroup.jsp | 91 - .../WEB-INF/jsp/components/companyLogo.jsp | 34 - .../jsp/decorators/artifactDecorator.jsp | 149 - .../webapp/WEB-INF/jsp/decorators/default.jsp | 205 - .../main/webapp/WEB-INF/jsp/findArtifact.jsp | 106 - .../main/webapp/WEB-INF/jsp/generalError.jsp | 36 - .../jsp/include/artifactDependencies.jspf | 40 - .../WEB-INF/jsp/include/artifactInfo.jspf | 243 - .../WEB-INF/jsp/include/artifactReports.jspf | 38 - .../WEB-INF/jsp/include/dependencyTree.jspf | 31 - .../WEB-INF/jsp/include/mailingLists.jspf | 84 - .../WEB-INF/jsp/include/projectDependees.jspf | 39 - .../WEB-INF/jsp/include/uploadForm.jspf | 36 - .../main/webapp/WEB-INF/jsp/quickSearch.jsp | 66 - .../WEB-INF/jsp/reports/basicReport.jsp | 65 - .../WEB-INF/jsp/reports/blankReport.jsp | 37 - .../webapp/WEB-INF/jsp/reports/pickReport.jsp | 59 - .../WEB-INF/jsp/reports/statisticsReport.jsp | 213 - .../src/main/webapp/WEB-INF/jsp/results.jsp | 316 - .../main/webapp/WEB-INF/jsp/showArtifact.jsp | 166 - .../src/main/webapp/WEB-INF/jsp/upload.jsp | 46 - .../main/webapp/WEB-INF/tags/currentWWUrl.tag | 52 - .../WEB-INF/tags/displayUpdatePolicy.tag | 41 - .../webapp/WEB-INF/tags/showArtifactLink.tag | 80 - .../webapp/WEB-INF/tags/showArtifactTitle.tag | 46 - .../src/main/webapp/WEB-INF/web.xml | 123 - .../src/main/webapp/css/maven-base.css | 201 - .../src/main/webapp/css/maven-theme.css | 331 - .../src/main/webapp/css/print.css | 27 - .../src/main/webapp/css/site.css | 419 -- .../src/main/webapp/favicon.ico | Bin 3638 -> 0 bytes .../src/main/webapp/images/archetype.gif | Bin 2149 -> 0 bytes .../main/webapp/images/archiva-splat-32.gif | Bin 1227 -> 0 bytes .../src/main/webapp/images/archiva-world.png | Bin 1936 -> 0 bytes .../src/main/webapp/images/archiva.png | Bin 9801 -> 0 bytes .../src/main/webapp/images/arrow.gif | Bin 88 -> 0 bytes .../src/main/webapp/images/collapsed.gif | Bin 53 -> 0 bytes .../src/main/webapp/images/dl.gif | Bin 388 -> 0 bytes .../main/webapp/images/download-type-jar.png | Bin 969 -> 0 bytes .../images/download-type-java-source.png | Bin 969 -> 0 bytes .../main/webapp/images/download-type-pom.png | Bin 946 -> 0 bytes .../src/main/webapp/images/download.bl.gif | Bin 179 -> 0 bytes .../src/main/webapp/images/download.br.gif | Bin 120 -> 0 bytes .../src/main/webapp/images/download.ml.gif | Bin 103 -> 0 bytes .../src/main/webapp/images/download.mr.gif | Bin 62 -> 0 bytes .../src/main/webapp/images/download.tl.gif | Bin 179 -> 0 bytes .../src/main/webapp/images/download.tr.gif | Bin 118 -> 0 bytes .../src/main/webapp/images/expanded.gif | Bin 52 -> 0 bytes .../src/main/webapp/images/external.png | Bin 230 -> 0 bytes .../src/main/webapp/images/footerborder.gif | Bin 54 -> 0 bytes .../src/main/webapp/images/icon_error_sml.gif | Bin 1010 -> 0 bytes .../src/main/webapp/images/icon_info_sml.gif | Bin 606 -> 0 bytes .../src/main/webapp/images/icon_next_page.gif | Bin 315 -> 0 bytes .../webapp/images/icon_next_page_disabled.gif | Bin 80 -> 0 bytes .../src/main/webapp/images/icon_prev_page.gif | Bin 317 -> 0 bytes .../webapp/images/icon_prev_page_disabled.gif | Bin 73 -> 0 bytes .../main/webapp/images/icon_success_sml.gif | Bin 990 -> 0 bytes .../main/webapp/images/icon_warning_sml.gif | Bin 576 -> 0 bytes .../main/webapp/images/icons/arrow-down.png | Bin 237 -> 0 bytes .../main/webapp/images/icons/arrow-left.png | Bin 231 -> 0 bytes .../main/webapp/images/icons/arrow-right.png | Bin 228 -> 0 bytes .../src/main/webapp/images/icons/arrow-up.png | Bin 230 -> 0 bytes .../src/main/webapp/images/icons/box.png | Bin 255 -> 0 bytes .../src/main/webapp/images/icons/create.png | Bin 236 -> 0 bytes .../src/main/webapp/images/icons/delete.gif | Bin 351 -> 0 bytes .../src/main/webapp/images/icons/down.gif | Bin 117 -> 0 bytes .../src/main/webapp/images/icons/edit.png | Bin 246 -> 0 bytes .../main/webapp/images/icons/off-symbol.png | Bin 390 -> 0 bytes .../main/webapp/images/icons/on-symbol.png | Bin 497 -> 0 bytes .../src/main/webapp/images/icons/rss-feed.png | Bin 800 -> 0 bytes .../main/webapp/images/icons/security-key.png | Bin 300 -> 0 bytes .../webapp/images/icons/security-lock.png | Bin 281 -> 0 bytes .../src/main/webapp/images/icons/up.gif | Bin 117 -> 0 bytes .../src/main/webapp/images/icons/user.png | Bin 344 -> 0 bytes .../src/main/webapp/images/jar.gif | Bin 1964 -> 0 bytes .../src/main/webapp/images/mavenplugin.gif | Bin 2336 -> 0 bytes .../src/main/webapp/images/newwindow.png | Bin 220 -> 0 bytes .../src/main/webapp/images/other.gif | Bin 2160 -> 0 bytes .../src/main/webapp/images/pom.gif | Bin 2020 -> 0 bytes .../src/main/webapp/images/skin.gif | Bin 2258 -> 0 bytes .../src/main/webapp/images/super.gif | Bin 1212 -> 0 bytes .../src/main/webapp/images/super_hl.gif | Bin 1212 -> 0 bytes .../src/main/webapp/images/super_hl_sub.gif | Bin 985 -> 0 bytes .../src/main/webapp/images/supersub.gif | Bin 206 -> 0 bytes .../archiva-webapp/src/main/webapp/index.jsp | 20 - .../main/webapp/js/scriptaculous/builder.js | 160 - .../main/webapp/js/scriptaculous/controls.js | 969 --- .../main/webapp/js/scriptaculous/dragdrop.js | 1178 ---- .../main/webapp/js/scriptaculous/effects.js | 1156 --- .../main/webapp/js/scriptaculous/prototype.js | 2696 ------- .../webapp/js/scriptaculous/scriptaculous.js | 72 - .../main/webapp/js/scriptaculous/slider.js | 365 - .../main/webapp/js/scriptaculous/unittest.js | 744 -- .../src/main/webapp/rss/rss.xml | 0 .../webapp/template/archiva/checkboxlist.ftl | 39 - .../main/webapp/template/archiva/radiomap.ftl | 39 - .../webapp/template/archiva/theme.properties | 20 - .../main/webapp/template/xhtml/a-close.ftl | 1 - .../src/main/webapp/template/xhtml/a.ftl | 22 - .../webapp/template/xhtml/actionerror.ftl | 7 - .../webapp/template/xhtml/actionmessage.ftl | 7 - .../src/main/webapp/template/xhtml/hidden.ftl | 15 - .../src/sql/mysql/dev_bootstrap.sql | 17 - .../src/sql/mysql/drop_archiva_tables.sql | 34 - .../web/action/AbstractWebworkTestCase.java | 127 - .../AbstractOrganizationInfoActionTest.java | 47 - .../EditOrganizationInfoActionTest.java | 69 - .../OrganizationInfoActionTest.java | 58 - .../proxy/AddProxyConnectorActionTest.java | 417 -- .../proxy/DeleteProxyConnectorActionTest.java | 225 - .../DisableProxyConnectorActionTest.java | 219 - .../proxy/EditProxyConnectorActionTest.java | 447 -- .../proxy/EnableProxyConnectorActionTest.java | 218 - .../proxy/ProxyConnectorsActionTest.java | 151 - .../proxy/SortProxyConnectorsActionTest.java | 253 - ...stractManagedRepositoryArchivaDAOStub.java | 85 - .../AddManagedRepositoryActionTest.java | 196 - .../AddRemoteRepositoryActionTest.java | 127 - .../admin/repositories/ArchivaDAOStub.java | 87 - .../admin/repositories/ArtifactDAOStub.java | 90 - .../DeleteManagedRepositoryActionTest.java | 333 - .../DeleteRemoteRepositoryActionTest.java | 207 - .../DeleteRepositoryGroupActionTest.java | 156 - .../EditManagedRepositoryActionTest.java | 211 - .../EditRemoteRepositoryActionTest.java | 157 - .../repositories/ProjectModelDAOStub.java | 78 - .../repositories/RepositoriesActionTest.java | 78 - .../RepositoryContentStatisticsDAOStub.java | 68 - .../RepositoryGroupsActionTest.java | 380 - .../SortRepositoriesActionTest.java | 225 - .../archiva/web/rss/ArtifactDAOStub.java | 123 - .../archiva/web/rss/RssFeedServletTest.java | 200 - .../archiva/web/rss/SecuritySystemStub.java | 164 - .../archiva/web/rss/UserRepositoriesStub.java | 63 - .../maven/archiva/web/startup/BannerTest.java | 90 - .../resources/META-INF/plexus/components.xml | 33 - .../src/test/resources/artifact.jar | Bin 13 -> 0 bytes .../src/test/resources/banner.gz | Bin 282 -> 0 bytes .../src/test/resources/log4j.xml | 55 - .../proxy/AddProxyConnectorActionTest.xml | 50 - .../proxy/EditProxyConnectorActionTest.xml | 50 - .../AbstractManagedRepositoriesActionTest.xml | 98 - .../DeleteManagedRepositoryActionTest.xml | 83 - .../repositories/RepositoriesActionTest.xml | 57 - .../archiva/web/rss/RssFeedServletTest.xml | 50 - .../webapp/WEB-INF/feedServletTest-web.xml | 55 - .../src/test/webapp/WEB-INF/web.xml | 45 - .../archiva-web/archiva-webdav/pom.xml | 133 - .../webdav/ArchivaDavLocatorFactory.java | 73 - .../archiva/webdav/ArchivaDavResource.java | 629 -- .../webdav/ArchivaDavResourceFactory.java | 993 --- .../webdav/ArchivaDavResourceLocator.java | 159 - .../archiva/webdav/ArchivaDavSession.java | 53 - .../webdav/ArchivaDavSessionProvider.java | 122 - .../webdav/ArchivaVirtualDavResource.java | 351 - .../webdav/BrowserRedirectException.java | 43 - .../maven/archiva/webdav/LogicalResource.java | 38 - .../archiva/webdav/RepositoryLocator.java | 28 - .../archiva/webdav/RepositoryServlet.java | 286 - .../webdav/UnauthorizedDavException.java | 43 - .../archiva/webdav/util/IndexWriter.java | 168 - .../maven/archiva/webdav/util/MimeTypes.java | 197 - .../webdav/util/RepositoryPathUtil.java | 111 - .../archiva/webdav/util/WebdavMethodUtil.java | 66 - .../maven/archiva/webdav/util/mime.types | 127 - ...ositoryServletProxiedMetadataTestCase.java | 253 - ...tractRepositoryServletProxiedTestCase.java | 252 - .../AbstractRepositoryServletTestCase.java | 235 - .../webdav/ArchivaDavResourceLocatorTest.java | 111 - .../webdav/ArchivaDavSessionProviderTest.java | 444 -- .../archiva/webdav/ArchivaDavSessionTest.java | 66 - .../archiva/webdav/BypassSecuritySystem.java | 134 - .../maven/archiva/webdav/DavResourceTest.java | 309 - .../archiva/webdav/MimeTypesLoaderTest.java | 48 - .../webdav/RepositoryServletBrowseTest.java | 108 - .../webdav/RepositoryServletDeployTest.java | 81 - .../RepositoryServletNoProxyMetadataTest.java | 110 - .../webdav/RepositoryServletNoProxyTest.java | 274 - ...ryServletProxiedMetadataLocalOnlyTest.java | 118 - ...yServletProxiedMetadataRemoteOnlyTest.java | 166 - ...positoryServletProxiedPassthroughTest.java | 156 - ...ervletProxiedPluginSnapshotPolicyTest.java | 195 - ...sitoryServletProxiedReleasePolicyTest.java | 193 - ...RepositoryServletProxiedRelocatedTest.java | 79 - ...itoryServletProxiedSnapshotPolicyTest.java | 195 - ...tProxiedTimestampedSnapshotPolicyTest.java | 195 - .../RepositoryServletRepositoryGroupTest.java | 305 - .../webdav/RepositoryServletSecurityTest.java | 550 -- .../archiva/webdav/RepositoryServletTest.java | 123 - .../StubRepositoryContentConsumers.java | 21 - .../UnauthenticatedDavResourceFactory.java | 41 - .../UnauthenticatedDavSessionProvider.java | 42 - .../UnauthenticatedRepositoryServlet.java | 41 - .../httpunit/MkColMethodWebRequest.java | 41 - .../archiva/webdav/util/MimeTypesTest.java | 42 - .../webdav/util/RepositoryPathUtilTest.java | 52 - .../resources/META-INF/plexus/components.xml | 33 - .../repository-servlet-security-test/web.xml | 45 - .../src/test/resources/WEB-INF/web.xml | 45 - .../src/test/resources/archiva-mime-types.txt | 127 - .../src/test/resources/artifact.jar | Bin 13 -> 0 bytes .../src/test/resources/log4j.xml | 55 - .../webdav/RepositoryServletSecurityTest.xml | 176 - .../archiva/webdav/RepositoryServletTest.xml | 176 - .../archiva/webdav/repository-archiva.xml | 111 - .../SimpleDavServerComponentBasicTest.xml | 38 - .../SimpleDavServerComponentIndexHtmlTest.xml | 38 - .../SimpleDavServerComponentMultiTest.xml | 38 - .../webdav/simple/SimpleWebdavServer.xml | 38 - .../src/test/resources/repository-archiva.xml | 111 - .../src/test/webapp/WEB-INF/web.xml | 43 - .../archiva-modules/archiva-web/pom.xml | 45 - archiva-security-fix/archiva-modules/pom.xml | 207 - .../archiva-modules/src/site/site.xml | 31 - archiva-security-fix/pom.xml | 1061 --- .../src/main/assembly/src.xml | 67 - 2135 files changed, 192519 deletions(-) delete mode 100644 archiva-security-fix/LICENSE delete mode 100644 archiva-security-fix/archiva-cli/pom.xml delete mode 100644 archiva-security-fix/archiva-cli/src/main/assembly/archiva-cli-assembly.xml delete mode 100644 archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/AbstractProgressConsumer.java delete mode 100644 archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java delete mode 100644 archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArtifactCountConsumer.java delete mode 100644 archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ProjectReaderConsumer.java delete mode 100644 archiva-security-fix/archiva-cli/src/main/resources/log4j.properties delete mode 100644 archiva-security-fix/archiva-docs/pom.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/configuration-files.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/configuration.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/consumers.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/customising-security.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/databases.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/index.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/installing.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/legacy.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/network-proxies.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/proxy-connectors.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/reports.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/repositories.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/roles.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/security.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/standalone.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/adminguide/webapp.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/customising/writing-consumer.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/index.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/quick-start.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/release-notes.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/userguide/browsing.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/userguide/deploy.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/userguide/find-artifact.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/userguide/index.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/userguide/rss.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/userguide/searching.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/userguide/using-repository.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/apt/userguide/virtual-repositories.apt delete mode 100644 archiva-security-fix/archiva-docs/src/site/assembly/docs.xml delete mode 100755 archiva-security-fix/archiva-docs/src/site/resources/css/site.css delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/archiva-report.jpg delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/find-artifact-security.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/find-artifact.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/search-results.jpg delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/tour/admin.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/tour/maintenance.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/tour/project.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/tour/proxy.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/tour/reports.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/tour/rss.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/tour/search.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/tour/security.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/tour/upload.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/resources/images/tour/virtual-repos.png delete mode 100644 archiva-security-fix/archiva-docs/src/site/site.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/xdoc/tour/admin.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/xdoc/tour/index.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/xdoc/tour/maintenance.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/xdoc/tour/project.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/xdoc/tour/proxy.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/xdoc/tour/reports.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/xdoc/tour/rss.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/xdoc/tour/search.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/xdoc/tour/security.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/xdoc/tour/upload.xml delete mode 100644 archiva-security-fix/archiva-docs/src/site/xdoc/tour/virtual-repos.xml delete mode 100644 archiva-security-fix/archiva-jetty/pom.xml delete mode 100644 archiva-security-fix/archiva-jetty/src/main/appended-resources/notice-supplements.xml delete mode 100644 archiva-security-fix/archiva-jetty/src/main/assembly/bin.xml delete mode 100644 archiva-security-fix/archiva-jetty/src/main/conf/archiva.xml delete mode 100644 archiva-security-fix/archiva-jetty/src/main/conf/jetty-logging.xml delete mode 100644 archiva-security-fix/archiva-jetty/src/main/conf/jetty.xml delete mode 100644 archiva-security-fix/archiva-jetty/src/main/conf/shared.xml delete mode 100644 archiva-security-fix/archiva-jetty/src/main/resources/LICENSE delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConversionException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConverter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/Messages.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/resources/org/apache/maven/archiva/converter/artifact/messages.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-one.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-three.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-two.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-snapshot.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-warnings.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/maven-foo-plugin-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/newversion-artifact-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-artifact-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-snapshot-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-version-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-artifact-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-snapshot-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-version-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverterTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/resources/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverterTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/artifact-one-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/artifact-three-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/artifact-two-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/dryrun-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/existing-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/modified-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/newversion-artifact-1.0.1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/noPomArtifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/relocated-v3artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/rollback-created-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/unmodified-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/v3-warnings-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-20060105.130101-3.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/v3artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-20060111.120115-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/plugins/maven-foo-plugin-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/artifact-one-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/Checksum.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumAlgorithm.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksummedFile.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/Hex.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/AbstractChecksumTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumAlgorithmTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksummedFileTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-authz-open.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-authz-open.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-authz-open.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-keys-api.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-keys-api.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-keys-api.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/ArchivaException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/BaseFile.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/DateUtil.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/PathUtil.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/Slf4JPlexusLogger.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/VersionComparator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/VersionUtil.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/DateUtilTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/PathUtilTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/ResourceUtils.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/VersionComparatorTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/CVS/Root delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/KEYS delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/foo/invalid-1.0.foo delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/invalid-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/1.0/invalid-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/invalid-1.0.rar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/invalid.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/no-extension delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/javax.sql/jars/jdbc-2.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven.update/jars/test-not-updated-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven.update/jars/test-updated-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/some-ejb-1.0-client.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0-20050611.112233-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0.tar.gz delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0.zip delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-UNKNOWN.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/CVS/Root delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/KEYS delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0/invalid-1.0b.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0/invalid-2.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1/invalid-1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/jdbc/2.0/jdbc-2.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/jdbc/maven-metadata-repository.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/maven-metadata-repository.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/A/1.0/A-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/A/1.0/A-1.0.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/B/1.0/B-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/B/2.0/B-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/C/1.0/C-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/C/1.0/C-1.0.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/discovery/1.0/discovery-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/1.0/samplejar-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/2.0/samplejar-2.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/some-ejb/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0-test-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.zip delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-not-updated/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-updated/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.md5-bad delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.md5-good delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.sha1-bad delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.sha1-good delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericArtifactConsumerTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericModelConsumerTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericRepositoryMetadataConsumerTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationEvent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationListener.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationNames.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationRuntimeException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/FileTypes.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/IndeterminateConfigurationException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/InvalidConfigurationException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoader.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/FiletypeSelectionPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/FiletypeToMapClosure.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/NetworkProxyComparator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/NetworkProxySelectionPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/RepositoryConfigurationComparator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/SyncedRepositoryConfiguration-conversion.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/default-archiva.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/archiva-0.9.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/archiva-v1.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/autodetect-v1.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-base.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-single-list-elements.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-user.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/corrupt.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/escape-cron-expressions.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/maven-proxy-complete.conf delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/repository-manager.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ConfigurationTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/FileTypesTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/LegacyArtifactPathTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoaderTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparatorTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/functors/RepositoryConfigurationComparatorTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/log4j.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/test-default-archiva.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/AbstractMonitoredConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ArchivaArtifactConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/BaseConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerMonitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/DatabaseCleanupConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/DatabaseUnprocessedArtifactConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/InvalidRepositoryContentConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/KnownRepositoryContentConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/RepositoryContentConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/functors/PermanentConsumerPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/AutoRemoveConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/AutoRenameConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/MetadataUpdaterConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ValidateChecksumConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/ArtifactFilenameFilter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurge.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/conf/repository-manager-daysOld.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/conf/repository-manager.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/AbstractArtifactConsumerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/MetadataUpdateConsumerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3-sources.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3-sources.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2-sources.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2-sources.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/maven-metadata-codehaus-snapshots.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/maven-metadata-codehaus-snapshots.xml.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/BytecodeStatsToDatabaseConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/VerifyMetadataAgainstDatabaseConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/conf/repository-manager.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/AbstractDatabaseCleanupTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/org/apache/maven/archiva/do-not-cleanup-artifact-test/1.0/do-not-cleanup-artifact-test-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/org/apache/maven/archiva/do-not-cleanup-artifact-test/1.0/do-not-cleanup-artifact-test-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/main/java/org/apache/archiva/consumers/dependencytree/DependencyTreeGeneratorConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/java/org/apache/archiva/consumers/dependencytree/DependencyTreeGeneratorConsumerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-data/maven-core-2.0-tree.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-data/surefire-testng-2.0-tree.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/openejb/jaxb-xjc/2.0EA3/jaxb-xjc-2.0EA3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/org/apache/maven/maven-core/2.0/maven-core-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/org/apache/maven/surefire/surefire-testng/2.0/surefire-testng-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArchiveTableOfContentsConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/conf/repository-manager.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsCrossRepositorySearch.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexFactoryStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/test-repo/org/apache/maven/archiva/archiva-lucene-cleanup/1.0/archiva-lucene-cleanup-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-signature-consumers/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/RepositoryConversionException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyRepositoryConverter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/resources/org/apache/maven/archiva/converter/DefaultRepositoryConverter.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-one.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-three.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-two.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-snapshot.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-warnings.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/maven-foo-plugin-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/newversion-artifact-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-artifact-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-version-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-artifact-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-version-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/maven/archiva/converter/RepositoryConverterTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/resources/log4j.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/resources/org/apache/maven/archiva/converter/RepositoryConverterTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-one-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-three-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-two-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/dryrun-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/existing-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/modified-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/newversion-artifact-1.0.1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/noPomArtifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/relocated-v3artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/rollback-created-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/unmodified-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3-warnings-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-20060105.130101-3.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-20060111.120115-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/plugins/maven-foo-plugin-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-one-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/DependencyGraphFactory.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraph.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphBuilder.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphEdge.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphKeys.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphNode.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphUtils.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyResolutionEvent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphListener.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphPhaseEvent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTaskException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/PotentialCyclicEdgeProducer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeCyclicPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeDisabledPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExactScopePredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExcludedPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeFromPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeScopeClosure.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeToPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeWithinScopePredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeFromParentPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeInEdgePredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodePredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/OrphanedNodePredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/ToArtifactReferenceTransformer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/UnresolvedGraphNodePredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/AbstractReduceEdgeVisitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementApplier.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStack.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesVisitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesVisitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/GraphCopier.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateDependencyManagementTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateGraphMasterTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesVisitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeVisitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesVisitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsVisitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ResolveGraphTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesVisitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/BaseVisitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphVisitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalker.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkBreadthFirstSearch.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkDepthFirstSearch.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractDependencyGraphFactoryTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractMemoryRepository.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AllTests.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonDependencyGraphTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonMemoryRepository.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappDependencyGraphTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappMemoryRepository.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsDependencyGraphTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsMemoryRepository.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreDependencyGraphTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreMemoryRepository.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginMemoryRepository.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepository.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepositoryDependencyGraphBuilder.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleDependencyGraphTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleMemoryRepository.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerDependencyGraphTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerMemoryRepository.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/functors/ToKeyTransformer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStackTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalkerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/WalkCollector.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/ArtifactKeys.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndex.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListener.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndexFactory.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryIndexException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryIndexSearchException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeAnalyzer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeEntryConverter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeHandlers.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeKeys.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeRecord.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentAnalyzer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentConverter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentHandlers.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentKeys.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentRecord.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/BytecodeIndexTransformer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/FileContentIndexTransformer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/HashcodesIndexTransformer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/IndexExistsPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/SearchableTransformer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/UserAllowedToSearchRepositoryPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesAnalyzer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesEntryConverter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesHandlers.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesKeys.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesRecord.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneDocumentMaker.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneEntryConverter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneIndexHandlers.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneQuery.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndex.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentRecord.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/ClassnameTokenizer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/FilenamesTokenizer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/GroupIdTokenizer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/VersionTokenizer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/CompoundQuery.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/CompoundQueryTerm.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/Query.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/QueryTerm.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/RangeQuery.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/SingleTermQuery.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/CrossRepositorySearch.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultHit.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultLimits.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResults.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/site/site.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/archiva-common-1.0.jar.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/continuum-webapp-1.0.3-SNAPSHOT.war.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/daytrader-ear-1.1.ear.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/maven-archetype-simple-1.0-alpha-4.jar.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/maven-help-plugin-2.0.2-20070119.121239-2.jar.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/redback-authorization-open-1.0-alpha-1-SNAPSHOT.jar.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/testng-5.1-jdk15.jar.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/wagon-provider-api-1.0-beta-3-20070209.213958-2.jar.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexCreationTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractSearchTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/MockConfiguration.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListenerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/AllTests.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeIndexTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeRecordLoader.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeSearchTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/AllTests.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesIndexTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesRecordLoader.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesSearchTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/query/AllTests.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/query/QueryTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/BytecodeIndexPopulator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/FileContentIndexPopulator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/HashcodesIndexPopulator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/IndexPopulator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/parent-pom/1/parent-pom-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-archetype/1.0/test-archetype-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-archetype/1.0/test-archetype-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-child-pom/1.0-SNAPSHOT/test-child-pom-1.0-20060728.121314-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-child-pom/1.0-SNAPSHOT/test-child-pom-1.0-20060728.121314-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-corrupt-jar/1.0/test-corrupt-jar-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-dll/1.0.1.34/test-dll-1.0.1.34.dll delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar-and-pom/1.0-alpha-1/test-jar-and-pom-1.0-alpha-1-jdk14.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar-and-pom/1.0-alpha-1/test-jar-and-pom-1.0-alpha-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar-and-pom/1.0-alpha-1/test-jar-and-pom-1.0-alpha-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar/1.0/test-jar-1.0-jdk14.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar/1.0/test-jar-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-plugin/1.0/test-plugin-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-plugin/1.0/test-plugin-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-pom/1.0/test-pom-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-skin/1.0/test-skin-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-skin/1.0/test-skin-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/2.0.1/maven-artifact-2.0.1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/2.0.1/maven-artifact-2.0.1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/2.0.1/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-corrupt-jar/2.0/maven-corrupt-jar-2.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-corrupt-jar/2.0/maven-corrupt-jar-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-model/2.0/maven-model-2.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-model/2.0/maven-model-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/inherited/test-inherited/1.0.15/test-inherited-1.0.15.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/test-artifactId/1.0/test-artifactId-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/test-artifactId/1.0/test-artifactId-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/META-INF/plexus/components.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/log4j.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListenerTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/bytecode/BytecodeIndexTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/bytecode/BytecodeSearchTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/hashcodes/HashcodesIndexTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/hashcodes/HashcodesSearchTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.xml delete mode 100755 archiva-security-fix/archiva-modules/archiva-base/archiva-model/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractArtifactKey.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractProjectKey.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractVersionedKey.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifactPlatformDetails.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/CompoundKey.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/DependencyScope.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/Keys.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryURL.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/functors/UnprocessedArtifactPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaArtifactJavaDetailsKey.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaArtifactModelKey.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaProjectModelKey.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaRepositoryMetadataKey.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArtifactReferenceKey.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ProjectReferenceKey.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/VersionedReferenceKey.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/platform/JavaArtifactHelper.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/mdo/archiva-base.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaArtifactTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/DependencyScopeTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/RepositoryURLTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/resources/log4j.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/AbstractUpdatePolicy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/CachedFailuresPolicy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ChecksumPolicy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/DownloadErrorPolicy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/DownloadPolicy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/Policy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PolicyConfigurationException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PolicyViolationException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PostDownloadPolicy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PreDownloadPolicy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PropagateErrorsDownloadPolicy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PropagateErrorsOnUpdateDownloadPolicy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ProxyDownloadException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ReleasesPolicy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/SnapshotsPolicy.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/DefaultUrlFailureCache.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/UrlFailureCache.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/plexus/components-fragment.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/spring-context.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/ChecksumPolicyTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/ReleasePolicyTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/SnapshotsPolicyTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.md5-bad delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.md5-good delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.sha1-bad delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.sha1-good delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/log4j.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/ChecksumPolicyTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/ReleasePolicyTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/SnapshotsPolicyTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/NotFoundException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/NotModifiedException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnectorOrderComparator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/RepositoryProxyConnectors.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/WagonFactory.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/resources/META-INF/spring-context.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ChecksumTransferTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ErrorHandlingTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/HttpProxyTransferTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/MetadataTransferTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/MockConfiguration.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/SnapshotTransferTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonDelegate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonFactoryTest.java delete mode 100755 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/create-managed-to-proxy-map.sh delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-managed/org.apache.maven.test/jars/get-default-layout-present-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-managed/org.apache.maven.test/jars/get-default-layout-present-1.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-managed/org.apache.maven.test/jars/managed-only-lib-2.1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-managed/org.apache.maven.test/poms/get-relocated-artefact-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-proxied/org.apache.maven.test/jars/example-lib-2.2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-proxied/org.apache.maven.test/jars/get-default-layout-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-proxied/org.apache.maven.test/jars/get-default-layout-present-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-proxied/org.apache.maven.test/maven-plugins/example-maven-plugin-0.42.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-proxied/org.apache.maven.test/plugins/get-legacy-plugin-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed-to-proxy-map.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-checksum-from-managed-repo/1.0/get-checksum-from-managed-repo-1.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present-with-pom/1.0/get-default-layout-present-with-pom-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present-with-pom/1.0/get-default-layout-present-with-pom-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar.asc delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-metadata/1.0/get-default-metadata-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-metadata/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-doubly-relocated-artefact/1.0/get-doubly-relocated-artefact-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-merged-metadata/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-not-on-remotes/1.0-beta-2/get-not-on-remotes-1.0-beta-2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-not-on-remotes/1.0-beta-2/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-not-on-remotes/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/1.0.22/get-on-local-on-remote-1.0.22.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/1.0.22/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/1.0.8/get-on-local-on-remote-1.0.8.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-multiple-repos/1.0/get-on-multiple-repos-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-present-metadata-snapshot/1.0-SNAPSHOT/get-present-metadata-snapshot-1.0-20050831.101112-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-present-metadata-snapshot/1.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-present-timestamped-snapshot/1.0-SNAPSHOT/get-present-timestamped-snapshot-1.0-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-project-metadata/1.0/get-project-metadata-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-project-metadata/1.1/get-project-metadata-1.1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-project-metadata/2.0/get-project-metadata-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-project-metadata/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-release-metadata/2.2/get-release-metadata-2.2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-release-metadata/2.2/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-relocated-artefact-with-pom/1.0/get-relocated-artefact-with-pom-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-relocated-artefact/1.0/get-relocated-artefact-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-removed-from-proxies/1.0/get-removed-from-proxies-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-removed-metadata/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/get-snapshot-on-local-not-remote-2.0-alpha-2-20070821.123456-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/get-snapshot-on-local-not-remote-2.0-alpha-2-20070821.220304-2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070821.102030-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070821.185701-2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070822.021008-3.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/.metadata-proxied1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/.metadata-proxied1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-not-on-remotes/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-on-local-on-remote/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-project-metadata/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-from-managed-repo/1.0/get-checksum-from-managed-repo-1.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-bad-sha1/1.0/get-checksum-md5-bad-sha1-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-bad-sha1/1.0/get-checksum-md5-bad-sha1-1.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-bad-sha1/1.0/get-checksum-md5-bad-sha1-1.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar.asc delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar.asc delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-layout/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-layout/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-metadata/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-found-in-proxy/1.0.5/get-found-in-proxy-1.0.5-javadoc.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-found-in-proxy/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-in-both-proxies/1.0/get-in-both-proxies-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-merged-metadata/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-metadata-snapshot/1.0-SNAPSHOT/get-metadata-snapshot-1.0-20050831.101112-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-metadata-snapshot/1.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-local-on-remote/1.0.22/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-local-on-remote/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-present-metadata-snapshot/1.0-SNAPSHOT/get-present-metadata-snapshot-1.0-20050831.101112-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-present-metadata-snapshot/1.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-present-timestamped-snapshot/1.0-SNAPSHOT/get-present-timestamped-snapshot-1.0-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070819.040004-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070822.145534-9.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20061222.034118-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20061227.112101-2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot/1.0-SNAPSHOT/get-timestamped-snapshot-1.0-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-updated-metadata/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-default-layout/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-found-in-proxy/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-on-local-on-remote/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/1.0.1/get-default-layout-1.0.1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-in-both-proxies/1.0/get-in-both-proxies-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-merged-metadata/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070821.102030-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070823.111741-5.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070823.212711-6.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20061222.034118-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20070101.000103-2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/groups/get-default-layout/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/log4j.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ErrorHandlingTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/HttpProxyTransferTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ContentNotFoundException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ManagedRepositoryContent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RemoteRepositoryContent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryContentFactory.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryNotFoundException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditListener.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditLog.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/Auditable.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactClassifierMapping.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultPathParser.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/FilenameParser.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/PathParser.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RemoteDefaultRepositoryContent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RemoteLegacyRepositoryContent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/events/RepositoryListener.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/layout/LayoutException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataMerge.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataWriter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelReader.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolverFactory.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelWriter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/dependencies/ProjectModelBasedGraphBuilder.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/FalseProjectResolver.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/FilesystemBasedResolver.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ManagedRepositoryProjectResolver.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/NopProjectResolver.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolutionListener.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolverStack.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/writers/ProjectModel400Writer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerProcessFileClosure.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerBeginScanClosure.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/resources/META-INF/plexus/components-fragment.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/archiva-model-effective.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/cocoon-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/maven-parent-4.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/model-write-400-simple.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/AbstractRepositoryLayerTestCase.java delete mode 100755 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/MockConfiguration.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/RepositoryURLTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContentTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContentTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultPathParserTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/FilenameParserTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyPathParserTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContentTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContentTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RemoteDefaultRepositoryContentTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RemoteLegacyRepositoryContentTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReaderTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataWriterTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300ReaderTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400ReaderTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/writers/ProjectModel400WriterTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/InvalidScanConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/KnownScanConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/SampleKnownConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/CVS/Root delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/KEYS delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-1.0b.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-2.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1/invalid-1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/cocoon/cocoon/1/cocoon-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/archiva-applet-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/archiva-base-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/archiva-common-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/archiva-configuration-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/archiva-consumer-api-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/archiva-consumers-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/archiva-converter-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/archiva-core-consumers-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-SNAPSHOT/archiva-core-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/archiva-discoverer-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/archiva-indexer-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/archiva-parent-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/archiva-plexus-application-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/archiva-plexus-runtime-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-SNAPSHOT/archiva-proxy-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/archiva-reports-standard-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/archiva-repository-layer-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/archiva-security-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/archiva-webapp-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/archiva-xml-tools-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-20061126.005254-2.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/discovery/1.0/discovery-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site_en.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/2.0.4-SNAPSHOT/test-2.0.4-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-test-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.zip delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-updated/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/CVS/Root delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/KEYS delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/foo/invalid-1.0.foo delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/invalid-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/1.0/invalid-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/invalid-1.0.rar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/invalid.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/no-extension delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/javax.sql/jars/jdbc-2.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/maven/poms/wagon-ssh-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-not-updated-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-updated-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/some-ejb-1.0-client.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0-20050611.112233-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.tar.gz delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.zip delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-UNKNOWN.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/java-sources/testing-1.0-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/javadoc.jars/testing-1.0-javadoc.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/poms/maven-model-v3-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/poms/testing-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/include_xml-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/include_xml-1.0.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/incomplete_metadata_a/1.0/incomplete_metadata_a-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/incomplete_metadata_a/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_a/1.0/missing_metadata_a-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/1.0.1/missing_metadata_b-1.0.1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/1.0/missing_metadata_b-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/2.0-20070821-dev/missing_metadata_b-2.0-20070821-dev.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/2.0.1/missing_metadata_b-2.0.1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/2.0/missing_metadata_b-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/1.0/proxied_multi-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/1.1/proxied_multi-1.1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/2.1/proxied_multi-2.1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata-central.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata-java.net.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-apache-snapshots.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-internal-snapshots.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-snapshots.codehaus.org.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2-javadoc.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070302.212723-3-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070302.212723-3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070302.212723-3.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070303.152828-4-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070303.152828-4.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070303.152828-4.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.war.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.war.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.war.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.war.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-SNAPSHOT-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-SNAPSHOT.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2-sources.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2-sources.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3-sources.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3-sources.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4-sources.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4-sources.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-javadoc.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-javadoc.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-javadoc.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-sources.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-sources.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-sources.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/maven-metadata.xml delete mode 100644 archiva-security-fix/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 delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/log4j.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/m1-repo-filelist.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/content/RepositoryRequestTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/scanner-archiva.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/AbstractTransactionEvent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/CopyFileEvent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/CreateFileEvent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/FileTransaction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/TransactionEvent.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/TransactionException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/AbstractFileEventTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/CopyFileEventTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/CreateFileEventTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/ElementTextListClosure.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/LatinEntities.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/LatinEntityResolutionReader.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLReader.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLWriter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/commons-codec-1.2.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-basic.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-with-entities.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-with-utf8.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/prolog-with-utf8.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/AbstractArchivaXmlTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/LatinEntitiesTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/LatinEntityResolutionReaderTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/XMLReaderTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/XMLWriterTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-base/pom.xml delete mode 100755 archiva-security-fix/archiva-modules/archiva-database/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDatabaseException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArtifactDAO.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ObjectNotFoundException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ProjectModelDAO.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryContentStatisticsDAO.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryProblemDAO.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaRepositoryByUrlConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByChecksumConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentRepositoryScanStatistics.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ProjectsByArtifactUsageConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryContentStatisticsByRepositoryConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByArtifactConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByRepositoryIdConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByTypeConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/SqlBuilder.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueFieldConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAO.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryContentStatisticsDAO.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryProblemDAO.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/project/DatabaseProjectModelResolver.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/project/ProjectModelToDatabaseListener.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseConsumers.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseUpdater.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/JdoDatabaseUpdater.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/ProcessArchivaArtifactClosure.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ArtifactKey.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ManageTables.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/MetadataKey.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/RepositoryMetadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/AllTests.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByChecksumConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/MostRecentRepositoryScanStatisticsTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ProjectsByArtifactUsageConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RangeConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryContentStatisticsByRepositoryConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByRepositoryIdConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueFieldConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraintTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAOTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAOTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAOTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoRepositoryContentStatisticsDAOTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseUpdaterTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseCleanupConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseUnprocessedConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/resources/archiva-test.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/resources/log4j.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/resources/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/resources/org/apache/maven/archiva/database/updater/DatabaseUpdaterTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-database/src/test/resources/projects/maven-shared-jar-1.0-SNAPSHOT.pom delete mode 100755 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/CorruptArtifactReport.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactReport.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactsConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/LocationArtifactsConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/LocationArtifactsReport.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/OldArtifactReport.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/OldSnapshotArtifactReport.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/java/org/apache/maven/archiva/reporting/artifact/AbstractArtifactReportsTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactReportTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/resources/META-INF/plexus/components.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/resources/log4j.xml delete mode 100755 archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/src/main/java/org/apache/maven/archiva/reporting/metadata/MetadataReport.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/src/main/java/org/apache/maven/archiva/reporting/metadata/MetadataValidateConsumer.java delete mode 100755 archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/src/main/java/org/apache/maven/archiva/reporting/project/MissingDependenciesReport.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/src/main/java/org/apache/maven/archiva/reporting/project/ProjectDependenciesConsumer.java delete mode 100755 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ArchivaReportException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DataLimits.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DefaultReportingManager.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DynamicReportSource.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ReportingException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ReportingManager.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryProblemMonitor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryStatistics.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryStatisticsReportGenerator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/SimpleRepositoryStatisticsReportGenerator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/java/org/apache/maven/archiva/reporting/SimpleRepositoryStatisticsReportGeneratorTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/META-INF/plexus/components.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/log4j.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/DuplicateArtifactFileReportProcessorTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/OldArtifactReportProcessorTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/OldSnapshotArtifactReportProcessorTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-reporting/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/ArchivaTaskScheduler.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DatabaseTaskJob.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/ArchivaTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/DatabaseTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/RepositoryTask.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/RepositoryTaskSelectionPredicate.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/main/resources/META-INF/plexus/components.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseCleanupConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseUnprocessedConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/archiva-test.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/log4j.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-applet/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-applet/src/main/java/org/apache/maven/archiva/applet/ChecksumApplet.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-rss/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedEntry.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedGenerator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/AbstractArtifactsRssFeedProcessor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/RssFeedProcessor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/RssFeedGeneratorTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessorTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/stubs/ArtifactDAOStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/AccessDeniedException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaRoleConstants.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaSecurityException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaStandardRolesCheck.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaXworkUser.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/DefaultUserRepositories.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/PrincipalNotFoundException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/SecurityStartup.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ServletAuthenticator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/UserRepositories.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/resources/META-INF/redback/redback.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/AbstractSecurityTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/RoleManagerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/SecurityStartupTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/META-INF/redback/redback-core.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/log4j.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/RoleManagerTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/SecurityStartupTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/repository-archiva.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/AbstractArchivaTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/BrowseRepositoryTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/LoginTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/MavenConnectionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ProxiedRepositoryTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/SearchTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/SettingsTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/appserver-base/conf/archiva.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/appserver-base/conf/shared.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/index/_7.cfs delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/index/deletable delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/index/segments delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/local-repo/settings.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/bad-dependency/bad-dependency.log delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/bad-dependency/bad-dependency2.log delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/bad-dependency/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/dependency-in-proxied/dependency-in-proxied.log delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/dependency-in-proxied/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/.datarefresh delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/.datarefresh delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.pom delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.pom.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.pom.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml.md5 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml.sha1 delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/archiva.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/host-manager.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/manager.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/catalina.policy delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/catalina.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/context.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/logging.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/server-minimal.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/server.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/tomcat-users.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/web.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/shared.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/logs/.donotdelete delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-mysql.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-postgres.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/filtered-resources/application.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/jasperreports/report.jrxml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/GlobalResults.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SchedulerAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/AbstractAppearanceAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/EditOrganisationInfoAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/OrganisationInfoAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ProxyConnectorsAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AddAdminDatabaseConsumerClosure.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AdminDatabaseConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AdminDatabaseConsumerComparator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/DeleteLegacyArtifactPathAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/LegacyArtifactPathAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/networkproxies/NetworkProxiesAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRemoteRepositoriesAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRepositoryGroupAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryGroupsAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/SortRepositoriesAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AddAdminRepoConsumerClosure.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AdminRepositoryConsumer.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AdminRepositoryConsumerComparator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/mapper/RepositoryActionMapper.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaVersion.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/Banner.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ResolverFactoryInit.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/SecuritySynchronization.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/CopyPasteSnippetTag.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DependencyTree.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DependencyTreeTag.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifactTag.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/ExpressionTool.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/GroupIdLink.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/GroupIdLinkTag.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/PlexusTagUtil.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/ContextUtils.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/VersionMerger.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/CronExpressionValidator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/IntervalValidator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/SyncedRepositoryValidator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/taglib.tld delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/archiva-mime-types.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/freemarker.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/redback/custom.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/security.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-checksumSearch-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-filteredSearch-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-quickSearch-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/UploadAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAppearance-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAppearance.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureProxiedRepositoryAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureRepositoryAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureSyncedRepositoryAction-addSelectedSyncedRepository-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureSyncedRepositoryAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/appearance/EditOrganisationInfoAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/database/DatabaseAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction-saveNetworkProxy-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryAction-validation.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/validators.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/webwork.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/decorators.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/accessToNoRepos.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addLegacyArtifactPath.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addProxyConnector.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRemoteRepository.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRepository.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/appearance.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteNetworkProxy.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteProxyConnector.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRemoteRepository.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepository.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepositoryGroup.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/disableProxyConnector.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editAppearance.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRemoteRepository.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/enableProxyConnector.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/errorMessages.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/networkProxyForm.jspf delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/legacyArtifactPath.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/networkProxies.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryGroups.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryScanning.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/advancedSearch.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/alert.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/artifact/dependencyTree.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browseArtifact.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browseGroup.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/components/companyLogo.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/artifactDecorator.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/findArtifact.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/generalError.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactDependencies.jspf delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/dependencyTree.jspf delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/mailingLists.jspf delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/projectDependees.jspf delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/uploadForm.jspf delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/quickSearch.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/blankReport.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/statisticsReport.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/upload.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/currentWWUrl.tag delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/displayUpdatePolicy.tag delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactTitle.tag delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-base.css delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-theme.css delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/print.css delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/favicon.ico delete mode 100755 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archetype.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva-splat-32.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva-world.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva.png delete mode 100755 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/arrow.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/collapsed.gif delete mode 100755 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/dl.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-jar.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-java-source.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-pom.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.bl.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.br.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.ml.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.mr.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.tl.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.tr.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/expanded.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/external.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/footerborder.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_error_sml.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_info_sml.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_next_page.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_next_page_disabled.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_prev_page.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_prev_page_disabled.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_success_sml.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_warning_sml.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-down.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-left.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-right.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-up.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/box.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/create.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/delete.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/down.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/edit.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/off-symbol.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/on-symbol.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/rss-feed.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-key.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-lock.png delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/up.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/user.png delete mode 100755 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/jar.gif delete mode 100755 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/mavenplugin.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/newwindow.png delete mode 100755 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/other.gif delete mode 100755 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/pom.gif delete mode 100755 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/skin.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl.gif delete mode 100755 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl_sub.gif delete mode 100755 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/supersub.gif delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/index.jsp delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/builder.js delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/controls.js delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/dragdrop.js delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/effects.js delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/prototype.js delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/scriptaculous.js delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/slider.js delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/unittest.js delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/rss/rss.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/checkboxlist.ftl delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/radiomap.ftl delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/theme.properties delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/a-close.ftl delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/a.ftl delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/actionerror.ftl delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/actionmessage.ftl delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/hidden.ftl delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/sql/mysql/dev_bootstrap.sql delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/sql/mysql/drop_archiva_tables.sql delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/AbstractWebworkTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/AbstractOrganizationInfoActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/EditOrganizationInfoActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/OrganizationInfoActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ProxyConnectorsActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryArchivaDAOStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArchivaDAOStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArtifactDAOStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRepositoryGroupActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ProjectModelDAOStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryContentStatisticsDAOStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryGroupsActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/SortRepositoriesActionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/ArtifactDAOStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/RssFeedServletTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/SecuritySystemStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/UserRepositoriesStub.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/startup/BannerTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/META-INF/plexus/components.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/artifact.jar delete mode 100755 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/banner.gz delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorActionTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorActionTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesActionTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesActionTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/rss/RssFeedServletTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/webapp/WEB-INF/feedServletTest-web.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/webapp/WEB-INF/web.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavLocatorFactory.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSession.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProvider.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaVirtualDavResource.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/BrowserRedirectException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/LogicalResource.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryLocator.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/UnauthorizedDavException.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/IndexWriter.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/MimeTypes.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/RepositoryPathUtil.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/WebdavMethodUtil.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/resources/org/apache/maven/archiva/webdav/util/mime.types delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletProxiedMetadataTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProviderTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavSessionTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/BypassSecuritySystem.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/MimeTypesLoaderTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletDeployTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletNoProxyMetadataTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletNoProxyTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedMetadataLocalOnlyTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedMetadataRemoteOnlyTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedPassthroughTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedPluginSnapshotPolicyTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedReleasePolicyTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedRelocatedTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedSnapshotPolicyTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletRepositoryGroupTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/StubRepositoryContentConsumers.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedDavResourceFactory.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedDavSessionProvider.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedRepositoryServlet.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/httpunit/MkColMethodWebRequest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/util/MimeTypesTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/util/RepositoryPathUtilTest.java delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/META-INF/plexus/components.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/repository-servlet-security-test/web.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/web.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/archiva-mime-types.txt delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/artifact.jar delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/log4j.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/repository-archiva.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentBasicTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentIndexHtmlTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentMultiTest.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleWebdavServer.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/repository-archiva.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/webapp/WEB-INF/web.xml delete mode 100644 archiva-security-fix/archiva-modules/archiva-web/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/pom.xml delete mode 100644 archiva-security-fix/archiva-modules/src/site/site.xml delete mode 100644 archiva-security-fix/pom.xml delete mode 100644 archiva-security-fix/src/main/assembly/src.xml diff --git a/archiva-security-fix/LICENSE b/archiva-security-fix/LICENSE deleted file mode 100644 index 774a48b13..000000000 --- a/archiva-security-fix/LICENSE +++ /dev/null @@ -1,261 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. - - - -For the Java Service Wrapper (v3.2.3): - -Copyright (c) 1999, 2006 Tanuki Software, Inc. - -Permission is hereby granted, free of charge, to any person -obtaining a copy of the Java Service Wrapper and associated -documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sub-license, -and/or sell copies of the Software, and to permit persons to -whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - - -Portions of the Software have been derived from source code -developed by Silver Egg Technology under the following license: - -BEGIN Silver Egg Techology License ----------------------------------- - - Copyright (c) 2001 Silver Egg Technology - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sub-license, and/or - sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - -END Silver Egg Techology License ------------------------------------- - diff --git a/archiva-security-fix/archiva-cli/pom.xml b/archiva-security-fix/archiva-cli/pom.xml deleted file mode 100644 index 70f20a3ce..000000000 --- a/archiva-security-fix/archiva-cli/pom.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - org.apache.archiva - archiva - 1.2-SNAPSHOT - - 4.0.0 - archiva-cli - Archiva Command Line Client - - - org.apache.archiva - archiva-repository-layer - - - org.apache.archiva - archiva-dependency-tree-consumer - 1.2-SNAPSHOT - runtime - - - org.apache.archiva - archiva-xml-tools - - - org.apache.archiva - archiva-converter - - - org.apache.maven.wagon - wagon-file - - - com.google.code.cli-parser - cli - 7 - - - org.slf4j - slf4j-log4j12 - runtime - - - org.codehaus.plexus - plexus-spring - - - org.slf4j - jcl104-over-slf4j - - - - - - org.apache.maven.plugins - maven-shade-plugin - 1.0.1 - - - package - - shade - - - apache-archiva-cli-${project.version} - - - - - - xerces:xercesImpl - xml-apis:xml-apis - xalan:xalan - commons-beanutils:commons-beanutils - commons-io:commons-io - - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 2.1 - - - - org.apache.maven.archiva.cli.ArchivaCli - - - - - - - diff --git a/archiva-security-fix/archiva-cli/src/main/assembly/archiva-cli-assembly.xml b/archiva-security-fix/archiva-cli/src/main/assembly/archiva-cli-assembly.xml deleted file mode 100644 index 7b81464b4..000000000 --- a/archiva-security-fix/archiva-cli/src/main/assembly/archiva-cli-assembly.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - cli - false - - jar - - - - target/classes - / - - - src/main/resources - / - - - - - / - true - runtime - - xml-apis:xml-apis - xalan:xalan - - - - diff --git a/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/AbstractProgressConsumer.java b/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/AbstractProgressConsumer.java deleted file mode 100644 index 9082418c2..000000000 --- a/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/AbstractProgressConsumer.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.cli; - -/* - * 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.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.RepositoryContentConsumer; - -/** - * AbstractProgressConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractProgressConsumer - extends AbstractMonitoredConsumer - implements RepositoryContentConsumer -{ - private int count = 0; - - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - this.count = 0; - } - - public void processFile( String path ) - throws ConsumerException - { - count++; - if ( ( count % 1000 ) == 0 ) - { - System.out.println( "Files Processed: " + count ); - } - - } - - public void completeScan() - { - System.out.println( "Final Count of Artifacts processed by " + getId() + ": " + count ); - } - -} diff --git a/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java b/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java deleted file mode 100644 index 4462dbcb2..000000000 --- a/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java +++ /dev/null @@ -1,285 +0,0 @@ -package org.apache.maven.archiva.cli; - -/* - * 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.IOException; -import java.net.MalformedURLException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.ConsumerException; -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.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; - -import com.sampullara.cli.Args; -import com.sampullara.cli.Argument; - -/** - * ArchivaCli - * - * @todo add back reading of archiva.xml from a given location - * @author Jason van Zyl - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaCli -{ - // ---------------------------------------------------------------------------- - // Properties controlling Repository conversion - // ---------------------------------------------------------------------------- - - public static final String SOURCE_REPO_PATH = "sourceRepositoryPath"; - - public static final String TARGET_REPO_PATH = "targetRepositoryPath"; - - public static final String BLACKLISTED_PATTERNS = "blacklistPatterns"; - - private static String getVersion() - throws IOException - { - Properties properties = new Properties(); - properties.load( ArchivaCli.class.getResourceAsStream( "/META-INF/maven/org.apache.archiva/archiva-cli/pom.properties" ) ); - return properties.getProperty( "version" ); - } - - private PlexusClassPathXmlApplicationContext applicationContext; - - public ArchivaCli() - { - applicationContext = - new PlexusClassPathXmlApplicationContext( new String[] { "classpath*:/META-INF/spring-context.xml", - "classpath*:/META-INF/plexus/components.xml" } ); - } - - public static void main( String[] args ) - throws Exception - { - Commands command = new Commands(); - - try - { - Args.parse( command, args ); - } - catch ( IllegalArgumentException e ) - { - System.err.println( e.getMessage() ); - Args.usage( command ); - return; - } - - new ArchivaCli().execute( command ); - } - - private void execute( Commands command ) - throws Exception - { - if ( command.help ) - { - Args.usage( command ); - } - else if ( command.version ) - { - System.out.print( "Version: " + getVersion() ); - } - else if ( command.convert ) - { - doConversion( command.properties ); - } - else if ( command.scan ) - { - if ( command.repository == null ) - { - System.err.println( "The repository must be specified." ); - Args.usage( command ); - return; - } - - doScan( command.repository, command.consumers.split( "," ) ); - } - else if ( command.listConsumers ) - { - dumpAvailableConsumers(); - } - else - { - Args.usage( command ); - } - } - - private void doScan( String path, String[] consumers ) - throws ConsumerException, MalformedURLException - { - // hack around poorly configurable project builder by pointing all repositories back at this location to be self - // contained - WagonManager wagonManager = - (WagonManager) applicationContext.getBean( PlexusToSpringUtils.buildSpringId( WagonManager.class.getName() ) ); - wagonManager.addMirror( "internal", "*", new File( path ).toURL().toExternalForm() ); - - ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration(); - repo.setId( "cliRepo" ); - repo.setName( "Archiva CLI Provided Repo" ); - repo.setLocation( path ); - - List knownConsumerList = new ArrayList(); - - knownConsumerList.addAll( getConsumerList( consumers ) ); - - List invalidConsumerList = Collections.emptyList(); - - List ignoredContent = new ArrayList(); - ignoredContent.addAll( Arrays.asList( RepositoryScanner.IGNORABLE_CONTENT ) ); - - RepositoryScanner scanner = (RepositoryScanner) lookup( RepositoryScanner.class ); - - try - { - RepositoryScanStatistics stats = - scanner.scan( repo, knownConsumerList, invalidConsumerList, ignoredContent, - RepositoryScanner.FRESH_SCAN ); - - System.out.println( "\n" + stats.toDump( repo ) ); - } - catch ( RepositoryException e ) - { - e.printStackTrace( System.err ); - } - } - - private Object lookup( Class clazz ) - { - return applicationContext.getBean( PlexusToSpringUtils.buildSpringId( clazz.getName(), null ) ); - } - - private List getConsumerList( String[] consumers ) - throws ConsumerException - { - List consumerList = new ArrayList(); - - Map availableConsumers = getConsumers(); - - for ( String specifiedConsumer : consumers ) - { - if ( !availableConsumers.containsKey( specifiedConsumer ) ) - { - System.err.println( "Specified consumer [" + specifiedConsumer + "] not found." ); - dumpAvailableConsumers(); - System.exit( 1 ); - } - - consumerList.add( availableConsumers.get( specifiedConsumer ) ); - } - - return consumerList; - } - - private void dumpAvailableConsumers() - { - Map availableConsumers = getConsumers(); - - System.out.println( ".\\ Available Consumer List \\.______________________________" ); - - for ( Map.Entry entry : availableConsumers.entrySet() ) - { - String consumerHint = (String) entry.getKey(); - RepositoryContentConsumer consumer = (RepositoryContentConsumer) entry.getValue(); - System.out.println( " " + consumerHint + ": " + consumer.getDescription() + " (" - + consumer.getClass().getName() + ")" ); - } - } - - @SuppressWarnings( "unchecked" ) - private Map getConsumers() - { - return PlexusToSpringUtils.lookupMap( "knownRepositoryContentConsumer", applicationContext ); - } - - private void doConversion( String properties ) - throws FileNotFoundException, IOException, RepositoryConversionException - { - LegacyRepositoryConverter legacyRepositoryConverter = - (LegacyRepositoryConverter) lookup( LegacyRepositoryConverter.class ); - - Properties p = new Properties(); - - p.load( new FileInputStream( properties ) ); - - File oldRepositoryPath = new File( p.getProperty( SOURCE_REPO_PATH ) ); - - File newRepositoryPath = new File( p.getProperty( TARGET_REPO_PATH ) ); - - System.out.println( "Converting " + oldRepositoryPath + " to " + newRepositoryPath ); - - List fileExclusionPatterns = null; - - String s = p.getProperty( BLACKLISTED_PATTERNS ); - - if ( s != null ) - { - fileExclusionPatterns = Arrays.asList( StringUtils.split( s, "," ) ); - } - - legacyRepositoryConverter.convertLegacyRepository( oldRepositoryPath, newRepositoryPath, fileExclusionPatterns ); - } - - private static class Commands - { - @Argument( description = "Display help information", value = "help", alias = "h" ) - private boolean help; - - @Argument( description = "Display version information", value = "version", alias = "v" ) - private boolean version; - - @Argument( description = "List available consumers", value = "listconsumers", alias = "l" ) - private boolean listConsumers; - - @Argument( description = "The consumers to use (comma delimited)", value = "consumers", alias = "u" ) - private String consumers = "count-artifacts"; - - @Argument( description = "Scan the specified repository", value = "scan", alias = "s" ) - private boolean scan; - - @Argument( description = "Convert a legacy Maven 1.x repository to a Maven 2.x repository using a properties file to describe the conversion", value = "convert", alias = "c" ) - private boolean convert; - - @Argument( description = "The properties file for the converstion", value = "properties" ) - private String properties = "conversion.properties"; - - @Argument( description = "The repository to scan", value = "repository" ) - private String repository; - } -} diff --git a/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArtifactCountConsumer.java b/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArtifactCountConsumer.java deleted file mode 100644 index 37fc78020..000000000 --- a/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArtifactCountConsumer.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.apache.maven.archiva.cli; - -/* - * 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; - -import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; - -/** - * ArtifactCountConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="count-artifacts" - * instantiation-strategy="per-lookup" - */ -public class ArtifactCountConsumer - extends AbstractProgressConsumer - implements KnownRepositoryContentConsumer -{ - /** - * @plexus.configuration default-value="count-artifacts" - */ - private String id; - - /** - * @plexus.configuration default-value="Count Artifacts" - */ - private String description; - - private List includes; - - public ArtifactCountConsumer() - { - // TODO: shouldn't this use filetypes? - includes = new ArrayList(); - includes.add( "**/*.pom" ); - includes.add( "**/*.jar" ); - includes.add( "**/*.war" ); - includes.add( "**/*.ear" ); - includes.add( "**/*.sar" ); - includes.add( "**/*.car" ); - includes.add( "**/*.mar" ); - includes.add( "**/*.dtd" ); - includes.add( "**/*.tld" ); - includes.add( "**/*.gz" ); - includes.add( "**/*.bz2" ); - includes.add( "**/*.zip" ); - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - - public List getExcludes() - { - return null; - } - - public List getIncludes() - { - return includes; - } - -} diff --git a/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ProjectReaderConsumer.java b/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ProjectReaderConsumer.java deleted file mode 100644 index 2986574c7..000000000 --- a/archiva-security-fix/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ProjectReaderConsumer.java +++ /dev/null @@ -1,125 +0,0 @@ -package org.apache.maven.archiva.cli; - -/* - * 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.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; - -/** - * ProjectReaderConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="read-poms" - * instantiation-strategy="per-lookup" - */ -public class ProjectReaderConsumer - extends AbstractProgressConsumer - implements KnownRepositoryContentConsumer -{ - /** - * @plexus.configuration default-value="read-poms" - */ - private String id; - - /** - * @plexus.configuration default-value="Read POMs and report anomolies." - */ - private String description; - - private ProjectModelReader reader; - - private ManagedRepositoryConfiguration repo; - - private List includes; - - public ProjectReaderConsumer() - { - reader = new ProjectModel400Reader(); - - includes = new ArrayList(); - includes.add( "**/*.pom" ); - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - - public List getExcludes() - { - return null; - } - - public List getIncludes() - { - return includes; - } - - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - super.beginScan( repository, whenGathered ); - this.repo = repository; - } - - public void processFile( String path ) - throws ConsumerException - { - super.processFile( path ); - - File pomFile = new File( repo.getLocation(), path ); - try - { - ArchivaProjectModel model = reader.read( pomFile ); - if ( model == null ) - { - System.err.println( "Got null model on " + pomFile ); - } - } - catch ( ProjectModelException e ) - { - System.err.println( "Unable to process: " + pomFile ); - e.printStackTrace( System.out ); - } - } -} diff --git a/archiva-security-fix/archiva-cli/src/main/resources/log4j.properties b/archiva-security-fix/archiva-cli/src/main/resources/log4j.properties deleted file mode 100644 index ff5b14c77..000000000 --- a/archiva-security-fix/archiva-cli/src/main/resources/log4j.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Set root logger level to DEBUG and its only appender to A1. -log4j.rootLogger=ERROR, A1 - -# A1 is set to be a ConsoleAppender. -log4j.appender.A1=org.apache.log4j.ConsoleAppender - -# A1 uses PatternLayout. -log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=[%t] %-5p %c %x - %m%n - diff --git a/archiva-security-fix/archiva-docs/pom.xml b/archiva-security-fix/archiva-docs/pom.xml deleted file mode 100644 index bd38f139e..000000000 --- a/archiva-security-fix/archiva-docs/pom.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - org.apache.archiva - archiva - 1.2-SNAPSHOT - - 4.0.0 - archiva-docs - pom - Archiva Documentation - http://archiva.apache.org/docs/${project.version}/ - - - - - maven-site-plugin - - - site - package - - site - - - - - - maven-assembly-plugin - 2.1 - - src/site/assembly/docs.xml - - - - package - - single - - - - - - apache-archiva-${project.version} - - - - true - - - org.apache.maven.plugins - maven-project-info-reports-plugin - 2.0.1 - - - - license - project-team - - - - - - - - - - apache.website - ${siteBaseDeployment}/docs/${project.version} - - - - - - release - - - - - maven-site-plugin - - - deploy - deploy - - deploy - - - - - - - - - - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/configuration-files.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/configuration-files.apt deleted file mode 100644 index a26775cb4..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/configuration-files.apt +++ /dev/null @@ -1,68 +0,0 @@ - ------ - Configuration Files of Apache Archiva - ------ - -Configuration Files of Apache Archiva - - While Archiva is primarily configured via the graphical administration interface, it stores all configuration in XML configuration - files that can be hand edited and used for backup and migration. - - The following files compose the configuration for Archiva: - - * <<>> - this is the primary Archiva configuration file - - * <<>> - this configures the security as described in the {{{security.html} security configuration documentation}} - - * <<>> - only applies when running the standalone Archiva instance, as described in the {{{standalone.html} installing Archiva standalone documentation}} - - This section will focus on the <<>> file. - -* The Archiva configuration file - - The Archiva configuration file is stored in one of two locations: - - * The application server configuration directory (see {{{standalone.html} installing Archiva standalone}} for more information) - - * The user home directory (<<<~/.m2/archiva.xml>>>). - - [] - - When modified in the GUI, the file is written back to the location it was initially read from, with the home directory taking priority if both exist. When using a - standalone installation, it is highly recommended that a configuration file is only maintained in one of the locations. - - The following shows a basic configuration file: - ----- - - 2 - - - ${appserver.base}/repositories/internal - 30 - internal - Archiva Managed Internal Repository - - - - - http://repo1.maven.org/maven2 - central - Central Repository - - - - - internal - central - - always - fix - never - no - - - - ----- - - ~~TODO: need a full reference diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/configuration.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/configuration.apt deleted file mode 100644 index 346f7f206..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/configuration.apt +++ /dev/null @@ -1,22 +0,0 @@ - ------ - Runtime Configuration of Apache Archiva - ------ - -Runtime Configuration of Apache Archiva - - Archiva is primarily configured via the graphical administration interface. - - The following describe the various sections of the administration menu: - - * {{{repositories.html} Configuring repositories}} - - * {{{proxy-connectors.html} Configuring proxy connectors}} - - * {{{network-proxies.html} Configuring network proxies}} - - * {{{legacy.html} Configuring legacy (maven 1) support}} - - * {{{consumers.html} Configuring repository scanning and consumers}} - - [] - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/consumers.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/consumers.apt deleted file mode 100644 index e7f6ee7ef..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/consumers.apt +++ /dev/null @@ -1,91 +0,0 @@ - ------ - Understanding Consumers in Apache Archiva - ------ - Maria Odea Ching - ------ - 21 Nov 2007 - ------ - -~~ 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. - -~~ NOTE: For help with the syntax of this file, see: -~~ http://maven.apache.org/guides/mini/guide-apt-format.html - -Understanding Consumers in Apache Archiva - - Archiva makes use of the concept of consumers. Consumers are components which consumes or processes an artifact. There are 2 types - of consumers in Archiva: repository content consumers and database consumers. - -* Repository Content Consumers - - The repository content consumers consume or process artifacts during repository scanning. For every artifact found in the repository, - each consumer processes them. There are 8 available repository content consumers which can be configured in the Repository Scanning - page. These are: - - * - Removes files in the repository being scanned if the file type matches any of the configured file types to be removed. - - * - Automatically renames common artifact mistakes. - - * - Creates the md5 and sha1 checksum files of the artifact if there are none available in the repository. - - * - Adds the content of the artifact (specifically the pom) to the index, allowing the artifact to be searched in Archiva. - - * - Updates artifact metadata files depending on the content of the repository. - - * - Removes old snapshots from the repository either by the number of days old or by the retention count. - - * - Adds the artifact (in the form of ArchivaArtifact) to the database. - - * - Validates the checksum files of the artifact. - -* Database Consumers - - The database consumers, on the other hand, consume or process artifacts during database scanning. The database consumers are split up - into two types: the unprocessed artifacts consumers and the artifact cleanup consumers. - - [[1]] Unprocessed Artifacts Consumers - - These are consumers for those artifacts already in the index that haven't been processed yet, meaning the details about the artifact - are not yet processed and stored in the database. There are 6 unprocessed artifact consumers which can be configured in the - Database page: - - * - Verifies repository metadata files against database. - - * - Indexes the archiva table of contents for full text search. - - * - Indexes the artifact for the 'Find Artifact' functionality. - - * - Gets the details of the artifact from the pom and saves it into the database (as a project model) - - * - Indexes the java public methods for full text search. - - * - Updates database with java bytecode stats. - - [] - [] - [[2]] Artifact Cleanup Consumers - - These are the consumers for cleaning up the database. There are 3 which can be configured in the Database page, and these are: - - * - Removes the artifact from the database if the artifact no longer exists in the file system. - - * - Removes the artifact from the index if the artifact no longer exists in the file system. - - * - Removes the project model of the artifact from the database if the artifact itself no longer exists in the file system. - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/customising-security.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/customising-security.apt deleted file mode 100644 index ffc7ed41e..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/customising-security.apt +++ /dev/null @@ -1,50 +0,0 @@ - ----- - Archiva Security Configuration - ----- - -Archiva Security Configuration - - Security properties and password rules can be configured in the - <<>> file, which by default is searched for in: - - * <<<~/.m2/security.properties>>> - - * <<>> in the Archiva installation - - [] - - (In the above list, <<<~>>> is the home directory of the user who is running - Archiva.) - -~~TODO: Link to plexus-redback documentation when available - - Following are some of the properties you can modify. For a complete list, - consult the default properties file in Redback's svn repo: - {{{http://svn.codehaus.org/redback/redback/trunk/redback-configuration/src/main/resources/org/codehaus/plexus/redback/config-defaults.properties} - config-defaults.properties}} - -+-----+ -# Security Policies -#security.policy.password.encoder= -security.policy.password.previous.count=6 -security.policy.password.expiration.days=90 -security.policy.allowed.login.attempt=3 - -# Password Rules -security.policy.password.rule.alphanumeric.enabled=false -security.policy.password.rule.alphacount.enabled=true -security.policy.password.rule.alphacount.minimum=1 -security.policy.password.rule.characterlength.enabled=true -security.policy.password.rule.characterlength.minimum=1 -security.policy.password.rule.characterlength.maximum=8 -security.policy.password.rule.musthave.enabled=true -security.policy.password.rule.numericalcount.enabled=true -security.policy.password.rule.numericalcount.minimum=1 -security.policy.password.rule.reuse.enabled=true -security.policy.password.rule.nowhitespace.enabled=true -+-----+ - - <> If installed standalone, Archiva's list of configuration files is configurable, and - can be found in: - <<>> - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/databases.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/databases.apt deleted file mode 100644 index cd56a98fd..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/databases.apt +++ /dev/null @@ -1,93 +0,0 @@ - ------ - Apache Archiva Databases - ------ - -Apache Archiva Databases - - Archiva uses an external database for two purposes: - - * Storing artifact information - - * As a default user store for security - - [] - - Generally, it is unnecessary to configure anything - the built in embedded database is suitable for the artifact management, and if - an external authentication mechanism is not needed, the user database. - - However, it is possible to configure an external database as needed. - -* Configuring an external database - - Archiva uses JNDI data sources to locate the databases to use: - - * <<>> - the repository database - - * <<>> - the user store - - Configuring an external database for either or both of these sources depends is configured in <<>> if you are using the - {{{standalone.html} standalone installation}}, or in the application server configuration if you are using the {{{webapp.html} web application - installation}}. - - By default the archiva and users databases are stored in the <<>> directory where Archiva is installed. To change the - path, just edit all instances of the "DatabaseName" property in <<>> (see below). - -+------+ -... - - jdbc/archiva - - - /path/to/database/directory/archiva - sa - create - - - - - - jdbc/archivaShutdown - - - /path/to/database/directory/archiva - sa - shutdown - - - - - - jdbc/users - - - /path/to/database/directory/users - sa - create - - - - - - jdbc/usersShutdown - - - /path/to/database/directory/users - sa - shutdown - - - -... -+------+ - -* Backing up the database - - While it is a good idea to back up both databases, it is not strictly necessary to back up the repository database on a regular basis. Should any - data loss be suffered, this database can be regenerated by deleting it's contents and re-scanning the repositories. - - If you are using the default user security mechanism, it is important to back up the users database on a regular basis to ensure that the user - passwords and information are not lost in the event of corruption. With the default embedded storage this is simply a matter of making a copy of - the database directory on the filesystem. If you have configured an external database as the source for user information, please refer to your - database documentation for backup instructions. - -~~TODO: link to wiki location that does others diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/index.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/index.apt deleted file mode 100644 index 771f900cb..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/index.apt +++ /dev/null @@ -1,26 +0,0 @@ - ------ - System Administrators Guide to Apache Archiva - ------ - -System Administrators Guide to Apache Archiva - - Archiva is designed to be simple to install and maintain - including both manual configuration files and a comprehensive - graphical administration interface. - - The following sections describe the process for configuring Archiva for use: - - * {{{installing.html} Installing Archiva}} - - * {{{databases.html} Configuring databases for Archiva}} - - * {{{security.html} Configuring security for Archiva}} - - * {{{configuration.html} Using the graphical administration interface}} - - * {{{configuration-files.html} The configuration files available for Archiva}} - - * {{{reports.html} Repository health reports}} - - [] - - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/installing.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/installing.apt deleted file mode 100644 index 1aba9bd96..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/installing.apt +++ /dev/null @@ -1,15 +0,0 @@ - ------ - Installing Apache Archiva - ------ - -Installing Apache Archiva - - Whether you choose to install Archiva as a standalone application or as a web application in your preferred Java EE - application server, only a minimal amount of configuration is necessary. - - The following documents cover the different installation alternatives: - - * {{{standalone.html} Installing standalone}} - - * {{{webapp.html} Installing as a web application}} - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/legacy.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/legacy.apt deleted file mode 100644 index 238429d38..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/legacy.apt +++ /dev/null @@ -1,44 +0,0 @@ - ------ - Apache Archiva legacy repository support configuration - ------ - -Apache Archiva legacy repository support configuration - - Archiva supports both Maven 1 and Maven 2 clients transparently when used as a proxy. The - underlying managed repository can use either the default or legacy layout, and Archiva will - convert the requested path to the expected internal format. - - However, due to the lack of structure in maven 1 "legacy" artifact request format, - Archiva must split the request path to discover artifactId, version and - classifier - and this is not always deterministic. - The strategy used by Archiva has been tested on many existing artifacts in the public central - repository, but users may require support for private artifacts or for - artifacts with classifiers. - - Since version 1.0.1, Archiva provides a legacy support configuration to the administrator. It - is possible to register some custom legacy path and the expected artifact - reference. Archiva will check that the entered artifact reference matches - the legacy path, to avoid corrupted data in repository. - - For example: - - * Path: <<>> - - * Group ID: <<>> - - * Artifact ID: <<>> - - * Version: <<<1.0-FCS>>> - - * Classifier: <<>> - - * Type: <<>> - - This prevents the artifact incorrectly getting translated to a version of <<<1.0>>> and a classifier of <<>>. - - Those custom legacy path are stored in the archiva.xml configuration file. - By default, <<>> is registered, as it is used by some core - Maven 1 plugins (however this is not the case if you upgraded from a previous - version and retained your configuration file). - - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/network-proxies.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/network-proxies.apt deleted file mode 100644 index 320cac109..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/network-proxies.apt +++ /dev/null @@ -1,21 +0,0 @@ - ------ - Understanding Network Proxy Configuration of Apache Archiva - ------ - -Understanding Network Proxy Configuration of Apache Archiva - - Archiva uses the terminology "proxy" for two different concepts: - - * The remote repository proxying cache, as configured through {{{proxy-connectors.html} proxy connectors}} between repositories - - * Network proxies, which are traditional protocol based proxies (primarily for HTTP access to remote repositories over a firewall) - - [] - - Network proxies are configured using standard HTTP proxy settings as provided by your network administrator. - - Once configured, the network proxy can be attached to operations that access remote resources. At present, this is configured on the - remote repository proxy connectors that need to access the remote repository over the HTTP protocol. - - ~~TODO: walkthrough configuration - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/proxy-connectors.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/proxy-connectors.apt deleted file mode 100644 index 5737091be..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/proxy-connectors.apt +++ /dev/null @@ -1,68 +0,0 @@ - ------ - Understanding Proxy Connector Configuration of Apache Archiva - ------ - -Understanding Proxy Connector Configuration of Apache Archiva - - Archiva uses the terminology "proxy" for two different concepts: - - * The remote repository proxying cache, as configured through proxy connectors between repositories - - * {{{network-proxies.html} Network proxies}}, which are traditional protocol based proxies (primarily for HTTP access to remote repositories over a firewall) - - [] - - A proxy connector is used to link a managed repository (stored on the Archiva machine) to a remote repository (accessed via a URL). This will mean that when a request - is received by the managed repository, the connector is consulted to decide whether it should request the resource from the remote repository (and potentially cache - the result locally for future requests). - - Each managed repository can proxy multiple remote repositories to allow grouping of repositories through a single interface inside the Archiva instance. For instance, - it is common to proxy all remote releases through a single repository for Archiva, as well as a single snapshot repository for all remote snapshot repositories. - - A basic proxy connector configuration simply links the remote repository to the managed repository (with an optional network proxy for access through a firewall). - However, the behaviour of different types of artifacts and paths can be specifically managed by the proxy connectors to make access to remote repositories more flexibly controlled. - -* Configuring policies - - When an artifact is requested from the managed repository and a proxy connector is configured, the policies for the connector are first consulted to decide whether - to retrieve and cache the remote artifact or not. Which policies are applied depends on the type of artifact. - - By default, Archiva comes with the following policies: - - * <<>> - how to behave for released artifact metadata (those not carrying a <<>> version). This can be set to <<>> (default), <<>>, <<>>, <<>> and <<>>. - - * <<>> - how to behave for snapshot artifact metadata (those carrying a <<>> version). This can be set to <<>> (default), <<>>, <<>>, <<>> and <<>>. - - * <<>> - how to handle incorrect checksums when downloading an artifact from the remote repository (ie, the checksum of the artifact does not match the corresponding detached checksum file). - The options are to fail the request for the remote artifact, fix the checksum on the fly (default), or simply ignore the incorrect checksum - - * <<>> - whether failures retrieving the remote artifact should be cached (to save network bandwidth for missing or bad artifacts), or uncached (default). - - * <<>> - if a remote proxy causes an error, this option determines whether an existing artifact should be returned (error when <<>>), or the error passed on regardless (<<>>). - - * <<>> - if a remote error is encountered, <<>> causes the error to be returned immediately, <<>> will return all errors after checking for other successful remote repositories first, and <<>> will disregard ay errors. - - [] - -* Configuring whitelists and blacklists - - By default, all artifact requests to the managed repository are proxied to the remote repository via the proxy connector if the policies pass. However, it can be more efficient to - configure whitelists and blacklists for a given remote repository that match the expected artifacts to be retrieved. - - If only a whitelist is configured, all requests not matching one of the whitelisted elements will be rejected. Conversely, if only a blacklist is configured, all requests not matching one of - the blacklisted elements will be accepted (while those matching will be rejected). If both a whitelist and blacklist are defined, a path must be listed in the whitelist and not in the blacklist - to be accepted - all other requests are rejected. - - The path in the whitelist or blacklist is a repository path, and not an artifact path, and matches the request and format of the remote repository. The characters <<<*>>> and <<<**>>> are wildcards, - with <<<*>>> matching anything in the current path, while <<<**>>> matches anything in the current path and deeper in the directory hierarchy. - - For instance, to only retrieve artifacts in the Apache group ID from a repository, but no artifacts from the Maven group ID, you would configure the following: - - * White list: <<>> - - * Black list: <<>> - - [] - - ~~TODO: walkthrough configuration - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/reports.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/reports.apt deleted file mode 100644 index eb95a950b..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/reports.apt +++ /dev/null @@ -1,66 +0,0 @@ - ------ - Making the most of Reporting in Apache Archiva - ------ - Maria Odea Ching - ------ - 12 Nov 2007 - ------ - -~~ 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. - -~~ NOTE: For help with the syntax of this file, see: -~~ http://maven.apache.org/guides/mini/guide-apt-format.html - -Making the most of Reporting in Apache Archiva - - Reporting in Archiva is currently limited to a detailed listing of the problematic artifacts in the different - repositories. Problematic artifacts are those artifacts that were detected by Archiva to have defects (ex. - the versions in the pom and in the artifact itself do not match). - -* Configuring a Report - - There are 3 fields which can be configured when viewing the reports. These are: the number of rows per page, - the group id and the repository. - - 1. Setting the row count. This field is for configuring the number of rows or artifacts to be displayed per page - of the report. By default, this is set to 100. The minimum number of rows per page is 10 and the maximum number - of rows is 1000. - - 2. Setting the group id. The group id pertains to the group id of the artifact (ex. org.apache.maven.plugins). - This field has a blank default value -- meaning, show defective artifacts which has any group id. - - 3. Setting the repository. You can view the defective artifacts found on specific repositories by setting the - repository field. By default, it is set to All Repositories. Please note that the repository field options list - only contains the repositories which have one or more defective artifacts in it. So not all the repositories - you have configured in the Repositories section will show up in this list, unless of course they all contain - defective artifacts. - -* Contents of a Report - - The Show Report button will display a detailed list of problematic artifacts filtered according to the - configuration you've set. Below is a sample Archiva report: - - -[../images/archiva-report.jpg] Archiva Report - - You can see in the sample report that there are links to the groupId and artifactId directories - of each artifact. Clicking on any of these links will bring you to the appropriate navigation page in the - Repository Browse. Going back to the report, shown below the links is the specific problem or defect of the - artifact. These are usually detected during repository or database scanning. The page number is also displayed on - the lower left-hand part of the report. - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/repositories.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/repositories.apt deleted file mode 100644 index e7d97bc74..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/repositories.apt +++ /dev/null @@ -1,180 +0,0 @@ - ------ - Understanding Repository Configuration of Apache Archiva - ------ - Maria Odea Ching - ------ - 13 Nov 2007 - ------ - -~~ 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. - -~~ NOTE: For help with the syntax of this file, see: -~~ http://maven.apache.org/guides/mini/guide-apt-format.html - -Understanding Repository Configuration of Apache Archiva - -~~TODO: revise more as suggested by Jeff in the dev list - - Archiva has two types of repository configuration: managed repository and remote repository. - -* Managed Repository - - A managed repository is a repository which resides locally to the server where Archiva is running. It could serve as a - proxy repository, an internal deployment repository or a local mirror repository. - - Managed repository fields: - - * - the id of the repository. This must be unique. - - * - the name of the repository. - - * - the location of the repository. If the path specified does not exist, Archiva will create the missing - directories. - - * - the repository layout (maven 2 or maven 1) - - * - the {{{http://quartz.sourceforge.net/javadoc/org/quartz/CronTrigger.html}cron schedule}} when repository scanning will be executed. - - * - the first option for repository purge. Archiva will check how old the artifact is - and if it is older than the set number of days in this field, then the artifact will be deleted respecting the retention - count (see #7) of course. In order to disable the purge by number of days old and set Archiva to purge by retention count, just set the - repository purge field to 0. The maximum number of days which can be set here is 1000. See the Repository Purge section - below for more details. - - * - the second option for repository purge. When running the repository purge, Archiva - will retain only the number of artifacts set for this field for a specific snapshot version. See the Repository Purge section - below for more details. - - * - specifies whether there are released artifacts in the repository. - - * - specifies whether there are snapshot artifacts in the repository. - - * - specifies whether the repository can be scanned, meaning it is a local repository which can be indexed, browsed, - purged, etc. - - * - specifies whether to remove those snapshot artifacts which already has release versions - of it in the repository during repository purge. - - [] - - Each repository has its own Webdav url. This allows the user to browse and access the repository via webdav. The url has the - following format: - -+----+ -http://[URL TO ARCHIVA]/repository/[REPOSITORY ID] (e.g. http://localhost:8080/archiva/repository/releases). -+----+ - - A pom snippet is also available for each repository. The \ section can be copied and pasted into a - project's pom to specify that the project will be deployed in that managed repository. The \ section on the - other hand, can be copied and pasted to a project's pom.xml or to Maven's settings.xml to tell Maven to get artifacts - from the managed repository when building the project. - -* Remote Repository - - A remote repository is a repository which resides remotely. These repositories are usually the proxied repositories. See - Proxy Connectors on how to proxy a repository. - - Remote repository fields: - - * - the id of the remote repository. - - * - the name of the remote repository. - - * - the url of the remote repository. It is also possible to use a 'file://' url to proxy a local repository. Be careful that if this local repository is a managed repository of archiva which has some proxies connectors, those ones won't be triggered. - - * - the username (if authentication is needed) to be used to access the repository. - - * - the password (if authentication is needed) to be used to access the repository. - - * - the layout (maven 2 or maven 1) of the remote repository. - -* Scanning a Repository - - Repository scan can be executed on schedule or it can be explicitly executed by clicking the 'Scan Repository Now' button in - the repositories page. For every artifact found by the repository scanner, processing is done on this artifact by different - consumers. Examples of the processing done are: indexing, repository purge and database update. Details about consumers are - available in the {{{consumers.html} Consumers}} page. - -* Repository Purge - - Repository purge is the process of cleaning up the repository of old snapshots. When deploying a snapshot to a repository, - Maven deploys the project/artifact with a timestamped version. Doing daily/nightly builds of the project then tends to bloat - the repository. What if the artifact is large? Then disk space will definitely be a problem. That's where Archiva's repository - purge feature comes in. Given a criteria to use -- by the number of days old and by retention count, it would clean up the - repository by removing old snapshots. - - Please take note that the by number of days old criteria is activated by default (set to 100 days). In order to de-activate it and - use the by retention count criteria, you must set the Repository Purge By Days Older field to 0. Another thing to note here is that - if the by number of days old criteria is activated, the retention count would still be respected (See the Repository Purge By Days Older - section below for more details) but not the other way around. - - Let's take a look at different behaviours for repository purge using the following scenario: - -+----+ -Artifacts in the repository: - -../artifact-x/2.0-SNAPSHOT/artifact-x-20061118.060401-2.jar -../artifact-x/2.0-SNAPSHOT/artifact-x-20061118.060401-2.pom -../artifact-x/2.0-SNAPSHOT/artifact-x-20070113.034619-3.jar -../artifact-x/2.0-SNAPSHOT/artifact-x-20070113.034619-3.pom -../artifact-x/2.0-SNAPSHOT/artifact-x-20070203.028902-4.jar -../artifact-x/2.0-SNAPSHOT/artifact-x-20070203.028902-4.pom -+----+ - - [[1]] Repository Purge By Days Older - - Using this criteria for the purge, Archiva will check how old an artifact is and if it is older than the set value in the - repository purge by days older field, then the artifact will be deleted respecting the retention count of course. - - If repository purge by days older is set to 100 days (with repository purge by retention count field set to 1), - and the current date is let's say 03-01-2007, given the scenario above.. the following artifacts will be retained: - artifact-x-20070113.034619-3.jar, artifact-x-20070113.034619-3.pom, artifact-x-20070203.028902-4.jar and - artifact-x-20070203.028902-4.pom. It is clear in the version timestamps that these 4 artifacts are not more than - 100 days old from the current date (which is 03-01-2007 in our example) so they are all retained. In this case - the retention count doesn't have any effect since the priority is the age of the artifact. - - Now, if the repository purge by days older is set to 30 days (with repository purge by retention count field still - set to 1) and the current date is still 03-01-2007, then given the same scenario above.. only the following artifacts - will be retained: artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom. In this case, we can see - that the retained artifacts are still not older by the number of days set in the repository purge by days older field - and the retention count is still met. - - Now, let's set the repository purge by days older to 10 days (with repository purge by retention count field still - set to 1) and the current date is still 03-01-2007, then still given the same repository contents above.. the - following artifacts will still be retained: artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom. - It is clear from the version timestamps that the artifacts ARE MORE THAN the repository purge by days older value, - which is 10 days. Why is it still retained? Recall the value of the repository purge by retention count -- 1 :) - This ensures that there is ALWAYS 1 artifact timestamped version retained for every unique version snapshot directory - of an artifact. - - [[2]] Repository Purge By Retention Count - - If the repository purge by retention count field is set to 2, then only the artifacts artifact-x-20070113.034619-3.jar, - artifact-x-20070113.034619-3.pom, artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom will be retained - in the repository. The oldest snapshots will be deleted maintaining only a number of snapshots equivalent to the set - retention count (regardless of how old or new the artifact is). - -* Scanning a Database - - Another scanning process also occurs in Archiva, the database scanning. Same as with repository scanning, - it can also be executed on schedule or explicitly. This can be configured in the 'Database' page, via the 'Database - - Unprocessed Artifacts Scanning' section. - - It is essential that the database scan occur after the repo scan as this is where the pom information of the artifacts in - the database will be processed by the consumers and in turn, added to the database (as ArchivaProjectModel objects). For - more details about the different database consumers, please see the {{{consumers.html} Consumers}} page. \ No newline at end of file diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/roles.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/roles.apt deleted file mode 100644 index c819ebc34..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/roles.apt +++ /dev/null @@ -1,44 +0,0 @@ - ------ - Understanding Apache Archiva Security Roles - ------ - -Understanding Apache Archiva Security Roles - - Archiva uses the {{{http://redback.codehaus.org/} Redback}} security framework for managing repository security. When the server is first started, - you will be prompted to create an administration user. This user will be given permission to administer all aspects of the system (as well as - access to all of the repositories). This user can then be used to grant permissions to other users. - - A guest user is also created by default, and given read access to the default repositories (<<>> and <<>>). Repositories with - guest user access can be accessed without the use of a username and password (or without being logged in to the web interface). - - However, when new repositories are created, by default no permissions are assigned and only the administrators will have access until it is - explicitly granted. - - Note that Redback has the concept of inferred roles, so the assignment of some roles will imply other roles (which will be displayed in the web interface). - -* Repository Roles - - Archiva contains the following roles for repository access: - - * : users with this role can read from the given repository that the role is for (including access through the browse and search features of the - web interface) - - * : users with this role can write to and administer the given repository that the role is for - - * : users with this role can read from any repository (including access through the browse and search features of the - web interface) - - * : users with this role can write to and administer any repository in the instance - -* General Roles - - Archiva also contains the following general roles for security of the instance: - - * : full access to all functionality in the system - - * : ability to create, edit, and grant roles to other users in the system - - The guest and registered user roles do not affect repository access. - -~~TODO: walkthrough screens - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/security.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/security.apt deleted file mode 100644 index 043a22239..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/security.apt +++ /dev/null @@ -1,16 +0,0 @@ - ------ - Understanding Apache Archiva Security - ------ - -Understanding Apache Archiva Security - - Archiva's security is managed by {{{http://redback.codehaus.org/} Redback}}. The following document describes how to configure your - repository security: - - * {{{roles.html} Roles in Archiva}} - - * {{{customising-security.html} Customising Security}} - - [] - - ~~TODO: LDAP diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/standalone.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/standalone.apt deleted file mode 100644 index abe065762..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/standalone.apt +++ /dev/null @@ -1,169 +0,0 @@ - ------ - Installing Standalone Distribution of Apache Archiva - ------ - -Installing Standalone Distribution of Apache Archiva - - Installing the standalone distribution of Archiva is quite simple - for an example, see the {{{../quick-start.html} Quick Start}} guide. - - However, the best way to use this installation technique is to separate the configuration from the installation to make it easy to - upgrade to newer versions in the future. - -* Running Archiva - - Archiva can be run by executing: - - * <<>>, or <<>> for windows (select the one for your environment). The argument can be <<>> to run - interactively, or <<>> to run in the background (in this case, run the script with <<>> to later stop the server). The logs - are available in the <<>> directory where Archiva is installed. - - [] - -* Installing as a Service on Windows - - On Windows, to use the <<>> and <<>> commands you must first install it as a service. This is done by running: - ----- -.\bin\archiva install ----- - - You can then use the <<>> and <<>> commands as well as the traditional Windows service management console to manage the Archiva - service. - - This procedure installs the service to run as the local system user. You must ensure that it has access to read the installation, and to write - to the logs and data directories. - - You can later remove the service with: - ----- -.\bin\archiva remove ----- - -* Separating the base from the installation - - The standalone instance of Archiva uses the Plexus application server, which is capable of separating it's configuration from installation, - in much the same way Tomcat does for example. - - This is achieved by the following steps: - - [[1]] Creating the base location. For example, you might install Archiva in <<>> and the data in <<>>. Create the directories <<>>, <<>> and <<>>. - - [[2]] Copy the configuration files from the Archiva installation (eg <<>> to the new location (eg. <<>>). If you've previously run Archiva, you may need to edit <<>> to change the location of the repositories - - [[3]] Set the environment variable <<>> to the data location (eg. <<>>). In bash, be sure to export the variable. - - [[4]] Start Archiva standalone as described above from the installation location - -* Configuring Archiva - - Archiva's configuration is loaded from the following files, in order of most precedent: - - * <<<~/.m2/archiva.xml>>> - - * <<<$ARCHIVA_BASE/conf/archiva.xml>>> - - * <<>> in the Archiva installation - - When Archiva saves it's configuration, all configuration is stored to a single file. The file chosen is by the following rules: - - * If <<<~/.m2/archiva.xml>>> exists, it is saved there - - * Otherwise, it is saved to <<<$ARCHIVA_BASE/conf/archiva.xml>>>, regardless of whether it previously existed. - - The configuration will never be saved in the Archiva installation directory if you are using a separate base directory. - - Note that the configuration can be edited, but only when Archiva is not running as it will not reload a changed configuration file, and will save over it - if something is changed in the web interface. - -* Database - - By default, Archiva uses embedded {{{http://db.apache.org/derby}Apache Derby}} - to store the user information. It can be configured to use an external database - by providing a JDBC driver and editing the <<>> file. - - [[1]] Place the jar containing the JDBC driver in the <<>> directory of the Archiva installation. - - [[2]] Edit <<>>, providing the JDBC driver class - name, database url, username, and password. - - [] - - The example below uses Mysql for the database server. You can take a look at - {{{http://cwiki.apache.org/confluence/display/ARCHIVA/Archiva+with+MySQL}Archiva with MySQL}} - for more details. - -+------+ - ... - - - - jdbc/archiva - - - localhost - archiva - archiva - sa - - - - - - jdbc/archivaShutdown - - - localhost - archiva - archiva - sa - - - - - - - - jdbc/users - - - localhost - redback - archiva - sa - - - - - - jdbc/usersShutdown - - - jdbc:mysql://localhost/redback - archiva - sa - - - - ... -+------+ - - More information about using Derby Network Server as an external user database - for Archiva can be found on the wiki: - {{{http://cwiki.apache.org/confluence/display/ARCHIVA/Archiva+User+DB+on+Derby+Network+Server} - Archiva User DB on Derby Network Server}} - - -{Upgrading Archiva} - - Upgrading Archiva is straightforward if the directions for separating the base from the installation above are followed. Simply retain the <<>> and <<>> directories, - and the configuration files (in the conf directory, or the other locations specified above) and use a new extracted installation of Archiva. - - Note that the <<>> database must always be retained as it contains the permissions and user information across versions. However, - in order to take advantage of the improvements in search in Archiva 1.1 (and higher versions), s.a. search by java class/package/method, the archiva database must - be re-created. So you need to delete the <<>> directory, delete the <<<.index>>> directories of your respective repositories, and execute the repository and database scanners after - starting Archiva. - - The repository data is portable across versions, and multiple versions can be configured to look at the same repositories (though not run simultaneously). - - - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/webapp.apt b/archiva-security-fix/archiva-docs/src/site/apt/adminguide/webapp.apt deleted file mode 100644 index d2242c537..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/adminguide/webapp.apt +++ /dev/null @@ -1,84 +0,0 @@ - ------ - Installing Apache Archiva as a Web Application - ------ - -Installing Apache Archiva as a Web Application - -~~TODO: link to wiki location for other application servers - - Archiva can be deployed as a web application into any Java EE application server. This document will show an - example of doing so with Tomcat 5.5 and Tomcat 6.0.x. - - <>: When you first start Archiva, you will see an Exception that schema SA does not exist - however it doesn't - cause a problem. If you use a username other than 'sa', such as 'archiva', then you seem to get the same error but - Tomcat fails to start the context and you have to shutdown and restart again. - - -To deploy Archiva on Tomcat 5.5 and Tomcat 6.0 - - * Create a directory in tomcat called archiva, at the same level as bin, conf, logs and the others. - - * Copy the war file into the new directory - - * Create a <<<\/conf/Catalina/localhost/archiva.xml>>> file with the following data (replace the database paths with a suitable location): - -+-------------------------------------------------------------------------+ - - - - - - - - - -+-------------------------------------------------------------------------+ - - * Install <<>> (or later), <<>> and <<>> into the Tomcat 5.5 <<>> or Tomcat 6.0 <<>> directory. - This is required since the data sources are instantiated before the web application. - - <>: Tomcat 5.5.20 and 5.5.23 are missing MailSessionFactory and a - few other classes. JNDI mail sessions will work. Use Tomcat 5.5.25 - instead, or see {{{http://issues.apache.org/bugzilla/show_bug.cgi?id=40668} - Bug 40668}} for a workaround. - - * The ${appserver.base} java property is used by the Archiva internal logging configuration to determine where to output its logs to. - It is important to define this property either in the $CATALINA_OPTS system environment variable (if Tomcat is being launched via the - command line) or the service properties (if being launched as a service or daemon). The format typically expected is - -Dappserver.base=. In this example, we'll put the logs in Tomcat's <<>> directory so we need to set appserver.base - property to where Tomcat is installed: - -+-----------+ -export CATALINA_OPTS="-Dappserver.home=$CATALINA_HOME -Dappserver.base=$CATALINA_HOME" -+-----------+ - - For more information, see {{{http://cwiki.apache.org/confluence/display/ARCHIVA/Archiva+on+Tomcat} Archiva on Tomcat}} in the wiki. - -Archiva Configuration - - Archiva is configured using the <<<~/.m2/archiva.xml>>> configuration file by default when using a Java EE application server. - -~~TODO: how to configure the other file - -Upgrading Archiva - - To upgrade the Archiva web application, simply replace the web application with an alternative. Since the database and configuration files are stored - externally to the application, no further maintainance is needed. - - For general information about upgrading Archiva, see the relevant section in the {{{standalone.html#Upgrading%20Archiva} Installing standalone}} guide. - -Configuring and Running Archiva - - Once Archiva is running, it is configured in the same way as the standalone instance. See the {{{../quick-start.html#Setting%20up%20your%20Archiva%20instance} quick start}} guide for more information. - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/customising/writing-consumer.apt b/archiva-security-fix/archiva-docs/src/site/apt/customising/writing-consumer.apt deleted file mode 100644 index 5f70365b3..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/customising/writing-consumer.apt +++ /dev/null @@ -1,87 +0,0 @@ - ------ - Writing a Consumer Plugin - ------ - Maria Odea Ching - ------ - 23 Nov 2007 - ------ - -~~ 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. - -~~ NOTE: For help with the syntax of this file, see: -~~ http://maven.apache.org/guides/mini/guide-apt-format.html - -Writing a Consumer Plugin - - For a sample custom consumer, you can checkout the archiva-consumer-plugin at the archiva sandbox in the SVN repository: - -+----+ -http://svn.apache.org/repos/asf/archiva/sandbox/archiva-consumer-plugin -+----+ - - Below are the steps on how to create a custom repository consumer and plug it in Archiva: - - [[1]] Create a project for your component. - - [[2]] Declare your class or in this case, consumer as a component as shown in the example below. This - should be put at the class level. - -+----+ -Ex. -@plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - role-hint="discover-new-artifact" - instantiation-strategy="per-lookup" - -where, - role: the interface that your class implements - role-hint: the lookup name of the component (your class/consumer) - instantiation-strategy: how your class will be instantiated -+----+ - - [[3]] Make sure to add the snippet below in the section of the project's pom. This is needed to - generate the components.xml. - -+----+ - - org.codehaus.plexus - plexus-maven-plugin - 1.3.5 - - - generate - - descriptor - - - - -+----+ - - [[4]] Package your project by executing 'mvn clean package' - - [[5]] Let's say you are using the apache-archiva-1.0-bin.tar.gz to run Archiva. Unpack - the binaries then go to bin/linux-x86-32/ (assuming you are running on Linux), then execute - './run.sh console'. Then stop or shutdown Archiva after it started. (This is necessary to unpack - the war file.) - - [[6]] Copy the jar file you created in step 4 in apache-archiva-1.0/apps/archiva/webapp/lib/ - - [[7]] Add the necessary configurations in archiva.xml (in this case, add 'discover-new-artifact' as a - ) - - [[8]] Start up Archiva again. diff --git a/archiva-security-fix/archiva-docs/src/site/apt/index.apt b/archiva-security-fix/archiva-docs/src/site/apt/index.apt deleted file mode 100644 index f89a0beef..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/index.apt +++ /dev/null @@ -1,23 +0,0 @@ - ----- - Welcome to Archiva - ----- - ----- - ----- - - Archiva is a build artifact repository manager for use with - build tools such as {{{http://maven.apache.org} Maven}}, {{{http://continuum.apache.org} Continuum}}, and {{{http://ant.apache.org/} ANT}}. - - With Archiva, you can share artifacts with other developers and manage the associated - security required, aggregate (proxy) content from remote artifact repositories, visualise - your artifact utilisation with search, browse and reporting, and perform routine - maintenance on your repositories. - - To get started with Archiva, you can read the following documentation: - - * {{{quick-start.html} A Quick Getting Started Guide}} - - * {{{userguide/index.html} Users Guide}} - - * {{{adminguide/index.html} Administrators Guide}} - - [] diff --git a/archiva-security-fix/archiva-docs/src/site/apt/quick-start.apt b/archiva-security-fix/archiva-docs/src/site/apt/quick-start.apt deleted file mode 100644 index 3ac0c76eb..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/quick-start.apt +++ /dev/null @@ -1,73 +0,0 @@ - ----- - Quick Start - ----- - Henri Yandell - ----- - 1 October 2006 - ----- - -~~ 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. - -~~ NOTE: For help with the syntax of this file, see: -~~ http://maven.apache.org/guides/mini/guide-apt-format.html - -Installing Archiva - - The quickest way to install Archiva is to use the standalone distribution. This includes a bundled Jetty server which can be easily started. - For more information on advanced configuration of this instance, refer to the {{{adminguide/standalone.html} Administration Guide}}. - - To get started right away, you can run the following after unpacking: - ----- -./bin/archiva console (Linux, Mac, Solaris) -.\bin\archiva console (Windows) ----- - - You will need to choose a different start command based on your platform. The <<>> argument - starts the server with the logs going to standard output, and waits for Ctrl+C to stop the server. - - <> A Derby exception "Schema 'SA' does not exist" occurs, but is not of concern. - - Archiva is now running on <<>> - -{Setting up your Archiva instance} - - You can now browse the web administration of Archiva. There will be a few basic setup tasks to get started. - - The first step is to setup your administration user. The password requires a numerical character and must not be - longer than 8 chars. You'll then need to log in. Use 'admin' as the username and the password you've entered. - - At this point, Archiva is fully functional - you can use it with the default repositories and guest user. You might like - to explore the user and administrator guides to find other functionality. - - The default configuration for Archiva configures two repositories: - - * <<>> - a repository for containing released artifacts. This is connected by proxy to the central repository, so requests here will - automatically retrieve the remote artifacts. - - * <<>> - a repository for storing deployed snapshots. This is not proxied to any remote repositories by default. - - In addition, the guest user has read access to these repositories, so you can make anonymous requests to either. To try this out, point a web browser at the following URL: - {{http://localhost:8080/archiva/repository/internal/junit/junit/3.8.1/junit-3.8.1.jar}}. Though the artifact is not present locally, you will see in the Archiva logs that it is - downloaded from the central repository, and then handed back to the browser and downloaded from Archiva. Future requests for the artifact will be much faster as they need not be - downloaded from the central repository. - - Once this artifact is downloaded, Archiva automatically indexes it, so you can access it's information at the following URL: {{http://localhost:8080/archiva/browse/junit/junit/3.8.1/}}. - It will also be available from the search interface. - - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/release-notes.apt b/archiva-security-fix/archiva-docs/src/site/apt/release-notes.apt deleted file mode 100644 index 5431145a2..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/release-notes.apt +++ /dev/null @@ -1,403 +0,0 @@ - ----- - Release Notes for Archiva 1.1.1 - ----- - -Release Notes for Archiva 1.1.1 - - The Apache Archiva team would like to announce the release of Archiva 1.1.1. - - Archiva 1.1.1 is {{{http://archiva.apache.org/download.html} available for download from the web site}}. - - Archiva is an application for managing one or more remote repositories, including administration, artifact handling, browsing and searching. - - If you have any questions, please consult: - - * the web site: {{http://archiva.apache.org/}} - - * the archiva-user mailing list: {{http://archiva.apache.org/mail-lists.html}} - -* New in Archiva 1.1 - -** Artifact Uploads - - To simplify adding artifacts to a repository, an upload form has been put in place that allows you to put an artifact and POM into - the repository without the need for the Maven <<>> command. - -** RSS - - RSS is now available for getting a feed of new artifacts being added to a given repository. Two types of feeds are generated by Archiva: - new artifacts in a repository and new versions of a specific artifact. Details are available in {{{userguide/rss.html}Rss Feeds}}. - -** Virtual Repositories - - Virtual repositories or repository groups allows downloading from a group of repositories via one url. For more details of this feature, - see {{{userguide/virtual-repositories.html}Virtual Repositories}}. - -** Timeouts - - Connections to remote repositories can now have a configurable timeout value - -** New Runtime Bundle - - The application is now distributed using Jetty 6.1 and it's documented configuration, rather than the previous - Plexus application server bundle. It continues to use the Java Service Wrapper (v3.2.3) for application monitoring, - though the configuration has been improved, particularly with regard to separating the application configuration from the installation. - -** Using Spring - - Archiva now uses the Spring Framework as it's underlying container instead of Plexus. This results in a boost in performance and - stability for the web application in particular. - -** Using Apache Jackrabbit WebDAV Servlet - - Archiva now uses Apache Jackrabbit's WebDAV servlet for serving repository content instead of plexus-webdav. The change results in reduced - codebase complexity, increased standards compliance, better webdav client support and a small peformance boost. - -* Release Notes - - The Archiva 1.1 feature set can be seen in the {{{tour/index.html} feature tour}}. - -* Changes in Archiva 1.1.1 - -** Bug - - * [MRM-584] - Newly created user cannot login - - * [MRM-631] - network proxy is always used when defined - - * [MRM-814] - Invalid cron expressions are accepted in Database Scanning - - * [MRM-873] - repository groups - move up/down should not show when it's not possible - - * [MRM-883] - RSS syndication java.lang.ArrayIndexOutOfBoundsException - - * [MRM-884] - network proxy fails after upgrading to archiva 1.1 - - * [MRM-888] - add notes on reindexing to the upgrade docs - - * [MRM-891] - Unable to use archiva as http source with maven-stage-plugin - - * [MRM-892] - Search for java classes and package names is broken - - * [MRM-895] - Archiva version doesn't appear on the footer when it is installed on Tomcat - - * [MRM-896] - classifier is appended to pom filename after artifact upload - -** Improvement - - * [MRM-817] - Artifact information screen should indicate the name of repository in which the artifact resides - - The full list of changes can be found {{{http://jira.codehaus.org/secure/ReleaseNote.jspa?version=14461&styleName=Text&projectId=10980} in JIRA}}. - -* Changes in Archiva 1.1 - -** Sub-task - - * [MRM-801] - Create documentation for virtual repositories - - * [MRM-861] - Paginate Search Results page - -** Bug - - * [MRM-234] - Moving files between repos through webdav doesn't work - - * [MRM-312] - ConcurrentModificationException - - * [MRM-523] - Appearance Actions do not work when ${user.home} is invalid. - - * [MRM-538] - Browse > Info not synchronised with updated POM contents - - * [MRM-550] - proxy connectors - move up/down should not show when it's not possible - - * [MRM-584] - Newly created user cannot login - - * [MRM-597] - Cannot run Archiva as another user because su is run with option "-" (--login) - - * [MRM-602] - add "maintainance" to the feature tour - - * [MRM-605] - unit tests fail on archiva 1.0 source distribution - - * [MRM-610] - a number of unit tests fail on windows - - * [MRM-614] - User validation message has incorrect URL - - * [MRM-624] - Failed to install Archiva as windows service - - * [MRM-629] - NullPointer when setting corporate POM on a fresh archvia install - - * [MRM-638] - some developer reports are appearing in the archiva-docs module and need to be disabled - - * [MRM-650] - Deleted metadata files still appear in search results - - * [MRM-652] - Invalid html links in "webdav" directory browsing - - * [MRM-653] - WebDAV deploy fails with error - - * [MRM-658] - org.apache.maven.archiva.repository.content.FilenameParser is unable to determine unique snapshot versions with specific version names - - * [MRM-682] - Archiva runs out of heap memory - - * [MRM-692] - Repository problem is kept in database even though its related artifact has been already removed - - * [MRM-702] - in the standalone bundle, the pid file is written into the installation directory alongside the wrapper, but should be in a temporary location - - * [MRM-711] - Security using ldap throws NullPointerException - - * [MRM-733] - Error ending component lifecycle - - * [MRM-753] - Error while deploying an artifact to archiva - - * [MRM-767] - generated LICENSE and NOTICE files need improvement - - * [MRM-768] - Cannot proxy maven2 plugin (jaxb) from a maven1 repository (http://download.java.net/maven/1) - - * [MRM-769] - CLONE - 507 Insufficient Storage when deploying artifact with webdav - - * [MRM-777] - assignments.jsp: missing group under "Resource Roles": - - * [MRM-778] - DefaultDavServerManager.createServer doesn't create server - - * [MRM-780] - Access to indexes files with a browser is not possible - - * [MRM-784] - mailing-info on the website points to 'old' maven.apache.org addresses - - * [MRM-785] - No message is displayed after a successful artifact upload - - * [MRM-789] - Archiva may delete you app server installation - - * [MRM-790] - [regression] proxying metadata causes an IO exception in new checksum code - - * [MRM-792] - remove references to maven in code - - * [MRM-796] - releases always activated in repositories - - * [MRM-797] - Delete Released Snapshots doesn't work - - * [MRM-800] - Admin user account user lockout via Webdav only? - - * [MRM-810] - Uploads done through the Web UI are not reported in the audit log - - * [MRM-818] - [Repository Group] Page will be broken if entered identifier is too long - - * [MRM-819] - ERROR 404 page when clicking the URL of Repository Group with identifier i.e. "test/test" - - * [MRM-820] - 404 when the dav url of an Archiva default repository (internal or snapshots) is accessed - - * [MRM-823] - Deleted repository still shows up in the repo group - - * [MRM-824] - dependency cleanup - - * [MRM-835] - Checksum search appears broken - - * [MRM-840] - Wagon HTTP deadlocks under high load - - * [MRM-845] - Continuous Loop when you click a repository group link - - * [MRM-846] - "Repository Purge By Retention Count" option not working - - * [MRM-847] - DependencyTreeGeneratorConsumerTest fails under windows due to line ending - - * [MRM-851] - wrong taglib short-name causes deployment error on Geronimo - - * [MRM-853] - HTTP Error 500 when uploading artifact with Windows OS - - * [MRM-855] - java.lang.NoClassDefFoundError: org/apache/xml/serialize/OutputFormat - - * [MRM-856] - Artifact Upload replaces all instances of the name "jar" with "pom" when trying to change the file extension - - * [MRM-858] - last-modified header is missing - - * [MRM-865] - Upload snapshot should work like a deploy - - * [MRM-867] - 500 on HEAD method - - * [MRM-869] - many empty folders created in managed repos with proxy connectors when used in a group - - * [MRM-870] - addRepositoryToGroup.action => AbstractMethodError on DeferredDocumentImpl.getXmlStandalone() - - * [MRM-871] - jetty.host and jetty.port properties are set by default in jetty.xml preventing user from using other hostname if user is not aware of these properties - - * [MRM-872] - empty metadatas frmo a repository group - -** Improvement - - * [MRM-591] - Reports should show from which repository the defective artifact was found. - - * [MRM-651] - Updated consumer plugin to build against the 1.1 apis - - * [MRM-654] - Archetype for generation of Consumer plugins - - * [MRM-667] - Timeout implementation for Archiva - - * [MRM-678] - 404 errors on proxies should be cached - - * [MRM-737] - Don't list metadata files in the search results - - * [MRM-752] - Trim URL in Remote Repositories - - * [MRM-760] - set JSW to auto-restart if it crashes or hangs - - * [MRM-773] - Improve RSS feed generation - - * [MRM-781] - Removal of Archiva-Webdav implementation in favor of Jackrabbit-webdav - - * [MRM-802] - Display the url for the repository group - - * [MRM-804] - When uploading artifacts to the repo, they should be added to the index instantly - - * [MRM-822] - add org/jvnet/**, com/sun/** to the whitelist for the default java.net repository - - * [MRM-829] - Replace Company POM feature with simple Appearence customisation - - * [MRM-831] - When deploying artifacts to the repo, they should be added to the index instantly - - * [MRM-857] - set a user agent for proxy HTTP requests - - * [MRM-859] - Use File.createTempFile() when downloading files from a remote repository - -** New Feature - - * [MRM-123] - add RSS view to repository manager - - * [MRM-216] - Upload (deploy) artifacts to a repository - via a web form (not using wagon) - - * [MRM-694] - Virtual repositories or repository grouping - - * [MRM-730] - Index/Search by class, method or package name - - * [MRM-751] - Support database connection pooling - - * [MRM-774] - Support inclusion of pom file when deploying an artifact via the web upload form - - * [MRM-864] - Searching within search results - -** Task - - * [MRM-677] - Upgrade archiva to the latest redback (1.0.1) - - * [MRM-688] - Replace plexus-runtime with standalone jetty bundle - - * [MRM-708] - Migrate from Plexus Logging to Slf4J - - * [MRM-754] - Update the screenshots in the docs - - The full list of changes can be found {{{http://jira.codehaus.org/secure/ReleaseNote.jspa?version=13861&styleName=Text&projectId=10980} in JIRA}}. - -* Changes in Archiva 1.0.2 - -** Bug - - * [MRM-159] - should not respond with a 404 if proxying a file results in a remote error - - * [MRM-532] - Unable to specify the location of the index files through the web ui - - * [MRM-598] - Validation error on new repository creation and other fields under certain conditions - - * [MRM-608] - Unable to find project model for [...] if the initial import of the POM failed - - * [MRM-617] - Reporting does not work due to bug in client-side JavaScript validation - - * [MRM-618] - PLEXUS_BASE does not work for local databases - - * [MRM-622] - database not being updated with project model information - - * [MRM-626] - ClassCastException when saving proxy connector with property defined - - * [MRM-627] - Archiva doesn't download SNAPSHOTs for proxied repositories. - - * [MRM-631] - network proxy is always used when defined - - * [MRM-642] - archiva-common tests rely on relative paths - - * [MRM-655] - The logs are duplicated in the archiva.log and wrapper.log file. - - * [MRM-659] - archiva cannot serve ejb artifacts from a maven1 repository - - * [MRM-661] - remote repository removals are not saved after restart - - * [MRM-664] - Cannot download a strut-module artifact in a Legacy repository - - * [MRM-674] - LayoutException when downloading SNAPSHOT test-sources - - * [MRM-683] - Archiva version missing from pages and logs - - * [MRM-687] - Project model cannot be added to database if it inherits groupId and/or version from parent POM - - * [MRM-689] - Incorrect war name in example for tomcat - - * [MRM-690] - using undefined appserver.base - - * [MRM-691] - Can't get any of the consumers to work without through a NPE - - * [MRM-701] - Buggy documentation on "separating the base from the installation" - - * [MRM-703] - Artifacts with extensions longer than fours characters breaks repository scanning. - - * [MRM-713] - extensionPattern in FilenameParser is incorrect - - * [MRM-715] - error adding artifacts to Lucene under some circumstances - - * [MRM-719] - NPE during repository scan - - * [MRM-725] - /archiva/browse URL does not work on WebSphere - - * [MRM-727] - Archiva does not download plugin artifacts in Geronimo - - * [MRM-734] - Unable to update metadata - No versions found for reference - - * [MRM-746] - unable to include *.xml in artifacts list as it picks up maven-metadata.xml - - * [MRM-750] - Adding a network proxy doesn't require an identifier - - * [MRM-755] - No content type for .pom files denoted in file "archiva-mime-types.txt" - workaround included - - * [MRM-758] - unable to schedule cron expressions that contain a comma - - * [MRM-761] - Exception when trying to retrieve a Maven 1 artifact of type zip - - * [MRM-762] - Footer doesn't stretch across repositoryScanning and database pages - - * [MRM-763] - Default cron expression for database update is invalid - - * [MRM-764] - default policies are not selected in the add proxy connector page - -** Improvement - - * [MRM-504] - Find Artifact page needs more onscreen information/instructions - - * [MRM-656] - Admin guide for installing WAR needs updating - - * [MRM-666] - Edit Managed Repository page should indicate the repo id being edited - - * [MRM-700] - Review the documentation on deploying to Archiva for inconsistent repository ids - - * [MRM-720] - Upgrade Lucene from 2.0 to 2.3.1 - -* Changes in Archiva 1.0.1 - -** Bug - - * [MRM-623] - find artifact self signed certificate will expire soon - - * [MRM-628] - In the audit.log file the userid for each action is guest, even though the deploy was performed by admin - - * [MRM-630] - http 502 proxy error with browse button after 2 days running - - * [MRM-633] - Logging is too verbose - - * [MRM-646] - Documentation for configuring for Tomcat is invalid - - * [MRM-662] - Repo purge is not deleting artifacts in correct order - - * [MRM-668] - Repo browse and search isn't working in trunk and in archiva 1.0.1 release candidate - - * [MRM-670] - legacy artifact mapping form needs better validation - -** Improvement - - * [MRM-594] - add some minimal hook in LegacyPathParser to allow exception management in artifact resolution - -** Task - - * [MRM-619] - Update docs/site for some corrections - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/userguide/browsing.apt b/archiva-security-fix/archiva-docs/src/site/apt/userguide/browsing.apt deleted file mode 100644 index e73c11d6d..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/userguide/browsing.apt +++ /dev/null @@ -1,70 +0,0 @@ - ------ - Browsing - ------ - Maria Odea Ching - ------ - 9 November 2007 - ------ - -~~ 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. - -~~ NOTE: For help with the syntax of this file, see: -~~ http://maven.apache.org/guides/mini/guide-apt-format.html - - -Browsing - -* Permissions - - The user can only browse those repositories where the user is an observer or a manager. If the user does not - have permission to access any repository, a message saying "You have access to no repositories. Ask your - system administrator for access" will be displayed. - -* Repository Browse Layout - - The current layout of the repositories in Repository Browse uses the Maven 2 layout, which is the groupId, - artifactId and version. When the version is clicked, the Artifact Info page (see the next section) will be - displayed. There is currently an issue with regard to Maven 1 artifacts, see {{{http://jira.codehaus.org/browse/MRM-585} http://jira.codehaus.org/browse/MRM-585}}. - -* Artifact Info - - The Artifact Info page is divided into 5 views: - - 1. Info. Basic information about the artifact is displayed here. These are the groupId, artifactId, version and - packaging. A dependency pom snippet is also available, which a user can just copy and paste in a pom file - to declare the artifact as a dependency of the project. - - 2. Dependencies. The dependencies of the artifact will be listed here. The user can easily navigate to a specific - dependency by clicking on the groupId, artifactId or version link. The scope of the dependency is also shown. - - 3. Dependency Tree. The dependencies of the artifact are displayed in a tree-like view, which can also be - navigated. - - 4. Used By. Lists all the artifacts in the repository which use this artifact. - - 5. Mailing Lists. The project mailing lists available in the artifact's pom are displayed here. - -* Downloading Artifacts - - Artifacts can be downloaded from the artifact info page. All files, except for the metadata.xml files, that are - associated with the artifact are available in the download box. The size of the files in bytes are displayed - at the right section of the download box. - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-docs/src/site/apt/userguide/deploy.apt b/archiva-security-fix/archiva-docs/src/site/apt/userguide/deploy.apt deleted file mode 100644 index 006513eda..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/userguide/deploy.apt +++ /dev/null @@ -1,206 +0,0 @@ - ------ - Deploying to Repository - ------ - -Deploying to Repository - - There are different ways on how you can deploy artifacts in an Archiva repository. - - * {{{#Maven} Configuring Maven to deploy to an Archiva repository}} - - * {{{#Web UI} Deploying via the Web UI Form}} - -* Configuring {Maven} to deploy to an Archiva repository - - [[1]] Create a user in Archiva to use for deployment (or use guest if you wish to deploy without a username and password) - - [[2]] The deployment user needs the Role 'Repository Manager' for each repository that you want to deploy to - - [[3]] Define the server for deployment inside your 'settings.xml', use the newly created user for authentication - -+-------------------------------------------------------------------------+ - - ... - - - archiva.internal - {archiva-deployment-user} - {archiva-deployment-pwd} - - - archiva.snapshots - {archiva-deployment-user} - {archiva-deployment-pwd} - - ... - - ... - -+-------------------------------------------------------------------------+ - -** Deploying to Archiva using HTTP - - Configure the <<>> part of your <<>> (customising the URLs as needed). - The <<>> of the repository in <<>> <> match the <<>> of the <<>> - element in <<>>. - -+-------------------------------------------------------------------------+ - - ... - - - archiva.internal - Internal Release Repository - http://reposerver.mycompany.com:8080/archiva/repository/internal/ - - - archiva.snapshots - Internal Snapshot Repository - http://reposerver.mycompany.com:8080/archiva/repository/snapshots/ - - - ... - -+-------------------------------------------------------------------------+ - -** Deploying to Archiva using WebDAV - - In some cases, you may want to use WebDAV to deploy instead of HTTP. If you find this is necessary, follow the same - process as for HTTP, with these additional steps: - - [[1]] Add <<>> to the front of the deployment URLs: - -+-------------------------------------------------------------------------+ - - ... - - - archiva.internal - Internal Release Repository - dav:http://reposerver.mycompany.com:8080/archiva/repository/internal/ - - - archiva.snapshots - Internal Snapshot Repository - dav:http://reposerver.mycompany.com:8080/archiva/repository/snapshots/ - - - ... - -+-------------------------------------------------------------------------+ - - [[2]] Add a build extension to your <<>> (not required in Maven 2.0.9 and above) - -+-------------------------------------------------------------------------+ - - ... - - - - org.apache.maven.wagon - wagon-webdav - 1.0-beta-2 - - - - ... - -+-------------------------------------------------------------------------+ - -** Deploying using other protocols - - You can also deploy to the Archiva server using traditional means such as SCP, FTP, etc. For more information on these deployment - techniques, refer to the Maven documentation. - - Note that once the files are deployed into the location of the Archiva managed repository, they will not be detected by Archiva until the - next scan takes place, so the interval should be configured to a reasonably frequent setting. - -** Deploying Third-Party Artifacts to Archiva using Maven - - You can use <<>> to deploy single artifacts to Archiva. Once you have the settings file in place as - described above, you can deploy the artifact using this type of command: - -+------+ -mvn deploy:deploy-file -Dfile=filename.jar -DpomFile=filename.pom - -DrepositoryId=archiva.internal - -Durl=http://repo.mycompany.com:8080/repository/internal/ -+------+ - - For more information, consult the {{{http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html} documentation for the - <<>> goal}} - - If you wish to use WebDAV to deploy the file, add <<>> to the start of the URL as in the previous instructions. - - However, on versions of Maven prior to 2.0.9, you will also need to create a file called <<>> - in the directory from which you intend to execute "<<>>": - -+-------+ - - 4.0.0 - com.example - webdav-deploy - pom - 1 - Webdav Deployment POM - - - - - org.apache.maven.wagon - wagon-webdav - 1.0-beta-2 - - - - -+-------+ - - This pom will not be deployed with the artifact, it simply serves to make the - WebDAV protocol available to the build process. - - Alternately, you can save this file somewhere else, and use "<<>>" to force the use of an alternate POM file. - -* Deploying via the {Web UI} Form - - The easiest way to deploy in the repository is via the Web UI form, which can be accessed in the 'Upload Artifact' section. - Just follow these steps: - - [[1]] Fill up the following required fields: - - * Group Id - the groupId of the artifact to be deployed. - - * Artifact Id - the artifactId of the artifact to be deployed. - - * Version - the version of the artifact to be deployed. - - * Packaging - the packaging of the artifact to be deployed. (ex. jar, war, ear, etc.) - - * Artifact File - the actual artifact to be deployed. - - [] - - [[2]] Select the repository you want to deploy to. Please note that if you do not have write permission to the repository, - you will not be allowed to deploy in it. - - [[3]] Now, if you want Archiva to generate a pom for the artifact, check the Generate Maven 2 POM field. - (Right now, only Maven 2 poms can be generated.) Alternately, supply a POM file to be deployed alongside the artifact. - - [[4]] Click Submit and a message will be displayed notifying you if the upload/deployment was successful or not. - - [] - - These are the files that will be in your repository after deployment: - - * artifact - - * POM file (if you supplied one or checked Generate Maven 2 POM) - - * maven-metadata.xml (this will be created if none exists in the artifact level yet, otherwise it will just be updated) - - * maven-metadata.xml.sha1 and maven-metadata.xml.md5 (these will be generated for newly created maven-metadata.xml files, otherwise - they will just be updated) - -~~TODO: information for Maven 1, ant tasks, ivy, etc. - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/userguide/find-artifact.apt b/archiva-security-fix/archiva-docs/src/site/apt/userguide/find-artifact.apt deleted file mode 100644 index 8bdfb5aba..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/userguide/find-artifact.apt +++ /dev/null @@ -1,36 +0,0 @@ - ------ - Identifying an Artifact - ------ - -Identifying an Artifact - - Archiva indexes all of the artifacts that it discovers during the repository scanning process, storing information about their contents. - This includes the checksum of the artifact, which can help to uniquely identify it within the repository. - - Archiva includes a feature that allows you to check for the existence of a given artifact in the repository by checksum. This is useful in - identifying a JAR or other artifact located from an external source that does not contain any Maven or version information. - - To use this functionality, click the "Find Artifact" link in the left navigation. - - When the screen first loads, a Java applet that will allow you to create a local checksum of a given artifact is loaded. Since it is reading the - content of the artifact from the filesystem, it will present a security dialog similar to the following: - -[../images/find-artifact-security.png] Java Applet - - By trusting the applet, you can checksum files of any size locally and just upload the small checksum to the server. If you opt not to trust the - applet, you must enter the checksum into the web form by hand. - - Once you have loaded the page, you have the choice of browsing for a local file to identify, or entering the checksum directly. - -[../images/find-artifact.png] Find Artifact - - Once you submit the form Archiva will look to match the checksum: - - * If more than one artifact matches, a list of results are returned - - * If a unique match is found, the individual artifact information page is returned - - * If no match is found, a "no results" page is returned - - - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/userguide/index.apt b/archiva-security-fix/archiva-docs/src/site/apt/userguide/index.apt deleted file mode 100644 index d79e6eb3d..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/userguide/index.apt +++ /dev/null @@ -1,27 +0,0 @@ - ------ - Users Guide - ------ - -Users Guide - - Welcome to the Archiva user's guide. Getting to know and use Archiva is very simple - please select one of the following documents to learn how to use - Archiva quickly. - - * {{{browsing.html} Browsing Archiva repositories}} - - * {{{searching.html} Searching Archiva repositories}} - - * {{{find-artifact.html} Identifying an unknown artifact by comparing the repository checksum database}} - - * {{{using-repository.html} Using Archiva as a repository for Maven, Ivy, etc.}} - - * {{{deploy.html} Deploying artifacts to the repository}} - - * {{{virtual-repositories.html} Configuring Virtual Repositories}} - - * {{{rss.html}RSS Feeds in Archiva}} - - [] - - - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/userguide/rss.apt b/archiva-security-fix/archiva-docs/src/site/apt/userguide/rss.apt deleted file mode 100644 index 04d1d8889..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/userguide/rss.apt +++ /dev/null @@ -1,64 +0,0 @@ - ------ - RSS Feeds - ------ - Maria Odea Ching - ------ - 7 May 2008 - ------ - -~~ 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. - -~~ NOTE: For help with the syntax of this file, see: -~~ http://maven.apache.org/guides/mini/guide-apt-format.html - - -RSS Feeds - - There are two types of rss feeds in Archiva: new artifacts in repo feed and new versions of artifact feed. - -* New Artifacts In Repository - - For versions 1.1 and 1.1.1, the default url for this feed is <<>>. - But since version 1.1.2, this has been changed to <<>> - - There are two ways to subscribe to this feed: - - 1. By copying the default url specified above and adding this to your feed reader. Just make sure to replace the <<>>, - <<>> and <<>>. The <<>> is the id of the Archiva repo which you want to monitor. - - 2. Via the feed icon in the Repositories page. Right click on the feed icon in the upper right hand corner of the repository - configuration and copy the link. Then add this link to your feed reader. - -* New Versions of an Artifact - - The default url for this feed for versions 1.1 and 1.1.1 is <<>> - but was changed to <<>> since version 1.1.2 for consistency purposes. - - You could subscribe to the feed the same way as specified in the New Artifacts In Repository section except that in #1, you - need to specify the <<>> and <<>> instead of the <<>>. And in #2, you need to go to the - Browse section. The rss feed icon is located in the artifactId level. - -* Authentication - - The authentication method used for the rss feeds is Http Basic Authentication. If your reader supports this, you would be - prompted for a username and password when you subscribe to the feed. Supply your Archiva account credentials for this. Take - note that only users with an Observer role for the specific repository would be able to subscribe to this feed. - - If the 'guest' account is enabled for the repository, you would no longer be asked for the username and password when you - subscribe to the feed. - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/userguide/searching.apt b/archiva-security-fix/archiva-docs/src/site/apt/userguide/searching.apt deleted file mode 100644 index 817bd55e8..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/userguide/searching.apt +++ /dev/null @@ -1,69 +0,0 @@ - ------ - Searching - ------ - Maria Odea Ching - ------ - 23 Nov 2007 - ------ - -~~ 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. - -~~ NOTE: For help with the syntax of this file, see: -~~ http://maven.apache.org/guides/mini/guide-apt-format.html - - -Searching - - The Search functionality of Archiva allows a user to search for specific artifact references in the repository. - -* What Can Be Searched? - - The repository files that are indexed during repository scan can be configured in the Repository Scanning page, in the - Repository Scanning - File Types section (indexable-content). By default, the indexable-content file types are: - -+-----+ -**/*.txt -**/*.TXT -**/*.block -**/*.config -**/*.pom -**/*.xml -**/*.xsd -**/*.dtd -**/*.tld -+-----+ - - The contents of all the files in the repository that matches the above configuration will be indexed during repository - scan. So when you type a word in the search box, Archiva will search the index for that query string and return all the - search hits in the form of a list of artifacts. For example you typed in 'classworlds', the search result would contain - the list of artifacts that use or reference 'classworlds'. - - Below is a sample screenshot of the search results: - -[../images/search-results.jpg] Search Results - - When the user clicks a specific artifact in the search results list, Archiva will direct the user in the Artifact Info - page (the same page from the Repository Browse). Otherwise if it is not a pom file (ex. metadata.xml), the file will - appear as a file to be downloaded from the browser. - -* Security - - The Search functionality respects the repository permissions. If the user is not logged in to Archiva and does a search, - only those repositories with guest permissions will be searched for the query string. And if the user is logged in to - Archiva and does a search, only those repositories in which that user has permission to access will be searched for the - query string. diff --git a/archiva-security-fix/archiva-docs/src/site/apt/userguide/using-repository.apt b/archiva-security-fix/archiva-docs/src/site/apt/userguide/using-repository.apt deleted file mode 100644 index bc05ce4f1..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/userguide/using-repository.apt +++ /dev/null @@ -1,124 +0,0 @@ - ------ - Using as a Repository - ------ - -Configuring Maven 2 to use an Archiva repository - - To get your local Maven 2 installation to use an Archiva proxy you need to add the repositories you require to your 'settings.xml'. This file is usually found in ${user.dir}/.m2/settings.xml (see the {{{http://maven.apache.org/settings.html}Settings Reference}}). - - How you configure the settings depends on how you would like to utilise the repository. You can add the Archiva repository as an additional repository to others already declared by the project, or lock down the - environment to only use the Archiva repositories (possibly proxying content from a remote repository). - -* Locking down to only use Archiva - - If you would like Archiva to serve as the only repository used by your Maven installation, you can use the Maven mirror settings to force this behaviour. - - First, you need to select the default repository to use when none is configured by adding the following to the <<>> file: - -+-------------------------------------------------------------------------+ - - ... - - - archiva.default - http://repo.mycompany.com:8080/archiva/repository/internal/ - * - - - ... - -+-------------------------------------------------------------------------+ - - With this in place, all repository requests will be sent to the internal repository (which by default is configured to proxy the central repository). - - If you have separate Archiva repositories that you wish to use, you can add an extra mirror declaration as needed: - -+-------------------------------------------------------------------------+ - ... - - archiva.apache.snapshots - http://repo.mycompany.com:8080/archiva/repository/snapshots/ - apache.snapshots - - ... -+-------------------------------------------------------------------------+ - - <> Maven, as of version 2.0.8, does not properly report the correct URL in errors when a mirror is used - so although the Archiva instance is being consulted any error messages will still reflect - the original URL described in the POM. - -* Using Archiva as an additional repository - - You will need to add one entry for each repository that is setup in Archiva. If your repository contains plugins; remember to also include a \ setting. - - [[1]] Create a new profile to setup your repositories - -+-------------------------------------------------------------------------+ - - ... - - - Repository Proxy - - true - - - - - - - ... - - ... - - - - - - - ... - - ... - - - ... - - ... - -+-------------------------------------------------------------------------+ - - [[2]] Add your repository configuration to the profile - - You can copy the repository configuration from the POM Snippet on the Archiva Administration Page for a normal repository. It should look much like: - -+-------------------------------------------------------------------------+ - - repository-1 - http://repo.mycompany.com:8080/archiva/repository/internal/ - - true - - - false - - -+-------------------------------------------------------------------------+ - - [[3]] Add the necessary security configuration - - This is only necessary if the guest account does not have read access to the given repository. - -+-------------------------------------------------------------------------+ - - ... - - - repository-1 - {archiva-user} - {archiva-pwd} - - ... - - ... - -+-------------------------------------------------------------------------+ - diff --git a/archiva-security-fix/archiva-docs/src/site/apt/userguide/virtual-repositories.apt b/archiva-security-fix/archiva-docs/src/site/apt/userguide/virtual-repositories.apt deleted file mode 100644 index d465e9d08..000000000 --- a/archiva-security-fix/archiva-docs/src/site/apt/userguide/virtual-repositories.apt +++ /dev/null @@ -1,117 +0,0 @@ - ------ - Virtual Repositories - ------ - -Virtual Repositories - - This is a new feature for Archiva 1.1. The main advantage of virtual repositories (or repository groups) is that you - only need to specify one URL instead of multiple repository URLs if you are using more than 1 proxy repository. - - For example, you have the following configuration in your <<>>: - -+-------------------------------------------------------------------------+ - - ... - - - Repository Proxy - - true - - - - internal.releases - http://localhost:8080/archiva/repository/internal.releases/ - - true - - - false - - - - third.party.repo - http://localhost:8080/archiva/repository/third.party.repo/ - - true - - - false - - - - snapshots - http://localhost:8080/archiva/repository/snapshots/ - - false - - - true - - - - - ... - - ... - -+-------------------------------------------------------------------------+ - - If you have a virtual repository configured in Archiva, you only need to configure this in your <<>>: - -+-------------------------------------------------------------------------+ - - ... - - - Repository Proxy - - true - - - - internal.releases - http://localhost:8080/archiva/repository/[repository_group_id]/ - - - - ... - - ... - -+-------------------------------------------------------------------------+ - - And you'll still be able to get all the artifacts that you need. See Configuring Virtual Repositories section for the - steps on how to setup a virtual repo in Archiva. - -* How It Works - - When Archiva receives a request with a virtual repo (or repo group) URL, Archiva would look for the requested artifact - from the repositories under that group. It would only check the repositories the user has permission to access (meaning - only those repositories which the user has an Obeserver role for). The first resource found for the requested artifact - would be returned. - -* Configuring Virtual Repositories - - Below are the steps for setting up the virtual repositories: - - [[1]] In the webapp, go to the <<>> page. To create a virtual repository or repository group, - fill in the <<>> field and click Add Group. - - [[2]] To add a repository under this group, choose from the drop-down menu on the lower right hand side of the - repository group box and click Add Repository. - - [[3]] Now add the virtual repository URL <<>> - into your settings.xml the same way you configure regular repositories -- as a or as an additional . - - [[4]] If the repositories under the group are secured, you must set your Archiva login credentials in your settings.xml as - well. Please take note that the id should match the repository group identifier. - -* Webdav Browse - - Webdav Browse for a virtual repository is a read-only view. It displays the merged contents of all the repositories - under that repository group. Just type the url of the virtual repository in your browser in order to view its contents. - User will be asked to authenticate if the 'guest' account is not enabled for the repositories. Only those repositories - which the user has permission to access will be shown. - - diff --git a/archiva-security-fix/archiva-docs/src/site/assembly/docs.xml b/archiva-security-fix/archiva-docs/src/site/assembly/docs.xml deleted file mode 100644 index e19dfb70a..000000000 --- a/archiva-security-fix/archiva-docs/src/site/assembly/docs.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - docs - - zip - - false - - - target/site - /docs/ - - - - diff --git a/archiva-security-fix/archiva-docs/src/site/resources/css/site.css b/archiva-security-fix/archiva-docs/src/site/resources/css/site.css deleted file mode 100755 index 3a03fe931..000000000 --- a/archiva-security-fix/archiva-docs/src/site/resources/css/site.css +++ /dev/null @@ -1,71 +0,0 @@ -a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover { - background: none; - padding-right: 0; -} - -body ul { - list-style-type: square; -} - -#downloadbox { - float: right; - margin-left: 2em; - padding-left: 1em; - padding-right: 1em; - padding-bottom: 1em; - border: 1px solid #999; - background-color: #eee; - width: 17.5em; -} - -#downloadbox h5 { - color: #000; - margin: 0; - border-bottom: 1px solid #aaaaaa; - font-size: smaller; - padding: 0; - margin-top: 1em; -} - -#downloadbox p { - margin-top: 1em; - margin-bottom: 0; -} - -#downloadbox li { - text-indent: inherit; -} - -div.p { - margin-top: 5px; - margin-bottom: 10px; -} - -pre.commandline { - border: 1px solid #bbb; - background-color: white; - margin-top: 5px; - margin-bottom: 5px; - font-size: 10pt; - padding: 15px; - color: gray; -} - -pre.commandline .input { - color: #55f; -} - -pre.commandline .command { - color: black; - font-weight: bold; -} - -#banner { - background: none; -} - -#banner img { - margin: 10px; -} - - diff --git a/archiva-security-fix/archiva-docs/src/site/resources/images/archiva-report.jpg b/archiva-security-fix/archiva-docs/src/site/resources/images/archiva-report.jpg deleted file mode 100644 index 65b7a49a8bd7f9973a736221e56b8f7742ae1125..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103875 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

jK${!Lhy> z&a=e}rQO6J*D<{pa~5EJO)-~FtHEY>v*7Sx3(`zTe>Ke7bE1;ael5aU}Aj4F2-L3$W>DtX_)8?MuH|r4P zi_F?}sJpY5%(&nXQ`;b3-Lrwb2OD*0qYZ?9;u(J9O!i~$8T=VP$F;@lDoP8yo zWK=QG0W@1A{x-599ISqXfWdA2@S`R8wYaHHXt3|>778d#v>e+^ZCh&VMqFRLS29!b zlRvCYgS|mBO6oEDx(v>2ZFNNW*4ltQYKsrthE=rZKUcnwcHY`dl<(gi(Fd`ZK#eWE z)9ow!fFlesa&O)BJ{)jSGS4TD+EVJb6HpugjK11m@C+bdn&aP|^hXo4*u9u=M>*{= zK37f_F}&10z$Y{~BNo$ZK1@B0JOHK~c+vdFY0qJ9} zV`iTLbH)TRGV+JuJ`47Lhx>#X!~qBj3Wf@Q`YHJ_j3rGrDJjXVV|8I+0R&R0QiGH> zJiNW3KSDh3&R9x~UKc(Z8YH?1P$`jrxW9*^JVnEjdPhp3YE4fA4+UHtq55<3KW-u} z4@|V@RI^4uTSnpn_VLBk2ppJzY8pj1%@wN(@0W5S7AAZCYggA87g{HT&d^;N458;t zRJUqRHES&c6uGrBUadYw7Tsjb!jNfPdq$vkzpbSBG4U{^iiXFnFw@K8Sfyt|qqe$q zy>JhwO=nAaSWa5vbvH5W^svB~!xxZ~xnCUXKmf)yZ%*?q5Lj-nFj?K>F`_Uw=V`LPth{N$ zkTYccO!o2*VYJj$>f0Ej%#qQ@g_6=-aoUZ6<-IQf4`fY>K<`0GGf}^IR0^7f$YnK` zJAmp&zr;;M=qKwZUYUCCa*f^g9Q}CRz^t3Zrm5rzzG_b9%#Q*YlC|PNO>ShC+GcD^QxBK07?MIpPUd#yg?z@uOFLaHyUhkzN&W zw?w1$U@^bR{^HDAS>bwn*UloFb)2{@4}T_T)-C}H^{GxuSy(A?Wt@cT;edP_r+S3< zZb(F_q(>WeTfQS_TKVX%#{9j?}HW9yOXeYq?QLMp8m2Qn4tk? z>lc*TVxF$LZhbz7_N5_ZEDBLl-<#~Xy;#1-wT6)~ceM=ulniN(cEr~`Xa0wM!JDEY zO|gplZoYbpfyB)k9OxyLFvXR(c9dS{hH2s$!}?8UwOw2tjjZ`~3Qs`y2ue6S*88C7 z8l1wRAnosHM;Ierb3a}^ed9LWaTR~H2Wp@vKu7+35dL4uU}kot9cL|W1k#Z(F`Q;$zu$}#JmrUQSe zlPDm~S*_DLWa-Wkz4(-?5pWyyo^Pk3D-%Q%Y!~ zoTdQQf<&Xf2E4uLyqs~g6*w`*7AEniFfm$l?7_?9yfZ5g&=mZl0TeyTcx-ObK)=4t z2sh=$)zD+THf9_G7VkQt0-7rRrX|7$zd(_8`ZEV0rW~UCyyas7Id&@z=35oK3HAE> zyXm5CUq_1iJrB6}Z9OdfG-YUu$py)La6J&Z(Yz~k7xg2=8dg=vhD&N*{|2MZ@0~D} zX*`HF9$ZEW12iw8D|ksxNq^KTtQ8bu?H=S^n>Wj--iZtkxQuC=^9Ul4l-qjf!0n}frHMf*cx$lX6kz~Bc-uEt7QPCFr zCzU{{HdDB3U$*}FWNycy>m978!(?e;fkq6gM2!VWk0GUO2rky%-VQ0E=I7@({}T>~ z@bmlb|H+dss&_`@1BHi#$fmLGTnv-!d3F~UL+Zoz5L2nEtLyCKV`ZKG7v0W73e`o* znmRh*w$POi!+Bd`p0IJr*30ySe9O%UJA{x}SSH5H&vq{DGl4oIOf9SN1Bj^F<*-NZ zLiy8>?Q2na_2v@|Kt%zga`O4t_lE!D0w6Q*2%f_9vSg2~%*$BxlyU*7T{ZdD)sXqi z%k7Tn(@ixYWb0B6H#b_3eHegl548S$smJ&9V5zq}#jHjQyj2jy?-m!U)!uYE8%Q)( zGQ4qJ64!H8Ad_);-`M4va%=1BkD%D<_KG`vsL^aX66jp3`Zs_EaLcAQ)<~|ReZEk& z{>wLz!1gXeyS}Y_u4Hd(j&caD*TAusek}dFc<+{1WFUHdPw_K;z>`t1MshZ@H+;a( zOmWpaqZTe@Q!}n_&jU~nva*bHK2+IT3!{?D zVKEk8{yYW6K31Rj$4oQEp)M26=r=ddz-U=`P*SzGk!6*t`Zve2{L$GmlGW(Eez<@w z>SWVVrfe(F7$c!c*1Qa#slbiUkTft>f|S#YfQZXiZnm^3_h!E%Pyetjq`O*lR|5Pc zWQ=hZ2Lz^X4N|4M{rH^O%zE^-)LYJ0X@EkQ<@{NU!1<7CRfuh6`xe4Z=wZOxWTWwJ zsC@T6&4Wyb2Mts{-^#8SAQfn)Y&)*x%!hPexSV|Pa@5P8IcU_X%E=+=XZ|na(eLtV zg4k7gxpd6}8xou4bm7m>5~C(rjOFfR%*+muTn%D=UR~V~n}b*&qz$n>GO}Mb95O}I zfBq;Mj!t`@f~ijge=jA2+)|u&pNG%3iER@p!GeSUTIv3IhVXshjH2JE5G1Ce2M}(3 z79PEE-;cf4?`T|9qpI&fe@p?pX{VMr0dV*%&V&KrN=`w6(ix)Fl()&@^$ft(K!Z>* zF`?rnSAN|wStt}mpUfxy)gaT~Wzz)^0&n#T(JLJoYFw>j4PSL z;RyJwY$$(B-zZvYD?Jvv-vQh-N2!JBAMP;XAtLf_IJ0Jyu-8k9NJ#Lso zVVRb6r>R3U3a;NVXkh+UR>te;@bol>0AP`DyA~|4x5IUtlax*Mq%B-J-gX*l0fz&c z4NxXskAm6=3j6ZMPs6-zd-k<-oGH~^Q1AhV?`0`fY;A2F9BM_$3^h5pxb6?u2lw!{l@Ta#Q~{@?dw|@AsW>3i*2mDH5_~ieqxc){iHoBSE^! z99Em-K7~Gt4y+8ytDbwYYJ7!IQh;J(*a$C_P|s1@*{86>R?Q`v06RIg+aH<7iMNw3 z8wO*Cd6Cf1zyMR0dropbHLch5cPvs)YqRC`^7@owpnXurJvFoAW13d| zUNDxy#Af5gmI|&7Urkh2Jr6(e`z6aVXV_hnLFl%z*CV7EmUq9*BWKJPoD}-bMkP*u z4A*Z$k$TUISV79pv~ENCh-yqhjQ(Gjw<8l~8l2=WvF2zzGf~l^^1lJgoNE^CxA(T=La0%p zp`pkhng3qyjA29;LVRUoqsy-lc-n93>c7ueHHHS5=`E_3Ph91bSy zvWH#O++OmkZYf{;S$wg+O)jc6U)$jUjkUtCzh*rrck9uO=zJk(V7`TG$HI3hP;H`` z_iBfhM#9>xArJx!ts+o*|GY%pLouX#u9>hVTGqtSXCUkKK^G}!g+sG<$=%(haq|=M zaw+fmS^!PPo$51tz4oVlERg_~1I^M^m(jVeGgK-f`eGOeh)^cjiQNM8B-zSi{NMFJ z2*~NzUgjja-jY);*1WdfdOZ(}jwH_nM54)485&W=v)3_9?$>7RYiM1U0*vAPN_u+4 zBqR#)S@4<~z=%2-Xo=#fSD!$b$K%4`Fc}1Hfy}`j; zr0fadhVSoZ`yIA&=2>VVgN%iy*ePrZ=h%De>5ZWr%7=c}D^?sdM`e%lYaLr8)!&^ReIOVb1vE}OIM@cN!56V`a{-{A1 zyN$uG-rSXA6zy+nW+vE%&?1BGvXS5$u-L&e9VkUrUHxB`L6tUo5JEi&`GQd~H(GxT z;d@~t3^Fv6U}G1}92~px_A^5&A`lnP2TCA6*xGVF1#<_H`c2rQ&wm)STJ4&cPdUogK^+5p06F0!n(6D8# zTa^|W9^R3Q5JI;sD;qIkg||OdrcHwR%FgccQ2HNdQBq-s?ugW5P(`I#%tPv>=7eBcEIBqpM(-?g|olu>`P(oBiu<&_u!&JO#RHiqN49zj8X5r~RIA zTG%IEh3Tr-BTJIDOyBifGi!j4D|RN7KnsEJW@xmnn$pRoHeBYwV0y@7!u|Ke4EuT{ zD#6sUFBgMjtO@nu#j)^Rw&F)|{*Ckv%-;Lk=wJECUk!N@m@DaiCLv~o-86zFA4XFz zDgp|xuftqDM?ghhT2jYS<~4h}L<4%>1{Y`QB{f7jJewS*^#|j{N+V-GnnR|Vxe-Yq23Hy=^sl|3dQosrpfcInIZ5*q$#>=?g7szq z3=R%&+DIxV(-Tx%J$JSWJ}(ft`aYbURT^9VFd3!t3u74%g9J zH!Ov`$Jn6jhOJV>qM&bEvEeY}huB_vaVX~aNnV0Z;5k`VgSI+o0RpQxGW#knRucqUE=-sbBq7Zrgh3K zpuZVtCV$bT9ZkzwCeyF?vVPxRU%WYf5y=aM)y*SNS8ym|?wLg3*c`k%*-k^WYLmd1 zmeb(oy8Ar)Jre`-NQrYW%O*_b<0=Ztk$hHu0}P@DN`UHzTQ4$BMqaqx>Kes*yABzH zv>|8xz1>s(Z`QO+SiH8_0V}KE%#dp2eRBY4A zX5(6qlk;cmImo2WgS)iz!5T8W#7*Yl!p!jC3XxwfJb!e^_4u0qNc|d~U^$wK+M0Kb zJH_f^Wr9$d0w&Bb=h;GLA{7^d;jW02O+zyVV4V4_H``m2=%{~Z^K!1Ro9bj%8%&VA z6+!=1`=9FC8wapvdL^O|w&`XKh6DqX{4R?d+sV*^9HrGMdZNh&LUDFz0Si1X!l;AczdgQF<0 zs?XbQY2)C7*l!5N?9OK1Z+7OjuZ<?d&)pM`y#5QQhLnZFbZ2 zmptQQ^FlyU|9mLl@uyX}oQF`(-BS4j&?yBk#v-`gRE||R{yPfx5|NRaXn86&HKpZs zZijAA}5%NhQ|RC{8VIB?Mb zQGxm{1q3uVVg16%Nf0CcAIl&lKD(>G9Fki>!VL?s1v|nn(ue*NY*xq5>ObP2B|r9Z z>C&GH7YXGemSI3eS-m|>DP8BkSN9ENG^OQHcKH1ECy+oz1x0ZP%M zRTWk3UdrOgCvdf@a}=2y@o#%Ojqor#lr&(l@hIE^Id@J?+4#byJnyyAk4xn@$oe*C zFODL>zu5t0;s{%kTszuCkNK(t=HjZ3wwAdUE)SPl>(q8>Kykw=#fagZ-3&-&lzYn4 z1qMuPVMn2tsqH|wvDHiyr)DR2w=X{h32J5+7AjO}+jQ0--~uFBR97Fq>Rh#J(V*wI zs5p5xsndW9`Y~ccE`@+fd)q3J?U+m_B(VWS^>V0|6oh*^Q(x(@m+4F*R~3Y;FMqu- zfsnQMwOmxXmfrjH&qnin<_8iy+ZeO+Kj8n zrzSVz?oyI@En4bC7yj!k=#^sU8IIyA1UyDda9^^W3g_nE$*)6--xhu=3%tJ4mavuo z_@LNata=cw{YtZ2C?he7--QDf3{CDpvy<vcDe( z-LJdZy=<-At@4HHH5O{KVG*~PF4xq&d{JM*o&Pr}83vz561T1g>RaPfp?l>>rtTO+ z&@xsJMfG+i(w!>Ows!V@fKbx0-Z^}2;CLnS&T^TWUgwHM9bO;IILrAj7nuC5}xawuP0<=W?pG;tISFJvR>BdT)Nq>2K3gP$m;$zdJt9K>oyJ!0X1mw zy#u^swHW){Uz%N;PEKllU7~C{;Z8R0C@&O6H=i+i_#}M&*UtkXi#heE@h}lM>~IB| z^pxt)G4@^>biAZmZInqy5JYY{K**RlLu#Vu#=@%@57l(5ri}eXPXn;>+ z>X!8z#+{2wmaWR$s2XvVzQAX;cmj;^Rg&?@gK7S6ifD!mcXK31BN+%W9F+-Q38KJ? z>US~LHAwOwYG;p$F>s*$%NJGt=zMZW~83r6t zR@i^}@3`z+9IK66R-=J{Y5H0tI4A`X9gka<&wp6p8a;M^DxuJ`pCiAi=GPZeE^hsY ztVRu-!VWj69}QSsmR49;@R~VpG9Zuh9JX_!MIbMf{#si((I8tB<<)sXe7u`$r2K^g z`mQ^-1%sGa#vnYLlm43jOfByG8)qs;{&1gemp@9LPnXD4w{}Cmd!X*$PN92$5IGt5 zL^bf9xB`|B#AUkwJ|X|aRVfmPEM}QP-}v3XEW#u z?2p9L6IR1cCXUT(13hZ@=z_YRXJ7fvxNI}x8&7X``1UJ2-((M<9NN0i9W)|J7ysH* zlTwoYA~x$_a3$u4yMUIG;_xC2FFJcLmYAdYesiM7#WaOn^R}*!MJ^|mWN$7L=K?Wj z_U8rb6~39CBuOgN6h`!@&~&QOm}?-EXy`?Tk!Qx^hxyDbs(8br05UeZzJ>{zJZL&H z+SGVD!zsSIALZ{VXXG4#1mdS8yuI&tZQ^oyIE}&6=jy@}<1!j+22c|Y$OHpgfueqt zA$pD4rOguST%To`ll03Ilgb>YP8i`O3%n9OY+>_aVlK?REBAzX0WSu?Z zbi3Zv^nNU_mqS)IYM>GVX{Ca#ZpNCv%rzk}&gUCMoS8=4!5O539!70Dcg0_m1;J!D z`D10^z6rpqC~q%hR|YTgz^qy%GEyzT z_c!YNdnqdAY8ZcZ^M6%jMi1LHq7DV6%oo{ruh2now(o zA}8UMVl$8U^0MX?cNlt#1B?C0}8>aYhLV&Euuu5Jj9zO~yG!=~dhF09{8MpeHZBbAN0sqU} zq+*v>Pv8|9MgPO&eUszn3D-ba?w6TMMJ>@{O0%GNdU)Fgz|vd9TmN>-vDgFy>SuZ} z+)h)Twd_kw7h=(fL;1eh!nc;}C4`i|{I!RX8t{)oAq6 z%(514&VTQ8)(;@^yCTn*W+|>f6&szxV!W^)5tX56834w_D#~@3BPh|+ej|b|v=s~d zW~nj(75X>G_${xVK2oD3AyIa_$7f+bj2e0DfOr{_;ZN z*}jVuiy;vJfr}#?hA0DoQX523)(83)nOY+@PmF`dK4#Lu`)%Yw+m&3$Ug1y2Ts!rA zjq>2U_3bx49?!wR>EIc!PG9Y+LiXl9&`Q15PvE&XTcu}DwNa7dOc7VCpH?qQ=oK0cmp1UNIwlUQ zx3PVTdvETxexbyD22rpM5diH-CoC|dUyo}m_`Z^jgM)a4c4*<#IO-zw;m@kRb&Y=& z{1MvkJN-8g>${b}7?V3D>=}ws-r}#A22alf`h0EHXMQ0CzE(DV?1yhId%WMJjU~=U zDnft#dMQ2}xt~giTk1`{P45FJB=E6$h7GPH^L4O$4_L?B(^=CG!Hn(Fp2n-V7|Y;-Ilh?+ZPyFtVE*zk#t~49(4c z&XW_^dV|-UYR>WNNs^-oGVe-!r?Y?I&BKZJUU{Sn|A#*25}Q~Xpd!orEH#Oq5*tVF znn@!Wa&ca;{8@Xk2PaKAD|KkN)x_}a9MLT9Dfo^@RSUdj8Tfl~&C>3V>eS%(Q?LM^ z)AL*GOsPWqLzW4Gw3=GAkYB8f`!3y3q+{&8tx}W*Lp&ySCTp9Z+JmS65!%h|ECn`Y z`O2c+MltcEdzjj0vDxnuUJcfawWbfhCcLHiV*uRt3NLVV+1emX?-{NN@3G$02!d1K zmh_87dl>^4Wp$Vnaya|-cbsF4tUXWrIfllQOwJPX&wl^xFdI>?)n@c9puRn%MWyd! z7+|!2bO5hbU*6I%Fem8!iHCN-e{z>Haf|X074S3Ce4w&^G5jeks&AJM?4dhzheKIs z&S_%?th}SJ!F`>nx22jBS~sPAom#2ZXZmq^;4vSA+yN#J8;2!-l!eoo7 zt7^My1}D#4P4jvgi_~xKv(Azx@p0aA)Q{`!f`mejH{$+Dvu6h)=PO$hYukF?qCnqV z-UiQXoJklgPO3D3CcnT<#~o9lhmz-iP%0qJmsTo(p75oV3i-GrR}XF~cDwjhg;UOv z-ma1o^YXVyMh>T3>p1+cHYLqSGCq_|4aTfHoQSk$WC>^We)*!T+WY(J<@G3ne>W`h zTpEFgM_WLsEYsq3*Lj@2Rt>iml26_&7JEO_)7GcQ{_0UD&7xxv=*taJBkyKX4iaGim`p%DCMn`=JvX}Yz_Tc$oLI5ch}Ub2W1~R1F*J@(02Hu#M+s{3e3h{pIeDRdrUY{Z-pOhPRmD*8gGwU_J002SOzj z+?y4$1kt6U1U9xHxUPshq;KK>!T1|)cHBc|&ulg1ko!B?BobLc{36km;trIvUI-X1 z{uLbd^B+BR*-6k@2ZcU87;5e=JZu&+1n<0px z+J|PFNky;*+ zaZpN2LhZ8|W4*DG=q&`|#fkB5QK3k-sJ%@VvSpLE=glEUd2kq$37zW&y=of2Bv{UqpAEJyCFvW=^V{ zJP5fxXj_GZx%p9gpR_dOxs#$PB@q-2ss{pTIrQQs$P7;6x#HzuU#t9|HI#k>lx$Ja zppSS{&n49VTKxVSm<9+;RFrH$M=RT7m?-=21HG6387SB-B5d0=A{7Z{TU_&IZ=^7i z6N%t@1M16j(v0r3>8^WX)Lm>0bU(^%k$JVQS!E2RNGx!nIYG}!5ssHA$Qhbq=$}+P z3Oc&#KN|5L5G+gnndubE9wf?@BH|Juj)7YTJL?!9tGbK~JFANk*nWv;g zmGIy(^75H2(?wFlK?t1X@Riw}juIdM0;CA)IKYQ{7pYbGj~^omTzZnr(tD;3J{@a1 z6tT{vsVsgOq$TG#0 zP}y^suwV0|#8T2d1&vc#Mf-F_wQU{MO$(8@daQkkdwbaJV<5}jdge&xN%Kz{{v!zv zC70Bapfy5|2%j0GoTq0nm_vz}OU&fou&Ve*N8X3=kNGobl}$4*W9htR(7JtIK5aKq1e@nje97&BG9sly_j9~}{W6^p zY5@fm|1(FW4r_n>?MgX7mIdN?qfhF;cARDp%*g=b{;#{}VoKGeN4723^AD?ktdxU;qwgupwfYh<85%)mAJMJp8HBpb`2tqe27 zMK_of{sQz+zg3Sy37;Q+u>UiTOHc4w`3+{Zs{QqcL?DtUyf3`UkD%51%q7McL|{eX+s)f6QiB$hIA@e+U-w75AB=`UtYfq2>z&9 z{MT=NDPPz;a#7T`b17e1RrRFtG$KJJRmp%?4_IbMH5d~5g(f1?fWNE2r+G{F*{X+_ z1aC$>0r(y6q^DqQepax9bD>!Gv4c_;{Q1UN9>*qZ@+^W{yY<*&xiUUR#Ls$0EC%n zF#JFdiPthC@1DzU5+C%=Hf9-*EvoR+%7TpR>yPN=ra$(4o>Paja3yKdqRUrhi!D$c z_MwIQd2uy2w}jWGr+^v&u+91wLk?dCDk8>)ZJs@b?~??3)>1m^&WZ`}W&mDouUPyX z)0}g$i`DtN&H2i94*j*z8xQ+LrwAO+hKLB9xOjZmGZU6?VqJV|HNEcW;OUkXU99s@ zO)#A?W1VL68NNl`aB-ECv3Zbnc|!C(I!kyEB_?gMKeGE@|Lf7w^C(NCle<~94T zM+vsv`yL+c>nU!TCgb<~ybaD#le%NL)q7%8`^|(p%@y2s-@dR4G3+2lQ42Pkgen%c zd6kBs)}hqx{`-eV@gONS^g$PufGJAXXzJHUh z9r?z|5*z-`v(&5)aB(awEPxY(aU`jZqN9Cj(qB!}@cPj&uEAOwq7BaJ>V8uNWa%WM zj&#m%bJ92>GHy(vR{PqIZHaHS{d90kTTf5^?VdtKJL)QEC{lXW@ zxGTfGPTjCE)Wss%`%XKbopy6b9h`CT^~G(Ty@yme2TSWLpw-Q}vtxi{fk*w^H6Ggv z`>U5{wtY=I)#{mca2#`Hlo;jti6aJ?ISGGTzX73Qi|U4;V3{z3SdhMhP%84DwwrHm zXrjNGnZIb2{N3mJik#d69}t~0R`d1s*>^aj2K>+k4f>n2xb^1}j((qWFq1l{`cVSt zGojC?iMSnvOO6bUK$mHiVTZv82O|?f294#ddOP*BfXm)#D}1At+!e^Y3e#F7R<1}^ zncq`d!mFUeRS(Gp+$F9vJiOGMe{W6QXL@%L3*MB}a`NT&NhAR1pT*1#_?lEwk7JXemC7^j#d_7su^PPeXLD5mWt@N~`YbOtR z;?p5xXx-Cr5e@422o+e+A|n=k^4=FWXz}_XwE|{$N2feeeyCMX0XnsA!_&?@;%RZ2 zdNv?Xk?HL;nja~A_cRSEuz~*1Qxjxl6{7w*3H%*@y_xp2+=8HD4)=uX@#^w za#8{sWIZ8#3{1mPa=;ea~p* zMro~j_xi1*=-M~ZHmij@6{?&Ohj7g3Fr`9DtBElcdEHEhZlhZ@X1-)hGI&4KnA*i( z5?kA989MR2R2(iHal1aAwqCKM@S?r(JNs8J{JPa&*7Wz~#ipJ@C2(SQf2JkP2Z9~& z#QWaVDKf`nK-uID&b?QsR3Ov7wMAvN2xN64y$<^G9LA)ba4n#XVUPj8#v(=HkfhM0 zXedFA0_JC}(P8$+LK#g0*JdKg_OkX!XrLn6`Ap>+E}7^CAt7^|iT4JeMw3Lox z$lM3WTn!EPryYR-wP9Wno7>yhrw!}&goX3RP*6}jkrsbqwz(6e#o>R)7poMLt`QHuNgf&GgU@oRmHMsPdwr6s4QlsVf5!?!SB8#M6(_4afi6D*?ybpj#0#c> zLOd=8y*MK}K4-o1=TRccUKF}y+rt`SLw;$*a@FnuTrMPx)>~HPWmuv$!vZ!PvDUqc zs~jI&aecC~6UBdf9DsPRlM1J(CGC?8COgj&60dNgr3ph;N_%scD-YFG&M zv2HJdYa&8Yn^7l+q1cnG7wwzbB%)>GxyAkMdvIEHGiTKWo0uv0Dx${ld48#Xtg&7K zKjB4e4zXT>3AuO1^rfiW2HBIujqWS2`pzs>6r96KP9fKd{3t} zoIsHGv{~pkv)aSmR-18ZY;b_pM@<6RFXbs&$C~zz6_JMVW5q`lshKIXZy5R_;UZ$&2$)8(T~*8 zDrBTiR{97|##FhvEY|IbtFdPI({{0#xTJYV`Po@JRFL`SQP`Na5G>tn=miBQiXi(ke!ycZL}4Pw?sFZ>d0sqj=7nd=4Xs9a7X zU5~kbu1$X^ZF-i9^Soe8Ji?Zi$nO`|ScQ+jQ$9|_`c7P?(MMo}RpW?JSu?G3_slp_ zu7-O*hE`sdpwD5(_ajtG?MXd?b&h1LvyD<~DB^QovQSuvs){zQLvkj?h&W(*u;dSc z#|MD%UB#v&(&8d@&Q=gHdfiJyWi!{&8+{HYks)MG+<*J|#h@4c{R-=c|8-w~5HQKT z&$xQ(oXCgl(u0G8uP)yQPSXEOnySzz^!+%T%nb(k4?hb5)J){Icjs8Fw(xY^cMqT4 z+!nT&O0zjzA_z#xTF|dTm$&+P66tZNMQ2{S#sx;Fb#k+1IAz!n5M}W1l6S=e4$S2H zK}bd!Pc{h@;e#`{4*8rvv%H~`&UbJxy~2tkxi1II-w)FziF_ubUcGh9M>k`sn)Q%n z&|H*4myVM=cEGBt4)aO5TBG=3}o)xcoZvOAY=Ep74p@EKhOVOzgF8KC5BH<2&kPpW`jIs zGab5=1^m=043V41Iy=biu;>Szg4Q!=IxcnT_;;mKEUR3+K5$R+;RHzzV@9>EufH;b z?Q2}(^*|tL-yr?SBt&PUqolKt88e8}pNEGoP?*rC^zL~yUrtjRLAhm+NA?A5j8ivCEjpd(5^}T7PfpFNycuWXU z5c~s2`fvly8{(_Qgn~EkYsHsHOW?*4Ve)K6VK&tMuikhJk-D$Ea82%ykujE^2y1s9 z=)b=@)HrHETKQmK$>T&=*M7Ez-V#7aemdM5vr3P96}g z0GNY?^^k2}#VC04H?F!bedPyc=_8ek5Xj7PAhYX*&U8;7TJ?UY{nq}*wGozU66c-o z@GSa`WxyK-PG6|(ih+zizynbubFa0yG7_B6Vr=EyO+2{2AMez6`- zWaLYgv;A9m%bf45g7j_%^{fK*dZCBCPa6mOQ`PtKBx}d7;dSPs@MOlwdQKiJ*a=$& zsb5Ui%GaF{Ls`v{2^BF!RY24eu8b1U5n#sE1~@WX0uq-ae67ed^-h>&BwJ!SkdNb! zdgkVzT6fp%a8hP?#vEi~WyN6%uaAjo8%I3~t)OuU$RE?>x$BSWMh3fA_en_^D9nv&ESWD8^3XNB7G5i>MvtP&Z=@dCCP=Q zG|4Iszg3m_LtvD%hkB^n&@w4j&xb3eBK#7Lhk&*vhu=ZFs@|wfxr!A0!FIGZ2%o^5 zEGLXYWT|ns{{nA$?v2%3_-bprAIF0y&&un^H-f&?Jo4i4Z;ENTZZQZp1_#9v=U!>P z15v#P-<jR* z*%O+Mf#sv4s3rozULJ_zVXAA!JZ19sG}|_oxjvU+3i|=Y`)BOPT}7mx7VZiHNR}#y zZOUV=hGFej@4mP?Xbb08tHmsHw_AnqhV-q|2U61;N>Za|1PoBm_^q3(r`UPWxrH2^ z75-OUc`~yLK8^(3Vab_NlXZ6rbc+tBl}}Bs?kttug3i$TuT};bJel4L4{yX2FtRlD zrF{XvS0Nll*X{&hKP1ba=pzQWbO>ycwgoZ4Iumi-{XM>YT3gf0t9ocuo$s`7KTnnl zq&t?!rBa?;tA#CjnR0=1fw;W9zonj~S!uMwVPibI?2hlq`ULUmROg;>ize{u0OuLC zKF_A}0nOL<{>6A|DZk>YF+c8%WB?z`oyg|yG4oeCpKj%K-2Cdc>wcC%e>>|f{ROdK zrYT**?q3Dcs+`fkIf}!s7opgeEvf$YH|1LNUY111tU=Wl{1i>>-X>TZ)-X>*v1rSU z$%nDFqDH2?sG?{xM5p1P z7cjC?MY*z%%WE&aE|?&6 z|43~X>vQ{`_lR?hjJ$PpBEnA>vn7Yux3gSK@l)ql>$v!gAN5f?esR z3PZbl^iv4Sh%^bH1`26 zxSiYQ`1oN_d`{MkC=niHMk_%FsJa(_RDUp9j%QxC(J&JQrx@gL|NQxv@pbAFv7Jp* zQuos_JLN^YQJNC71RSCt>Whlq)Z2|zcKi)42T3x=ySkRNM|kFkjY<7`JNby^9LQjW zFmd-}(pHD5F1YrIR?1h0NwQ|&bFn;{PGi+_^8=XOBkyeMFO*()Qw!e}Q6Y0&#-y|6 z6lBo29n37BWAC9TyV z#QcjpDv;CJ?t@S7&}%$yGtc{Y&t*;U$nbFLXR|4yH9K4vQ8qlI58W1N8g;P3Mp6Z0 z%R4+wzS7hwIJNT1hV(LQyLHHLMw+mjZu23vj6-7DF14GgOiJ!F>5d#sIvS?qG@BX+lFl36Fm za}ipiVHlya^Pb-L`qJQuVqilVPJ$u$xuv!G6`R1jymtRu1~;4pt2+*M2(W)qect{W zw2vUedndpQpv}J5CS)DIQia!(riH81wH~$LXAQn~^E+xy>qaQ-cpDJ2S&4ne*smp4 zRvd?;=`QR)?9*4Gp9)>M{{YL6OK`L8EH}Pt?^s}(J@T#a!!ONotZS&X!5vdXJ2}h*;;vy%Qh38(#;s^Yal-Xks zqHaQcDn<#+=IqaMd}hx(m2RBVyv^~?87XIW1a3X%%EUCXU}H%C2Kurd^nxoK;&rXGU3`4G88SeMz>V88qR94S#e6KS~T>*S49wwz&?Q zcgJmmJvJ0v-3HEsM1d(A`X(L$9i5qm@yYn*?J9sI*Qz>~d6qj|nP*-fKdJ%F+`?6L{BaP`f08qfqhFAk#NkNP(nP+rMd1!SzL>jwqM7!FJe3 zj%fL6*-N{mxsR1@Qrbl?_Q!;Z23=AJ*$LW73n+|3^$i`Xsr)9ZXR8baVL7zSi%+{l zs}&)D@}q-uk|b!{N;kIE+C@zt-=QXKk>P$8xmZ1!K_5NgCEtE%j%w(*zFY>o?~jwU(1LW30A6PzO5%(Q2k~cjSD)?sb%u6H z@Uv~1cE{1DjL}GR9748c%oV4D*Vj5NR$(sBA3wSZ9)rRYfYq(ufyy6GgtB;}dK zCXam!2Qfv={Zbwph>OT9lJlQ@4VJRx(FFMzaWzP{Ima#3F3v}(Cnpt_l9AGCC-D}d(M&y)%iq%T0MR^dzjU#QLlZN1 zF1@vE(4ck2ZT=54Xq~ujz-{adeV;7)u1qr__Q?)=rPuira^_75XHsNqNgP&zKqxv)*yLr#X^z7-RBbuYWWFX6$D|y2B&eq zQhs%_tKX%DikN+W4m%Xa)z8RT)*Jf0%~Y;_OKZ8DHfJ1T|Ju4?p&HzE3+R_uybRNTz%4Ys1=6}~rI zPp*_tVB(NyB&XHaXpk?pPZ;szPzMOKP+-A>-(4?9YHpBD8)g^H-e-sOm)&~Y7{~%p zSBi%wipTU? zx!5o6KpbL?b0&v3nK``UUq4<(Wlha9kRxyJ_VZ2sV$L}WdTFwI*R?Hv5T5I<{VJ50 z9<-t1sWtv=5?(Moh1XU$uI3u)ZTuyFNae{*LhUL|f7-ogElSX~;9>B2s@RR?jEk)}kFgso}&J%cS}7zYm{t|7yQQn0y;ENJu{6T`3P zT{_TUHYSXe`~9hSW%Cuv+NV0$yF~GGe8ar$G*7Y!@bijdR zRqe#EB}~8dI@{yO`}qzpZs^7hHtD6ChK;Opb#P27(jn3LvGX`CE~3eVoXbc!TKSM5qeky>hrdcc?J3pns%T5jKX9Z1C4}!?!#cm{>XwEWnzF>gy9gwI zO5F-Uk;7M5{=h;Nu;FQJKmPhtlwfJ-`*kd*qP-!?#Y0WaS5r5=j~{1pPIBucwV%GB zDm-+uf(L)CR31iu%*G6JXqdn!T(HoPr6d=6KVH!j{r*r1RAynxV$&?^oy@tCG-&+o z^@nAV?IWql`RW(XmglaDxQ;)w=vwtQOt$6=TiV%IZHqfY$J3y1rWUOeadfn03Jkyh+1y zTJo_#0hwI9Iynsd`f=XAdExlrdBF4p<^AUSqsAK9dUT!Fx7{lUvO?(Q=ISNPn8^+~ zyXUZXo(A_|XI-vjcO=piI*&>W2I3`o;2kxjE?7FfkUC$Z_2+YKR~t0b`NG}(T~vg} zeh#8A%*9)ZlcESviU3Gqi*~SKV7qfP1#x~~e@8d-NWXN2Z0=0(Gh8@k3DX z9>1G!PO*e5O(rtMAZ}k?;_S=8knD=TdBwwbqJTQXdXo3b{}&7J)&+lmPEEV5hR7&b zV{OesR%!D-Xq$xk`C`QGuT*wB3*BmZO4EJ|@1k|yWcO-CaN(t}ZMV?rM-ht;~GW&Lz)$`5%t8%|=(UXCA81aH=!$tSsyy7^r9Y6i9AZTt>9 zI~qut8TsySUKz+ZnYcYWhF^5QCOR3dl2 zI>Rj5(1k`T%cJyW7=F!Ff0UJP@LP?xSmy=uK#l>j83y!>lCH%)w{B#Vre$@9{RQMR z47KR?%d07PpNpf??8IU*-W-%BOINpa^X46D!FBxPvbg&<&1Z~U`RJ^yckAXe4)>!B z6Q>GY?7?l?Uk@ee$Lz-88mM{`lW{@*Y@$tcKAM zCM-c~UEVlFNzO0Gt1)_llibB*7v^SRCeHBd>zsJe0yR*)Qn@$0mYhlXI zthA0I`@Y^~-8cnfU|VHbtu?t4UiCPnNeGhXvifW5++$R-RWJ;zpP&l{bpDq`>B_*V zVOYW^wZY!AczcH^OxMREbWQ{$WQ^{FnI6wJg))0AdXJKp?~m_<3+(I$dJuN5AHqCq zngtqJ@H>Bww}*+8ZnN!!_3qp28ir9g?7!n#IJCR}v+wiI&h-gulu>iR~UfD!fQ zTza(O>68FCxwORdye3UrrS$LeSDD0e2u=?(CG#4tZu>z4a~Ml(=?Hxe_=->Na*S(k z_qjPy`U(pw+4(mmu+G)>q-kL2A5Lpn(gFi>2fu&J~}E%$Ighfhx+!H78gFRlX3=l^$uFv^5bB^2jk1H zgTFf7>%5TY2MB^jlBhIeWrMtqVS7!+wXQt`CQvdGze{>u=OOr*&GQW<-wKa;Hf zm@djoJt;pP&;I@4{;c2g`? z^15+|_mEOG)X4YEcNxFW&=rI%pEfZ5*)bg0?B1i#K&>$y+Za&5-`8xu7uJ!walzCO zBseNCbWFZ(Q>LD^Ks*FCL&KfXRQ_)tiEu0iM+b@S2e~u0>DGL`zBe+iBFp4Lm>wkc zWXlXR?EZKw4e9YO_qwlJW#^iD5X}9FRCJ#HS-QaCIg#O+>Z-4;DOt#3?t*m8W#Hpo zBd^W~Tu>jmkj1=|Cg+(4dtKEldd>62)jg9|YTA>j`CBQ?*=$q8H4e%$iy1-lv%=}% zU^-4N29zi)rC#>SPEu5!8gXvZV(W?F~nk0 zsMa3<)SvDAWeW-%vYl~yv$atPCHl~w%TA5A1q)4S$!Lyix#rf70 zM-5_sO&^ssl#Df`XmQ{iWdlLcrTRPxx-fkSEf%{FLtJr2;P#CxqCXfumzo87izXZu zf#fO8b>p%S7BPU^P`+Z4oto^Y53Mz0EP~B_{$@0qi#N~5r@rSnr5HSx&}MML{RghR z@l}ljwWVyhcNPvdh61qdU^0g;jjwW12>Ab#fy|G94}4j<7I`Y-Pu)^Ysrb3#nAw)x zVOX^Fs_*4noD?=;(%Z2|F7MV#cAZGgtnuV%c|VgGvFBG-rcc$2a)AVT3xFcPbqh7$ zZNRH<3pH2nP`R#aO$)V&#KDEyqi13H5KRFzqo!gLd+VugT-tu(vR>cVO^Ns4wB_tY zfSRWn8}AoGIrMrl6dQt`RLipTcC>_X#Z}Rf*>K_Y^U2lE7;n;&4@_728td$PF<$mN zUdz(>I}=yQ2a5{j4`p+^?T{{G`S5n}E9Bz07g{281$?>(N9qh_zj0l>>QhS!eHD-# z`QR#JdYCGc=j$7xG$^PWG0ysP-4PRn7MSX=x0akzL>sM;6H2~OjbJVnq{d(JqkJVA z<0}6xHAdVJ%apNHA+>H=L*GBc%|#u9K{>DDLiawC#Eo*~Wu0tcmlR#? z1AX5=;fB|D-^t*9g!P|PTWH+@2d2hZh}n%15%h9ie+CR053B~yR6@+PruE$BFTTS~ zNbWgL2PA^Fos5kH;s3|W|46Oy6UZy;18`0d*ef2z=cS*f+|ii-t-h7|=MYDe8VJYq zQHg(c1jL5@K6%tYyFFj$IzvoEApMdYjv=*DNNscXkdGx5D-|TuAN4THm{P~Z8n8bi zUc9`SoaV{JJ{4Wd0g?Tv5wYi%6RdY@di5nMN*kdCVeaNp8|_(xo$3Kc`N^y}I{pF> zNC)@yza6YvCAPu9N_DE;ucl4>O-RNsYnw|Ip9b5A<(Kq|R=eGjFIcdZ%3fx7pEY(; zj5g)sh4VG2u}B+voCK>^*}S#Z!c27N$?I#<4RWc#yZ9NbhF)&1z01NwA^O}2T?As1 z9JL;1eg45VTLCd+CQ06|1yWMNG;qQYbR68&`%Ots)}H+)gNpN_SC@~kNU)UD)ULV8 ztufKpm=!wm?_Qihnde>ZgiQnNMM9Q(Q=IVSP|MDYczGCgd6xRrwoh^4SPW~A+;B}e zM$vlrl%(u}cH(p5!x%pBf&#wsKeAt$cWh#6PyOlq-4V2iox;?pz6wF0d*5H!GEIa* zKxlQl+?^w|fwQLq>du1h{d7~F^51carv2sx5;G%9PpR0xc@SMUw5EL0!t}VGWso!1 zwfZ+DoB@kYEz&<1#TWw_B|WKke|P}=C3S>;{22o(`TvJQ!zsfD^kZ-1xKNc@4Fd}V zcu@Kvh+Kmet5T?*r$q?mYgVB5RST0{A<`pI(?StZPKpUX&vW=69sl_9H|mLxp29wIW?4!7rVdBrRWsjvrseo6Q^!gWXgl`KCK+0q zCt}Q5*-Zy}b^&uUwglU$PCABo0s2RH?7|PWcGh{kpIc-^ncU3{r|4W?tX2vQO)Af`-CaWzp!BA#x-_? z_sYxN4~k9Nh)2PaX4oZsQ-aS_fc`5pJ^j;J%Xzp&E~ONpKaAN&EZ`mx6oicXDLbMY z0ua3L@A{^q;s}76|LG#Dt2gLUL-|BSMRjz5@6T2NA!LAO8LJ^wrx;F>-qM)8B#^IJ znu?H=kicQJRI8>B24rR_zD6b&=e4)>_%*}1ph3ZO-2?bztOT5}i3}EAlfSoE5)t^b zfPnwpP=i((5H$=CPj7L(%+ad=l&x)mLcF}Z7Vlw}kn?YVbU4g9w9L#vtP4lro3D|C zi-5#>Lg;DEYTe2z%xpW|*pFHAe`aeSm|NZ17Em;ykbS+&w}ogj3g|3(&a?=qLh{N* z5CNmHPMea~!^I|Ie-0X&L9RrEd5rCUWOg8kmnWb)rq}jQb{*a?Td8QlT$V2f`X8)N zwt%JmAtx`-5C~azzv6(Bmc8QjBKo0NS1Glx7|XhNduvPd%NK2f0YDU}W0d8rkbuka z0-l9Mq0_jA_O45U$Gl3*inRC3Jkx^Oa@EFz)cBV(KvMd8ciFN&_iGe3Ha1ZDKe;?W zu<<{2G!THD>^EhX{=|eG1_+n9wY!|J5e@(@=TN1kGVO+zB4gYKBTN;K{Mv}V;@#c# z;n&!$tu1z#^}A{DfZ%)OA_G=!o7`uo|Oy_nlQ(oB66P3|@Hv3%=+vb6y*R(rn zG5WwN)Osnc2J!7~y}PI9UpTWdu60_9KJ1n={3V@lV`6NCd`4$8F1CLb~MG1q=uuW^l{G$JA*pX0&b4lp=D+Neqca{x1I^Cd8Jn570RM8=8( zLQShZETh73TUod+kt&k8$HfS481LdEO*;2vxMnd+fd%<^>ztIDB+~TXm?!*ks1SI3 z@=4N5TPUIUmbvEfK!5Oa0I#-gx%}+mLgV6vO8Ke2mN)>LJ~5(^trozWlg!#k6i(2cY^g z+FGsGTHUt$ktCJwA8^2pN9`1+dT(V-9XrPr9n37nc#9rB{XOL)=DSxYo=>`NL)|pq zD99G;ZzFr@4IQuLhSx&&zpEE!F0Rzz%zHYRp9%m$D*X;`xe;L10fJOOfD3;9m7bp5 zHC1sE4!uhhJ z7KdP=Mc2Fs-XEzhJY_3@Y~!0U2?0^IO623#*>qbXq>m@F4OVpf`F0_k83bUrZ$#X} zV5%8YbyemzRuUj4CI%vjFfji6`G|sIq8!)aQ-FB1mruc?*@QsH@b!6KPtb**$%$Ag zrn+q7QBpUI!|7u(?1R%0sMFQ{9xixP8O%r3d3ar{e(_gQp>uk=#?t1hcx54o-pY30?6jsp9dJH2O6?)MZhLMMf z6g4{DVKB`nHQHOK^$hD%($YHmPigLyJJfoea+e_q)cOKO$c6d-_aYgud`(faAYea( zD8E{Ea>MkR`|&KR#^>=ErTm+q@&TNX4^<}67UA+Dtolyz* z9(`;JfR=T8GTR++AofuA;(IF!2nb>cu(qf_jMJH^eU2^^-) zF}TuS8-xs29p-@oH4NXi){zPqPQ!?GB)D|F1s}14wNZ((rw<(=CK2D93sSckao#v} zb*gKUffz?6tB+SV2QZqd!%Z|bIl1}_b=)7?E7>`4Ht9l?zwmI)oIEc>Di$Kn!SLTL zW#R*eXu0El?7_}SYZ(jNfn#%r6<}jA0!{t!6SwOc!jCKwh+~xSvOSZqx>VCuVT&eV zC(|-`x;dcI#wuwnj^o1-3**g@$3Z1!9xUH%l+ia5q7H?C;LTwE-euuY%oAC{>`hH_Bynum*TB2!xRvU@*6-a#Zeps zc6BC+VhZoeb0;u4@`WQW?TSfFQ>_g-r-EUNCgv+x9wVmjS2lgm3;8lh5=b8|ZvHO( z8S~6g2Bb}GeHLMJy6P;{)mt;!D&H?USeBJMGICX{+F`H?=Pu~MS)I8iK$PlsAV?v8 z1aN4pU^B4jHs=9{pZUMYEQ^+a>et@G82|h4Yv1q(v@F4P{@tO*3uZu&5T8Bj#i-`` zJSD5{banceom-Dfcd)K)$@J$z&jZhluV&N5gPtG_mr;Y5GGV^_P=P#_dLAE2H(OQ7!XhH0y?B9KZS?C+HRFrWT_wU)wn{XD(R z(mUq;`+02_!(Am_mvMABd?dA*`dC-@o>=cGT!BOiFYa=@)?2sLqPUo`zvj~cJ~EE&`f!l;Rth@ZmmUno#V_XnPhDpo57pcL@gYl*Ee(+p-%?o%G1-mK z*bPRKDA~yrGWH44LY^$Ch8bdH8%vCR7itP+P1$8%#%=~mN|I9z$VV{ZQ*(0i+sQviqN@i6x-9FYzVBZ$SU0W7sC&*nQu zhZJeVLl#AL_8T6fPGNVLYtJeN2Jbe@U4a44#LN7vxS>j5g69!{D%ctz*#qY}V9H3D zNiZTxM)xsqHS)PO>hw~d_{DP6CzW2BYOCT=IC#|GrEPXnC!-YI6s90^l}~CqbFz-bj49p4p2z;0ybQ~f5{=Kzi2!*+pX<`?cg7IJ@o%UsBwbL*8d{j9Zl)gE2U@=)r?P;Y71ZI@qq{Dp-D`^x(s%AytDw#sH+vg=!mH3`J)8N3*2!5Rw<@BRv_*U)MT3kxXj zmNV@xebrl<<$CWEFcLZm?~_J*8j|HxkbVQ)7Hiu|%AU~uzH1-{lJta}H&0D?@!~{p z5-k5D^zwVc`D7}!LXv2|4_*Z2YdplCi|N~vs*lGSQkX5Y6^Lio=|_u-g(^^V)%fr< zA}aQp{>4-^u#o)w<*obF+q)q|+MZw>X6Zg8jlo2gMOsY|Z7!Za>ex`aB<`>u)_Gi- z2d2~~-A9pzqEAVgce_?E&(C|P;6Q4a;mz64mkm7m>H;3U-%Hl_x+@;M>#LwqqUd2X zwpy03eLi0_E?qHSMgro!DfRtJ5`W8v&W-C%hI`T9RQa(+rZs#ATQ>?d_XF}a*M1$5 z3H(-1YteH&E;n~Gl)n)n-ZSK}jw(R0NX@^-T}*$H3kjv|g=n*3K~`1jfPo*j?051u zxlw=O1&PCA=z_$llmeKJ{$YvifgDyCnPL2koP6j5QV?nHKX+#JUPeMv7q?-BEdEs} z!`ABdvJ=Z>= zlUi&@PIiHY&p!1(lWOjSUH$Vqew59+qMZsmBh8yeS(8jPlDNk1kKCY$XmmGcBL(51 z92!+y-RG1JXtY|7H>^>6J4FiA4^zxAQLU*zV=Q&|=D`E&MFJ zn(|5x>H{F~z0Cm(+|)_skctJjGCr4_kv{_;EONl1KA4=X^`8fEF85p#0&qJC9K3nd znJkuhwM}|IwP=a?G;>p0WW0E$$rAV8m^5=-_1Q89I%iV!dLS!y^b$Pi6jcKjE}7^m z%eIQ@`79tT<-F@l7>z4&d$?P>6hn`02mi~U3~roe>=dUpX0qnbKs1u9);b=%j8(|L zdMn_%xDl-BMdd8FtY=ZU1Cqp1RYNp)F6y58Jk+ zR_tW;<5$uxg7CCx)w>DCxhchYpi(XyGP!8;Fc+*ofT8`|#{2gA-_RmTNJBoAY3X`B zI*<{0dICC{5;}Ojo`15TA#Kzc=2lvi+b=dw`^ZK1Bl4eQ-@aA#JX0<5of13exNyP# ztGKXz;&VeQv*rCo2KQ`yoMx^2n}qjf%bDA&?qNoiyKNud@{?<{u-kgcXkOpy_}aK4 zJ-7S0Z|rRL3A6tQx)#1H#B7BR+9nG1tW1x+OMM1_U@ua;ExBYkxgoqNywa@DX3|3( zJ<=z%5A!}|h!w|`#^ni>MK#43O;v-F)hV_y8$Cp0JRVQcIR;N&vkHGSEFk?GS1s)p zfgmDY$M02!L!9naz2qlT4l?ol)52)fl{FFAozttajrT<360JQxhpzE8)j7rnNPTi! z+U&q8HF0M}Ju{~jcd)o&&%4ICmo)!TT5dBLe_dma+Xr%uXFW z;Z;goEVQiB;7l|`%WSn6C8XSkTZ=_ z<$<$oze_7^Y=W1a*uz?Dep)s8I8@~2v^);_5&ci1N`t_U>Sw_Z935Y>@rWE<(%K7n zd$yND|4-Ujyx9Dl_)(|sSwrLJ+fp&ZjRJFjKn#EX7f@IZ9Wb@HnpDItqlyKh@s_vNH zh2)(t_eW|@X$Jd$dvh6l2y<~)1>oK)_KeWp@W=bhGTqtr$iN`afyW)2quA`3rv7D5 zOi<9F)%6~C+V^s$YO<1Zgyt#~a@g@r$c%n{C5H}mE^mTni*7%pE6TIasiAR%UMpmN zV(Is)5Y&;OM>PE8@HKukP9l+2t%35nm zd@;y{?6)3#GdWMFa?HDI66p{H1% zyCL*s5$>MJ5AuxVT-!??4-6Kvhc`J5189FYA9l5j3{Ba%m63VzvnjgiBpzD`guM@O zP1oA;AOhgx01_iX>?(i}AdQB8f9ZawE_A%Z4}xcQ7N>0dGi4Ph7NjO^4S|?CZ@mW( znYaHK%>UQqsxAI4jO+6S)lOf`VwS=3En%!N(LGqdfqZE{Z#H5>t7Mfr7@%i!umqs=N=VKTUl*76*$PcSb`T`gZ3+axlToNwIF6{Jfq# z8c{Gv^$=lLJ-Du)tAL%XYH4iwj|B5)7qv5nQ#{l{BvT6TZUD-XzS_zM__2b5f>|b? zl21vv1axn)+9?_hcDiErI6ZM!erF{j-k*v5o{tMzjD8cBT8x_@uJt^R>>X@#`Eu3@ z>}#ze>b*8m#OVG`#Kq-$C*CtG{dg}i6I#w@t%#tQuSBbQm@`IhP$u)*?gBw>Om!?& z$>*1{Wx2wXV)#ILRmLrkfO^o6@~q)sc`A!IUN=B2$&*DWJ{_P}IXD=a2NYP-8zJW20qXDYXT`--V4TIbqAi7|s=)kVv+Ou13JT-){OTPY6(99B zvaHz^{C379epF~Asa;lk7!8J;ng%X@zP{Ae)m1=h#A}8Cr6n18vvHaTTe?>k>sV

Zmm3ufu`j7lb@FNeC&=2bN=nqz+x2Jv(qk8o#pTN}rNY@Ft7+Eh;r)=Ke zw6H(}K~q96h6d0;7)(iLVl7rkI9Y~NB%C1cBd^S-9Y|cBm>A5wV-`ZA2bEtY{uV2E z)Kvc!8%rRl6YLL+SjRapFi{*XO;{FyIAnLzo^Ntq#ZIVjO|ri{BvHar0@rhza3bqE zM`hB!W;sUm*p3yv?QWZdy_^lIza0ViblqBe-&$Lpf0o=Kl_mXP<7v!a>$i0b+a7Y$ z4BiAA`N2x<9k94Eo@!;`V-A#FRBD6_VP|D}`pUyU*Nx_dpNJc;w+Tc^s{8XFX8FKT zSd!Olmx*k>r+7;1tu4AJ!;o+qRA8Iy>z)nr_}N&VlaB!8BSC9-ZnEvgRC~N&G{LTS zj36MDbWvNISy0@t@Qb`ya;Fu8=X5H)v4WA9nr%@aW&BF)kwv)&(JSZeZh#x5^agd3 zUBk4)u6Of0V2jEs{QAlH>jl$o=h|Y*I6%;AZgA z5e?L-=;%3rHC=unhxx`tw%rA&rs?Tvz?^aGN(00*2?>cP4xV+O4+P;!_eWgzk8$PK z|0~H(cl&^e+TENdsm$$eE&h#$U7(jS5B7kZ?O6R#KWMa;Kp+4$8<5Yy383l@>|kui zT)@FU$`1DRg)$jCvt8*0g@tthi)Q-wh)?2+SEk1zYDEBdFPiS{=v{-%vCW3TC}9cOWRbr;6`Dxz?yRZe-wS8zSW83y+k_dcTxEE?K{1vE7D;mertOpw2p z0sMohDgIm-?Hu(dz9KaUp1EQws%U|RhJ6$DgN_y%O$<+BS&B(M!y3FqdW8b7_rUrT z4ed6XnDEnAw!f*D41JV%?OT28dwaGbr*i&bOZj(v`o zRE&vcpM7C@@x1k-!{0BJ5eOUT;>*6iJY}L`Qp`w}-=RpP-d=h6Cu={Yanpw-Jkdrb z9hFa&w_Rr+cjRo;3(Dg^68t$G&StM2KD+2^8RWFZpN((QWoTJy=CDI}Kiw-q zYJvB1!V7Zwag10rb**((zlwR?ZfD{$ZATqV&j0&%#V>7{9xrdvbRY7*@vJh(r9su^F)X5^DeV^#koMgt)wAl-){B)~hYm zO&l*8G*Q+R)~wd?>|^>a=@SQqsXI;13~3MitT4!7L zO>uNWk8i@1f3Jr(f~Zbq61PT=zn{|CMTQ#-)-1`KZvK{mFom!FBZj9p|i*QDx<~5zw_C0!5l4V3Zh{dMytFzPE>+jbG@|$=XjTC-<`d0*J zW0J+D{~ii=qAl^Cei$O$6Q#Uco66B#eLv=+C$qH$oh$Ds?i;%Ev^6x5Y{Qe1zk&r< zK&!ozfv?58FD{C_GF*^nrfT2xP^&8-j)IB{R62mk4{vYElh25jp0SeE0CeN2^4_J@*tsRA#jz54v}zPrpzPiAfA{%sqf zcT9aRVpU{2s>91KYi-?Ny4CsYKLrwswVl3Vy*A2eY=56%daI2w^~Vo78WlwZD8{f){JM~4z+8dAVaazoqo*g2QxC?0Wqv9HC$?7BDocAR~ zh2!HdHf>e8eUwGpTN$eBaz3+g;G+}|W6*B&C5a&13sIvfSk@PK&afYr7xx-@mV&;;8T*Zr@kA)NqrT;RHj(O6SCuo^YmY z;*?=*Y)m4O)my(Wg_)JLezj;qiX&Pvw&S~!i{06T=Bp>#jXw=EIsR$H&VFKl{~OI5 zg-)08?rziJ0cM)^`c3Z<=81h~(|4YG{Ck61 zL{@dSn}x1W>A=|*#)!;qW6)acO?I!-SOf9k;^tAk{t$R@pYUuCyYvkz80OFUUO|>y0lTpt@4$%wI0|x^ah3lM=M?%F=Dq*yUbE7*?hJx&H@@(( zT_{;ZOSPBq*&+*+O7(7?R1O zDoPhyp3dzq{;v6ssKu3)`k77B)q;U}qcH>pg?3jg@5*RNkiS3P(b3VT2F>skF%6A7 zAt52GtgP9#o0>1g#r2JiX#z!k%ltKn+ap+Lk3a0MjTw%YM}&qFVq#*Na*)50m(SDd zq3Yy2HsnD_cODOwSkS7dsLT`|pE{w=H!T!AGMiqw6wCi?k$`T3Mh$D3D% z@|uEWco4d~OTT$GsxQFrUa_$Vk>}6FXo5H&-XAq)cNK6+Or(1M{{2DM`HA$8^z>by zziVcfdZDyJ7q_3qM$_nQ?BS!iESebiW;9{U?Bii3e=9rbWLeb5RaRCqdxeFBz-kZX zXko>jpCE_wbi2Y&K{_PDneH5ac=yhI;&jahmXSXpIayozHoqcWNNu6fd}j=HwK!u% z@OE)yqll{0p|;aO9c8Z7a)0!IWNIHQ%4VC|*^Sh`7XH&d{_B@7<{oo%ap@Twr<9f1 zkCtpByHeBAy!BWkEzWD)uwX+t%es|98)gFdI~)DT@(j}A99FRz%ddq!WLZ=OW475u zi6p8zxJ1Tgc-zr|xc0%ars4D^$EI!c*_qP~?|S_h+P@CbL|Z_*@lQ~dpp;XF|0OT^ z#PVWWLiW{WiO$e;gOZWel&Y#YC6fv(We%{&OH1!T?sCx&u=o$q_eU-814U=^O|*`7 z7JvQz4g1Prx$v@63lj_LkpCQc-rd`~^^q;c zpPrs(9gEAVsRaxy|IYerG-oNW7Xt6}1~_3s9O$xOdNxCz*Wv>iA@3(qdaJe?_1j=?Ht{_|t!bCdp`ia{2*+j1q-pC7uk7jN0} z#BPU=mDyCiH#qV3C+DmUeWaw2uP0+|Ua+^fSFTl$?240?l$0#Yoq7k#iGz=i#94@9 zH|ZQQLOfPMniNlAg0_0$QA~#_8BclB#x@W6o!TZhZHDf>dmORP!v5rm-y+4oh}^_N zK$`zlO~LtOJcoInGq_))^91{QEFJ^C!8IAe&h+qBv<_q0-tXGFaw#N-eQj(J|wdH~Z`zHGU55W^&grUARS`wbp@+(cw zZnJ^N0&^!YFfbZ9?zlh3nMHQ_;z2D@rOU{wj-K8p6USvGo}+~%JE8s25{tuXEIt7v zqeq2CdEoFM-tmr}w}1y=82C^TVHhA}*?MIZZJfhnq)}8# zi~E(E#fS4zin;Hu+`D(rwnCM@jfx!arnm6-v^4Z)&YEFw5Z;3(=ac6Qr3+LaYi`%o z)tzLW?^Y?~=}30YJQoqk)!+b$UPY+Ac_X5zNb-ebIkpXCGbt%)rqBc|ydN36f7S^T zPA4alypwld`G)sJ{`12wyOo?K5ZJh`CR)DDD}4JUT{3cVLAc{RdaSwv_#T3=%9@cW zPLKZSoQ*(HS!534j1b4le`3*8Bi4e#KfN-9MBZuI&a22RMC&oL+WnieeiF^xmJ8hv zXen4EgTO(Wf(6bqpL;>~@L`ToRDr>O`GAVe9C_86c?l{Wm^j-jO3TRTAYl#gY0#X} z`NA(FBXfP?u+!#X!;7DXCfoUBhO&#STbewHBA{ve4O)BTlZRy|Lq8SswmeURbZr7e zl1`T7t4NDjDc`O!%P77o+wVY@a$JL#;y0MvCAKzgNd11D*&?ASr z)8Iq2eY)-(my(jQQuvCl!402J)ZX5HeA0fzsAvucNoxQ;l3PErZfa7C@|c)N&0(|H zv7w>CE=y5X_A7;RtOU)rl)%8?V0cVSMM464A8XStP4n-MmAYMs{w%e)JY>xwGOnvP zSzIhx_5^j+C3{@eD06bQ#dvP6%t1*?+R7Pqve|m|Q5MbLP^q76!h{picr=4=?oZvM z_Q`I}h&cIX)4C6i#y+C`XPA@ucYFdN?F(NbJa{H%^_$%GAVTD$i5Aik*}|f9U_x@L zW`#MQA)QkyE6?)zcBbmQAhPlF#LO(2kBnyd8TY>M;AWZYIz$(GtX!4Zl0gwHx;jeT zLJ2Pm+fKbfmcX_RF~z<}ww(=p&SASTS*+F8+Ir9%R_PAfy4;`f^KAhgqs_l}&3d(JN$6=JW6LBt0h~CT=bczJ482!~;IUVl9f(LTAtEpABEVx=`p>F%!V4RI^E> z*unmeAXAg}Ram&2olAX@2p2zuMB(fNByt(MJWXG}Rb&QG?tGaoqR zLaeByq%=;_Z((J`Z#+@y$XOH?78bC07Hh&|^X%EBxw$MHTvM(XJEha(qoZ8c69{rH z#Kg=XFX+904@N(;deypbXsD&oXvAFAV7lI$UZs?E#N0X8-`~F+op*x6?q9foeW7&B z{@U@v+UT9KVnVG}&F0^c@0A8A$~3a6_e+}Ijv0;2HwRMNDRs;LR0zxqVMhcYSH>NA zcBEpscJp;f0)(kn#>&`{I7pC~yiTr%NIS?LW4LYRN7*%MFVfM`u2PNrOoxO*%K}>+Z)z+pAH1E?7Sto#{tUvS$0DU%^+Y zYRdpwMOR5hYAWsefl1XwoQ1L#A6PMyK@&Z_+t)77jt&eBMHDGHXlvhtgik={(Y~@l zIGN|u*ROwvhg$csre$U#*!9WYl@>sFV$sDLw(XQE8P)h4g1MDt@S0{URg}&XX>zIa zs~Qm4wWml%nXhr1iTz8e?8q)~B~@Ib=yZG+e^Gfnx@-k5c?8krsQUDQ$fmoYK-a)& zSxO2Gcj(c(90hvh;QQwMR^)r!E?tPc`uqE%kLSDM;`Yl!LqnsrCS#;%L0%e>+vwTO z=V#Fd;oLD&q@<*#CCXZbAQ(uT8W7r@y}hmao6^46Cr(vyRp-Z5soB{~N|=t0j-0e9 z+^Wo9x*$`CvuP-Xw*pGc00`ulu;Zxnib2caM|9 zR9lDME<(WH|J7o2#Ip zV90x1svpu4adC0b7J=Jej7TV9nI>!8I0GKi)3=j!`+WY~NMB*C>C*XxbF?+&VaZOf zcoX@$dC7eShR&h3>O!Ob45cPdT(VqkN^jxf<;=3;)4dT3YacHO@zZ+mo4eTmZY9cB z(WdSGkJ=3)EqtT`mSaBta?iQXn8mfEpLk_jjQyU+3G3aPd9LItKe5yE9xasFAY<=T zLWY-^m?$^Cur=3aw~*jvz6S1k^uuz-Po*ONXFh~7s;W}-gh>?@G4t~}d#fW&a?-rd zr~=i`&rUhBWK>jmbufx<;^N`;_5|8{9(muS)uBxzBPC6&sNhAKH7N~Qq@}0VO_|P8 z=sGLIHVvpbJ9awWx^?R!hHG>P0f^a2Th$4+yt3IPzPJFWs%>u6;UjtWI3OnY(e5<>WB0yX#!IZ~>Ku@oY6ybHqp)jzGrzMS>=8*_o2d@>4=WLNs!qzkhy} zjgN_`8ayR918$o&eF}C6v&!Q#a&oSx_Sv<%tXXoE>TCXKLm@spEea#?q$fsy8iQxW1>Sx0Q^NKv|@zIA^jch9gJWz`&rBWHbP4!2yg+Zph_B zu**RKjw@PrUg+)N%x>5W#goAUpmV}WJ%$`vSy{;WD3eakmFo3>H{xgqkkcK*j110}TvnY%R>{LUrw zY2YxOMB6+#P+W54QyXVqLxTlv=gb_PGDW%hm1PH&14lkeD=RCzEH!y~n^vY3^OEAN z)`x0VZ+5FrN2*Y2cGJ~RB|uKyn0;HGthf6AB`F#LO{-02bur;>nU_qS zuH}(S`Th_gk2_=}r!2#*oAVI$&z!+~UihRkIoV@sYV*$cqUB?Yc?oj7ru1>c+t(&j zqKu~@2)m9=#K4mg51X5omR6HXzqdXS#}a>hddB?p_?=RbaYuO55P%?KJE5xn6FnLA&6`KZh1}w&tp{V{&%G8c2)Bz_+ zV^K`rMk`pl)3eDStHOFTa+D#=N4qVwA|&dj#SWO5rEG;ds`80r2 zx#;#3Lh}eND>@5gr*>yFCzQCx_bd0cX)U>B%*-|)C>4i2QVN9>v$V978U6HRyQ_<{ z-(l%jT2?9ja4P?)KFWDnOf(RwMHd~Pwh+=QRKw}KPRAn?xgU1lM@B_?izE@;y2T7j z3bKU30OiG%ujUCaKY@)h9<@mO`IBcgdGzm1&-$^fC_5GfYGAG%SIU#BqVo8{k}@j_x&kRT8=ggzRIgi@(D z6iuTQ1=UnlB+&8hz#{NHQ3 z*K`eM&R;+Hn{j+9??dPPUGXgWpL}lN$r0K7RsBE~=6Iz-$u4zYYToOmSekd``lI%A zLbY#tCpQ{V`lWno>_e-+q3=oE!oJEYryn&QNRXD#Ydj&^PGvM?*HvIdjFW1y=5x=8 zYI9Tjru48vs?591Z<0q=1gq70A8ogO(RylS1tZh^uOMv+3vnImHlydP=v3SulzPfq z;wLu-i_`1hlvEI&CWN!-jDkexoCwE+9(?eW^KGPGkqcE?tLSlmMz0YhG2}jzwQe7k zYbcV~A9W_=L$l>fgSv-6o3FSy&w70uRZrI^6>4ch9p)HE^0iqA#Hun4IhejSmt^U3 zJlj&xA@)dkX8S=ICd2k?#sL;>j$`Gcgp~UNYmQD| zI%{5yTin!-LhcD?Tii`A9KZM|Myu+jew)tkwxk{3Z&G&BaJ-u-Q|hUz^sK&G^y4~z zc37tC!h-<&caGfYMOHCe;VNF9gLbC(n<^Afy5z9z&gNqK&dr84=G1I9%7{E|_3D`H z11e?v$&{#gs@QAClgx&XgUA=8HZ(2XjS?NW?h2huN1!7d%)-@pxdrUi9ybLL_pe>C zu)H0z{XDyhr6ytgVn@ss#0bw;X(c1Y>4P;p;|{T(Cog#Px6^g8 zO19ISezG4*FWNrt$cp7^PUzeyc5Dgmppf3#On;Kf5a96jLDa-g3iS=ESM(gx4$K^p zljppBjr=MsLBo&vPpQpBk{&pn9XMr{y}QbdkJrOOT!&f6ir>vmkXktUoL)mikqz1Y z02#Qu>VCpttiT)+ri7(fkwJEW!$kFxmp#?VQOg^VB(chk1e#F>7L$-V|Nf_IYJDQr z%hOBSw7u-XljFL0GH+(58r#Se^D3e$jOv7^AG~o=$5^)B+e!{#^@C1d*-iSW>*}YK zOxv{f-uLLwvbEh$Rjz2ZNTjbx$1OE!yu+}Q%<(B4zl-d^VM^*3qS6k`HH;l+ZVjxw ztB)Pph3A6XVwqC7P{fFHQ~Ygv#&)i?O*n;@W;8!{HN1sd#s?!yj6^T8nALOlTJCQtvR>7YIu^tj(a(0KPA14sQqNjJ!ed7tXlW-pWRdbvY#*{`S zz!Nb~RyFvPK5)MG-tV8b&bT0(n?C%A_&ol`0wT%zDXZs$P>sRp-2B+~+< zm0x-p2|d=%IbXQX@ANIgWuPT^2_sWcwF@guYSP94KhO5<74)p_{7O-)Ib%K>G5tL& zaouPvcAP%`uk+C)==8@54fUN&_Wt!G#F7>bUtjLodg*WU?0bbPPw9*#5C<3|rW$?3 z2kkf-`?zZfu*j7;vRrg+JnYQW+~MY!$O{Io?~B+q*Ub3{4mQw2${xdYjA6FHnryhipm(O0++r64csr$2I{NB-bFs&YY@!)RuzrVrWvB7H*w zAI^{NXo^KGQPDaDw1{IR{URv4kIOaqi+rjf^uDh2HnTxum~F4-Kp@9dc*9pr$|!u{ z%`!=_T!uz|vZR(9HP7z6xJsUC#g86P)8k5TQ@qa-?{3;d8?$2e8X+<-W*71KOWrg_ zIO?huVMKe+?qhQ@Y@=5XK<6bw9it$-f zdgs~x2ng{JRL;HKd~X|ju!pcNSN-TByZoa^-!exV;tKuDSM8n!dqw}8AWGI^@~C4y z*n!_K#Wc~88CoOAbr#znqbW-TkugNo(lUOZiGA&*$M?84D~_xA{B-%yVd3W$4hgsZ zPA1(h24tPC^tTGeR%E8$UF{)ON|FT7u;4O z>J$5NNW&stD;TM|rg7fWW2QYedL3DaReCruVYThmQOA?3?_O0I?~aWmoU|m}!AS<+ zs>s^VRKjw>!BpnHjbC7$dJh5R>Zuss{yjT~<@-eKSH9#L?%C8wC@xR6;uGZR{fK)e z=b+5S-z@qov4r~Ry6NZ2K>7D+dlZt_yp`yq5b+61AuppPlvcP{>q}!Q^7ms)3)fB6 zzCOZAbU5pk^-R=P9VMCy7!gq@x!+vEf`KE_`*VaWfogVkMwcj8M?So>=5EGV1OiRP zO$x$z(OhKq#?iKJ@W+&bN;7y#xJ; zuKLGBJ;e=j+#=zeJ#Hh~FJ%^Hx1QaBcWut@$Qw4%@QARTj!*>cdhe3^_@Z`_wy3&wGNL(#18qS91ITLNN{G| zukh7J?3PfZJ~&gUHgic$gp>f&lrOI^Oy45r*?hV@Zhw7v+l_wjKW-li# zZb*MKFN;TJ3Bi*x8O)rliiF;eBU{`3R4ti=@BmiM3Ce`NajM!^Dw7z;Rx z_94B479{H)*AQ;c1pwGg2Lb$6xZruqWWGVy9S> zpJEjxGvHa%-rtF`RmM!I(eFSH%{5dVBubc7u-m~&4d-p~8PT7#(51UtNcnklC6g)8 zy+O3ScINRSrKFtFQvDpO=r=JSOq~ zwm{-5_hzBRU9m1caj~tl-D!uW_Gn%tW zzL=awzm3L@p0&u@GmUOD*HDU6+GI7cyjgtxrEjJyam*?6QaVP7$-(OziIOSH_N;t+ zoZJ#_c{(9x{XcV~k@sZTD(W6ERnIX&DzOvrZIMhY;Bc!X8naHuXG%2ki}T999+P3u zc-U+jMN%|7i-1**kMPy^;ws;IBko*E(dg!nY}6q2t)~xV(=IIyn$aq-Y>0R@pGdzj zne3Lsd`lvXA+1vhGtm9ny6M$ERtQDxjHTT(6A0`B8Y7gDTJ}o5duMl_W69PBv1vcW z!m|H*z(WJsk#<6mD9<)!QD==rH9OM+g_I1!eA=2W*#~TLbHvn3o3C5(L2UuJ{HMPo zU70Q3{|+frsAAmS-{`E%*>tv!`=UZ9wYL@Lyo59fC1N2hBKB8MX5tp$(MO)xpS}V! z+w*F*rIW-upTFhXWA+daso`T5zt%jO4+pz>Zln3RzSAxjMn3)!q(#`I1a9o=EsM!o zo7>@}il(qkIUm;$|89^v66vFlUYT1E(D}MDe1izKM1oG-FCqy0F=fS%<^}weS>Fkh@izsTw;z{ERhrKALmx*Xvsw3)ri7zY^vxVW-jW$tun! zu+H8gmzGnz6<^-mmhXKB;g}HP_*^8MrR3Ag>SuO=VZC3xg0=e;$TUsw)^xfFwa2`5 zpHVO{eeE5v=1S~5JSt{n=i);oZ&A!$8^>k?hH0|}dntnXLH&9hzo5bM@P@t@8^z=j z_xI(9O_`Y@C+GU_%u7E)Y)|3sC!>5rD-~@6Iu^JpFstB}haB%p!M3NpHbzT%WB2Kv z(F->`LB1f-+QfubNmgU#f>uc$eU^lJkG{Y($F$3w5Kn?1eNtA7<1PnI{uAs}2bN}W zj80*H+V|?G11~?TJfAL(!Q5Ud5B7*QTk1v!v`;@#*_5+E_{OdvK zQomQ%%$l<=?~9107?J+qCBP(yDE}29r~a~7FK=|KH8*>6ex!+!U+-|tyWxxYx{}*+ zlTXqZtWoiUzbio=ja?d@d2YcIIb#o}AP5Y;>W4Geh`SElon?8j!)?li(<&$xJ9It8 z=59mswi|)1+G*amM}toH8`t(Yz?OqUmm@IUSjoJ6vu!k*g<7E6VCy9Ive&Wfui#>Z z;n~yz?wU$}4rB+tx~$#&@s_MXFh-V}{u2aEXo*4*`wN+;Ddc}@Kb;q$4nZSd9PxH8 zrF*@3k9DsYhx7-}#c~=?bOReNW=XdPA;z$I(->Hb`I65Pu>0IwZW)&w-wfze-@D5Q zu3}mY71-Q(5YATlbw&HI_J`R%fxn_e)MO2kO)R-apOp2rJtRa@O#<^y zwDP5!_7WI~prN30_Y=IO)-j$US_vf+I{Wno*LJ4)d~G?El~%UURSb8|h8vPRCsR4OnaO{-C%*?%QHx3C1a&_J$c*ki*XNkq)aci4+aNjYoC? z?^>tr@mHo!>_W<&MbfVFdf`60-oNfQX&s@=Q*>LY7O5n8+1!S`|JX|Ee|7&6`0|AuxgWub^cUt}#+rT8uJ&@F=hQ6{h&N(kG0r^6!A) zzq;E04*u`8|DQL_zLUD;T7G@eGVE%_jR=TWEXgFj*m#4@2f+`UDi<6d1w12_Hs|#B+ zgGDBkz!(5DIXgN5o#jhJ$^y{QKs!GOIB!OAPp%Y`jbtY8pwtR1gHLX5?!e9&Fiwug zdsDj~wh?)b$JWM`hdS_GhtNc?FBnjb+8?Z}fGhHm&AEc`}IwJ@?Njw1r+VS6Gee&t9Mq@up}_i|<)kU6}I#fu=~u z;Z;M!sF4C1c!w*x{Nk@)-$L{A^8>Jp`SIhA+KOl>whf>ffX;^CuAq17up}3kn4SFv zP(&2`U}3=myTXnoa%`(2?Ornt5uxR8&NC7_XV z6yRJu`nG9{xMOnuv(13RRTF1%c%er9ivoSkEsX6;XfoR0#xUGyWN*#ywA83#GE zYJy%Qi>CJRY}Vi8IoYTiwO_9=9M1Pf?JCsjmzI|mD?U6yecGzERwNBv2LNa(?5=wdgXxduR0s2$|sXl`!4oTt;#YNyPDKrXADf7siNu^ErpE(UJ95?b-SAf1njMr&O! zU;)Od0ow=2&sK+t)6G6slsrW3$NJmUoTpbEJ*1J2ZD;A?sSA?k<4oC#udIyCa@tKl zICX;E0s@RRRNHL3gZ+XjuszxV6~GVMEv2P?|Neb4>uf0ttr#$c!BVS-K$F7l=h>{Q zqF~M80t4s_pn8b(s^#HsSooSF)`hiGKhiU0|JB1$BC7^CmbSL`5aH6yqaNCATONng zWi?&E9MB|y{j9LxpXcdZ-L?TK0ZF24hKvEooGgpG@v|STcY>u$?^N3c?p+cHrsst zO_r)8R}2l{6g;WGCH_vAXVGpYK($R)Lo4m~ja5G^-b4MiJr0eF=l=#fXoOcL5la&1kqDs8zC129?&%7;b$%J?O^)Gd5W1$PK{g zVqYpUqx}za9Jr5{jA17P{OJ8hj~WVBqt8<$BEH&q?hjBCcLfMOL_ z>dk4PUyuAGlJrx#A`58q^i9X^{=JM#ec>&8_Nu$?5ZpC?BHRrB&y zN56};k$?QaY(-19bP=No!l3`BMqi5LMGSN_LI!0~9z<$UQCNV(EOpk0GibTmooqHK zmY8c>_c9%BTRBkds55=4n`$=ZAHO$>+=lKyF#^$vsWVat-A|yP0lEv-X6EAhtgQ$- zCYwgU5ccqxf`@_7=ekcr?tr^Q(f-tw21o_8mBHXc&oBIiyD-&L6d!B^_SIV$W27)| zfPYi{y!q0eE z`yDt3PrcjRq1*!oK#Hw)H7xJ?D^ZS3nZ8t3j&@X0P~ceODH`z`Sw&cw9IjoehTGph z%*{G=avnFJ*#FQk{dW%K(vJMCfF{K<>qnj%rm(raeSJc@y0oF%IpArAhlg_?#iZ!> z{`ys)6u|en3(1`ke@_?lb>bg`@@aNo1R4544xgq1k&;7rM-YuT}Dvky)?U&eD5{4M5zKMaCJzkQY4w>BPh+bsFM%xov&EddvOK6*Mc&;$p!ji#CYWJR-On zD0&xGdU{&(kH3Ej#3K{&yIS`vK!CXbc>wGCfRV9j&U{h-@AWs^_mjmo{1EyDP2KxdU0(dxUOxSMcDZ=P60v1l?!xM7!;92SER2f;7+o9y z_`ABI8@44T<^uejCivGT99m#6P}kK7Yvq`+6tqR?+S-PP$A&P@ehy}OCEe^=8qolKFjDJHt zpUTBCKHR;L0G0%tt7gvNa%E%W69dt^H$MCkIx4EI*d5Q5WB;a^pK4Wzw%m>5(_aGv za<5+1gQ15-2Mg8R(^Ipt!2}K+SliywQD5NTfysxU0H-eg$B)l7HBSqT$6nkgNCZkT ztSve9-!$GjiOKg%C;?PZ5al4Jx#2yzX**bE!x$)fv5$2K=<QWw15(>qpcYyRT9Ln{8(26T2 z1p*C$+tr{Z#H6HDq<*q8GEZS<2Uvjo{QU00!DevZm%Zx1QYL;8;x`pv4p&UsTyH@ef`eULL;!SFyRoM;ytn6#DqiD)IS9seh850+c2tU zHo=lYG-Syo$w3aP4#uP9-HogP@jpgm+LCM6Qq@b8Lt;4hGNv0H&L5!(vJ>KdLGICZBaeza$^W82SN`dTE}$AVWE_mC?aQ*~${1Isl&pPI{9 z;sJf5N6^CV?H|8>tIIJ`xVXHW^s`*qV-xRany9Kd@tM!7YgFcq%d4v$Z|G=(#8&wG zUK~QqSFu0d2JF!;MC`M^)~(w8fQl!me+dk{9`dWKx_N^Mkwp~OmHJPn?ZWJSGpxCO z!~lpthJxbY#Hrw0oGaL1x2AsotnWV^q{A8jF$>j}k(J&0(FCB~V_0e?;%|wGf@*jF zED&ejg;M><;E*s>o1O%r^UhWw*&36Mo{npVP8u{;p~#p5rjEeS1KXz?V?_wA#bn4H zMS24wXTF?K6uVUnVZS+q`w-LCe!lha0PgTRW8f!I#PUEE5_m0)`0w980ng}DTFP|` zWU_gLqB|hZC~8*BAfhdz&Jj~;V;iErC?NG#Y*$uCif;Ne6dx_6Pi)%TgR9;+bT~N% z1TXyeMPcE0<){!)n5qV1a)>p#Z2><&Y-F!w)**S*mdk`AbWzv`dBNWGjrr+E z5?plS40|19^M)=0g}b|+Inky6FfAL?t#{--oDD*`U!8`}w?JlnhXzJR+flF|1gD-O ztMd>kO~X%Odb$tg>B4i+8^GWdfFmy&|L_pzZKNHSs4oXv zA_XuOMyE|5dgbCTs5t**3g0;%loeRet>cOFSX?qTQy`)@A!K~{>eV;K_)jN8EI4j3 zB9sjzIE1hzfToea*b)LWQ zdArA6{PS2C)&c1216FooI=Z?#ak}#nC2?$VxfVz%LpCxXRdr^Y18wc?#dR*Vb!82WjfsE`MykkXWj7_ut%NUh6aMn{!Je2JfGYEnIVn_sP&^Dmh;Uvy;ktHXyqWjzT})=VH7FXdi5>e(E_!08BLIPAocSbq@*v@)o(viDx94QQwwc5aKCm= z4D!;&e;y5lP+(Ay5Pa=-xm3J}hzLDaQW~k~PXPh=T|C=3Ng{rUDrMHFqy`n^Lf-5v zLQO(Ka+ih%a}PbwOfk9b}D7)B!w#PELHV zY+5~u&y*`2BAO8PzK~FuZ%#k!&s6d0&`C;3!Srbm1e{u_&~U0dK`1yl_)AQTBmhnU zRnn2;<+BiIyUPQ}g`T8*y`GPF6kO_gL-6dlmB}60Hobzk z`EMV6sEDnv7Y1qIwco3sn219~bY?Rm+NW>%?H6Zt2W zQq^O1LT|5{Bw*d=S5sRlQ0FP_(4pq!j0g`WUizI5!)l|hZ!>`Et3-|aRF8~A!JI>1 zv6{U z+NEY=3uT{h2-?^%g;|-6tt~)RKZ4#+QByOM`UQuEqQnm*L?=&?CiAA?WixxM1;G^e z%1>|7lg(xtU%h?}@ADH$x&s@Z8s|jn5*$nbbD>_p-#2u0`0+U&b$^$k{;;!914D2g zW5!J&o3NB$qM}gl`w-Y!PP?tU+}10TP{mP);n8o&$;`m;x6p&a6|shF>qZh8v5|o@ z9cb_U@T6=^N>C7klamw8-NOT>DXz%M{TZyviXz5|FD;FvjkWy+NlB zZKdMkI*Qy}0|EN>?XI%2^2W~2J75M;aP2G-$zsq?k8nOQ16tFfj}mkVTmz0D>64?^ z>y4GaU(3JNu;G9+PLu-b7A>-2h) zuH7B~G`vFx%#kfrEV4&dQHccPv3*ckFz`1y-dnwU@7^X9gf4uEjBJHLV=*bI6qq$f zm5UCJkMp$K2+hsSiP;Rpx5l7?m!s1`3hA6x2dApCayx8TGuV%ih-Hs!iEIz)=me8x zr)Fl{e!s8K51gCiLh9+kYH0mOrc9T7P&e z*ShSq$?HbQ)q=NEGsmaymWgDYvs|u|;j6u8S&^ zx4z3HaoF$C+l-oFfsEF5bp`zVNe^Y0CV4eSkGB~#^z^EmJLd@1>3VS&Y67|w3oh{wKTJb-rk zh8Df_n&2lTkE5e-7Iwbc^@6a7h-T5q=H_MsTx07yO+m1p*WfQ#NLyQ99PO`nLA)1i1rae^447$3Mn=ZU(>)~ymC}m>V9|-W zt?5lF4{3~zjW1$hU6@>2`dn4T|2E?d36XA&0t~Iy>9KzO`c)9Zu*Ki$L_P=NXhtMqpL1(BHxT%|_ATa&g4{k);Oc^=mUPb@GjDJdyQ*$fZz zmh)k-;McELA_0gFFyJ9`;M>p7_N!2(V)#VxNG&iHYHDTm`s3#J@AtJIXUFA^tj^BO zq4P_Tr}XF%v+7+lGc!X~l~FU(3k!O%wQf~aRpmmjPm)R5jeX(LMUrH02wgT4@780D z=Cb+>E)f2I7g)2Cj zf{0O}1h43Y3!eJMPQ6ZEU{sJBcucMeRoRTtoFT(t5CVbo5?xhCd<C@%c@r%>?gNs%NY5qj|VgNjctSf>Aeq45+wGc(in z_@LP^tKdtAPMyNr7sgU}=&r5>Dff6EKJ)>Z3;OcK1zrJf1b&Idc0(N+9UHs5r*+58 z?d{*5x?!5%_@`mU=V)VwkEf=lT(jchzP&N(5Y7m7sTPo+xd~JF1vCP2{LXwZwo?v6 zvhMEg>W?FuySn7*?7#;_@Yp>DuY?2BNo!+eNpI3oZsg&cpYh=SRVzL)>vi9rY!cgm zTdISJ6EF!#7%`XMo3rFXwKG6XwP3Ps`{9H6-ijiO_7ihi-bY1};1Ezf5(pzOAa1j^Wr3*8A|ciLKL z|1R1=-*@LVp{S1kN7kFi<=l2{-^e_aG4niUPUaFJB$W_CX^^>)p+uR|nVBRZBr{18 zl}M40q(ZYI8fa1|jqi6k&-=Nb=ks2FTpuTO9KT`T*V@*$ZENk)o7+uwPvsCAxVoNs zud{sl*9^zOEE*}BekSO*Y13v8z{AYU3@G$DC&wkyT#%~Ts`$NZR@EI9n^aX*$8P&M zAmOTh&L@}dRy3tbLy6zxil%g(16pUynw152+@oK=eY8qa6OewP=7u}`Uc2pgzALzF z*2%%203P)H@8SU+b9bMnt=%x{NcRPYM@*b3Shmh+n~$$~n0cuWhLKp*f4-d(6cR!^ z%#k|)TY3zyENKH!UFd5x?$dvZ%jt&c+R0^a^DImJ7w^@%91#`O=;6~J54z7n^;#Wx z8pgV_W8t@NuPlyeJSWh;eDPvg;_am;JUnbcLU#iKl2HcuIglOg>RMOzyd-DcTp$gu zyUF`?ivgY+%ZtqhId$*bf;&-J-Zk`1B8zI{%dXO{X-Wo_G;a_H5+c~)r21~(5e&&CiY+3 z>77$|eZTrLRW@yC6b@Z#O3&Bc0p^E>hQ4_7CY!?g?1Zg{$uZU08S??gEWiPS2cOVY z{x{@QU9T}{Mir4&^{15RWoT@?|LLbmeu-_mcRvC&r-l1jR8&@Bp`M*xP`u8fxpVhW zBC>3N;)Y9?&eqj!&Xu<5ueZ#9VeY%@ZA?r|j!$`TXN1M`JL^Abecbka2ql%?RX31S zt4^J^B@}Hc`snrLi=~NE^=AGBRNb65e`+J-)F>eVxHXAgNq5Yy%~K&!1Qk85oH2X$ z@|1h4MAKsr2)H3NcRI9>brN@X`K;Z0_SjeCU3Itp{oqwh%-3IurYpjCH{fP;`ZfDE z^Vg`Uvm476BGdzs=%L*_cJsFrs)xsq8RNlIpQTu>{eC`!#SVWD*yHW1-q!GZ;^twyd6>@;S~7%rQ1vvuoMwN5RJZnkrKd8vLP8Hp^gT;t~Z z8-pJ#9L%4WEL}==V1|oN;&-;kE5|_NA>+Li1C0;8w7f|5%R)Bx)do58R;Xe?A^g%U zqe03C8ay&lsv7$#-Q6NEwSdaPJ0b7wYCqqM8@F#~e~vtGZ(XX9-qfDYhL}m)(Dx6s zTgw`_*0-j(!=^pq7t+#b4xRL9+b<}GS3yg;Or)l_-+x(JS(y*-z#qPR`SSMWf?-s= z<2HP*4;;J_64J?C$64>{L#wpAL7Rg^LOy@{wk^G6ke~6M?ok&_o9wI0D_p-}LvY~) z&812~{bqbv9jN2i?2xu?Lbb`GqCt++rv-U%mJXsxRXlS^bCk~pW7-m<1?iD|N z{CIrAzw5kl&zcc62JN@bseE^TXkqQOdw#dGll(3Ce1pHxhhk603>^Qvg;zJRk2&4a zsWso+Np0nm*mw3#dQSCi-L73<*B<;pnoiviAkL@t1B(7p4m|VT$}P0w;n04*Cy7b| zGyZ;tqsRF}Ux+buA_XK59=N#~joof<+h60mK94s{OHZG3 zeIAQ`W}xv4czI*P-GGJL*4D>+@R2nuQ0~W(F*+T(VwBPUjM^%#_3Q6go)V}%a#Ew= zcH7LijveqKcKXftpS=@i-gvJ%`beW-|JDD%6irr(nCw!8wuCA}f^Rs8W z}ex;i1oao?x--lLOVciP%9&b@?_BZ+W#`d;!s_R*} z_`loSd$i8d|M_Ff;?5yKf45wfF?+tMYWvV7L6cx=2odb>xfFI`mQDcup5w=N0(Q^b z&L=(?ylQfL?(o_9H!Iaj!W(s$;03~vX2LV0*HuLS9)kw2I&x&+PvF9|_)87`exFl_ ze7x!7*Of(K`ctRYXEoe>-}DKiq@+F0+1Z)JGTb_CY(zxFDNsiv#V(UB8^$q*tEQ;7 z<_LgVYHR}e+R-DamRZutcgz%IR#5KSU1$r2^XErWU%!0)y3c?C|NO{`O1Lmt;icT@ zgSP*3y+iqz%*_#vgbvUg4qL}&CH}@w-Z!;kEaxsVp1qB>emP`%~d0 z+%cPS}nN1AS1*x<&;IQ$KuJxq`nxgRYK>K0G zPoC7~0XA;YqVK?gu6y^^Cl5?nxbW1aJMsjS=24nQb$2=#V>Q><-=%p+E%?sf+6R}R zZ_>@IxD)te3mxm7_}w0UpLhaUn5H%qd0qm3aYKI3s<#^#(%F4*$w z)vMuWV!%c6AwPb=yg^5a=)ZQfPu$Al-@l(feX8ISH-qSJ?5hla!mFyo_mZs!4awq? zU_Z&O4foX5*Vm_F{!vmA5gF-BaZ4cG_Q+)1IRb!Mr$f430Jay6D(8j-Jq$tsI3Ek| z!wZXe|Gr)MhLaz%qK;&38b88Q7mVT(8mhjf=;NXAWfyqqkf@Rh1m;biysMsawn~1VIzPikdJG}n8yK_%2|lDoq?e8PNh7$Cf5{i6hv|w{NzRYB3Lv;Z z&i@=y(a{HZGVq+cpnR-M1C!S#>MCdPVeDfW6=k4$1w6$T6(=*^%t z9$>@f9Rw}hSvZ&<1=_Hi?Ck7b44Th3{}bl=^pioqZN4!q;kT>5wg`}ym{q6RZ_}TW zpLb)<>GSvB_`kG^ zj`N#sBd;LS)Jdxi^Z$DBH&~5bM-sKEc(dr=Pa#&@?KGLc$Te9Q&YJU%pS%?3-+r8z}<7a?Van+oplJA8^(JPCn%u-5+FZb zlWJDbU!bGl_7daD1s1SqEL#cy?oaYIeJ(6KeDhx8|Bx@~xjKhi<_$t<^n>A|oFu%= z(9<)rYNM~G*Kh3DQ=r}PTMKo!Z5#jR&mTfOITL`}mhzQ?kqEp`?`rR1!;XyK{7p6x zxZ?}t)!&Q%C-r0Z!p}lbGK1kITroT(L7K}3xI#jGLJ#p6x)kgPn`mHYs6|3pm2z)j zUS3{#MMXU6*xcM)^bmF#l+m&C=Z6LN{+}1peM;%?RGY9J0ZLsJC2rZp9lYK@yTfvcaXSFJ+?&&g0Pb)@zej52D}{6Bt|E=|3D=TF`pX9*kI+U{412zO zfX=#c59FU=2T;(6*R`?z@2JDz169NRENQ@I0vlu&6dZ!o9W|=mnV5YhezjAgHs!_l zr7mzv9CiNe+2+L$zW7sK_U^rhL<_}CMyQ!pwg6|QmDQEwHSLF){7XGciAi|0v$y|L zSXdK~ii84XpY`?Y=Ja3NQPijrB`2Od3I3t3iydZChRBz+_WqfVYt|_6uwZ}SQUAP8 zOlOXg&BE;3l<$4VjaxMEh~vvYr8)45!P!gn^!2Y&mFx*GK6AT2N$$XbW>EJig`dBF zpG7I&U;iBB*QcDEvID7H%qM1Iv7ot`5ocngG=1{qiE-Jh6l%!KtgIg9FLq@2#3kG$H{ABh1{QdKVJEyB<8qa@k9|-@bkOKl}F| z-|CmKTbyZB3Z2JTe*qm@QR^)UwL3pS^R1d9%ly*5NsNBi1 zIi>U5_?!nS0|%Nx(*bho-9eBh9sYDVLTPQ^r%#`%+eJf}`HJ3GGvv=Aq6WaK9Pt!d zqbj=0Z~dGbr#n!Kqh976>;@nuIL(tAvhOg_B}{(q|ONXXgG@ zpGPMm#bGO4vpJX`VUM}mX?~~bj)@22R)%J8`!lNUl$kSMj*1rU>33mz<(c1=FmK1t zoVj_{XT_VdZ~-D^$$X8@AD>zqh2LSc37+L9PtXU&ai{3w^WkfOyF>B&Fbxe2FXrJ@ z-F7H7?Kxq>8E7H+yi+4rC?arFN1i)r>iDN`Wm(aJ8b>hq?FrKz^&{hu?|wb(Kgtm! zOHKc>+rz@Dj-%96-PnBd=1ote5SxnGpwhzG2^rQ8MlxW7E1AV=cPz7E=3^^HJ>~$y z!mg(U8)F$XY_-(HC>h~t}9E^fJic3Iy(JUFAIoFojO%(hAa&^0rxcMkK@nW zIS>#Bl!u6E0WzodMuAL&IeYf(_mie5>}ZmAu@CB<9XomTY88>*F{!*u%l11_GiAOV zfs3kkkQ3u~72YCBeZ8pEym_C|qm8Z)`B_@}@XF|dZ$`1oLyTu^a_GGB{f%}w8!{2f zL~deeUMrLnKx0hKd8aoFPa^PsW~D_f8@~SAyMf)d7f%-X4!w7ewvXAnYjY6p=O<_5 z8i>9z|K^?KwSv7dHHZ9+0F%q+B2N8voY#=KELJr)RRW+*6jEiFwX&)^VG1TN1;? zsv))9YtJe04;aWTh1$({ymaOfuA($QAXarVEa@3sfCiddR?MEdxWnc4f>jyGl z@y&TneZEZUwcFR1GF&bezT8GgFx-)Kgbc*lo=K2cvZM>)K&JHa7Y4X!;AOS(hWK4S z)D6jwJFv90EXMIGl$ks_Y#qX)vQsT^+B3<8+;K{6RqI{5b{Toc9{e9K0AuG)5RTv8 zm_JDSa2GM&vU+;4&{4fhD09z1jelZVFvUVg*mD_%tDEdiDq0afmV|6_l~>4X z-B9s!m1uHkcGOHP-~~gKDh6>5*^{H@1eTjrhV*~#pi(IT3 z&du7}pJ$G&y~y5!F{j>`pB&7QtpY@JQGSwd`VOf0CMC672H3e*%hXN ztJ|6G_|*=GF0*je%QN>J?51)0=+TzYY*<+vkrbrB##yi)q(NOv(QRn_j71ZHp@UI( z!rRXA(FV>uCp!N}*5gg_rv-ooD{p62dPv}L54lFzTWNL>w+%uB)&N3p6N~2uz1Jk( z7Ks{?VGdx0Si|hL=}AndCRte`CE$@T8t8&>q08=JzH@)-HX{BAM5o8KH4ZfEXo)P~ zqI4CFT)GCB09`k@?flBZ(_3PJPHoU_r)#Xi9-1m!p3DI;$u!&4erjU^z!u|1uq&Lkk zv6Km)rO7MKoB1!iW*Rn;8VvZW8*CzeTQH*VLJCAm%F+88Cvzcd3b`!nC0vefnP;cVQD=6L5>?r!JK9R^bsh1E`^u9h7}6&6qN zO|1W)1`6Ch8H9Kv~1sg`ld~4 z5N6i^KEC)U@sFNHLS(y#2mAm$3H_bpjhv-_r7uq2g8w z6k++93x(7jwEd4NUQS+=mo*@-(&W9dQsc!i}cm)Vn2jqq}* zpaEeqcg&vVvZ0{u2Ae)U3#e_?uAP`>#J_SN+o?~dBv zx^3HMK^wBfCkp~WKa*b8u=A6%7`ub3n`l<$2V!xMDmh)>Fbf`;K+(k z_(=57< zj9*yt)N#ZJ&xH8ilG|cf_oWkA5-QjwV(^1Glt@S^+L5pZmK3i%4uHGpEZlZ3MgvJ( zEOK62oWI3%YMZf$s7KUG8Ur-u8SC3_+(>w6#5rb|6&W9-CV>SlJfH--SuJc>WGTU67u1l zR^c6$CId2`7w;XD=Tu`4AtUB^@Ej8lc7uz~0WUVfiJVqj6~WVUc)H>bSwXU* z)H?h3n`2F-w2;n{n>Pnx4F&KsPSg?W>2ukz%5eiBP##vCPa|kuigJ^!76683i01g0GmDC1Q3!tg{w+Eco#o=K=FXpb9?y=R@%Neypdn91dzhZ#ehok^ir{>4rI6vOvqU9_hBnfb?z%sxZ zM6fiTk@>_xb?a7ho&^J+g-=}=vS}c>OzY-*X_6&Hl_Q`g;q@LdVuZMNfmtxP0|yMq z1dCl^EexjqBIDf!5ke>8uy_&`5aWNNLDQq|UoNua^nn+7-h^=8`E>!z71rbJYzOJa}xXX z?yayV{0Z!FM@>g{K_@IadqJF^XHwGHgjUn zbX2u$yrbghr<;C{dy&Xdf$)BNj@@vvq>efYl&D!eBJFM4LQ1Mxtde){Qrw7!f+9ge zHzR-1%ySH0jO8Lm)1E!)eWgZhdgA+K@Es2w>LZ+ee&YLb9H*d*Hf}FB#f+%s!Y(qN zTGAz}$DjQQ8}Jn2j88Ev?7qOXGw)cIKSA;?87gFJ(d`p0@FnpZ4Kdgt3%M5_2S8jQ zS4oqSgg>4_38tdbSA+a6yk9+V=+JC*yvr=R?Ikb!H}9nO4_VZJR#Zll6OzVsxpL9) zI{qL9ptl)tUJ6kbnZMc7hR|vY>FmYy4f^I+gv2SfSdc)P{=O|kjt$^50`U5yRs)(x zVf+3nZ<$KwOLn#)98tP8l*Bl-)$jhX39J5nxWHu+1dMW?AT;H4rK(d>~}CTz9nty9rVu2*ghq*!I~VV4MBOB$!jJRU*4oJ zky@W&^;uZp1xm1w{GqK(>^?OhOTaq43Y1osd*xPER`G01X^7@|{B!8gSKz~P>Swqo zl`su8wG*rpQHLe>LKTqR<=rKkI2_^%)9)l2qWVx7f2JH*4z`i9nH}se#+MysOKHxH zkoo`m`b5o*g=ynBge5vbU(=U8E1mzOjL+m9#68iLq+5htNpn~W6kDn$EZ^Sqwmd!Z z^r+OjICH`bC`=34b0wtXu8(zy4hN82^gO%7oiXC-l=j^@RQ4 zZggUh^BeMjqzh6eeHxV^)<*~zJP6~!)y^Is?M0*~s#4;C&R@f7b{xK}4pcmQUYrPk z#oci$gCx+S zSbYB+JQ&*VNsA^;daA3R#oAXZKIo z?eFnDP@Py-2Bu~bjJF#_tLHVqXYmqAv^nOP_wqz!USK?H z`k_vn)BkMf+oKt#0x&pLEfuUht=Xs5!ee8L796Vnj=zX&fAtvO30%i=4xtgVdsS7{ znvhn+&^EMIfnxyPbBtBFSnZW72kH7&V_UW?Gj_`- z#m0?$AXBr8@7iQc9KR)h2J#_*8@ouGu3f8dzS@DI?dLKvZj2qfFxdtWCH&CFkGkh4 zdNCr~nPh01zdsco!}x*qY-(UxJ-obS>_%$+oDl!;1*XFmeEcm^-bEiD{Q8y2_AP1e zkgzm*v@+B(swIzYg>_QO{CV@H5PsMBXK&S@pNuKUv{C z4Cw&j?t`)pPp}?;ZoaQkDQ+1HwN81&5S+GHi&E~dJAl=J(m!mqoet^|4Pr@23t0hT z&Vd~>=V8%9)2c&%jPKoy{D!u_eQ$~B^$tPDFg40fLm@x0A&*dG4y+Pf z28l2Kj|XP(aBK z;>|DfAoiy`usMSAL@emVeuNAZa}E0j9{b(9cP+bjj|F@E?RypeSx-;Qq<9FG3B+_v zT)5|`@2Tnx>=i;5%@||DGP#fBfSl7S&UbF03+@DcCt%Ses!d~yjQ7$Tm)#lc*OTvK zVacnd3_9W6e8H^Qv-{$w0{;PuVD%KCKKl3QF=>%9_68#(WeO4@eYg{qDf4amAY{|Z z!0)b%yV!tk3Q_^fZZ@T9<7Um~-ad~ui}NG*gKuYq!7-t=!XA<2k!gi-6D~#qKXNxQ zbIHKDTzzi*<>=X+m87!dmZUUgy+6*Y9*Ie`u_k%0nMj<_ zmcZU#)c8@Usf(K|q>YSs-iz%=WnvL%yb2QuhEPl*kSU11VowPQ4qobZ9-|J4*q{B= zx7K=|N&2<3p@yDGxHr@_G=yJYyqdjXr%#3>GhpZ>w-s)oa-Y;nRv0k3~*F+@cr0ypWZ z?3|n^Rw@VHkZo$Ngx@gsMT`AhP%s<*9CIRNz{g^3dPA&FKVERZm9p}4X&hx^@nCd{ z8ts(q5Ev5^QxI~l&w~3|ELoh9!b=YrFk_XoH0I*`t3C2)q>@dDZdpzLRc=@EPF`7; zvdO1yNSxNdw|8x(O){$6;90xKjz>mzThZl6l+S=Ys@DczWM|&0cQ@MjzWJ_KCIg0C zUcM&p@#R@5YO~!&zpRWpTXlP%@-&T+KBd_XOP5S?Obtkjtxl`l!z`8)ejp1OSOI@0 z=0B-+VVl1o7YOkz57SEzAEwWZ8{ZnGIu(Vb4myoFgxN`Rv6?R&T)0V}^tI&CHg{mm zv9o6}sZ<;(Q9M&`E|sAGMh;X>P7a=1G1^nNET)N{ukTlqUMNlJ1KKu)4mleAb?k%* z{O~Ru7d$}@)SP_no9-$cDPE49YtAk3qLH$DO>v{}=rw`H4ZcRL4osO=^5W}8%uO7` zlFBg~7R8z2OM*8#W1#xE?a^=-cy9bo_l$iF)JjbvN71&)UTs5l2G=s-Ub<1*FFAv& zxU5WE5g02UPGr1PWz$I@5fr_T7dUckPtN^-Kb8K!dbM_iB-c7N%yp_3S)1HM>CyC+ zi31}*&}Zd*O$r^3HuRpSf=g}%NQU!a=~r@@(Z?K1nOD4@n_HXlUWJcGO*x^{7ks!j zE$A4-Q`lcqIIESnUH<3K=Ha?L42sgdpVw>*K1+9o@#4i$(b!&k9-ARw!r6|n#fta7 zV!&X?2i`oa78`ACaoQ}W4PUe$3_7)$r`Kj|>1;~k^0|NigZ1Imginubd$x9EU<`Xw-FC7T;q#+l21oW;s+a;+%@|0jR<&p`l%T z;^?C-FnIRrw+Sx!OJ_V|tT?8E4C8(AVm%y^Q>G|v4DO<-sYwVIP6@OBb9#@%stas* z$se6+cWlW|+J(Dn|F@5^Gps6aud^QSma%R}*{@$R%7DYujE#*so$K4X83ovX=+f}^ z-X-%zI(N<^xrk2`qZj2EUxXHmJ%qDPHi>M83Wz%+)bH4c2@@7KUc@0rWkW3cc|>zG z(Pcunr|$1P9}QR@;2`M`*STz%*%z*_&F?6NVN~AE0iN82B3Qj<&4fcQR)_rtiNYp( z-?-7#Q+G?owPk3~RO|SR+CvI1ho+&fnPX(s@2s9Xj#}^(7;rhcDeaNNgM`2j-4IA% z^Ln-@g+%yvLi44i>Ms3#&dzg~|3b=V4#_22V<>p>0=}dK5F|w8U?@RaVvy~xZ}a6k zY0_d`9eClamzUE~)9f!_GLeA~b{rYBDUVLXj;w;lQ5#dgWc@C(f7^01I029n%^8UY z;QE-TC6`DCsp0kQJ*L05F`E2fcF>iOP63g-mkh04G{0@v@+bgHLeg6rwWix2@hEz* z8<_+Nh-PSc8w2NFNgDA&igKr#?O!(9U-e#O?tcn~wS?qS@?o(JK3{Q5|7{@9B~KEG z!J~LYg;*x!NP{sNS=*-0OEnstX%tAqGaR#}YDX}5Z>k_^&wh(34R%-E zdTQWDe%C`pFzJxym!yzJH)-6w`MsNu7+&-oxA?K>uZ(6H`EQTbOa1~w|GoS7^L{?45(L-%H$_cO{bb2wvTu3-YrH0#2iQg zrR(!vafaEjwQAJ+m+9xKSDn`RhRqZ(FbEd)a_>uxndVrpfa*f7bZnpS6C=BA-8( z5g*8}4VG6&wd~O0AJDE7V_1&9wDfAq1haZjut1o^ymAKz2QZdolnqRrw9TyZY1SPyRo0^J+nnhZ3f3zOTD5dz+N(-{B6Ej+Y& zCBi#`EvwxbP@v$gET{zq87?jWrgONK@vL{KwH2j^rnr=z_tvFRAMka&0)3wC>aJuA8E}OwpUhTKey{s*40U^f*~k{N|rE1Ulujwazs2C zA0eHu4AW}z=Q)pc%Jq2?;W@vql^E-Z#yA}!S3tyORBD$8@JKGT&T z_Vg_*dPCaxz`ueyp|k%&U2YQC;1xfeEda?H$>cRELQEyWTM9Zs9*=(W<_&5lqsho} z7Vy**1SNE%jO3g%y$qUXO%Zs89?aln6@H&eY{{ZcCp$M{C| zM8E2%$8i%mD38IWP2FBjC2_+2C>yQ;K5=MXGtsMwIW2pA>2~S2QRR-OoRK)Rz*hq) zSiqxb6T}EslyIzI6gk@*&j}|7JHvyQK;g15THxn*KJm~2T083Q^5`Jj97R^#md)O4 z#b$un9i z!yXcMAt6eLRlr{W0)+5^5C7B*(X!l8=k~`BAGEoZkmuUd=l?S8$r>Zz+u&4b%s1mo3L#h+7FjB}cj86(=VnEU|tX&{`FqP*7BKgnl0GlUZ<7Sq9hVZTaaN zx6+R3p7tC!zqjRW&<%9T`i&bY|2xpm@~QDSPu+c-h8r6j`)0yQRnGy#hFuK|od06j zkbwik&HeEuSUy-3c>g{Ug)aApPhHx$sl|p2!4K2h?PX&{MT)#l9h7jYYk9ZS3S1jC zIr&y4*n{^XGeGV*U7D7nFd|`fJ#0;-iHiFPp#^_Df(IA3D|_9j zUX0I!xtn%10h`~zz0rf*b@&@r!*pihe%I;K`oC#__?5N1Pg8F&#v}j4oX+PB2egH$ zy_onNxWN6%$24v{>1qOJN)8>+hEo?KI<-F#2_{RmKZOb?>rmn~F9)AB^#JvJ>x0`_ z`j9Lv?)p=X#*9ooXN~iwrR!8`H?UKKSm&5i%Q`zygKK#|$;imCwx)Ku=Ia~D3o8DZ zl)VUN)`PI>Lj+C{lQWB=qLNomV_XXoWP>K-LOBo_nvJC?EW_i+-6+!NeOQ{oVV5h{t!t+>oo;{z-eLR;JDE#l zFa~v7;m1eOqSN7O?fqpn$Gm1`WhGqSAfuKk&-=7??bebh{dg9B8pyH^^n?Hq&Um?`jn*$KapvE60=W3QR&;CGawqM;j~|E{^xg<6Z z2mwCY%yi_LnB7-j-#1-hWpx+HjDcIJ;Um{%UG8;E8XbX}P>QX;xe}(p%s{UQldPPa z745Is{H2Q+Iove#CNn4b*;__8TTbK1P2NkpUVG=MxKGNWgX4vzDwlW-`I~Kd%J#D1 zzz$P2)YXxEF9rsRX^{m>w{WX+*L6051s?aSW0VWx9UrAuSZ57nBe6Qo2B)}e!WhZp zmfs2vUNn5Y%ig^`Jfa(XjH`LTeeK$sYB{!Z0Z)zrQoItau8lg|-0kXhD{kfZ7RN?+ zXfE3SmoG9I_Ojs|wiLtwyES;p&=JQj+WE>Gf z+UTqI?C`#ZnYUs-qhGVfy=Zg)#-%DA(Kw56k21iLHGgM~6YuTL{iT!$O`3!!Cojs> zAY4LvnfW@{*`dL!ymdA9y+U-&wQ=}J=t(lmSUGG(%9k}OR;=LeASmjczt`0@Jt>K% zgbBn8!U3}Z))NdYnYc3O#rM(n_h?TEirwOOXc&8g7s`8#FqwywgQL0cl(A2_0X(x* zrJ4Ep2Wc9=n$YCf2zt@`_wP@lq0zqO7lqDY?1{fUH2WITyRPb~Th8&P$Dlj-FLtKZ zvjYzvl-cw;UEY3B?)?VaZIaF^gmtS*vpw21NRzJ7**ZE+K_1mH!+x5!5$opCrCtUt zbI#ZG(u)#i1;Avp;AnnrC)zn+-5S683eGRH+4}K@LhX{Q?-IZFQYm(MA+zaZ%!Da{BR*xGJnJPHGY4 z4~K8g+=XrBC8fU|B?asVIZS*?{Km2c*AnVBa(v%(+a4o${+1{??iix_ZvOq^J=%RL{7@85>ZzbcFCFOs^m+oUeLtMsEl z8dTlWU6xdzS2z$EA^o5S4me!6*R)ZWJCbgABjy$s3_E6(p$1ghY}WNqsLgH~qIY#l zV$zH!wfioQZCsW(NDacsY{Z$aIw1;*V>5UDpZ|Me(^9j8>1zLlD?fanW9QJ!UQe-V zJoF9a1V-g3f4l$Zr*|sU9&Q@4aPXFS*0n7L<}s$AOhfxc-9}y3Kl$JP+m&%`w_=Z) z44-~o%GYIf_cZCTxXvBbaA!>Kd;yz{eR!t-#_hg8sIqRpNBL0M63>E31aZxt+j;yJn|o3h8HV=xMOq^ zGi5^HngxiO`EO=&=JOTC#iJ8(CBr>+W%@9XiHn62MT*`7;^>*b1*t(b3HwnPhyLNIlF;-2=iw7XdEv2)pF08UKGR zU|CVcN>Rf~F3jrF`pd>~2!8dR{0n{?w&*k!%QzSsO-=^0K{(O7nw_1kmoakVml*^{ z^tvnxd+1=fC7{XpE=5MP?eX$JJ||Bq!vbQk7I_DCm(S+ValF&GW)|Ewd9;5+N+HkMWkq0 zrO`btyL!up4LuPUQc`68Bw)i?Yu8Il0=#W)O>=oEAqZhi(K?ZM!jgv9U3!PoN!)?!UzZm3oFn1wMkwdV54WwP}-bE79WqLc-j7g9ra7bo{%QZ5oFK?dM?l349Q8 zs<*)aiVEa^o)?cNf`OkrU+F#uhUcHKtwV?L7oQ2^#(km`;bpTB<%gkRNV%$>&3WN% zn>K(ojo1v%A}R*6y5a8l4_+=+Ej{EdxIlU~03fUgicaCg9zGPpDJ_RvFib|K zPErvHpA~?Ii>ALP&|a8>Yp)jAtX^#n4^CXwcv~%wA9$j!j>A+`%(2PwPU{Y*(nnPK z<(67XJv{thP9uuKAZ~S_IvoeRiR$c?_DBE_^l^m`7-LgR`I20HACoOGD;mZXdy4)5 zjGCIYrJBwWZc4lH&|+$;dh+uJ7J7Ko@_@=M#5-wVqtNc2TN76Gbr^oZs@xqY8$vA* z5$hFG+}o1=Ok>X0{E2m9oNl@4$HQ36{4oP!3&AmZy=!fG*ym<6WSC*fLZThHHfcCv z^aZyiSFu;?R&C=dhRn4;m@lKX;CQNb4!bb7%h>fh#mUN0;=g`X<_XYKQ+*)E8mqT- z>~M&{ZVV{vY23qPo7Kpqkr#cNN1-IK{=HI6qy^|Hv9Pvh){@1Gqv<57JpXLPTFT*U zUQl06&DusqBRzGi^7NfP!}>TX6lY>Z7PB-6pArV2CV-S(OqL&9@JGRDr4A;E94RJX$hB#_Ug1a zIBlicUD_^Wz8-qd-i$I%yvIq1E~8nQuCMW{Ezh>rz$CF_O{r$>-1RL@(W3ax>hsZw zwK`SVN-@f=Q}G5LKXoei?Lnu$9Y$I;=k0#M`6a#+hM!6gG8c59mFMPI;1}mQItP9E9h0cB0D;C!Uv;rBFinM((ZY5#} z6xawd5F$r@{kITv`)FJp34aP9IP{VoB^($Ksxu1?|LObp?(_#yFTcxMNbuiSaD#;B%TK;R=R&vAK2KIX3xfi zcM!s$?R~hQdd1~gN0>dTMSf+X!E+)!CRjz#08d25TLa5Lg&2n{#<R@fuyC-bgjNxwPtd{5+2NGCeO#?c@o?~5Gz zpJvJ6l~%4(!B^6(K+iP3Qks$l*id97X`6n!nUL0m1s{U}r-qx=Q*qZ>`4oSi%+-M^xz*TL z8u37ZJbqcz(37|g@LA?6Hho1P%CGp?afrlJG#(l1O_Pmyb;y=T#L_Rqr5Fro+Xto@ zxfO}yDc{Pdx;tHmNjns6yO;)Tzke9wopcM$8?PohEJR6eMwlj-(f*w8ty^D6P-3b< zUtxTk%-p3*LrjIV6xG|g{x@C zVy8b$hm1{<-wsO&L=2^hKg%2{)iTzM|))vwr<>T&kbh-VjcIC&^BkLY1`) zZWt;9T9ZwSaox5!b27nAR3zXBk51fbpC13NS0!D&%nhJ+TTVdzS(tu?_kN67Z}?SM zKtPH*|8-C?zZJk;O7|R;l#HbUE%0#Nm=Tb?R{B+lV~RWyGn)Y9+5IO@w3WyW&y3$E zi<{n3c@6Z#qn+B%4fLnYrSk=>sNHmYB?rEfCQ&kqY*%Nk$y~Vfw86(WsOk1-@xp~K(Bs%Tx}K^H0*%wn z)H&RMVRa-hM)N+y9VbJ5i4(vrn4Kt^Y2J{luz`>G=>YG z+%RPOpS$UH(go!gR&yFJ_`^r(&ub}9kkYg=u$G!ZN-})2hlWO1K(yG3;SMlsMAElH z_yl{jKYjXi{l{=#bVQi*;RuRyCIR&|0?3i#7^(|yPR>Q6>EJ1j2$l-!=@hPr+Y&3{ z(L9zUmffBsMswVIN zKe}c680N=-VBV6|IV=G$;eEF?HSNmhD1~?j|EW#8Tl7S;q0vqEZNB%Xys6Rbj5rQg z$Z;&>8UDZvIlsN62`C8f+z*C`GNw{ReJ+Vc4E8f-z-=-PDGJOe?-B))b3ht{7icq@ z&DSwr;tN;C8ZH5y_rP@1=@6X**Y`A-%`Y+u8v_J!px|AEmH$GSMQppBgI!V|c}xGuq(IFTlg zyM5!vXRI0ZG6IZ!Wy#YrBdO%mfT%Z&G?=Wdy>ER8ddnwL$#X^!Q!N|aS~wY@UHQOe z1>Y@<8KYE1?*zX{qYmc@iE)*7gAdosQr3W=gHP zuUS$Xn2~|M2HTM|WfI#NkrPReAEJYxCQKLMs_UMj`!$Hnr6{EKl>@hMr{@R zf$UARQfZNu&mayHP`6%imMAi1ZzOm{)+J65YeE&&Ay$gDw#Jx0io%VM;Ncis!t=;2o7RN2Nbz z7#=Hg99&6VvJ8EFV-D*VW`v#Rw3N?zd9F+?c{0*EEl9F!qva6|Q-54B_wPWU_>@7t zAOq^*;_2!bS{%k}rW;od%q+OLpK1lqxOSh`n{yo;jA4EmUEds}#<~$hl>lEt1&N6B z@N{O+c8 z&_;op&PbqJU1PsBA7h=CNwY{6#pYM(6y-e5-i&fVzmj&(iM3U>0%pZ1O_~9}GQ5ur z*uXhhL%eGT56Xms-9Ij}MY*6-ya!trrb_JdOH^1-3lB&ZrXCFhC4b*%9V!VDFI${y4WJ&;x2{ zMZm+fphFaTuv8DEUt+%;$jO^}xMLF#g5Q?rSDu2jDoABR>LwxLoSh2M#O@IbxFB6= z35lZ%s!XbKic!HEbQ9@PL-Cc; z>}GI#?dEGK(HDUq?aCu4)i`43GFwTe&i*@5LR!4pM$nf{bo^TIbJO^6ZkMx0W?EVG z%h+CeXm~dq0_~n-XWbt=vGO1ub+|pTk)RDznNZb6NarqXrg$^)o_7JxPFOSq8j$`S zgn~a5psq)bHbkW3dcok8NqAj>eZ^np!A zHv3Ubue>~ng8Yk%#&=f2Mahfs9JS_TkBsy+C#tyAJSI7?WhJ;QdAQ{e@eddNA@qsn z?2xi3Ok00L;Fn`ldwt@Ys5ctXyUbOg^7)T!99mmb30kMV>OFRsR5@gP(pA0m`yL}W zr;g1+Qrju{5Ka&eLkDJ{;H|&N)8$S$Gd32J9pbjOin|;w!lT9_*=78uf9QQRpidE0 zRFHyiQx0g7{ma(W44GaPt&t0^*qu}QF*56kpVE+q3awqI-nm$PS`rS?mjph2s0WB* zI`4@yQSbGbN2-vCCF}}V#_cqrR~2pzliB1HU~>%&--V$f>09 zvn4S(hgo=+F%Xb42ou!s1#dGTMd^VcnlnE+0%=JswMf&U?Tvl!C(Oesx{n@~;9yS- zi&%SLMS#j+W=4s&>tM^B@}`9Wg2Ie@_iies8*Hf9nj$7-*k!e#lAsH{@U0bZp5fyd zfa=Sk0@B1nOegq@shTTWA(Jmgk2e21&%b@>VGXE6y-{&9Iz&tsxTv$M271{JzXj2mDIy$tN-KZE|>k zJ;&H+NwXwXN=^9IbI3}G+bc)$*V|#R7)j5Po~;M%e)HK`X9y< z;-g?Jwv0C9vzR6S^V|Ca>{=OoOj|7UFUl-a6~-UR2TX+0FbLi1#>rb|X5L<#)qC`) zg9R8oIb`Yz+MC^Akr>G&Di1i#a>a^~j3d@t6>gO;P6?*`Ws|<9P(?0YjQ5}!n}ah);pOIMM&F-zpEfYX2utKdT0fVwtYP=Dh(w6@IsS69I_P-# z7&zckTs%NrJ`aoRAGfck=!1@9kusr0pc;`xrfe~E;|HDN()TapZ%C7iLhVM7XtLcG znB*0o1CXBN$v64A0g0}sS~@;G5H`E2#HWBwCNr-fThPjf4amKJF_dS@mq|*eoJkrx3$;-(?IfvT6?Oiq;7i zz~<5Ce=cO<+mLmHaBs2I znX^AKYO6D_)j2a%DlR^LH$L;h$`a@)p&(!>f@!qw)pi+0NiRe}(#WQyJ?D4)UL>k4 z#j-#mG7<=uHm9H+mG_UHWO%pDTXvUXmIkN{uYoogodeNLIhX5F*Bx*Larmz5AlOTz z4wm|hbhwjL+G65^TNCb&j=;7T>j6<#T)j|PSt%(52tdC4nV;+?f(v0@%%4<*Y^`j4 zr;52Q=5Z`Mbq;UFgV>HkvtXk63mGLYrbMo%X{)x78sdJ1$^tP+!#+hvOT*5B7SGpK ztsth7pH|S`0`8Nu*$BJXOQzg>kK@grvLF~&KkB7;+7XBzJ_@O}qnp5k9g>BChHXLY z^m=ug85x&Y2U?bIXz2q1_hM(Gq*X7CTDj^I4eyuf(4rNC4(eqy*4i9(V1p-d*Vrvt zofA3+16SxwpzplT+hQEgGF?s1o}NyNF^GK`OtmBzwN4CG>rJ@fl{0aRyn-1m6Kw@j zMK&x!D`E`IX?83JqKO$p3^4@CTt>PU*t}Qn-Zh*N9?)?IQ&V11;yD))Et|~o3^P^= zdHvp9c~4zDi{5R9omZ&cCgOM>HK}b2=QmxmW{td8QIBW~?2q%KQEH;6YJ4{?OqgW!rgM%J zdFR{JvlxAb%?4l!PhC6LvhdJUI|iabk09HfLLq{l8>;@D4MOAY-d=~54@?_d^7iFR zSNf(58$YP=o~Y3nM_F;{v&^e~>e!D; zWGEiy#+oX7(c*ZMTv5-#gKs5ly|1ZS;+PR~-lN13?-3Lsl<%rFYuaSTY}uQI1AD^W zzO`*rszxMbC!70Axx=ZBGT*>+goU=tqE@0WkUVcHcqLUNJ+5x* zyqiG_Ex`9s$M3ywhwFQ;IrF3xO^;@j_llq5G)JXeukMgqF&eS;;fbcH9g=VB^OHk0 zE?1}3oOtx)_hV`djxH(=IOhc^33>>8*dJ2_fT1-;aApz7Ff0rR{j3Q-kq%`K9l~}%WsqG@jj`#*5j^2622PVz zbTC>`scm5J_DJEng321(a<_u6_lxeCW`P#T$Wwx{^YdS$Rf@3%DpsmF1Ul_XmEE{tU+p_d|k$hJ$Ei>I{RT4r34}G;XoQr9TO|a$T8}p(82f z8l~)6m$hM7Y`~$Y>fb#&XZ#sq693`DZ=cfDZu)qSsT-wWMj{ho4W6c)k&@R*C-g!z zBWTEs4~9xr_3%xJ_xuR%lbK+^t8S;P)^196ROiS_$Mx!KOTRLtiIV#ibCY1QAUii_ zwkva+<8*jQVse*F{roZpJ*;WzG>g^}s6m-%hvczzM(-|wcJkmADj>$3h3@H{oAcYJ zI-sm1h)BKu>#KI+C#N-Q-+=?Ou4Z&Z{aSE)Nl&_N!HiYcmQ+vKC}T2Q7Y@#*HS)FB z1P=e#l!s2AdPI(%k3pXu!8hGa9d21lmiq@OwKJG>&JB> zobo0((`dpv2U0T@i?qi(I>R-RvS{p5dRGJ$-GK!Qb;k_F`ywKjM|RzrzK zNHq9B82P1-`X-#hcfYXv0nh8vU0}5&7xfDz{}_;`25U zZz(_WpPLT#n9C_0)IOXt+I#$XxygfOAl)3^=gyDGp zRPzw%G9-{o>B337ShYDpfokq60gced(}tOnMnS%*(a<{YlTULH!CB^XKaRY~Fd;ol z%P>T9sujphDoPu&ZeM{MfbsJ?~DsOqdA4%WY*ijWS0D!?NY!5#?m3RjVe$lrLOp zmochqr%ozUEyRAdXwg8s;ZOtoj+_Q1gF!jU4@CHs-nPA+Ixz^MbyLs#SGxnG!UyGZ z><>k{3|*l|1vvZuuzt#kZ(tRfz(d2`fqzF(v(U~nMXhEn7<+B*vSwfke|~z{uD+LKu}K1alYsCdtW-D5XG-uVQ>zGed`L7 z`Sbg}om2VCY>)x_XH|QRWzj1ZsJLtGmASUS4pE~a5t{A01wn^Q^M~QNh&^IFO2`wc zgSltYWYSGz8ylIoNzcFm`~`HPbKVTYH}zg>jTjjZC;Z zq3|i~%Z5~qvV76ftP9bSR~TVJX+Cb_7cAI^al7^OsQS3$o`$A#*!hx?{Fr!L*{~ES zup=@KP0JgL`{vAFbr@aaKj_l((n-S@`iI;hvs7{Ui9LgE5@sVP5L9T&0EZ*yOX0=F zrC+;i{QuY9o5%H>f8pQRm&x7`QkGN<$(~BtLMV)}m#CC&QVAhtFQU+prG(H}6JtUM zMVcf{n$V_AVk(tX+V1D6%=dTydH-?Wf88FB`F<_+>Ak#O=XIUyT<1Ew-SS;tJJ8A` zg?^B8Bwa=SUfb>AK@)d8Pf?duM3D`Q+wP9Jv}%cG3dleI^dKB$T4TFT!yLMNs4k=t zlKK(#fiaH6*FGU{)6(uox&epi@XO_R5o=F6%u%#IhF4nvPie6^yT*a*;RT5)9bpmO zi21uQ<=#_J-0ae8iygxhd`MTn$Kj=GLtw@2^#GMz8u|YoNC3*4>F|{x80rf{zqqDVNW^srZQ| z1-mHW8hKihc(N$OR1oO>D@A<&xu&!-Ezd9rWf#(w2Y=1MJd`R05J8dk<~0W4Te_ ztv}Yp`M+8BevIAZQvdtqH_<@f-V9#;%|ZG8k|9Q#?|k0aJa%|}{dpH-D#cL#951(K z{mtUN{qK!fjV~+sv!1@b)b|1Os}5(DZBEM6vpcm(gUR#YCNai_U3~WJnHa#GJn6;Q zB&$#+5MN$$X1}LrZ%7#uC-`g@=tuv1k#)x?=g$quOGA$$0MT%(9@+Yr@^YEqN;>k3XCrs{|Fh zcqjLPO8VtfD=^9YURfi^{CP?m2J?awL)U+r2XA{xHJW%N@|Ec9%oD4xVKLc>p$c$? z)Uc(7hPOnUNLR*$fTvK3iN66r0pAN8AJ^a7%jPlYq>TT3^Tq@v5VROfhx}pX z%8Q%b9-cY7giezHzv{9OcZzIc2F~w_8xlb26}oYpmte84&iD1Rk;9CETDaF0Gb=HWE>Jb7`~e%kAry%%bhf3In@a=Y-zT3bS&Og z`iSXzix*D^We}mGipno{OGnmVbS7*dbTp;I&0Dr4MU2Vrb`muu(UQH$vOrRAYh$wu z-g|wEQ^gYk$Q2daw=aoX>*k9KDM^54b+7e$0UyVVsqH0&UETqV1_B{*M-57N20Vg( z7nf12QZdEc{3wXnMXV_sJIt-gdIyJth{te#5JOj-#VCSyz(C9GVjy`YOHrJre|>wd zYw*~6?<{!nC}Zn37`%I_@&%1!nSLbg{yvYE&NAwxvZ6V( zrBI}`Z-TqKky!b&cc}S2x4rp|?%6yuUQ<$h6e=5v08tC=0-lJmioLzmx;{P&irnH8 zonlXE|7_0vQ(oV-0AAWwyfP@m8@TMymLgFe+&6!UMI-{VyawRtU9LC4}-MI2ye5hRvW`5Hl}4)Y^MY3`k%1s6{u# zX|IZo1pd3dCNZ#f7hVuyVScc$zY*UbXI}qyd_`CaZO1m0*+BQj@=9PiF(anU;-gc% zyky&(vr+oR3bz?t|JiTtokUxuHst(V~iLcLUm z0m#{lMI)vm@O<|6*S?k0mO&2j`#%r=iiznndUUst*h^A8s`-kd10)*41G%T zrcG{ru9$z{yliOlcr_yz0@(ga*JID$_j|w8Gh~TQ$E7P)v<_G@lP;$DOVrI=H%y#3 zvAQDK=smsiGK%cC1Ce~H3q)Wgbrcu#b;EX7T(a1le_kBjKe`sw?INbiELxe3t$NdA zioe0#yLWGw{j*qH{k`@2PxD_Sme(y?wYrnJr>9}!m&?T`db&jf2G;y*m+D?uqxt34 zvo3E~B9BAd$}acQ{zomg!rO{!`7R4x)V+twxv;Q}kB5!7 zDserH#G&YR-nzgmsrI80jaUBVwXU_}Jwij3+TiEi+j}JC+MRRxbWz4a!u7VfZ<+P# z2r4~u^HjUSgPXX|idf6q3BV{Y`c3t`z)0+!3`^}IVso>^ZWN9~B1Gj=((u>HUA=NW zS9Y^JPr?0^Yl+F-@bEF5nBEJ$-c53RuKHz`)})ymM}PhB!F{3b6#oS#OSUZT=~!G` z^2D@pFqlU7g5dtHEq9LJ^U}04!lDl!K4cF(C4=4M3$mh|p7(X!cUI?p`ShYn_0Ebd z+jvBF**7?#wM<+gzt9BhEukDOmNgtGL$A_=GtQ&Ud^$ODjsuuGg&jcW6dpro%BTK5IM+ zG0``;N##YlEeZ?mIgh2ZxL0vn^Kh7v<->7^tp4kX&5w)UT`} z$9k)w8VzNcXe;|FwPj7UY2H+8->@?^#nJmi`ivPhYR_4%<~zr`8mifc_4J9J$kHp= zki8+?XMr8fq$QX|yi7=V#M`EM^j_%;{r%qFSsTKW))^=(%Kz`^vhVC??DH5Xx;yz( zz)Q+vPgdOmG<5ITQ$MTBr)NfavAU~kyBTLVqm?c1BA+L!O@q?#R_?d#ZcZJuwmOZCVt2C5?`XUE#yNwaq~418;*qwIe@B)i-r za#_>u+cu|Y`n~V&{-QWLhYiNS!q1hitE#KMeS77#EIWSe19R_;qWLMcIjeisS2>$1`LB$@D~Di zbuU|jF%`Ii`INN^sys>GC>?m8PKqn?8?T*du3qk|^ zv6x%8+)2&P-(l>t;6+ZgKJL{!$(AOMRpsQhMpFZ|oA~BU41aHJre82Z{N|;k%(~|I zu&mDNCL>xh>T1g?YTP&hDtN2yRW4aoQSU#241^(OuYQH`xhwcFL4o7RrZr7PlkPQ zt*goirjoL?5YTsw!KoroExeuG{)J(cB#ELu=YW@FkDUKO+10fdhq|Hq6?TwQ4hq#F z_sIMbnv7)Zk;2hI3m?y&Z}9|*G!BC=k@c~o*|oKwJ&Znsn$K#r1^t*~$t$(cPQWKCwA)y~*8DH-Eai>c>wnUYNnw81zwPWLGLq zKYxUUiJ$JTVQG6v$wH%5vytM#i%2UGpa+D;&&Ez?EC$45s@;r8#axTFWMp@6uh@C_ zXbsa;Vpj$SJOv{eQN) zuM^*B`H%crv0b}j%epd4fA`u-=qgdLp{HMn6OHKN>7K~EaMC`D986T4_)7^A1Hc$n zJnB#()wP*3JBZbaEDXrMF5WSm4KHvSqN0_Fr;!a1M#_t{0Fl5xB4=Gdvm7hqVWxwE z$I-SuEVTy!c?e2u$c1<~z;XIx;rj5*+!iuZ38u}9SsM6g%5(!UfG3C}D7o|T(q-ge zd6zC<6IMAq?FC&UaiF)zaKzxY8|zmf5|y6{5K5NtWl zVYbs5;5Y2@`hrC6f%?HzP&EaKM)8ymo?U1UM5U?JR+_Q+CbA!PwoHi|bJy|^KUaDn z+`c6S9!7&tlOSc70S(d3E+|EDWAUDz?WB;+7Pz7Q0YeJr-l6sJ}8cPTOhQEqXPTbA;#H$+m< z<{R!jNP2Sd;6@T2;9i}r2HjkIGq7eqU{x+e`$2^jpPf`%gyu0@)2Oly;759>{kIg} znUdzgbAtie^!1IMV|ZHhSOYyWgvIuES|BpT>3iyyE#Ys|DMUX*glndyl*J)GKt6!s zAslyq!}Cb+6>l*%@gs&IY>TtC#*)r?<3_pS;+GRUFtkrxrIGO2GEGF#AMxv2MD4dW zRYM=Vc+cjM&W{cTpQT?WrzCbr9tKKzqTPX#QxGH!3q^JPf`+RousBvU;2dS70fCw} z5x}(pEr<8O5F*cllj+99VI5@~lsi&1TFXh~?Ckt9J>3jZi}YwgF66MGtuei27mHZi z&CO8U!Gr*%k|CM2TJ^hDlwS8h&Nwn(tK@TJhnx0kdhcE?`eSse10g|2Z6&;+^(ZoBR;>7}t z(MO#;usY=aQMk>*`{hdjh)*ReT(N?rVe0)4zo5Mr3u!W&=R8C&M9TTjszV1)sz;{3 ze7&>hwvXmhAdxhQCnP|6iz*uJBFR9KI_0a5M7qzPuYWuLD!W+6z(DMT?%%(^%4rFC z&5HwTR<8~M8I0>)KPQM3p8UAB){SOF%3SJnZqP?S0OPC}mRj3<>dPh^mof{J*(lp+ zfq_b*mhz~meE5hFlhB+I$2w3=9?UBz7wBd@+uP+|k@=#Gm0>(6KgekO2vA7NiG8jP zQJ+6VE=K}|;u=DZrwrrb>+gT1y-Dr4NRQ^h=g%LaZ2accqoDey|1+P?sQq-h1G{ z+$}QfDV8EQsxoP|B`K!jLfkCKwJHEtVoQ7lAb#8`LPer3;WPtg$_H49%0SnvVy+0_Skf8WGW-+iYe3V_CfVIOs9|~bp!|MOD2w}60sILv4UOkly?uOSm7tR?6_AKZ zf}ljn0wxoT1`c;IIMwe(WDuP$DBzEh(`4(l%6xfvKNKKBxK7=>@11u!_vm8#Oy*$Z z-2HSdh(b$MQA8k310vCwcg;LTN>sf&F6B}Us{Xxc?(nFEfQwxd`Y0Lq!BiR!m1CQS zMc)T?Z?be0YzL{Kk~Kk(eOx_l>ePpj-{=aCuO3jJr};lOoZsQw%a)=Xy4);$ldM9UKKq9=Wx#ot-AzQfcAMnxAqVbU_9Zqo_YpGTrp503oz^)pO*! z7Ob|ECLB;PwWHURia@4w)WUh9kSwzGZx{TT(%K_3bwi2(2}cZBbeIl7q5-lX^ZGkE zdE@h~)$?0iM^no#BRf-D4-XUxx);w$FjV$bWrf{} z?%uvkXY|OCnZ+(tJZG;}3ye=mOEV>PvJY!^@YE@@wQGm)gTPuK*jHKGAnDHIWOV=c zq{Kuqpj{H;2Y#ZdG3NPm8<{|(q;#D*gJ5_#qt4{`hYodW(8JD6 zF1~X0DjLz%kN*tp>Qmf&9j&sdj?ukOCsp;9o zg}0|P1QOF&^$@#&yUJHyirEkzETo`&_o_Xu2iB*`ZN53);Ci}svmSO_?8Y$tz|@4& zG7ms{Q4I|C;|c~L43`PrjbQz@xi;7p@Wh(AXt@-=^X*N+Lm*`c11Q^zV;7>0BUYWD zET3Ik3AZPO@0)LCDdirE40z%fZy&ZUvfXF_znL4tAto{LH8*|0n?()=Bh6sFXi?V+ zn2yYRN1`_r%qcyi%UoQJ!H?sJAT<(B^=ttMY;<+%PvV5YTbARMF|z`l7(i!8mnEew z=DvS3&yKH(*;;W9Ex@|i!C}A0ysH?6=@STn+m(4H-ui{C&EdMbzZXU#i5_Bb`lY{PUAgqQ#k?>YBXu`>xiYLmgJFCGYc|ggB>dk|%w?Z7z_FfvKe5ifch!t1;J_}!65jvmb_b`b67!O$CH%A$O_Y{d&{7ko!F03?a@kr{|@om;& zDKdHn{S(*hi2D<#@r+56qB=!S2uZ#i?^v;Etg4q}my%VnS>|0`WDHFe;TrJ(PDX|< zg0Ly;i5!m>66qr2ifJpOd&LeIDFDS@M2{51Dcyg3H}a9F0j6CHCwH3y)^u@MFj&Xg;OUk+4zz6(jc*{bPCD~fR&1_g zc$)!#b&CCIZ;aj2rQ77Nr9EK6`}|YtB1xc+H;&I7uzS#M;r60BeX(@jnZ37C_hg(# z%$<%|zjbTxArlG6tcMjXsy}s9l7?=1Iq^(Ki-3SAJr(pcQ~%Hy-}GhrKa;719UAuB z{qH$S#uiWiwT#Q|>gz>r<+1YzNW%%Oi;s79-j;Bv6EhS&y?p#unC=)-N1YcC(q>Ns zu{gnhO`FYH%7TqziL9=)CZDb)e7w<590nqvq-~W8n zUd_L)9<91Ht#{);S{>Fa?CY34ecs+KzRzcOtxw)2c*YdW+4Ay7<1-N!&xcq?b7&ZCLfMv zpXEVFG9GkR{b%2CL_cdoHCE$}`Wxnde4h`Eo&dY`90!`olc$~25UpoqW^ZN1X*y=( zEymU;`rPf$V?LL(GA3?@@3?vpn`8QNcSqmoZw2AXUsj%Lxm~w^*~VLrpEmlL)Zd=t zM~x4e4$2|PUMMdvC&Be0hEwZyf zTTXMrTFo6Al4 zzio3jKF=ByBYJz{lCd zd~qP<^`89I$|)f&El&IjyW9EG%hv<4jg$_-&+lkxIX|iPHsC74|8Bfp6sY@8@7?kA z)vN7bVziX3pf(0A`ooiYPn$Lo9W|S^>oH^Vf#wtZo&IooD=RL`royb$c=T%sF)$KU zc~a7*?}}Y8E}a;hn81m{a{v_q!Qd|_rA8K&5=0q*$D^YHnT9 ziVTG>1M>c_rbusy3}Ea9grDZ0`Mn{P`!}+;U$~ zQxkACO>5eM9sTQ9=Y#6z7AT#y+U`5sQL!bB8hoe>QXy~1b?VgK1AcbmY$bu;Z`L5X z|C#P)IQ9I3f+yL<@0|5~7N|b|R7UsL6hv&4xH%emvy`0a%|&f3eSX1-9DG=~MP?TZ z)h;YWe*UApQYmhO`8I_2q7>-rdQbgBT@x7q+s(qc6G>!0>G!Frsex-?ZUH7AHFoxE zDd(a_LD$~z(T|pnOwrL*tlRp)w^@LF?bl`cGb7$UFIhKiWuZf2`lsBTy~gI8pK|8N zHH-T7@91xsth|<^j=;c();=ojvmJC<36h!p^Ut2d{7FFxRM@b!l2#D~BH-T{89vN< z{8R=-D&!$08!~`fHFxjo(V#FB-i1{{)6AuE?Dls&>dn-ihk2zJ!w~CsY45@F0@y+I zykQI_m>IY-dCC;@rWpKC3DvTD=$8X0_8$8medLj&3G&jL1OJ^~RP1t_9(-LCEM&*C zx_qOC`C@FjIn+gyib%Cu*)j?Mj8mUg=pWV)dvRu!0um0P&{2?clH#(=1P3z;WlX{^ z18QZ?2&kTI05=U1`|#-#OHUGdvlS5>b~GV4Bp7!Kg_U_w8MhY7RHl(*wR09S55||1 z$i22SunB{QvN>?aWd4%pPwoinxwoX~ z%<{D7wzq1?4`2=zKy9ny!``f!9F!oSLdh6aDc|<$>(eb+jI6=Pj!;&w>~Z*Kq20x? zHCeGTR+AhgX;MnQbJLd@?!O;Q^lB5}X{Q!<+JuAarD>uAdfXWa(#Awx`o}xu|G& zj<>&8JXs(Ga)XS@7aLKIHF?*{sG(o3U7J>dR=~cYH%xImEld$WVn>>tA)4`JiA!)vgWR|D4>41rY;1 zJjZ;Ta`I;T8L!pGnU-wtx9{cNkf+?=ID!r85v_fXiKWzp$kxe&e9meqvh@^OLRTuZ zZ|B&`1+Q(299gi~O%N;pi2i^qB^sDl9EwB``F^lpm$*Z$R;LePy z^m2s{1qJ7^%H*(HAC51SOdA3~EeN%0p#V!PQX51f4uH6IiKe4tOq`qU^BNWUHM{*^ zPC*w}s#rz!QXif6*Dt{qJNnf}YQv;%hMn{|e&C|^Ua9z3GiY8c&G|0$k!YCvSDu3< zfvQc)%*ICKJ?tvp+S`SMMc!;ub{7K$Np^3uLYq`j$9@K15i>mAAgKN72)F`Wp<78@ z<-Z)8G2_>N*&KSTOu5~nJr+&0&42srecFv`zj|C$(X_KOup$0afX>DR{iv$ENCIYC#^Yx-1}==OT3xAaacN+k z|K)3UrpaP-tMN$$jyycyS97h7#>>fm6?+jHB?Wpt;(3Fy35$))K3Cv)=W`Rk-Cg2aw?Kx zASMpicoE3FShO2NbwU6onc+G*kV!8feQ<{WOSH?~jo5Ocz15$SeN}!vJUY_P%`Ngv zwep3$Xq}{$cGY)H%}&g%ad-V=Z+_*_pP$qi*~CBSdSPaqUp)-9a&nJX^qG07rkm3L z5VQKBu3nQ0nzQ4(t0?!Tf_dzir&-%~Tl>fuO&L%ubX@J?#8FZe5}$ky;5+Yj{BWE9 zyx%sfGhSHw)MJw7@?m4=d>rICC*Crn_SkCev6f9GMtS<`k5}u~y1DXkn{``e_V0A) zP_%#8U^BPFr++Yc*_iU=Y)G}Z%F2#5`st4!`k2koUwvuC%HKLEWxX1%J7VDY`XuJu z#?-MNCU|x^c~8~8&^>(k`3)Y3#=u5V+_# zi!$6_Rc+b48DcEiv8bHdFNGh3U|rhorW}KY$oNIu?^ohGeEeGGtDphQWa1>elj-fX z&d$G)JbTbOGxJwal8D-Rchvn@gCYXHj|Jep*`0b2)cQY;Mf7@%mgxejKCO&r6B(Do zpa1XU>m0wur%0Is1VK=Iw;^2g%N+2Mk>g$g_P(f5z!DR-5)wKwBV#6q5I0CC;0@w7 z=NTf|2E*28bbigCib7lxvY$eP`0bzpWU>!hckIU}@`_Z$jU6@<d5IZxq0bg8&eP>T=wdF(ML3`3qMgfOMN8dEGhrlg~ zj~!cg?A|?w1~zs)7cWx+xezK7Y+CS-kkfn**~cx-tq^3;VK<>kWg}6DEv~AeI!yU7 z|HB8}YqOg)uDw1{ey2|Vv~L1bCE60!od_K%S&*?f=+2;hsJ%zC1CxUcnS~(ZpO-D` z1Lg<63-zg^Y;d*)Mi8!Q3c8w3gwq>x`j7DMu zJv_~u3DaXHe(HWm24^@!|W5*;Qe+qJQ)6e~Oxq3hgvc?A*dK9m?KrIe2ZhPq|1n(2 z;yAwZdxX|py`whpf>v7?7w`RzuhetSzS>d)U1ddaP2_Dr1WWHqcv|h+u;lb~79B+Q zHd^~#-$#d=YlGh?@WaiBlK+=qep6ZgJ^pHL+;L5-Ey_f;t5p4{ddYsrnbLT+ShC~u zNcYyf%gY%fCF%~;#Pu5UW5`*d9z|xE>m)jhw<#$oyHH^OQ>MZCvJS<5MCwL_1f1qz zBI$G%*$P4(B7yX@04>+6eig?Ss)&Gn1!^NC#Q>;t2yRGbiUG$?Z&wC~ZYWqpC}uxE zF>?`9h%xY=XdkBk(_L6XIn9dCSEf!(t#LCVVj~_#lmH3Rk5rMR2|L3x^569SIQ2UT zCu`T*)mB%+c2W{PkWmz!=^(Q+CkN47*giN>^#2rj*S#3i3Q;I|BmggS#}C>M^PR;& zgO-{B0|z!;x@OJ(r8-mDu^f+>@*s8Cjwl1Zlb#1S7y-ZJ{Vab<65A$zy2pwHvJyGl zJN!O6yi5l=Wy%x7cCQyw*H zG9(9({3$2ot5@gj*=kTNZFj%Ie|-^wfM-QUf#g|PRrM*N65MT@z+Z`w7GeMTIKnG!Jx!iS`fk+Z!qDU-I~_8v5QNOYx;Na-HP4H<&OLQiV8j1&wB z>7d~CWCukNP0c9w{T3Co6sn3OC=#2~2#FhEM_mC{kR{APM^R>C%KnN`uB$qT4M4hfc%`{Y1Ock2hUD*G-%vC2bF zKMiSwW15ybu8~_DkE3F>_m#TI%ZYXV(ck~k%4v-4Azc!!WzpQbEo1b z#HGOGSb}I*83dp?zEi`F@HBaUY~9P~P4|}oN30D4@A@-IcbC%c>t~mSE~4z+xntvv z=q~KyJkDaGx&JXnaPGJN9%N$tlY7NaRt@VJk_;z#?91*~W|Pm%nrbmI-8O9cxW+5a zvYGL6tZD~9QPh)Yx}Sk5oo{v7e^!e-fO4jS_~Dpxn|+O+Ib&G#l`K`B*=7S>jv?Ml zPW7a*o{I(({?FyuaGj{g|HppM*`eBYH%HUY%Jzqun9I>}Z%Ih=iT?|`y&f(dF)bc> zZl_Lt>Txkw<>@cs6`3vEZNy9tOYI)pn zzj_p8p{oLWLw4m|xdpuhaghA#Isr?e>_Kr|Gs0h&*3Idm(fe4l=;}Q0E8ic}9L@1+ zjQIxE5ErHp$xwn*JXes^3>1Yfl0q>SfYfTwAQt0jCz&GEqPcemd76Q02QV0)-t3*z z9p#=q86hNXNu<5vj|6yv`$WZ;DU+T#(+6plE~Z6Tjy067WfmHOKX3pA?NKL93ub?hzrywo+;A-F~}OI z^-=g6S?NtI(a_jK_<}bU8z>}cfOtC6_NUqV1^x7WMZTK)l0FTd95D&wa2aSN=G;IC zK|k5qh_FDki_-)@;^r1()0Y}2fd7&S#!8Rv!!QDkAq}N^ARa2vB7hNYrKvo2rcJR( zQM!nG-K|9;jMLZeNg-*Tm0s z)Q1v|oc@m*mysl2{|g$1UNZ-G9{s))!E}FWF0@ko^3TD>$L#4lWPEbI^Q1+CI0#J6 zX>6aR(>hZJ^NRnoAmbHa&w!)ColQYMW*zv61 zJybx+wP0b_ncuG}z}hwi1(0L--u1eyfy4fRr_nr9b96w?qAEm&wsb--}yhpGFH|`-t-U&OZBZ89P2sa6i?mRnsQv z46sGag{(l@DJ?woX~z$YpQ5Xx!PXtudt1T^^^UDckx12P5l;Tpf7r0j3VyLqfcu=f zQm1EsbG+7bv$K_2pjo5zc{wIL%^oaI**GZS_ZN@Qxf9q30}j6*d`sph-DI{mfeak= zpcR%|ru)3#)hwrJ4;%LL`_%8*{V|m`o9iQ%1FI^5nIOa(C|%jXm|){HfWb6619D!p zPv_xqy`D532d)8oWna1ZqUmWSYcb`PzB6>WgoR>+8x4Lb}u;H`n8X)!tRO)R z77B&59>fz*2_QiIASgV%CnREGz72vqIX@ zc1l|REjlCY>!oW~%gr`!E^@XjP*-n$xMQ=<$}N^p@_u~!q32GmzB|3WUpN{#J^gV? zuYgB8y|=Y*?Rd~)*SN}pj9Y@VJ85aLZ#q7hS zl=Af2)RfqD5sQ!h_|v>uI2uC0iGUX6BODq4fEVE29aX zs75go&s|SSpZHEw$mG^AG?+l~k=j^8;~xP1hmxvGXfxd(5G0?boN3jDQ zJ2sAs1Ai0XY3*>-3sBxOe$+{seO>vmpuB3Rsc&(yBkDuo?2DO&qnP%=_9jaUO9?QN z1iE8urXWIyJkb#i)tfa(x%jgQTA>T}qlRPS@EceHhUbA}ks0zgRJ|qz%_f_q!wf}# z`;&1S{<3)Ktao7L2|Nd(F(*yRQL;XEVdaDLli2ui_&Yil2i82Kf_H|h6oo8{-9|w! zgC>viiv$uYH@utRgB!2zt-vT@UYT+IXH2SnXR5jPq<3`bbf1`*xDlq0Gq1PhT<4e5 z-4;wz+hf$RcdmT)@IWK#fb>4{0VV|L6P1QT20l2hEvwPwQ_+6K+hV-|#ZMZ(C zyDgnvZXMaM$Rcg#qW0mvJdV!mQvV5K?l&V=*y^c9+uqD{+c`2JH;wt4o@S<*&Uym| z44yl_;cm>Lx2Xo4U~KxVq1G+;EL-7PYQo^Pp`F?;J8@ycUC^4R=d%INN^H*z>FU!3 zM+mD>E&ssh-Tt;Z^ZV^%Hp5J&#byDu`Q`7{Buz&#F4b+Hj$*Tr_$kAV{5-VrM+9$c z&&vd!UwSp*vHi`9LS^tP*m|5%z!R&XaWjTA{DtQ3jjvKqm<7MN?bwekPNvob4h;(* zbf=(%W6WNpD$4bD@71e?^k6&dG0R5@Y6xzJ@@l^GFa(DgmVFPw;94uUgq2}Mu&zQE zDAG+k?6|tB51&J?N##10CNG9S3*ClGI(D?z->jK2V+M6wN{X;|;!wIiyIbSi7=8NW z1rxmhrj0kzF*JN3?rJRbBhv`k6n@VouB1~#hK>W0IH6~wIW|z$^o=2j^Imyk|Ni|t zXsyM?j!E9%k!>2&UbdgU6%B`i9B}uFbFE2*xbiDiir0<6ct5}Fh#>4&LQXB|M1>OK$ldS zTli(*?q$lA^IW#g(2!)EK5d?ff{vcvUo=)wE|4iXD@OdqqrRR}psV6teb|wj2j>sl zwXk{pTkW)I{{0~BLiC@AB8H9}X{_x>m+wF$?No*t)8j%S?HQd-oPy_pAF&!giCW7%TH{VFX zj(CNS1(|WFb=>gdiVCznEAMf9d~{R8H64o3h;-fQd?LmM<&L{kx6c&p5u=)*uthA1 zTz7P;8^<|*{FGMqhyCH6IHGiLIUn-ya+j#GuU~K2#2l{k?KVQy>rh-S%+uZQhGoI> zXkyW@AJe@@_u6UL%g1-B`Y#vfY+HGvKJ4$=*BHd~B#2Gs=jo}=KX2A#@1&+D)7(;( z-5RcMOuMFf+hPlBH*Y=>nlSr9aPZtv-&q>I%hovmRvbFC+AZRHTxz>Ha_EO>!rb8) z^=0b=4OcP`@}8j@VCYH1aWbaG{qxHiHuwXwjj)uf`vT7SYx_OEQy)y84fxk|@k`T0 z8z-wBllpE?%#WHg>-41njvU3z7!zor7LW%ijOjw7H+uM-Lr3 zUN7Lnl`Av8|DY%LGSwaLtU0=3(B$6Azi>~SaK8+@xV*SAK80_yKk@q4Q3u8v8FNbY zR#p!%yZk-;&l%TBXHeGzD-Cxq7~J*8hM<|_toUKA#>u$DvAGH*b+w^{A*M~HybWG? zLd;9>TctfCp~Wu# zNNGWIh=Q7T{iSr7K^f>iT&+ z#kLD8ozNQ`nxR3&l_qhl`nXcYE^;tqBp~5{9|ui>e&)Epe^jm$qp+Tl{p?vbi=N8J z%$I2mPquHc?YLGra^N`mcT!S|aeWVoNC~h@&}G+f+w28;3`h%s9@5WmWwnFYLQ@nv z0(k$#l$2N~nI>dXXVC|vCd~24E3cB4DmiueD}WkJ{WJthA%oB1_%_k-CH-Z38)%aG zp~5t}8d@5j^O(?w1b36~-haOz#98T%-8M$*VE%jl@?|f6uz_kYJxJm!>h*-R&wS5N zgc3)xA(`Ix=1sR(7lSFpW)L((xn~xU9DV2R2=$nrW+UES zvEuZVEBo;!gP`T%)2%tgsHZDly<|k-7=DQn^`lCQt>1kCmV|T*PdgQO@I|guz4rCP z%RXF0X>>_d%{>IBb|`ZQ3)Nrw8K{25O@0`)aNut=Rxwmro*8M;<{)FM`Fx02PS)Gz z*Qz6%GzOfFUdtYguPY>uQZQk**{-6K7XUBnNXCij6&1SF-Z@5jED$IxK+<$70W|oq z4H0ZlRi8jqwzjq=udl9fP8`8n1cLI97k~MflpEQ!iPIewo*$wamM#Z{i-8&Cn|xjF`^JleNn*ByM|1H#LMx8A9~N0_AhO)q(CwP)EBSg7Ue-BAo#bKQ zp2pbtzFn2E9hh;>9HfqOKPtT|tuoQ*yr^p<$aVhV!-bVuPI^gKYm}DNqafD)cL?g- z_JjM>t(OirT<*ZL=prj0PoD%L$dqa{>qboQnxU4A>CxRN{Mts%P%tEuFz*$iv5 zjWC?={2(Y~@R4cg@J8gHXuRpvCSwE4#FbkyvbS%{b#@7=1ay7z zfJna4Q{ zhnMYiM^a*T0DthEp@ChGbk>Rs9wjGWsg7d(As67RXG#wPffGZ;gruY=H1ohwEhT2k zU(oU%rFOL2&3atQBDwfWTYBTUF+Lci%HE+{9!(ZTt71136x57f*W@U|Pigs5oRHIa}_*-D_`c@5z#X6Jvr`z!=035CEESEe=Fm z*{mCL)uJIMD{&uiI^sBa9w#)ZdhN{@y9~#UHKp4K7Q(%(&D$A?HtZ%6Coup5({ugj z?woG>p<%7H{cv_$V*qwPJ9^Exk%~K`zKlpLzCCb#Tkf9&bIqc#23VT&rR@iX8e>QG zO3ikRpKl5v!_4o8u;?JG#xP@*e%(udoVK4eH8}H8UcslgL7B`gQ1>+pK7Q=j!{@nL zKMf(-y{Ogjvx66ptIO_)?G_02x9EbWK^}~vkzc`A!ct#tUh`(em@)UC0OQ*w| z6T5y{Gb$EH({k3kvP)i7CR!v`ZFfIAm-yTKUzUcY%vEYQED{Hwo@v~dHyYRmYb?92oQ&;bN=HaKg;7wNcxx*$|p~wCYjLlZMlSckW{N^>0OxTQ^ zzpWv_=l|H4%T3A&$?i4y*smuvh)w)J;)q*B-ALbOrZZe_!I`{L%>SzKlo7M^Eh#PMPN%90VMI*s+OLq|Z;^S^v{e%$0Fh+bI|7r{{E1!Hd+sFfRT2rLsOe4ju;BHksM2^ zjAiz6YMvPdoP3FNKoh4K^Z=0nM@5`Y9I^L_6>*Ydm1l*Nlw1o&?qm9QG}0?_glTD6 z`g5CMQ1w()EjP9TXP9eyEK}xQc+W6YscJ{R-AE~bTu_XB_xg-tM{c$YegJ8^b& z&(KjMYIXJMAK_yi4J&llDWu=`r0+kZkkc#dbfDItl!C9>h8y$(G!1XZeLec8eu7~m zgf`P$`*wcn2-Eb_hb+v7jj{NtafJ^#-E+@)y(3neH!nJ(*Wws>FlyK4o{js^zDXK~ za@pp+yCNZUpjxsW^uX2s{m}RAH23bDzj(Rkgg%Eaf}?-<5A2Y;acksmCvun6FC59F z+*O(e&6xv~`YYdw4z{_i8?RyPX|IMK_{`G#+l0p7YkmJq&+h>6f4}+f-~Ri}|Nia2 zum11f{`<}U3t#kXz~fQ(%NAeS(Rc&ly+Kkv1kuo8~FXk z?!}HU@o)IP|6SRC7yI9Do(=uex~>azP*0s=%(;?RZb9DHix&p~yY0iO2LBouXA4Po z9&j2MUw${`_ytHKx-j6*n(!SO$7g`9GQMuo=-h_Ha{IV+n0I-k`@Q`9 zmEbOd2#FcF>;1Q4H3Bv=p)sf{8EzF|hFux$k?c$^D3Tu%hf~($8w& z8&8Ik{H_`0l~H6=SjMRd%;UVSOlE(X1()t}?-Fe_6fU9(mkd@?jMTM1$)0B~a!KGn z0uCsOvzLnm5kj!>jcD>P5+f!sPAXDIYv4dV?POLuf06IpgQJqK1)kCz1;*ir@lX6z z25<*<;YOI7O6*2&TbefplH5QQqDnFHVRo?s^0aR!LUPN9S!hHFVA1wr5e1)ko)9`< zorv7*Ua_-4Pt;hu6t1ITIZ}smH;Io?erh^{(BWd2Do-|yzn^qB;DbNy9fpBLx2xht z#8rQS2Isb*8q@!Ia221C*ue_Y1|IP(DFkZi$?6A9(x<&%LL)2~7$N?H^YPu4mEY~@ zX)l%=u9YRDtFvf}5~U)+SV5}BB6olF>dT)mZc>cVFTA}IYY%YMzU=g#y?W)I@lee| zT#rOuA|5kk;~Q%!=wC4L(O`2wsvINK+^j5DTW#8m#;ocX_yB zf7cpSmv>DHBkJ75BZadViQ{{}i0b|r>Qq5ruf2Fmx}Kz|1FQx=^!`^%A1F`z`(^WL z->OW;QFpv$eU|duO6U9^#~gn1O!kHtg1Dik(d*n zQKO9@QH!Q%v2-`~>RJ=i&Y$`brb`h^F?_9T)j#@LrTDSns&6`|YqoS2Q;J)=I^$34 znWL}^o`kXjUK~s^@M0$vR-z)$Qt%Sf4EuhU)50#e0Mo5o46}?fvKolYvL9@N%FKEh`KD11z6P zqlR?liz@*o1qRl*(7ggnA$=w?3j_hPxHsVOX3CWYRzA1${^?k3?pe57nyr$RvKD;$ zvUgqpjvUe!E}f=)M}vC}F#xBLNb$s}YdQ1$&mtax-IZ5^>l3B1_^pNO_#*r8f>AJY zXin=F1w^_>xzS7O{(O&jlWc%AAGQ;f347H#Ta7qI@Q zTR(}8&%!T}w$PkaTa!_TF-9zU11M!_y{YfG1+%z*-l>*jRGV#d?8FJ&>p$s`*YTE=8ld#YMnyFjGMyZc27;@!-Aa7(GyADkwnm5A zO4UUnJWZO3DE)bq*XDWFYe~E&d ztW~NU6PFnG+G(hRXw@zIC-r^g zVfdvFvnmzDOF|kDfx_k+)7Bf%n~!aGi^LIk$j3LuZ%Ox!|LdrAptxH=!A8MR#^gFN z&Ei-@Rd_`9zMrnW!=*$-+tQ3*8gCRRfnMSilAq$8YSr81?;$E-WX1GN8o2QlSI79m ze0|bf@e;<~UTtF}gVYX*gAZ&aR$JpWe9sWwU(Qy^G2mOn)hEn^iRH-?6pB)9!XTMyfq~ zX3P4d3lqJ)BY)?R@@rTzk8qdB5$~udsC|3sAp;aK(o>KNWiqKW4Z;^2lgs$UN{hW% zq@kY_!&*5XB=j=k;`!QAv9W{dIqd!|*!?W0Hb4)04$=c!1L~N!giN5OrPNgp`AW@e z0b+IV4R0NpzVtt&rKO1xskpPs6ht_h(jy_RyQR)A{gUvz5-^$iB{74%kg8$wgRdi5 zl^mFITSD!p*oPmO)OY-d9u(!Je@_JW>;Q3&@UpD#TeP)kOKF}`+uc;$go&oAR(vaD ztIRN*gNr`u5jTD6hX{04+Dq33RYh_h+P0BLQK%$sgGh!R<8QQ-&cde;*_uDy+`Xnu zq!08k2~k6#kg5jB=PVRgs(Ah&@>&O$7c+KCGv+m+sIx5yKk zz9!f1ejF%6AjH*fty^hN&UGKmXijH-{WP=ntjYl%3Jp) z+VJbpTDp=>A=~o?rZR<4HZzT((F=iq4DK30&;_XVntz#6O+u-zkwD;&p{sJFj+j#WLMR9gL)Wk1aha%OFLLUs5OxoKDB*Dl zb|owKi#<}O?+SdOmdva=5;3nQPUayNkvcl2!;S3qsc%kIH+#K$)RAeT#g~#Kj4(AI z=oby&nD|>qVr)1}f(kb1i*1P9}t>Z;?hADAI%^MTZ{K;m2BzcQYta z?twIyG?jom+wIg1WLq?m@_=g{Z$aIV9A#uas45g}x0D_?s3+bLr5w$Fmv3F8N^Txa zwhWYEBmk*7uU$OKENe^rzI^!tD@Y9>Qm5qBj`w?JA!c%VYH+OPxnATji`w+F?30F^V#a#>nA6UW3da8 zfI&n9OtQA`buk-<3M?S-It@$&>xcB0LrOoNxs-A%j2)bQDck3$58jF}0VVHtcA#j> z#-xmxqp3|cBS*7n(6F*IP|X`2Sg9!QibIcQq`=AMVN|_Lyg$VV3Y$e4-@@ugvv{xY zb*qSsnJiWxqgq`7p!mGv&;Rw;nIq~`#1g+hsZoL8#h#HG6YgEAeQ2z~M;uh7>+nv2 z6~WvnV3rGAc!;={;mi(s3VCoG6OuON7EG????bc6=1xL=(a!#FO$8pCYRt2*`>%j!V0*4%kManePtBwt~YtJW=@QHmN@fj1m zA#8I2NIY9dmVRmeO!pHaA2~2tjJwCv6UjY8c@RGdQR0G2BepMC4JI{S+U+(=bsoZk zGkNWnB|21+pdelo0uTEqp4{XogWlRG1Au1>i>9ubcEC%BPW++qPBh75$z<5v8 z1|c!02|^$_I9Fu%4RS}+4PsG&aDd2iVI_VWfktj*8sb}wof_xY=zuA4o9T{EgSiwt z1a={7h4PGylS28_FTiXa9mg{05?q5>x^4QsO|k|#W5lqC{9cl38b3jmTqeFp(O6~R zUf~;OyYQ~_%Gx$Burm>D18E*aPlEuh^5NDs{uLD4M5>D30GT1-LID-kQ`}_eA5AHM zzx(ax3q3D{p-2^km<9wP8&w%?5=Bk#x}$E2fehB8;@~cO6?J`jF;49+c>K zasPcEc#xDLcjwKdRm(BgQVNeIpB!Y;9&fnjLRLa~r!B|Gf(AO&lul$1y z^YLDNU#(|PYY+$(jXcdmiwSaKeo0Bke8ZdNSiXo84ONJGGcwHRl~q)7Fbz0&>(&vF zTTDo$-2COo%#UIW`yv3el|b9MNW;KXDN ztl9-e%Uz30G-sj<_B2Bkcj6VSgl-j)FcT3dz;RUq0q(pF?I90@o4vwD%5YRl$!PW6uNo;$`dv>-;7pFy|9uSrxbfK?yL7d^Ze?D_{Aapq{n>A`zJgdt-B=`!h7_y3ype>MKP$^X?2{`&FB zdz$OCXIm}=ojY@f=Ir$|=dPbQX`|txIYV>quj6$5e=DZBNK1F=`~~`R3}^qEV0Mj$ z=Hi*NXD-pwp1XMd{5jflH0RD=xOnO88Cq647B+Tp`p|VIX3I3x;P4G|3oDn*fkm^7 zLV8|6K9h&AE=3s}^?@Y|BZ0x3%eyECm7FxPHGWYoS z1q5Z~PsV62pUyvf{oHjLO`4w?E3H4Cj7Nx{&@`MGeDVE=bPPG63A#{E!+N9i>erv% zzp9ScE`fPk_r?$0jz-v)Xw2=(G+(UOZ1w(p%WV~Lb=-IU)&3vWug{oC z-UmAT()50ZikN)r^XG*J|D^=H6O{_)IS~t}d*^Rtb>0jLL758NNUY0*6}l0W*dQTJ z1jHf+>J+WwiGnT{qF2Op7K4qhjun7a6?3(Pwya8jPSdE*&`-QyGN7L|^T1y$w^Gv^ zF%*8GMQ7c8RsT(8l`?q9OFYX8U=nS-+x>0l|IABvCO z2ae3!RtyP4xHIbHnlTCdh)H9q^34`xUb49L8*uy)Z?rIgD+4PYe~kx~!JNaKS5Va5 zLNP}O7K=!_-gpyFHc4R@mOER~D;_VQ9Gl99h&q^0b9^R4Q3oi!Q;C)`hpkQSS#!Un zK<0eDn~j)J%&Kv#xKZ;iYlFuQKx|ubLiMhXw;QrCZP@~+R=om37gUChJxTxMr03zS znba~b7h>?sHt|iWfF%QXFQXV2VQ@7V5DmnO!Dbn7BG4&)&{!z3m|6sYTDTO+AD0y6 zgAV_YuKmF1rkG|Xw#H_mw$ zTmM!ZNh@@jp8w5eTV-4;)A!DsepDmX5t^@)muiljz|&nEx}QETslQw0BppBO(g;eN zp-~FHw|+unHCVG1ZMt2pa@F^+1OF~fHYqp1_RlNapC3mI0la_ZrG>3uc|LwzQR+K? zIe*c8#5jpGsN$&is#XmM~pRH3L zV6GF@;O0v;Gg&{*A=-S{h(iSGe$sF2rZeraoG40J?s`A#C;m;Y-yx>ZDG>_8Ks}lM zZH3QH($L5K?@S9r0F9{BzfAp=f0=oS&osqN{}P0 z_yJ{hQ9mt%5>-+NuhNi6o9;THU z36S+Y{F3xcv`DgRjnCk{=jm;gF=6W(7#Hc0_N*II9aO;vXw4wotVE>l+vr-6?isdn z`|H$?Hdh{v3c0m0>Cpl*1JUt+M`10Z2%<7a8oq827eByDp9G9E+ z+VU$i{q=E9r7sB_M#9^!w+jVFv#p&R`8c}`@ygyk%c-J^I!Z2iC1Bx)!MUW6tAab= zL7zwCd~K>?hI<)l`ph~K*;foJoJ3*(>R+O~5~(*_(?2o@$arkc&|VRdt^PP9G=N?1 z=XxPBkMjsy7+o(X5N~zNVm%-WK?qF0#?iba@nSwzSqz88!orJ69l~>UL8Ep(-~tKn z5;DNuX2PL#suw70Lm3T$9_pHSajtT^VM(iuPR2jaRUawh^Qy|!G3fsK239xz!E(Pt z^t9$>Y`92-g8-*#V?&-=HJ`UHc?xMDRDL#eqh# zqF|1`HV7-lT=?83zLUkzIo{`q*B@&EeHWWc_V5ht*23WSM=kQ}b z?bZFTxCk!``(96j1@;c2V2_l7r%P22U)7OmRhh6gGu<9dh;uGOhe;vl= z{C=wArX|3qLdhLeQ?%64SY4ijIgZ6m<`h^L( z1A99{<-VMOu2^GOzPM6^x{GgO&-~^d(gg>FIDf-?!xqc<+ZUF{KiA=a@mXQsVsZ6B z9Lg|?xK!Elq>a9>KYdyO9t7c4yGz60cl&=)5qaWoPiTe>sXEtQnCKeX z%@wKZ=Lska;nb#2Xk_)p-O!ppmrzzZGE2)#&wJ1O5H!znu)?I=qkl=E6bcC{RdrEp zHFv4Z^b~QxR>a|f?C?iTzn`=%?piP>I&3^IyUz7U2X@^Pn$uI?UuV;-gcbLEXWACme%L;R;u~tD55-W-XKFk98KT=kSTy%(u#N2D2 zPjN-U5RMKy87M1`Xsg9&=qv%fddTj2!6B<~@u^Ejv<|yN7A*S0*J$)S2C;~$cS>ZR zEv$3-E8SLs5$ab9(KIJC_wUsC2j@Djsirz^G~;6QuZ@@0gnnW*dxvvMB-7m!M2+~h zCDF?|r;{4rDzT%^Ym?z{8}!YWgFq0RtfAqn#Am@NP@#V|igv`gZ;=R-83yP>Z)Mx0 z3AP%(ZM7M=7Ng&hnwXUp%{k|)v|I@Jnpl4Try4y`dq=YL|IS^$e(_IUa8$0Fog9~` z2fT`U-^jP{%b^ba2jk4u#iiuI{d+(Q&jDH;+C5S?f8M>Y zShziD=stn*prYEn6mT_bkSV!jL#D0?Yc(;wi3L9;6F+Fc z1_d7Kqg{b%aZEW5x~!P2G(SO?Xz1y&Ot6KQ!9CQsvOmAY6Zs|{cT9+avtsF-kC1#e zw^79vF$u}W*NXc(UrEJc9TRm>a~0pBwr`{*Ud7E`fhMOa)qAmdh~*|NH{eShNxACL zoCzH~*CUL_hI;87V2EHGJpHTjBFJScO+-I1y*4ivX>c=~Yh)-Y9awWCKnO|H)8VS8 z`lt|kogfJ*`YF9O&_%hBv0=-MvF8Ghom{XoY@0Y3_EF~J*g^5{d&3+tiy!A!N3!KynO^W*o=p;TOl(}5MYjAV}*cnA9X zkvoZ3*}MdG+VWWnYd@NLy4N+9P<5)?oV-OD(dN5DhpyK44IWWo^E;2;H@g@a5CgIl zIlEh?pY1!3D&rE=Wz*p5ptM=$aGM!O{Z}y;kHL!~eT^YASzEAx*K1-cQ7V zqj1uegR?vE0k8SQSXc@JutST-PYZnIJh2YvZL>6S>a26{s-DmGg4$!REfu%Kt2c2( zufT8=IpDbds0M@k0V6BwIW z_P`Lw%|M`~dFjl?k&9S^M<9$!cJkRMBRHw0nngCBSKwwZe^c>8TPBPDi5Q!QURO)^ zi~Gv;7v~-(&tA(Tu@9c*I=vJ*>RNE{oue=TiZ!+ zsefRgKR9&%h9c`C8t<{YYJv7hF9qY|2So>Q^3(wgtO(=Y!`^Y5hSmJ;Em>j=7xiXE zXu-#nqRw7*P*s;(J>X+2-%ag?Tq-UJ^-G46Q zHYt2vt_be{>G(&zOxqvVuHiKAY_@fOZD|br|Y)_dam)=7=WgAG@B&t&dAo)^^a?*qB%ZaC+`B$p7M&ekniRBTh zJ9k6qJVGM&^82}07Z`ozw3vk++3n1w+(R(cU3L)d*tnI`Z3M*52Nh*6WRjPR2ae4- z3X>-@#zNSF^K7Lw#2D_C=Pn!?+418`xb?Rpg6cx`wjY1e@IjxPI(`V^QKtmpOXHJ{ zz{J5IrxJyA;$#FSfs;F1cCwEH-gMPO?QU|N}T=c z#KY4EB)78E3bhIb2qL{OuyyP}X^-w)v!+OD+t8PJwv=}|IR?XqZ|!-4AGumbTdmG_ zinA&T8$MB)E#F@zM8gQDi(itI+IzMBSQa%`I;zdc9jD}8h0Ty~4{HV|TK$NH9>puf zymFCj?^##b%0+#tgz!7tRppc@+VmP`P+c$~v&n=2ZN6pEHJsS5*qs7HuMp=zAC*~x z)gKefx9_HRZ=e1j890#Evmo*?IQ1s+^P8$+!@%L6#6M4Hybgy&Y-Sw;;1*U(kI#da ziPNUAj0`^d4Al>g*8w^X^INkq$}NH}%o(Z2g+;H5GLADxd3H`{+HHGu-ABg;34CtG zVOKaiB0bF$s>OOPN9_SaOyj3Ypq1pck6IxH%ZC7=NGDodq)O2-b~H}JbFIesa}6o# zNFQ)3nAeYd6yCZEFZdWF&uBNH#57f95%PW zQik^!4QZKXf|}vjEOEbwIEQVF!Ia5Cr-;v{SW|^|j!A-yGF!8QM=!l@?2*`Ep$ys( zD{FXt5p|&?;30gWw#`N4;7f{4rFL5uf}GuBUYxYl8{n0ZDwHzqK-!yK4bSPj(%(}t zG-~t(%#EcB_niq z=lbYBc(8Sti*mhk5yI((3RAwlKb}!+YFghllC_Ai4;ENB;t!ze)S7-Xj&27&vWmzt z3y>_1Lp@{Vc~9M>e(;M<&i>OG*|hQk!RE9TQeQ1zCBiUk^3JG z#1Y7@xs6!c>035ew_v!{Ty8cI@RQovL=|*U{f%g)gWBaIE9L8m+a8iec+v-cq@Elf zX>;vmwoU9>6^6^S9NCuhDtV^%F!suq*ZE2D+Ie%O?J?VI{;65Y$+scAVbXJG-K^OU zzXm*VqrTa0%og1K@mVzrXNNBZp0jN!0+keYJqIW>e{#lGbksP`C3?j#Q-!qrQDWxe z0`GHa_3m}fAzZ$uWUepnRV+%7_lY&ORXUTlxp&6x#w5bo#1!`}uKL#NVWp&2Sw%tv zEl@z4$&3~bF|3cI$L?aHn4B^wA#k7@K744KG%STXC;DQ%pOsk@xYSRSxX#j3 zZl?NkO5|ZO#P~xqPH1%bSLB|etM12aeJN`f#1G5KnPt_zkeoZ3zglyk$~rB_U0bby zeYa6hZccp(A?T$x^FSVOW4+;7agjdK6?Y2vv*IXeP)?+V=LfN@v4b~*9*|rMkLPE_ z3g_8;uzT;joEq@HQ6y)wWO=RT#s#%+bOBE*?v1WKf5vLI6$iKKU50^B!O@gAC6c?sYx ze^IZTe(9xZIz}wNNOw`^53o=zNy6lh6B^PVVP@PVUhA@L#Z@`EwaR{*gM}<$W09Gd z(x|BJeypagx{NzYwd85e7gL10X=k2y_d1~a8K6yO`lnPQwkB7(sbt!@5;qZTLF#Gy z$`=pN;y3n~;wej<0M~0s_@p+l9)XAA9G-9$I zwc+YuW%gLM;ENngTz%$4m3XQCvNrJUG7o&PvLa5dZS18DE)NQT+CJx44ea_^q_TU+zx zM6}Zqz>+ES&-4@s3>CT*$Gj_Nb49%J`HKj*SfM~)zO;wvJ+nvSS7q3TCTjSEQ~CYh z7RHU!83~q6EbHh#h;-cuQd*%%)j0XmUZwKr-LGWZ1`hXsjaGJKz;D(mDC!DYT9a0^ zmp(T+StI$%mPtbVc2lq0;+V1%lhDg~xB(^y9oYOZ8N<0e&*SiFq`k0iVl_xV$Z0xq7JtEzID)ex-N}R5`8I&+AIqt@6fx7`p?%By=J6viz)h8X$#v4TJgR7U_6OdKkHDYtOfx%) zcP;UmV%iSTd47T&iK4@|0{WtBy@q)=)^DdJ?S+=)wvG9yq_B(|GWfYsw%+%DH^=3KR>xy@BA&G}F+F`zJJRnqK># ze%8EAY_IlS^#hM8WIR_VdU5W$7y%NyT=+{KzNy6LTn6nTnN!pnJ_`Tk4lsY%yh0(2eLMh(R{yMPp7SfQ6-|{$DH{qBHIAIr{-}CU4dnc zn@G8~7BegO#o=JOixB5#!I8EYG3S(TL-2G`?nk$eDfhQREPY^5Mb&0Y4zc4US1)>U z&-=Z!vdzI8swzU-kX4M4vd8Y({1MjG7~ulIPn&j#_Lqg386O@go2+r3RCtW9F>0)V ze%{NQ*^PLGBu?aD&k2wv#PR`-5qJ3R#{vWsGb{N3C9=>pc`Xuj<^5Qx8of0EdMPqm zwM(^2UpPF%+iCK6&$&lvrR45f6lt_^H({aN)=-RfB{h}z{tZLdEO+ZrwQXB8J%vzs!}?g(Sh^-d-jXnvK%muK^h;02Bw4}tFqu=UF& zoy&4#@v?r&A14#R-+wH?UtALKV9CuoRRk`H^$Deot06y28p)=yY2c|DN!1IbvfUs1 z8JyCsu5PS}FfC$S-Ad%eyOQrbDAeIVi7=-o)-4h+L3#UmN6DR(nFyl#=TUG^lP5&x zoKJ18J+#8gf7Ip!k|XCVVgTgYa&efVky{Ui|9< zx;lTnxgV=>4{=YSRC2s&S~BEAxY3!TsuE|gGz;61Ck<&X`e>YkN&jf>5%P%{N- zh0W3QixLXPE&U!T8N;@{CPJPF2B;sJXz*AJy+!7bDCrU0-LiD;#E?ZBp>ihZ%AB>E z{GrSQ6^!))>3s6UBilmFU!qF9@pY+%&4xtZo-3!Q-b4g`GKO$>$^l<}Z3v95W12B% zZCg%=_PGCDT^0t7yriIOCHt`{Y{CY@d81K0P|ViwbJ=uqA?0(a&f6Tg525y($1h@q zXlP4CK6^JSORixk{f{5m?tQMje@a?NL8iuxFtL<_z;u=oo78F#jrFGnROm zo96MkRE>CKGhEG|@8`*tz3LN9o!+DvdVM=K85~Qj8dmy6FtGJhH%T8YOvv{Iam3c; ztg97T@*+}Dcq@v6rh!w*9Is9jr@wVeLG91j47TCq>dr|6Wr;g3UBOt$EreZ`xKX`} zxF)0D)@6VIIL)xgPfWDEAIE#0kyAZoKtT^TP_X zdk5y~eb_2J2!28{PCGF4av4^18pEJUFjj zpr@XbcsNA)pK;LiQ5&epQ|1~z|Hksi}NQmlD87*&uwp4p3r3Q2xZuB ze2%!rG4NrbHM`qwORlav+Fvxeo5vghr%)ToxkKtI+>366y7^^G2~AB&=qjo?I71?E zm{NQgIkz*_JbzPJv@ZNxLW{McdhNDMp~44!?J@=rm@FFYxaxAeS!6d`p<4%9yv(4E zuk6#AtH_Hnwc%(?E9utDRXERX-<_*#t2(~dEC=rXHXFFtYUX+-}rW(P~y9 z{t15xIV@RCMG+_ZwpAjWbHW-Hy$fXu%FKZRmeZUPBk`?rny(vORjAhzI%mA-{IuF{ zIKvVv-?Wk!_+ZX=bBRRBTSoHK9^(WV0jD{tky<8fj%sprY3tc>Uv3Y!k8+{m0gTlH ziy{R@QpK?=uF>1-o>rH=k)RC2>Mf_jS9;viW=lJr-1>vY1&fPW(XOtXu%kq@C-(95 zg!dFqNXfT|v}9w%G3roQdppgVTBw$7;pmo1d3w-MTKDFr4AoX`i%oRc7O*Y9<)|sa z+KWHv!ZnvNUkE$m2>w;s2(!+^BxAkgKM5~)To9?+T3zIO*mF(`ZWOSEFk=Td`>3oE z(BWPYF7#^DnkPo;JKq$Hv(JA7k07HqE^(jc!WN%xtIX!R10kOP)SkXuSE!>UH{qwj zemX699;LKQP+9!Wz@OY;;B2y0GY=tzr>d)bw9DW)p_vj73blEh8e4Wk^UnTYKpf;Z z8u8@aH0IrO@zv$jBjlkQbP?HL%?eaEfYfq-fTGSm7|kFEiYB#H{85x#D5V}iy?;Ib z3Bg4$oq!2OMwTgyTm&7oDqTZP25<{wxQ{Ypa^7H4e6P__*hun{L5Paz) z-R%(Box)QgcEOlpJnMAb2xt$7+6C8o7~%dL<)>S^lx)SG++#tb#T^v$qk(b*nbx1w z9o|D8nfOArUO|iOd#XZPiSiQ z@ju3{ADIs{*aUufQ!LUhSyw|*yjItkj+;n5H1rqH2b}l&AfDL+Xsb%;=6`!bTWHP+ z*#Gtb{syMX48I}aqBYPRtylKg$G!FZOZl&a5GK!t!5howsZq}HV4)K zhW(!s{LzhXfyrx|$7E~PF-FAOBb=Ek1kWJ80IV0zI@fSQ1Nb01S~l9&%3Z{qVJI`K zR&6hqh7SlH)Nsvx?)ZR?qu(v=Fa*$f7=4T-JpN&yfU>Yeta6pRXDiSjK>5r* zD^%yRb;~BzsXUci9%LAp+cpSHVDsx8KJodm=qrYAs4ll)Pt^CnB*l`lDvSA)oR2ZL0KAa+x>neVeRv^ z;q0?6cRP5*exkWK@A|i4y;U9~W1K^s+djo;_*{XB;m$4x!3*@N?P@MUo?M;JHyq@Q zu+n^$YwbC@6R@Z5POUmfuy)qAKvya%KGWmA(;xldl8`bJ!SVZN?420~s~9cR{`oPk zp5Ypt`BRu~0SF;@X*X%UYyM))R@mB=aTM&1cJx{;A4v4MuV3X*n$6QLe{mQ9+u}U+ z;^x7S;jWWd3RN+~Ft+dQi}QUWheT~EeKxat#T zi_0SO;B-%R%S7dZl-{r1qHj;VUZ?ywCc%a63W`xggAH6l2kKJzZu0c${rvG4o-s{# z0F31cb&qUVXcViplKYN2I8`tko#~SIdF4>;eL-u$7K{MA3i^{e$b~_p;i-&DYnAfd zTSM*t-SU?Iyx!f79!9C2uF+|((`{L%FWmq%+%cS)sD7n-^N7CMfL>V^+4#$k(w74c zL5$31q*4me%bDCE5{bQ*xm5m5_rNbCRdu^y!_@Zt?9&`0o$Gcf|IUid!ipJAyx+V? zgT8Fbg#UYd6i7U}pq6KQ+A)tms4L978c5Pw?zWsFrTK$;hU z^z-CX$!e7?Fd^h=^@l4;8V$kDMRk%!J&SWByu9IUjW*VwYaPLL&R{W+kVOo{tq|>o z3%vzFI}o5wiCLaWsW#Qr)5z#Ro+Ett*~r>1Vp7(G?S&nKQ`O*N09g$x;r(uIs$Cp^ zLPK_w)aj@8$4}3bs88NZ_oJobsiA07BVF5L8$t@b| z>cLM3%E}6zPYlgSiDa>ZI1sEHP_>?f+EtX&>fF|BVZF|icu!x;w-Es&5qIVC%P&-n zu58ykVdxXCe!xFS0wSDR^;@N`%Y*Gwhy$Um>spQDdYpEqC`Sj z(wX?@3iL9|!kS^)f_!Jm{7q{02hviP{iu}k)O+)n->!b}3JPu9$P$XX|L=9(Iu=vV z9hPfAzGI!u>;#KPOX$u+446T}qpE|h%N{xPDvd_T+XYr4@N4Gr}3m4T~-g&dsE86+Z z58IoxnQ6sAmK*C=%dtCC5gE3D+l}?HU;nq_81xGZgRk>%Ck- z;RaBZLcd#cW6D(v^=Cf+#=e;<=Wu`3Ir&UPxtAuEl3yM8=e2!>nEef>tz}0U!MWgn|_@}GM(J=)YC}x-in=5#ldyw)Z31(;Q|T> z&YU7twXsW)oLWGq9Nh=lr5P|{wlH%Z!|8;wI&FDcCA^xD6Z$tGe^V5V|9~dTf}DL| znB7*!+l`k^}EZbs2F^uqmB zZ7toBqU}$kvi>Ss3UP~Nlxvx){}T6i4u{`R@o#hc zclv1d-sLx={F^Td1A8SA+=2z3h;+L)ul#75H~FzmzO`X%at8I=tlz-638~bm%biI7 zQ6z)@Svs?yt~uMw|F|wt?V{ChvwmCL-$M4EJ^aSuf8_8Fmj2P{f5*uG=)*ty@Q*(H zqYwYY8vhFM|B09WiI@I~z5ku^{-Y27<@)gYZ}Lf0_T`uP-D4OKE5hcLE_&-3Gh&>B zBR*eCb^?RE>{S;;97>_iYap;60#N1&Tbv{sLl zR$uLg1_#-sg@+qFhBO6WN|8P>?}pJA_lQ{E(6@dkG~%aE@iuKgd6?CDsW+^}CbhLy>q`fGBDt@2L+iI)#$7>`X>`*3LBd<)!0+XY+Nzw)*eP2hrHbR6r#k zoO9Z}VoN|ea{=MLDiB9(yzlB>(9afGGUiy{I=8|vIu4Q(S8EOwm~vUa)jy+6@oy{Z z(MP?#8J>D6!?Mehu@3yr@)^6?yMCLn1cGw!lGsJnn}Gs?k>e$bTs%5YQTC4SSUeHmgH+fqGl#eyLp))da`?i2qZu z*SEs+2jnt-sBx_|pQ1A0O>0`UNWwPlw!fL3It?gt>5|F^HnE#3GHu-El0oJ~c(&(n zaA+-kGJB-2ceGX1>=GXgs0_!s2t=aB#mSCy$g)9x)KKqrekZz(Elar;d??##j|hUl zsfLsv=9ZR#Yr_rinhR z%Gv@C^0fd!R&08Bti>Jd6xp+{U<|o@qxQE#7u?cZzlTga1NvfDkXGc&YEVY3br zNfC4I>F|1)F*sN-w@01k_4;V8W~=)JI$KB45ashC*O1nTv#BVE0M>uF~PLSk*)eYlRd!7u5OGUeyI zNf_nIZ^lD5bE&DwNU=zx!*^C5l{w)pYy`;du5$8ItO8dP8}`!iN6_gbVe8q_&{$H? zK8v^e;ZJB9KXORVBxJ`%V8>-lpo|yLK0mh^DJk5;Kv_kI4CA%f0@p=O3oOklV9TJmp>LhA{gct<67A_tO_ETmZRiMDYb9Q)$(-7etG|fO>8D%;A}V10%NbguZ|J#% zDqe0sVRM}Y1eH1ISiV(dYL&RSu+TS@BesySf`Re8#Z+h~+`F==bNLHZpLx6xsfa)i zyZHi(K9ysNR0Lmw`*PcXDP;caiV1O*CpzBMKYx+VxBR)@Ys`)m^t89nE#-`Pk`gk3 zZ?eG==Vd;IU-XNNnGuzS$+;ZXY-kRoB~6PyUa5g@YP;I!<9$VwX|junQJrM zt2IY`ss(X#r!8D+(C=<5#0B~8p{x!OhQgWE*H)SZ{t;Ta7z5!~`{Z&~h2;gVdvuxsf zS_~0FmQP6#tzmVE&q%4MCv6Ji`r*CMf^i@TgLgMW0r+l4rkwV3`l!$HY<8e=WK7iTjqTE^~ybY&lzZ*x0;G7#7MiW=Pgx4Wpg zn&{Or`?9I0K&I!NK6GMDw+#-9E*J^S!f#Zv7<#8P-ZF4C^~&iUn89Xc;ke!uIx{Xb z&P}D8H5;H{d87GVF*TW;B6c>B$s9_V7;wYExj4Y&&a&O5T9hLp{R0M4Whz=qmGO>r=tGzoqj z2&+c{$`rvExa^P1oNz1QJao(E`07|d5i&PHd4+5(phbjvODteP&{S&kj)OqE{;VD1 zw3SLH;^zjRKlD1`U@L3m>@@5dS%@EK%>o(h=u-wW%R)+D16s2D`WcBnPijhEgVO0` zULvCeeIzyqOtxvCbF#&5nDDpXS!912RnbZ7wz8LBHd-lHr$gr*z3UjGQWbP}aGtkmd%Xs{W-wV9{HLp_p+G~^1MwF>p115riurX)kp5Hn!7DkM zPF5X~DX8-8w|wTXH3XwF$%(6w#r#0U3%a?t0^nZvy|BI!UyLuY{rD7hB$w^)oZf^q zj^SWpyQr&h$g=miy4=?DmirbsZOL}hrUOqT$v)14fqSf7gvU%V^4=vNQa;T1+f@LE z7}*yz&I>LZ;FA!B4wNe3`Fa>`G_@Mi^+wJd%+L*yNU{W% zmYhqyGcZs4@ea%Ev-t;U@$-!H+~^slp(UdrO}EF=Ptg z@ua8cvDRsFF5ocP)xe%tTW_FBD{C$1+RDOXpIgSfu9XBP00d2YqKxe7OV zlC+gctz7rG*!?j_II61CapG0KrRRn8l8a+oxlyhDY@y1`J1D(vW;p-StQb^wZesF# zm1Ezesj?`U9()4a_VaF;V+tM>+7@W)Z5!ea$X#M zU0ukJ%98*Rz2E%`S1v*-3=Qxj3s9#bMKcv9`bR_uDwGF|N>m1~YE<-V{ph=z^4_VEd6NH1kLUoP z+hExJ@7(tF7o(pBHZw<@B!g^=;ou6&z{eqCd9b$$w_SpDJR_obpp)VYP?~J95jvP_ z+D*aI-yq_QoYa+cfXEw%@9t08>Fgzv+D3<>B2fXW{drK&E(?+VE)c4q#vdGc{6>a+ zIEp`FH&3vJiE6DtW|#F7u8Yy_{FF`0GWxb-Vub#nc)9y?eQnsEA7}RR^95pzm8I`7 zHYY-XV8xTk@7C%;zrp`O)W^f!-8{E8dXxou?dPI;^(W=83CcvDOMes6^7FkW z#mT3JTC=`OfH}b!RNn5{Dp~cD25uEB|y*^|`dp*UjD0>LS=lv&9IqcwiveMQ^@%UXy z;eln5PUg>o!}q-`RUImt%DRxOc1DxNf#Mm}V2M`(rPkvkySLX8{XG5S2Ncg{ys%-J z$$2xHUR_Zj|J>L#by@KGGZ(h(-?Et(zp>&PBp2naDh3{!F+$E2gR#M=x<+&XtaqK= zxm>Uz-+1M*NCk2Bn8!HOyriRXu*87F1&x4_CHOI_Htr3afjFab@f9j2DvBY*fbO); z`=;0Wd>$xNcA{k~O>=OGqPBBnUOg8tc-ok~i4LTleBNOA1nU|8B*4en$)!o*?aKG9 z4WgW0jd20kT*0k3tcVs|x zH_2{C=eI~%ayAedC^M%7o3HTA0nyFb@fX?1uBkor!kza?OxfQ3Vqg$1mVRpbp{gN% zNO(8zOaK6>GK5sE}k9t+fVakzQJ&*q1dVJ(W}Q_*?-OpW>X==f3=*{bTpwoPX>ri^=b11yf#y z_ofF2tnY~-aZAuyUIaZU(;y_`&CrZTO`5wo>eI>!z6olVpmHN{L!cSQ-Z@s~yhN6u zZSNmE^Z`f;;j15uH~=1xj32UYSvakD_8|>I)A`XeQS^b%uTY`YB7NvFy@+FWtHJpH z!QNX(wf!}Fqf}|J7T40^7M$SF7Plb5gBG{oE)|M9f#8H90RjXM!COj^1b3&!owjJ9 z_HyoB=Xv_vb$<6n<$wGUQbIWU=>LamnQQHtq z8|?Md6IVm?vS{rDn>wewHQf?zGCjXdHCi>uh`$uGoBIYnZ^3pGkSJXSiikLW!1f^d zFZ6(}GsLb_rx<)sCUQ?Wky72L(?`CIPTbbH+WXOf$SDVbq za~ar0qIOGidt8U^C1>o->|ND+X;#JxaH3>qyn9Uxp&lM$^#c&}2zzScLv2&LgcO)* z$K4J|+#XvWfxrA8UiF`0$|pYbnBlIiP+lhA8mU%7jO1I2GUB)ANAXDn`(b~CGo}CV zMgH*MUnu|Id_^i@e#`o}lbTFw*!|Ukw%`ZU`_Dgr6s^6KdH9EI z_|x-e>V^8$27M%oX4;Z?a#lvWYOoUU>zAI_yT9ZpnXP!stnBAV#U!8HHzE4*UwJ*R zGPhrFH-94Q`wOo+S~%BypE=-tVV~5{s2r;28(h-jDtSNM+>_Auuh#YMtf6ZEdonA! zYk8a7%#*7>H1Y&~6MV!ANZzRX!%z8_u-3CdhZz~d{4eER!#=+ET)duhXw$y$!D27d;M|F&R%uPcAAD}S%{fA7Km zx88%@3Rn`0UCGHwsp}bQlNxkGl1`bcH_7`zf`~GC=99=a>tfFPIQ_x-Y^mn!A|E!} zWW<}`#kU;*kbL>u^oe_awHfU>6SQSC>9ce5*mc_j2JyqEh~FMf!P3*+Ik6~yQy$|4 zOtGw!jx21z(v*$;cs$`q9h`owP?CXdQyvZQ4-l_++4pOAcQP#8Th9rq07p8rX}hGa z03WMPYXZg+C5P@JGXfQyOAw|GFv&6Vx3m0E>ggq0ZSdtS^AIn};Pnqgxs^P!xS}hM z6U|s!pt@iHo~-(a#Z{|b0Et9Yi5sH zBEFKNqG@zKRxBg{_~9A)T-0)07(9*JHL)PPK)`rN3}U zhB!yt^bnT_6=;eT&WC@gR2vB~@Y0_~r^7C{SYALvD))%@aA?6jVGB! zy`3U?g+x_MQb^+5Dvv)==eD8}v;HwY{AuZ;-CY_4sDZdSw6wwP>9GJfKSs0dxWfY? z+_Rc8tG+IuDg&RLlBNHueuktOM_bW1UygBO~Ummim{nMHI(@85N%|Bpv z8qMkKsjgIs7+a6vu|=ti!CfsZ%qLF4rk5yt#G&NQfgMZ@T;J5xZwf{NNiZg621(W9 z_aoK7^KwLjMQ`opapN*qTA5#=SW`YLIHzg=LXhQ2i699RiioJ2sfF2ej+D>!xh zIp-hwwD81|rE2b!s#ET46P?`A3G|DB)!`HrlQ?C%*Ng2$(7 zAkI~53}0blTM;b!lRC0r5=~1poD0dWT1Xw{(D9gbIg%5#In+?FQlU|MTMS^RLCQQ< z)fl^#3vQVPiKw6pD18mgBJK{xy0Qa`Wn*bntK1kV){@+s*Nv@eBxs$bF{Vdi{u=ay z!L2c12}sG#$34yKYDxF^c=E#dyX-3V@JX1fVtK9_wonkea|`45V?ZH2-3hJ-^O0s; z9Qzls2zvCd)cGWcgr7(oeS1esjgK~lXrgyosHsfcK`P|JJ_AiOG31khKrXg0qWJU@ zA?NT)eWXT0BbsN;Kl>;7vt9POc@7MQ!PlY8D6h8W&J2QX+xCEszNAvy)M-|ej}Fnn;> ztWO*$k2^HlM9IMVVP=dml>8Y2L9XB?tpadbx}t5oDeA|`#%|ePgdJF~?5IT z=YQYTkYE$ThD!F-$`Gz%Mpx5v9l)>1!Ny(v<{DXd7jRBG&k&uab|a?ajzLtI<>R03 zbJ4#}O#TfU)WqZI?zyj5J$Iu(j^_Q8k&~uPCyD`9a$su7yKYs5*s?=P?b)7mm{IA zv$o;G?yzYVwrI&jb<2gIwnAbsd?aY)CRK-svXaK1wj;WJPJ3GTJUI9=W4K|4`il{~ zkR5Ihi+t>)nTr27yEp(|-lZ-@Izx`eSDo#1mXVN*Q|k5E`gxsuXEV~&byd#DgH54yvw#&Se>4?gEO8hTAh{FSY3*|neo-`mHdx8^sm=e z>7ph+mM+3;OFzEGaQSJaE=`S?M7)noRexhAPszdNA(%nFXDeht9cv_`WQ{9!g@`rK z8@}scScFR!gJ?Fj0eCaN^`FI-y!Id;+ii7bZ-0~TC#H2HWpE?exhU;5CjU^y!CH*4 zhfIN_QZZg?JR+(J)cunJc(>oE86)y%;7SD2CO;!Ofuh@&zr=*($}YlfjkKV=Mw!{J zdjoOQPzR(dBmSiB#C5bxA!MNC5H+BZ&nSHcob&i;)%ddRnrMap_q#fcoqI(LX(5U);+xdTD8DnlsF)-4!D(} zU>sZ2%c)VUd`diUIFBVj5A%-pAVa-52?czY4<|$YM_GM%lFAfv<86y3d`&uKr&@^X zhAxSwzdF3Lo=at}N%p`y?T=CO9$NbDD$?gLEj@UjmtB+5#={ZI=U*2*>}=WG`yl_0 zuSvF|X!lcf|MS1FEX;D<^MDBuKQwN6aRH|QF}gawd9Q#@IJUI&;2Y9FHnGkpOuB%= zw9_*hAeT8{v)(Eexv8K-j#E+pndWop0xA!zBU!&{&Ys#%56@k3v2RAn4LwGiI=d z2hTlNPnLD#rSI9{xZ;@BUWHxRkL+ND{A=ft;ROW^pW33TOs30!VlrYEBGAHj1#t^h zm4?h~dfgB2c<_Rlg@;j}RnuEr=fuZc`NwtM)QkiDFXJwvh%JOVfJI|Uy)W)th-uHB zON6ixYmx-z7a~7O@MttG{>Yn5)O4KTfMh&zHX-SsWBze~o*?H=H#KvvafU?6QF_DH z{JSJDSh?Yuyq(6gAA{B}3{50ieB;o#RK4pc|q&moHB@Nov!ULe81C_+$PFI>JblX!_a%$M`0uEI0F

`7w?bnN;>gQxb@ZF4!;g{k~!}JbU$cyMI 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 z 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 diff --git a/archiva-security-fix/archiva-docs/src/site/resources/images/tour/project.png b/archiva-security-fix/archiva-docs/src/site/resources/images/tour/project.png deleted file mode 100644 index 54bf4ef0207d520f588ca4664b8c652a50d8666b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71573 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�AtBn%4`{{9rM0v+TgwH7{%~PEpY9 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 diff --git a/archiva-security-fix/archiva-docs/src/site/resources/images/tour/rss.png b/archiva-security-fix/archiva-docs/src/site/resources/images/tour/rss.png deleted file mode 100644 index 62efd7e9a0b14b1cded5aca023309f0524ea76f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34613 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®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 FUjWC7v-AJ} diff --git a/archiva-security-fix/archiva-docs/src/site/resources/images/tour/upload.png b/archiva-security-fix/archiva-docs/src/site/resources/images/tour/upload.png deleted file mode 100644 index 8f3a1ea793a1dcb490b8f43ba2f2e3a3c6180d09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38969 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 diff --git a/archiva-security-fix/archiva-docs/src/site/resources/images/tour/virtual-repos.png b/archiva-security-fix/archiva-docs/src/site/resources/images/tour/virtual-repos.png deleted file mode 100644 index 12b02eb994b66cfa4300e227810594ef61ac99f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46088 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 - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/admin.xml b/archiva-security-fix/archiva-docs/src/site/xdoc/tour/admin.xml deleted file mode 100644 index bcea540f4..000000000 --- a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/admin.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Graphical Administration - Brett Porter - - - - -
- -
- - diff --git a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/index.xml b/archiva-security-fix/archiva-docs/src/site/xdoc/tour/index.xml deleted file mode 100644 index 66a19f102..000000000 --- a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/index.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - Feature Tour - Brett Porter - - - - - -
- -

- Archiva is a feature rich repository manager. Below is a short tour of some of the features that are available. -

- - - - - - - - - - - - - - - - - - -
- -
- 1. Project Information -
-
- -
- 2. Artifact Search -
-
- -
- 3. Remote Proxying Cache -
-
- -
- 4. Artifact Upload -
-
- -
- 5. Graphical Administration -
-
- -
- 6. Virtual Repositories -
-
- -
- 7. RSS Feeds -
-
- -
- 8. Role-based Security -
-
- -
- 9. Integrity Reports -
-
- -
- 10. Maintenance -
-
-
- -
diff --git a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/maintenance.xml b/archiva-security-fix/archiva-docs/src/site/xdoc/tour/maintenance.xml deleted file mode 100644 index a45603889..000000000 --- a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/maintenance.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - Maintenance - Maria Odea Ching - - - - -
-
- -

- Archiva has utilities called consumers that can be used for maintaining the - Archiva repositories. These can be configured or activated in the Repository - Scanning section of the webapp. The configuration are stored in Archiva's - xml configuration files, meaning you can also hand-edit these config files to - enable or disable these consumers. -

-

- Previous: Integrity Reports | - Maintenance | - Next: Feature Tour -

-
-
- -
diff --git a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/project.xml b/archiva-security-fix/archiva-docs/src/site/xdoc/tour/project.xml deleted file mode 100644 index 00300b489..000000000 --- a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/project.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Project Information - Brett Porter - - - - -
-
- -

- Archiva provides an informative display for projects and artifacts stored in the repository. - This includes a user-friendly display of the Maven project information, as well as the relationships - between projects. -

-

- Previous: Feature Tour | - Project Information | - Next: Artifact Search -

-
-
- -
diff --git a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/proxy.xml b/archiva-security-fix/archiva-docs/src/site/xdoc/tour/proxy.xml deleted file mode 100644 index e67b7742d..000000000 --- a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/proxy.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Remote Proxying Cache - Brett Porter - - - - -
-
- -

- Archiva can operate as a proxy for remote repositories, allowing you to improve build - performance by caching artifacts in a closer network location, and control artifact - usage through the use of white and black lists on proxy connectors. -

-

- Previous: Artifact Search | - Remote Proxying Cache | - Next: Artifact Upload -

-
-
- -
diff --git a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/reports.xml b/archiva-security-fix/archiva-docs/src/site/xdoc/tour/reports.xml deleted file mode 100644 index d48a0cddf..000000000 --- a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/reports.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Integrity Reports - Brett Porter - - - - -
-
- -

- Archiva monitors the state of the managed repositories and keeps track of - potential problems to allow improvement of metadata and to assist in - troubleshooting problems. -

-

- Previous: Role-based Security | - Integrity Reports | - Next: Maintenance -

-
-
- -
diff --git a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/rss.xml b/archiva-security-fix/archiva-docs/src/site/xdoc/tour/rss.xml deleted file mode 100644 index 7421c7621..000000000 --- a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/rss.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - RSS Feeds - Maria Odea Ching - - - - -
-
- -

- Archiva provides RSS feeds for new artifacts in the repositories and new versions - of a specific artifact. -

-

- Previous: Virtual Repositories | - RSS Feeds | - Next: Role-based Security -

-
-
- -
diff --git a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/search.xml b/archiva-security-fix/archiva-docs/src/site/xdoc/tour/search.xml deleted file mode 100644 index e144873e9..000000000 --- a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/search.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Artifact Search - Brett Porter - - - - -
-
- -

- Archiva has both a user-friendly browsing interface, and powerful search functionalities. The contents of all artifacts are indexed, - including Maven project information and Java class information to facilitate locating code within any repository. - By using the "Find Artifact" feature, you can identify unknown artifacts based on the database of known checksums for known artifacts. -

-

- Previous: Project Information | - Artifact Search | - Next: Remote Proxying Cache -

-
-
- -
diff --git a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/security.xml b/archiva-security-fix/archiva-docs/src/site/xdoc/tour/security.xml deleted file mode 100644 index f489318bd..000000000 --- a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/security.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Role-based Security - Brett Porter - - - - -
-
- -

- Archiva uses the Redback security framework to provide flexible role-based security controls for repositories. - You can use the graphical interface to maintain user accounts, as well as secure repositories for read and/or write - access for individuals, or given roles. -

-

- Previous: RSS Feeds | - Role-based Security | - Next: Integrity Reports -

-
-
- -
diff --git a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/upload.xml b/archiva-security-fix/archiva-docs/src/site/xdoc/tour/upload.xml deleted file mode 100644 index 1365dbf38..000000000 --- a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/upload.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Artifact Upload - Maria Odea Ching - - - - -
-
- -

- Archiva now supports artifact uploads via UI. A pom file can also be included - in the upload or Archiva can generate one during the upload. -

-

- Previous: Remote Proxying Cache | - Artifact Upload | - Next: Graphical Administration -

-
-
- -
diff --git a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/virtual-repos.xml b/archiva-security-fix/archiva-docs/src/site/xdoc/tour/virtual-repos.xml deleted file mode 100644 index a3284f5cb..000000000 --- a/archiva-security-fix/archiva-docs/src/site/xdoc/tour/virtual-repos.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Virtual Repositories - Maria Odea Ching - - - - -
-
- -

- Archiva implements the concept of virtual repositories, wherein a set of - Archiva repositories can be grouped together under one URL and that one URL - can be used by clients (s.a. Maven) to download from these repositories. -

-

- Previous: Graphical Administration | - Virtual Repositories | - Next: RSS Feeds -

-
-
- -
diff --git a/archiva-security-fix/archiva-jetty/pom.xml b/archiva-security-fix/archiva-jetty/pom.xml deleted file mode 100644 index 5c88febb9..000000000 --- a/archiva-security-fix/archiva-jetty/pom.xml +++ /dev/null @@ -1,293 +0,0 @@ - - 4.0.0 - - org.apache.archiva - archiva - 1.2-SNAPSHOT - - archiva-jetty - pom - - Apache Archiva - - - org.mortbay.jetty - jetty - - - org.mortbay.jetty - start - ${jetty.version} - - - org.apache.archiva - archiva-webapp - war - - - org.apache.archiva - archiva-docs - zip - docs - - - - org.mortbay.jetty - jetty-naming - ${jetty.version} - runtime - - - org.mortbay.jetty - servlet-api-2.5 - ${jetty.version} - runtime - - - org.mortbay.jetty - jsp-api-2.0 - ${jetty.version} - runtime - - - org.mortbay.jetty - jetty-plus - ${jetty.version} - runtime - - - org.apache.derby - derby - 10.1.3.1 - runtime - - - javax.mail - mail - 1.4 - runtime - - - ant - ant - 1.6.5 - runtime - - - commons-el - commons-el - 1.0 - runtime - - - commons-logging - commons-logging - - - - - tomcat - jasper-compiler - 5.5.15 - runtime - - - javax.servlet - jsp-api - - - - - tomcat - jasper-runtime - 5.5.15 - runtime - - - javax.servlet - servlet-api - - - - - org.slf4j - jcl104-over-slf4j - runtime - - - org.slf4j - slf4j-simple - runtime - - - tomcat - jasper-compiler-jdt - 5.5.15 - runtime - - - org.eclipse.jdt - core - - - - - commons-dbcp - commons-dbcp - 1.2.1 - - - - - - org.codehaus.mojo - appassembler-maven-plugin - 1.0-beta-2 - - - - archiva - org.mortbay.start.Main - - conf/jetty.xml - conf/jetty-logging.xml - - - jsw - - - - jsw - - - wrapper.console.loglevel - INFO - - - wrapper.java.additional.1.stripquotes - TRUE - - - set.default.REPO_DIR - lib - - - wrapper.logfile - %ARCHIVA_BASE%/logs/wrapper.log - - - wrapper.app.parameter.2 - %ARCHIVA_BASE%/conf/jetty.xml - - - wrapper.app.parameter.3 - %ARCHIVA_BASE%/conf/jetty-logging.xml - - - app.base.envvar - ARCHIVA_BASE - - - wrapper.on_exit.default - RESTART - - - wrapper.on_exit.0 - SHUTDOWN - - - wrapper.restart.delay - 30 - - - - linux-x86-32 - linux-x86-64 - macosx-x86-universal-32 - solaris-x86-32 - solaris-sparc-32 - solaris-sparc-64 - windows-x86-32 - - - - - - appserver.home=. - appserver.base=%ARCHIVA_BASE% - - jetty.logs=%ARCHIVA_BASE%/logs - - - - - lib - flat - target/generated-resources/appassembler/jsw/archiva - - - - - generate-daemons - create-repository - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 2.1 - - - package - - single - - - - - src/main/assembly/bin.xml - apache-archiva-${version} - - - - maven-antrun-plugin - 1.1 - - - config - process-resources - - - - - - - - - - run - - - - - - maven-remote-resources-plugin - - - notice-supplements.xml - - - - - - - - codehaus.snapshots - http://snapshots.repository.codehaus.org/ - - - diff --git a/archiva-security-fix/archiva-jetty/src/main/appended-resources/notice-supplements.xml b/archiva-security-fix/archiva-jetty/src/main/appended-resources/notice-supplements.xml deleted file mode 100644 index 61d380fb7..000000000 --- a/archiva-security-fix/archiva-jetty/src/main/appended-resources/notice-supplements.xml +++ /dev/null @@ -1,141 +0,0 @@ - - - - ant - ant - Ant - http://ant.apache.org/ - - The Apache Software Foundation - http://www.apache.org/ - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - - - - - geronimo-spec - geronimo-spec-jta - Geronimo :: Java Transaction API Specification - http://geronimo.apache.org/ - - The Apache Software Foundation - http://www.apache.org/ - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - - - - - javax.activation - activation - JavaBeans Activation Framework (JAF) - - Sun Microsystems - http://www.sun.com/ - - - - Common Development and Distribution License (CDDL) v1.0 - https://glassfish.dev.java.net/public/CDDLv1.0.html - - - - - - - javax.mail - mail - JavaMail API - - Sun Microsystems - http://www.sun.com/ - - - - Common Development and Distribution License (CDDL) v1.0 - https://glassfish.dev.java.net/public/CDDLv1.0.html - - - - - - - xerces - xercesImpl - Xerces - http://xerces.apache.org/ - - The Apache Software Foundation - http://www.apache.org/ - - - - The Apache Software License, Version 1.1 - http://www.apache.org/licenses/LICENSE - - - - - - - tomcat - jasper-compiler - Tomcat Jasper Compiler - - The Apache Software Foundation - http://www.apache.org/ - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - - - - - tomcat - jasper-compiler-jdt - Tomcat Jasper Compiler JDT - - The Apache Software Foundation - http://www.apache.org/ - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - - - - - tomcat - jasper-runtime - Tomcat Jasper Runtime - - The Apache Software Foundation - http://www.apache.org/ - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-jetty/src/main/assembly/bin.xml b/archiva-security-fix/archiva-jetty/src/main/assembly/bin.xml deleted file mode 100644 index 0e3206dfa..000000000 --- a/archiva-security-fix/archiva-jetty/src/main/assembly/bin.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - bin - - tar.gz - zip - - - - target/generated-resources/appassembler/jsw/archiva/apps - apps - - - target/generated-resources/appassembler/jsw/archiva/conf - conf - - - target/generated-resources/appassembler/jsw/archiva/lib - lib - - - archiva-* - maven-metadata-appassembler.xml - - 0755 - - - target/generated-resources/appassembler/jsw/archiva/logs - logs - - - target/generated-resources/appassembler/jsw/archiva/bin - bin - - archiva - - 0755 - unix - - - target/generated-resources/appassembler/jsw/archiva/bin - bin - - wrapper-linux-x86-32 - wrapper-linux-x86-64 - wrapper-macosx-universal-32 - wrapper-solaris-x86-32 - wrapper-solaris-sparc-32 - wrapper-solaris-sparc-64 - - 0755 - - - target/generated-resources/appassembler/jsw/archiva/bin - bin - - archiva.bat - - 0755 - dos - - - target/generated-resources/appassembler/jsw/archiva/bin - bin - - wrapper-windows-x86-32.exe - - 0755 - - - target/maven-shared-archive-resources/META-INF/ - / - - NOTICE - - - - src/main/resources/ - / - - LICENSE - - - - - - true - apps/archiva - - org.apache.archiva:archiva-webapp - - - - true - - org.apache.archiva:archiva-docs:zip:docs - - - - - diff --git a/archiva-security-fix/archiva-jetty/src/main/conf/archiva.xml b/archiva-security-fix/archiva-jetty/src/main/conf/archiva.xml deleted file mode 100644 index 9afb83352..000000000 --- a/archiva-security-fix/archiva-jetty/src/main/conf/archiva.xml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/archiva-security-fix/archiva-jetty/src/main/conf/jetty-logging.xml b/archiva-security-fix/archiva-jetty/src/main/conf/jetty-logging.xml deleted file mode 100644 index 3eedcd6bd..000000000 --- a/archiva-security-fix/archiva-jetty/src/main/conf/jetty-logging.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - /yyyy_mm_dd.stderrout.log - false - 90 - GMT - - - - - - Redirecting stderr/stdout to - - - - - - - diff --git a/archiva-security-fix/archiva-jetty/src/main/conf/jetty.xml b/archiva-security-fix/archiva-jetty/src/main/conf/jetty.xml deleted file mode 100644 index 53a600fd8..000000000 --- a/archiva-security-fix/archiva-jetty/src/main/conf/jetty.xml +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - 10 - 250 - 25 - - - - - - - - - - - - - - - - - - 30000 - 2 - false - 8443 - 5000 - 5000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /contexts - 1 - - - - - - - - - - - - - - - - - - - - - - /apps - false - true - false - - - - - - - - - - - - - - - /yyyy_mm_dd.request.log - yyyy_MM_dd - 90 - true - true - false - GMT - - - - - - - - true - true - true - 1000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - org.mortbay.jetty.webapp.WebInfConfiguration - org.mortbay.jetty.plus.webapp.EnvConfiguration - org.mortbay.jetty.plus.webapp.Configuration - org.mortbay.jetty.webapp.JettyWebXmlConfiguration - org.mortbay.jetty.webapp.TagLibConfiguration - - - - - - - - ./apps - org/mortbay/jetty/webapp/webdefault.xml - - True - False - - - - - - mail/Session - - - - - - - localhost - - - - - - - - - jdbc/archiva - - - org.apache.derby.jdbc.EmbeddedDataSource - jdbc:derby:/data/databases/archiva - sa - - create - true - - - - - - - jdbc/archivaShutdown - - - org.apache.derby.jdbc.EmbeddedDataSource - jdbc:derby:/data/databases/archiva - sa - - shutdown - true - - - - - - - - - jdbc/users - - - /data/databases/users - sa - create - - - - - - jdbc/usersShutdown - - - /data/databases/users - sa - shutdown - - - - diff --git a/archiva-security-fix/archiva-jetty/src/main/conf/shared.xml b/archiva-security-fix/archiva-jetty/src/main/conf/shared.xml deleted file mode 100644 index 9afb83352..000000000 --- a/archiva-security-fix/archiva-jetty/src/main/conf/shared.xml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/archiva-security-fix/archiva-jetty/src/main/resources/LICENSE b/archiva-security-fix/archiva-jetty/src/main/resources/LICENSE deleted file mode 100644 index 774a48b13..000000000 --- a/archiva-security-fix/archiva-jetty/src/main/resources/LICENSE +++ /dev/null @@ -1,261 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. - - - -For the Java Service Wrapper (v3.2.3): - -Copyright (c) 1999, 2006 Tanuki Software, Inc. - -Permission is hereby granted, free of charge, to any person -obtaining a copy of the Java Service Wrapper and associated -documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sub-license, -and/or sell copies of the Software, and to permit persons to -whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - - -Portions of the Software have been derived from source code -developed by Silver Egg Technology under the following license: - -BEGIN Silver Egg Techology License ----------------------------------- - - Copyright (c) 2001 Silver Egg Technology - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sub-license, and/or - sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - -END Silver Egg Techology License ------------------------------------- - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/pom.xml deleted file mode 100644 index f23ee3a20..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - 4.0.0 - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - archiva-artifact-converter - Archiva Artifact Converter - Converts between Legacy and Modern Layout Artifacts. - - - org.apache.maven - maven-repository-metadata - - - org.codehaus.plexus - plexus-spring - test - - - commons-io - commons-io - - - org.apache.maven - maven-artifact-manager - - - org.apache.archiva - archiva-transaction - - - org.apache.maven.shared - maven-model-converter - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - - descriptor - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConversionException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConversionException.java deleted file mode 100644 index b2d52338a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConversionException.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.apache.maven.archiva.converter.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * ArtifactConversionException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArtifactConversionException - extends Exception -{ - - public ArtifactConversionException() - { - } - - public ArtifactConversionException( String message ) - { - super( message ); - } - - public ArtifactConversionException( Throwable cause ) - { - super( cause ); - } - - public ArtifactConversionException( String message, Throwable cause ) - { - super( message, cause ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConverter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConverter.java deleted file mode 100644 index d01211b97..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConverter.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.apache.maven.archiva.converter.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.repository.ArtifactRepository; - -import java.util.Map; - -/** - * ArtifactConverter - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ArtifactConverter -{ - public static final String ROLE = ArtifactConverter.class.getName(); - - /** - * Convert an provided artifact, and place it into the destination repository. - * - * @param artifact the artifact to convert. - * @param destinationRepository the respository to send the artifact to. - * @throws ArtifactConversionException - */ - void convert( Artifact artifact, ArtifactRepository destinationRepository ) - throws ArtifactConversionException; - - /** - * Get the map of accumulated warnings for the conversion. - * - * @return the {@link Map}<{@link Artifact}, {@link String}> warning messages. - */ - Map getWarnings(); - - /** - * Clear the list of warning messages. - */ - void clearWarnings(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java deleted file mode 100644 index 876e91edb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java +++ /dev/null @@ -1,690 +0,0 @@ -package org.apache.maven.archiva.converter.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.maven.archiva.transaction.FileTransaction; -import org.apache.maven.archiva.transaction.TransactionException; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata; -import org.apache.maven.artifact.repository.metadata.Metadata; -import org.apache.maven.artifact.repository.metadata.RepositoryMetadata; -import org.apache.maven.artifact.repository.metadata.Snapshot; -import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata; -import org.apache.maven.artifact.repository.metadata.Versioning; -import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader; -import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer; -import org.apache.maven.model.DistributionManagement; -import org.apache.maven.model.Model; -import org.apache.maven.model.Relocation; -import org.apache.maven.model.converter.ModelConverter; -import org.apache.maven.model.converter.PomTranslationException; -import org.apache.maven.model.io.xpp3.MavenXpp3Writer; -import org.codehaus.plexus.digest.Digester; -import org.codehaus.plexus.digest.DigesterException; -import org.codehaus.plexus.util.xml.pull.XmlPullParserException; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.io.StringReader; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.regex.Matcher; - -/** - * LegacyToDefaultConverter - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.converter.artifact.ArtifactConverter" - * role-hint="legacy-to-default" - */ -public class LegacyToDefaultConverter - implements ArtifactConverter -{ - /** - * {@link List}<{@link Digester}> - * - * @plexus.requirement role="org.codehaus.plexus.digest.Digester" - */ - private List digesters; - - /** - * @plexus.requirement - */ - private ModelConverter translator; - - /** - * @plexus.requirement - */ - private ArtifactFactory artifactFactory; - - /** - * @plexus.requirement - */ - private ArtifactHandlerManager artifactHandlerManager; - - /** - * @plexus.configuration default-value="false" - */ - private boolean force; - - /** - * @plexus.configuration default-value="false" - */ - private boolean dryrun; - - private Map warnings = new HashMap(); - - public void convert( Artifact artifact, ArtifactRepository targetRepository ) - throws ArtifactConversionException - { - if ( artifact.getRepository().getUrl().equals( targetRepository.getUrl() ) ) - { - throw new ArtifactConversionException( Messages.getString( "exception.repositories.match" ) ); //$NON-NLS-1$ - } - - if ( !validateMetadata( artifact ) ) - { - addWarning( artifact, Messages.getString( "unable.to.validate.metadata" ) ); //$NON-NLS-1$ - return; - } - - FileTransaction transaction = new FileTransaction(); - - if ( !copyPom( artifact, targetRepository, transaction ) ) - { - addWarning( artifact, Messages.getString( "unable.to.copy.pom" ) ); //$NON-NLS-1$ - return; - } - - if ( !copyArtifact( artifact, targetRepository, transaction ) ) - { - addWarning( artifact, Messages.getString( "unable.to.copy.artifact" ) ); //$NON-NLS-1$ - return; - } - - Metadata metadata = createBaseMetadata( artifact ); - Versioning versioning = new Versioning(); - versioning.addVersion( artifact.getBaseVersion() ); - metadata.setVersioning( versioning ); - updateMetadata( new ArtifactRepositoryMetadata( artifact ), targetRepository, metadata, transaction ); - - metadata = createBaseMetadata( artifact ); - metadata.setVersion( artifact.getBaseVersion() ); - versioning = new Versioning(); - - Matcher matcher = Artifact.VERSION_FILE_PATTERN.matcher( artifact.getVersion() ); - if ( matcher.matches() ) - { - Snapshot snapshot = new Snapshot(); - snapshot.setBuildNumber( Integer.valueOf( matcher.group( 3 ) ).intValue() ); - snapshot.setTimestamp( matcher.group( 2 ) ); - versioning.setSnapshot( snapshot ); - } - - // TODO: merge latest/release/snapshot from source instead - metadata.setVersioning( versioning ); - updateMetadata( new SnapshotArtifactRepositoryMetadata( artifact ), targetRepository, metadata, transaction ); - - if ( !dryrun ) - { - try - { - transaction.commit(); - } - catch ( TransactionException e ) - { - throw new ArtifactConversionException( Messages.getString( "transaction.failure", e.getMessage() ), e ); //$NON-NLS-1$ - } - } - } - - private boolean copyPom( Artifact artifact, ArtifactRepository targetRepository, FileTransaction transaction ) - throws ArtifactConversionException - { - Artifact pom = artifactFactory.createProjectArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact - .getVersion() ); - pom.setBaseVersion( artifact.getBaseVersion() ); - ArtifactRepository repository = artifact.getRepository(); - File file = new File( repository.getBasedir(), repository.pathOf( pom ) ); - - boolean result = true; - if ( file.exists() ) - { - File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( pom ) ); - - String contents = null; - boolean checksumsValid = false; - try - { - if ( testChecksums( artifact, file ) ) - { - checksumsValid = true; - } - - // Even if the checksums for the POM are invalid we should still convert the POM - contents = FileUtils.readFileToString( file, null ); - } - catch ( IOException e ) - { - throw new ArtifactConversionException( - Messages.getString( "unable.to.read.source.pom", e.getMessage() ), e ); //$NON-NLS-1$ - } - - if ( checksumsValid && contents.indexOf( "modelVersion" ) >= 0 ) //$NON-NLS-1$ - { - // v4 POM - try - { - boolean matching = false; - if ( !force && targetFile.exists() ) - { - String targetContents = FileUtils.readFileToString( targetFile, null ); - matching = targetContents.equals( contents ); - } - if ( force || !matching ) - { - transaction.createFile( contents, targetFile, digesters ); - } - } - catch ( IOException e ) - { - throw new ArtifactConversionException( Messages - .getString( "unable.to.write.target.pom", e.getMessage() ), e ); //$NON-NLS-1$ - } - } - else - { - // v3 POM - StringReader stringReader = new StringReader( contents ); - StringWriter writer = null; - try - { - org.apache.maven.model.v3_0_0.io.xpp3.MavenXpp3Reader v3Reader = new org.apache.maven.model.v3_0_0.io.xpp3.MavenXpp3Reader(); - org.apache.maven.model.v3_0_0.Model v3Model = v3Reader.read( stringReader ); - - if ( doRelocation( artifact, v3Model, targetRepository, transaction ) ) - { - Artifact relocatedPom = artifactFactory.createProjectArtifact( artifact.getGroupId(), artifact - .getArtifactId(), artifact.getVersion() ); - targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( relocatedPom ) ); - } - - Model v4Model = translator.translate( v3Model ); - - translator.validateV4Basics( v4Model, v3Model.getGroupId(), v3Model.getArtifactId(), v3Model - .getVersion(), v3Model.getPackage() ); - - writer = new StringWriter(); - MavenXpp3Writer Xpp3Writer = new MavenXpp3Writer(); - Xpp3Writer.write( writer, v4Model ); - - transaction.createFile( writer.toString(), targetFile, digesters ); - - List warnings = translator.getWarnings(); - - for ( Iterator i = warnings.iterator(); i.hasNext(); ) - { - String message = (String) i.next(); - addWarning( artifact, message ); - } - } - catch ( XmlPullParserException e ) - { - addWarning( artifact, Messages.getString( "invalid.source.pom", e.getMessage() ) ); //$NON-NLS-1$ - result = false; - } - catch ( IOException e ) - { - throw new ArtifactConversionException( Messages.getString( "unable.to.write.converted.pom" ), e ); //$NON-NLS-1$ - } - catch ( PomTranslationException e ) - { - addWarning( artifact, Messages.getString( "invalid.source.pom", e.getMessage() ) ); //$NON-NLS-1$ - result = false; - } - finally - { - IOUtils.closeQuietly( writer ); - } - } - } - else - { - addWarning( artifact, Messages.getString( "warning.missing.pom" ) ); //$NON-NLS-1$ - } - return result; - } - - private boolean testChecksums( Artifact artifact, File file ) - throws IOException - { - boolean result = true; - Iterator it = digesters.iterator(); - while ( it.hasNext() ) - { - Digester digester = (Digester) it.next(); - result &= verifyChecksum( file, file.getName() + "." + getDigesterFileExtension( digester ), digester, //$NON-NLS-1$ - artifact, "failure.incorrect." + getDigesterFileExtension( digester ) ); //$NON-NLS-1$ - } - return result; - } - - private boolean verifyChecksum( File file, String fileName, Digester digester, Artifact artifact, String key ) - throws IOException - { - boolean result = true; - - File checksumFile = new File( file.getParentFile(), fileName ); - if ( checksumFile.exists() ) - { - String checksum = FileUtils.readFileToString( checksumFile, null ); - try - { - digester.verify( file, checksum ); - } - catch ( DigesterException e ) - { - addWarning( artifact, Messages.getString( key ) ); - result = false; - } - } - return result; - } - - /** - * File extension for checksums - * TODO should be moved to plexus-digester ? - */ - private String getDigesterFileExtension( Digester digester ) - { - return digester.getAlgorithm().toLowerCase().replaceAll( "-", "" ); //$NON-NLS-1$ //$NON-NLS-2$ - } - - private boolean copyArtifact( Artifact artifact, ArtifactRepository targetRepository, FileTransaction transaction ) - throws ArtifactConversionException - { - File sourceFile = artifact.getFile(); - - if ( sourceFile.getAbsolutePath().indexOf( "/plugins/" ) > -1 ) //$NON-NLS-1$ - { - artifact.setArtifactHandler( artifactHandlerManager.getArtifactHandler( "maven-plugin" ) ); //$NON-NLS-1$ - } - - File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - - boolean result = true; - try - { - boolean matching = false; - if ( !force && targetFile.exists() ) - { - matching = FileUtils.contentEquals( sourceFile, targetFile ); - if ( !matching ) - { - addWarning( artifact, Messages.getString( "failure.target.already.exists" ) ); //$NON-NLS-1$ - result = false; - } - } - if ( result ) - { - if ( force || !matching ) - { - if ( testChecksums( artifact, sourceFile ) ) - { - transaction.copyFile( sourceFile, targetFile, digesters ); - } - else - { - result = false; - } - } - } - } - catch ( IOException e ) - { - throw new ArtifactConversionException( Messages.getString( "error.copying.artifact" ), e ); //$NON-NLS-1$ - } - return result; - } - - private Metadata createBaseMetadata( Artifact artifact ) - { - Metadata metadata = new Metadata(); - metadata.setArtifactId( artifact.getArtifactId() ); - metadata.setGroupId( artifact.getGroupId() ); - return metadata; - } - - private Metadata readMetadata( File file ) - throws ArtifactConversionException - { - Metadata metadata; - MetadataXpp3Reader reader = new MetadataXpp3Reader(); - FileReader fileReader = null; - try - { - fileReader = new FileReader( file ); - metadata = reader.read( fileReader ); - } - catch ( FileNotFoundException e ) - { - throw new ArtifactConversionException( Messages.getString( "error.reading.target.metadata" ), e ); //$NON-NLS-1$ - } - catch ( IOException e ) - { - throw new ArtifactConversionException( Messages.getString( "error.reading.target.metadata" ), e ); //$NON-NLS-1$ - } - catch ( XmlPullParserException e ) - { - throw new ArtifactConversionException( Messages.getString( "error.reading.target.metadata" ), e ); //$NON-NLS-1$ - } - finally - { - IOUtils.closeQuietly( fileReader ); - } - return metadata; - } - - private boolean validateMetadata( Artifact artifact ) - throws ArtifactConversionException - { - ArtifactRepository repository = artifact.getRepository(); - - boolean result = true; - - RepositoryMetadata repositoryMetadata = new ArtifactRepositoryMetadata( artifact ); - File file = new File( repository.getBasedir(), repository.pathOfRemoteRepositoryMetadata( repositoryMetadata ) ); - if ( file.exists() ) - { - Metadata metadata = readMetadata( file ); - result = validateMetadata( metadata, repositoryMetadata, artifact ); - } - - repositoryMetadata = new SnapshotArtifactRepositoryMetadata( artifact ); - file = new File( repository.getBasedir(), repository.pathOfRemoteRepositoryMetadata( repositoryMetadata ) ); - if ( file.exists() ) - { - Metadata metadata = readMetadata( file ); - result = result && validateMetadata( metadata, repositoryMetadata, artifact ); - } - - return result; - } - - private boolean validateMetadata( Metadata metadata, RepositoryMetadata repositoryMetadata, Artifact artifact ) - { - String groupIdKey; - String artifactIdKey = null; - String snapshotKey = null; - String versionKey = null; - String versionsKey = null; - - if ( repositoryMetadata.storedInGroupDirectory() ) - { - groupIdKey = "failure.incorrect.groupMetadata.groupId"; //$NON-NLS-1$ - } - else if ( repositoryMetadata.storedInArtifactVersionDirectory() ) - { - groupIdKey = "failure.incorrect.snapshotMetadata.groupId"; //$NON-NLS-1$ - artifactIdKey = "failure.incorrect.snapshotMetadata.artifactId"; //$NON-NLS-1$ - versionKey = "failure.incorrect.snapshotMetadata.version"; //$NON-NLS-1$ - snapshotKey = "failure.incorrect.snapshotMetadata.snapshot"; //$NON-NLS-1$ - } - else - { - groupIdKey = "failure.incorrect.artifactMetadata.groupId"; //$NON-NLS-1$ - artifactIdKey = "failure.incorrect.artifactMetadata.artifactId"; //$NON-NLS-1$ - versionsKey = "failure.incorrect.artifactMetadata.versions"; //$NON-NLS-1$ - } - - boolean result = true; - - if ( metadata.getGroupId() == null || !metadata.getGroupId().equals( artifact.getGroupId() ) ) - { - addWarning( artifact, Messages.getString( groupIdKey ) ); - result = false; - } - if ( !repositoryMetadata.storedInGroupDirectory() ) - { - if ( metadata.getGroupId() == null || !metadata.getArtifactId().equals( artifact.getArtifactId() ) ) - { - addWarning( artifact, Messages.getString( artifactIdKey ) ); - result = false; - } - if ( !repositoryMetadata.storedInArtifactVersionDirectory() ) - { - // artifact metadata - - boolean foundVersion = false; - if ( metadata.getVersioning() != null ) - { - for ( Iterator i = metadata.getVersioning().getVersions().iterator(); i.hasNext() && !foundVersion; ) - { - String version = (String) i.next(); - if ( version.equals( artifact.getBaseVersion() ) ) - { - foundVersion = true; - } - } - } - - if ( !foundVersion ) - { - addWarning( artifact, Messages.getString( versionsKey ) ); - result = false; - } - } - else - { - // snapshot metadata - if ( !artifact.getBaseVersion().equals( metadata.getVersion() ) ) - { - addWarning( artifact, Messages.getString( versionKey ) ); - result = false; - } - - if ( artifact.isSnapshot() ) - { - Matcher matcher = Artifact.VERSION_FILE_PATTERN.matcher( artifact.getVersion() ); - if ( matcher.matches() ) - { - boolean correct = false; - if ( metadata.getVersioning() != null && metadata.getVersioning().getSnapshot() != null ) - { - Snapshot snapshot = metadata.getVersioning().getSnapshot(); - int build = Integer.valueOf( matcher.group( 3 ) ).intValue(); - String ts = matcher.group( 2 ); - if ( build == snapshot.getBuildNumber() && ts.equals( snapshot.getTimestamp() ) ) - { - correct = true; - } - } - - if ( !correct ) - { - addWarning( artifact, Messages.getString( snapshotKey ) ); - result = false; - } - } - } - } - } - return result; - } - - private void updateMetadata( RepositoryMetadata artifactMetadata, ArtifactRepository targetRepository, - Metadata newMetadata, FileTransaction transaction ) - throws ArtifactConversionException - { - File file = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( artifactMetadata ) ); - - Metadata metadata; - boolean changed; - - if ( file.exists() ) - { - metadata = readMetadata( file ); - changed = metadata.merge( newMetadata ); - } - else - { - changed = true; - metadata = newMetadata; - } - - if ( changed ) - { - StringWriter writer = null; - try - { - writer = new StringWriter(); - - MetadataXpp3Writer mappingWriter = new MetadataXpp3Writer(); - - mappingWriter.write( writer, metadata ); - - transaction.createFile( writer.toString(), file, digesters ); - } - catch ( IOException e ) - { - throw new ArtifactConversionException( Messages.getString( "error.writing.target.metadata" ), e ); //$NON-NLS-1$ - } - finally - { - IOUtils.closeQuietly( writer ); - } - } - } - - private boolean doRelocation( Artifact artifact, org.apache.maven.model.v3_0_0.Model v3Model, - ArtifactRepository repository, FileTransaction transaction ) - throws IOException - { - Properties properties = v3Model.getProperties(); - if ( properties.containsKey( "relocated.groupId" ) || properties.containsKey( "relocated.artifactId" ) //$NON-NLS-1$ //$NON-NLS-2$ - || properties.containsKey( "relocated.version" ) ) //$NON-NLS-1$ - { - String newGroupId = properties.getProperty( "relocated.groupId", v3Model.getGroupId() ); //$NON-NLS-1$ - properties.remove( "relocated.groupId" ); //$NON-NLS-1$ - - String newArtifactId = properties.getProperty( "relocated.artifactId", v3Model.getArtifactId() ); //$NON-NLS-1$ - properties.remove( "relocated.artifactId" ); //$NON-NLS-1$ - - String newVersion = properties.getProperty( "relocated.version", v3Model.getVersion() ); //$NON-NLS-1$ - properties.remove( "relocated.version" ); //$NON-NLS-1$ - - String message = properties.getProperty( "relocated.message", "" ); //$NON-NLS-1$ //$NON-NLS-2$ - properties.remove( "relocated.message" ); //$NON-NLS-1$ - - if ( properties.isEmpty() ) - { - v3Model.setProperties( null ); - } - - writeRelocationPom( v3Model.getGroupId(), v3Model.getArtifactId(), v3Model.getVersion(), newGroupId, - newArtifactId, newVersion, message, repository, transaction ); - - v3Model.setGroupId( newGroupId ); - v3Model.setArtifactId( newArtifactId ); - v3Model.setVersion( newVersion ); - - artifact.setGroupId( newGroupId ); - artifact.setArtifactId( newArtifactId ); - artifact.setVersion( newVersion ); - - return true; - } - else - { - return false; - } - } - - private void writeRelocationPom( String groupId, String artifactId, String version, String newGroupId, - String newArtifactId, String newVersion, String message, - ArtifactRepository repository, FileTransaction transaction ) - throws IOException - { - Model pom = new Model(); - pom.setGroupId( groupId ); - pom.setArtifactId( artifactId ); - pom.setVersion( version ); - - DistributionManagement dMngt = new DistributionManagement(); - - Relocation relocation = new Relocation(); - relocation.setGroupId( newGroupId ); - relocation.setArtifactId( newArtifactId ); - relocation.setVersion( newVersion ); - if ( message != null && message.length() > 0 ) - { - relocation.setMessage( message ); - } - - dMngt.setRelocation( relocation ); - - pom.setDistributionManagement( dMngt ); - - Artifact artifact = artifactFactory.createBuildArtifact( groupId, artifactId, version, "pom" ); //$NON-NLS-1$ - File pomFile = new File( repository.getBasedir(), repository.pathOf( artifact ) ); - - StringWriter strWriter = new StringWriter(); - MavenXpp3Writer pomWriter = new MavenXpp3Writer(); - pomWriter.write( strWriter, pom ); - - transaction.createFile( strWriter.toString(), pomFile, digesters ); - } - - private void addWarning( Artifact artifact, String message ) - { - List messages = (List) warnings.get( artifact ); - if ( messages == null ) - { - messages = new ArrayList(); - } - messages.add( message ); - warnings.put( artifact, messages ); - } - - public void clearWarnings() - { - warnings.clear(); - } - - public Map getWarnings() - { - return warnings; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/Messages.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/Messages.java deleted file mode 100644 index f426e6482..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/Messages.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.apache.maven.archiva.converter.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.text.MessageFormat; -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -/** - * Messages - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class Messages -{ - private static final String BUNDLE_NAME = "org.apache.maven.archiva.converter.artifact.messages"; //$NON-NLS-1$ - - private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle( BUNDLE_NAME ); - - private Messages() - { - } - - public static String getString( String key ) - { - try - { - return RESOURCE_BUNDLE.getString( key ); - } - catch ( MissingResourceException e ) - { - return '!' + key + '!'; - } - } - - public static String getString( String key, Object argument ) - { - return getString( key, new Object[] { argument } ); - } - - public static String getString( String key, Object arguments[] ) - { - try - { - String pattern = RESOURCE_BUNDLE.getString( key ); - return MessageFormat.format( pattern, arguments ); - } - catch ( MissingResourceException e ) - { - return '!' + key + '!'; - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/resources/org/apache/maven/archiva/converter/artifact/messages.properties b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/resources/org/apache/maven/archiva/converter/artifact/messages.properties deleted file mode 100644 index 5e5bc6dd3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/main/resources/org/apache/maven/archiva/converter/artifact/messages.properties +++ /dev/null @@ -1,51 +0,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. -# - -unable.to.validate.metadata=Unable to validate metadata -unable.to.copy.pom=Unable to copy pom. -unable.to.copy.artifact=Unable to copy artifact -unable.to.read.source.pom=Unable to read source POM: {0} -unable.to.write.target.pom=Unable to write target POM: {0} -unable.to.write.converted.pom=Unable to write converted POM - - -exception.repositories.match=Source repository of artifact, and target repository are the same. No conversion needed. -transaction.failure=Transaction failure: {0} -invalid.source.pom=Invalid source pom: {0} - -warning.missing.pom=The artifact had no POM in the source repository. - -error.copying.artifact=Error copying artifact -error.reading.target.metadata=Error reading target metadata -error.writing.target.metadata=Error writing target metadata - -failure.target.already.exists=The artifact could not be converted because it already exists. -failure.incorrect.groupMetadata.groupId=The group ID in the source group metadata is incorrect. - -failure.incorrect.artifactMetadata.artifactId=The artifact ID in the source artifact metadata is incorrect. -failure.incorrect.artifactMetadata.groupId=The group ID in the source artifact metadata is incorrect. -failure.incorrect.artifactMetadata.versions=The version list in the source artifact metadata is incorrect. - -failure.incorrect.snapshotMetadata.artifactId=The artifact ID in the source artifact version metadata is incorrect. -failure.incorrect.snapshotMetadata.groupId=The group ID in the source artifact version metadata is incorrect. -failure.incorrect.snapshotMetadata.version=The version in the source artifact version metadata is incorrect. -failure.incorrect.snapshotMetadata.snapshot=The snapshot information in the source artifact version metadata is incorrect. - -failure.incorrect.md5=The MD5 checksum value was incorrect. -failure.incorrect.sha1=The SHA1 checksum value was incorrect. diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-one.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-one.pom deleted file mode 100644 index cd3862d35..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-one.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - artifact-one - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-three.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-three.pom deleted file mode 100644 index 343291037..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-three.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - artifact-three - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-two.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-two.pom deleted file mode 100644 index 227470167..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-artifact-two.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - artifact-two - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-snapshot.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-snapshot.pom deleted file mode 100644 index 1615b6663..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-snapshot.pom +++ /dev/null @@ -1,28 +0,0 @@ - - 4.0.0 - test - v3artifact - 1.0.0-SNAPSHOT - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - test - - - junit - junit - 3.8.2 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom deleted file mode 100644 index 94307d863..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom +++ /dev/null @@ -1,28 +0,0 @@ - - 4.0.0 - test - v3artifact - 1.0.0-20060105.130101-3 - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - test - - - junit - junit - 3.8.2 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-warnings.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-warnings.pom deleted file mode 100644 index 25f4e76d0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3-warnings.pom +++ /dev/null @@ -1,28 +0,0 @@ - - 4.0.0 - test - v3-warnings-artifact - 1.0.0 - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - test - - - junit - junit - 3.8.2 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3.pom deleted file mode 100644 index 9f8b63e16..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/converted-v3.pom +++ /dev/null @@ -1,28 +0,0 @@ - - 4.0.0 - test - v3artifact - 1.0.0 - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - test - - - junit - junit - 3.8.2 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/maven-foo-plugin-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/maven-foo-plugin-1.0.pom deleted file mode 100644 index 17095cc57..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/maven-foo-plugin-1.0.pom +++ /dev/null @@ -1,7 +0,0 @@ - - 4.0.0 - org.apache.maven.plugins - maven-foo-plugin - 1.0.0 - maven-plugin - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/newversion-artifact-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/newversion-artifact-metadata.xml deleted file mode 100644 index ecc7f09a0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/newversion-artifact-metadata.xml +++ /dev/null @@ -1,10 +0,0 @@ - - test - newversion-artifact - - - 1.0.0 - 1.0.1 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml deleted file mode 100644 index ebd9be970..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml +++ /dev/null @@ -1,6 +0,0 @@ - - relocated-test - relocated-v3artifact - 1.0.0 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.jar deleted file mode 100644 index 29ef827e8a45b1039d908884aae4490157bcb2b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3 KcmXRj<^li#)c~{r diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom deleted file mode 100644 index 0180549f0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - 4.0.0 - relocated-test - relocated-v3artifact - 1.0.0 - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - test - - - junit - junit - 3.8.2 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml deleted file mode 100644 index b4b1a864a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - relocated-test - relocated-v3artifact - - - 1.0.0 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom deleted file mode 100644 index b20f62f9e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom +++ /dev/null @@ -1,12 +0,0 @@ - - test - relocated-v3artifact - 1.0.0 - - - relocated-test - relocated-v3artifact - 1.0.0 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-artifact-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-artifact-metadata.xml deleted file mode 100644 index a8a7f3748..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-artifact-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - test - v3artifact - - - 1.0.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml deleted file mode 100644 index 24d25a0e0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - test - v3artifact - - - 1.0.0-SNAPSHOT - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-snapshot-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-snapshot-metadata.xml deleted file mode 100644 index b19c537b5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-snapshot-metadata.xml +++ /dev/null @@ -1,6 +0,0 @@ - - test - v3artifact - 1.0.0-SNAPSHOT - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml deleted file mode 100644 index 602c38ec8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - test - v3artifact - 1.0.0-SNAPSHOT - - - 20060105.130101 - 3 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-version-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-version-metadata.xml deleted file mode 100644 index 3c8938984..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v3-version-metadata.xml +++ /dev/null @@ -1,6 +0,0 @@ - - test - v3artifact - 1.0.0 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-artifact-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-artifact-metadata.xml deleted file mode 100644 index c0cdbfdb4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-artifact-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - test - v4artifact - - - 1.0.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml deleted file mode 100644 index f8072b0df..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - test - v4artifact - - - 1.0.0-SNAPSHOT - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-snapshot-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-snapshot-metadata.xml deleted file mode 100644 index d5ecb7d47..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-snapshot-metadata.xml +++ /dev/null @@ -1,6 +0,0 @@ - - test - v4artifact - 1.0.0-SNAPSHOT - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml deleted file mode 100644 index 060a79cdd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - test - v4artifact - 1.0.0-SNAPSHOT - - - 20060111.120115 - 1 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-version-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-version-metadata.xml deleted file mode 100644 index 7cbd8ad3d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/expected-files/v4-version-metadata.xml +++ /dev/null @@ -1,6 +0,0 @@ - - test - v4artifact - 1.0.0 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverterTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverterTest.java deleted file mode 100644 index cbbf6289c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverterTest.java +++ /dev/null @@ -1,1010 +0,0 @@ -package org.apache.maven.archiva.converter.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.metadata.ArtifactMetadata; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; -import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; -import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata; -import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Map.Entry; -import java.util.regex.Matcher; - -/** - * LegacyToDefaultConverterTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class LegacyToDefaultConverterTest - extends PlexusInSpringTestCase -{ - private ArtifactRepository sourceRepository; - - private ArtifactRepository targetRepository; - - private ArtifactConverter artifactConverter; - - private ArtifactFactory artifactFactory; - - private static final int SLEEP_MILLIS = 100; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArtifactRepositoryFactory factory = (ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE ); - - ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" ); - - File sourceBase = getTestFile( "src/test/source-repository" ); - sourceRepository = factory.createArtifactRepository( "source", sourceBase.toURL().toString(), layout, null, - null ); - - layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default" ); - - File targetBase = getTestFile( "target/test-target-repository" ); - copyDirectoryStructure( getTestFile( "src/test/target-repository" ), targetBase ); - - targetRepository = factory.createArtifactRepository( "target", targetBase.toURL().toString(), layout, null, - null ); - - artifactConverter = (ArtifactConverter) lookup( ArtifactConverter.ROLE, "legacy-to-default" ); - - artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE ); - } - - protected void tearDown() - throws Exception - { - super.tearDown(); - } - - private void copyDirectoryStructure( File sourceDirectory, File destinationDirectory ) - throws IOException - { - if ( !sourceDirectory.exists() ) - { - throw new IOException( "Source directory doesn't exists (" + sourceDirectory.getAbsolutePath() + ")." ); - } - - File[] files = sourceDirectory.listFiles(); - - String sourcePath = sourceDirectory.getAbsolutePath(); - - for ( int i = 0; i < files.length; i++ ) - { - File file = files[i]; - - String dest = file.getAbsolutePath(); - - dest = dest.substring( sourcePath.length() + 1 ); - - File destination = new File( destinationDirectory, dest ); - - if ( file.isFile() ) - { - destination = destination.getParentFile(); - - FileUtils.copyFileToDirectory( file, destination ); - } - else if ( file.isDirectory() ) - { - if ( !".svn".equals( file.getName() ) ) - { - if ( !destination.exists() && !destination.mkdirs() ) - { - throw new IOException( "Could not create destination directory '" - + destination.getAbsolutePath() + "'." ); - } - copyDirectoryStructure( file, destination ); - } - } - else - { - throw new IOException( "Unknown file type: " + file.getAbsolutePath() ); - } - } - } - - public void testV4PomConvert() - throws Exception - { - // test that it is copied as is - - Artifact artifact = createArtifact( "test", "v4artifact", "1.0.0" ); - ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact ); - File artifactMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( artifactMetadata ) ); - artifactMetadataFile.delete(); - - ArtifactMetadata versionMetadata = new SnapshotArtifactRepositoryMetadata( artifact ); - File versionMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( versionMetadata ) ); - versionMetadataFile.delete(); - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - artifactFile.delete(); - - artifactConverter.convert( artifact, targetRepository ); - checkSuccess( artifactConverter ); - - assertTrue( "Check artifact created", artifactFile.exists() ); - assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) ); - - artifact = createPomArtifact( artifact ); - File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ); - assertTrue( "Check POM created", pomFile.exists() ); - - compareFiles( sourcePomFile, pomFile ); - - assertTrue( "Check artifact metadata created", artifactMetadataFile.exists() ); - - File expectedMetadataFile = getTestFile( "src/test/expected-files/v4-artifact-metadata.xml" ); - - compareFiles( expectedMetadataFile, artifactMetadataFile ); - - assertTrue( "Check snapshot metadata created", versionMetadataFile.exists() ); - - expectedMetadataFile = getTestFile( "src/test/expected-files/v4-version-metadata.xml" ); - - compareFiles( expectedMetadataFile, versionMetadataFile ); - } - - public void testV3PomConvert() - throws Exception - { - // test that the pom is coverted - - Artifact artifact = createArtifact( "test", "v3artifact", "1.0.0" ); - ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact ); - File artifactMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( artifactMetadata ) ); - artifactMetadataFile.delete(); - - ArtifactMetadata versionMetadata = new SnapshotArtifactRepositoryMetadata( artifact ); - File versionMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( versionMetadata ) ); - versionMetadataFile.delete(); - - artifactConverter.convert( artifact, targetRepository ); - checkSuccess( artifactConverter ); - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - assertTrue( "Check artifact created", artifactFile.exists() ); - assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) ); - - artifact = createPomArtifact( artifact ); - File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File expectedPomFile = getTestFile( "src/test/expected-files/converted-v3.pom" ); - assertTrue( "Check POM created", pomFile.exists() ); - - compareFiles( expectedPomFile, pomFile ); - - assertTrue( "Check artifact metadata created", artifactMetadataFile.exists() ); - - File expectedMetadataFile = getTestFile( "src/test/expected-files/v3-artifact-metadata.xml" ); - - compareFiles( expectedMetadataFile, artifactMetadataFile ); - - assertTrue( "Check snapshot metadata created", versionMetadataFile.exists() ); - - expectedMetadataFile = getTestFile( "src/test/expected-files/v3-version-metadata.xml" ); - - compareFiles( expectedMetadataFile, versionMetadataFile ); - } - - public void testV3PomConvertWithRelocation() - throws Exception - { - Artifact artifact = createArtifact( "test", "relocated-v3artifact", "1.0.0" ); - ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact ); - File artifactMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( artifactMetadata ) ); - artifactMetadataFile.delete(); - - ArtifactMetadata versionMetadata = new SnapshotArtifactRepositoryMetadata( artifact ); - File versionMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( versionMetadata ) ); - versionMetadataFile.delete(); - - artifactConverter.convert( artifact, targetRepository ); - //checkSuccess(); --> commented until MNG-2100 is fixed - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - assertTrue( "Check if relocated artifact created", artifactFile.exists() ); - assertTrue( "Check if relocated artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) ); - Artifact pomArtifact = createArtifact( "relocated-test", "relocated-v3artifact", "1.0.0", "1.0.0", "pom" ); - File pomFile = getTestFile( "src/test/expected-files/" + targetRepository.pathOf( pomArtifact ) ); - File testFile = getTestFile( "target/test-target-repository/" + targetRepository.pathOf( pomArtifact ) ); - compareFiles( pomFile, testFile ); - - Artifact orig = createArtifact( "test", "relocated-v3artifact", "1.0.0", "1.0.0", "pom" ); - artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( orig ) ); - assertTrue( "Check if relocation artifact pom is created", artifactFile.exists() ); - testFile = getTestFile( "src/test/expected-files/" + targetRepository.pathOf( orig ) ); - compareFiles( artifactFile, testFile ); - } - - public void testV3PomWarningsOnConvert() - throws Exception - { - // test that the pom is converted but that warnings are reported - - Artifact artifact = createArtifact( "test", "v3-warnings-artifact", "1.0.0" ); - ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact ); - File artifactMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( artifactMetadata ) ); - artifactMetadataFile.delete(); - - ArtifactMetadata versionMetadata = new SnapshotArtifactRepositoryMetadata( artifact ); - File versionMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( versionMetadata ) ); - versionMetadataFile.delete(); - - artifactConverter.convert( artifact, targetRepository ); - checkWarnings( artifactConverter, 2 ); - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - assertTrue( "Check artifact created", artifactFile.exists() ); - assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) ); - - artifact = createPomArtifact( artifact ); - File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File expectedPomFile = getTestFile( "src/test/expected-files/converted-v3-warnings.pom" ); - assertTrue( "Check POM created", pomFile.exists() ); - - compareFiles( expectedPomFile, pomFile ); - - // TODO: check 2 warnings (extend and versions) matched on i18n key - } - - private void doTestV4SnapshotPomConvert( String version, String expectedMetadataFileName ) - throws Exception - { - // test that it is copied as is - - Artifact artifact = createArtifact( "test", "v4artifact", version ); - ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact ); - File artifactMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( artifactMetadata ) ); - artifactMetadataFile.delete(); - - ArtifactMetadata snapshotMetadata = new SnapshotArtifactRepositoryMetadata( artifact ); - File snapshotMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( snapshotMetadata ) ); - snapshotMetadataFile.delete(); - - artifactConverter.convert( artifact, targetRepository ); - checkSuccess( artifactConverter ); - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - assertTrue( "Check artifact created", artifactFile.exists() ); - assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) ); - - artifact = createPomArtifact( artifact ); - File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ); - assertTrue( "Check POM created", pomFile.exists() ); - - compareFiles( sourcePomFile, pomFile ); - - assertTrue( "Check artifact metadata created", artifactMetadataFile.exists() ); - - File expectedMetadataFile = getTestFile( "src/test/expected-files/v4-snapshot-artifact-metadata.xml" ); - - compareFiles( expectedMetadataFile, artifactMetadataFile ); - - assertTrue( "Check snapshot metadata created", snapshotMetadataFile.exists() ); - - expectedMetadataFile = getTestFile( expectedMetadataFileName ); - - compareFiles( expectedMetadataFile, snapshotMetadataFile ); - } - - public void testV3SnapshotPomConvert() - throws Exception - { - // test that the pom is coverted - - Artifact artifact = createArtifact( "test", "v3artifact", "1.0.0-SNAPSHOT" ); - ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact ); - File artifactMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( artifactMetadata ) ); - artifactMetadataFile.delete(); - - ArtifactMetadata snapshotMetadata = new SnapshotArtifactRepositoryMetadata( artifact ); - File snapshotMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( snapshotMetadata ) ); - snapshotMetadataFile.delete(); - - artifactConverter.convert( artifact, targetRepository ); - checkSuccess( artifactConverter ); - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - assertTrue( "Check artifact created", artifactFile.exists() ); - assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) ); - - artifact = createPomArtifact( artifact ); - File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File expectedPomFile = getTestFile( "src/test/expected-files/converted-v3-snapshot.pom" ); - assertTrue( "Check POM created", pomFile.exists() ); - - compareFiles( expectedPomFile, pomFile ); - - assertTrue( "Check artifact metadata created", artifactMetadataFile.exists() ); - - File expectedMetadataFile = getTestFile( "src/test/expected-files/v3-snapshot-artifact-metadata.xml" ); - - compareFiles( expectedMetadataFile, artifactMetadataFile ); - - assertTrue( "Check snapshot metadata created", snapshotMetadataFile.exists() ); - - expectedMetadataFile = getTestFile( "src/test/expected-files/v3-snapshot-metadata.xml" ); - - compareFiles( expectedMetadataFile, snapshotMetadataFile ); - } - - public void testV4SnapshotPomConvert() - throws Exception - { - doTestV4SnapshotPomConvert( "1.0.0-SNAPSHOT", "src/test/expected-files/v4-snapshot-metadata.xml" ); - - assertTrue( true ); - } - - public void testV4TimestampedSnapshotPomConvert() - throws Exception - { - doTestV4SnapshotPomConvert( "1.0.0-20060111.120115-1", - "src/test/expected-files/v4-timestamped-snapshot-metadata.xml" ); - - assertTrue( true ); - } - - public void testMavenOnePluginConversion() - throws Exception - { - Artifact artifact = createArtifact( "org.apache.maven.plugins", "maven-foo-plugin", "1.0", "1.0", - "maven-plugin" ); - artifact.setFile( new File( getBasedir(), "src/test/source-repository/test/plugins/maven-foo-plugin-1.0.jar" ) ); - artifactConverter.convert( artifact, targetRepository ); - // There is a warning but I can't figure out how to look at it. Eyeballing the results it appears - // the plugin is being coverted correctly. - //checkSuccess(); - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - assertTrue( "Check artifact created", artifactFile.exists() ); - assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) ); - - /* - The POM isn't needed for Maven 1.x plugins but the raw conversion for - - artifact = createPomArtifact( artifact ); - File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File expectedPomFile = getTestFile( "src/test/expected-files/maven-foo-plugin-1.0.pom" ); - assertTrue( "Check POM created", pomFile.exists() ); - compareFiles( expectedPomFile, pomFile ); - */ - } - - public void testV3TimestampedSnapshotPomConvert() - throws Exception - { - // test that the pom is coverted - - Artifact artifact = createArtifact( "test", "v3artifact", "1.0.0-20060105.130101-3" ); - ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact ); - File artifactMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( artifactMetadata ) ); - artifactMetadataFile.delete(); - - ArtifactMetadata snapshotMetadata = new SnapshotArtifactRepositoryMetadata( artifact ); - File snapshotMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( snapshotMetadata ) ); - snapshotMetadataFile.delete(); - - artifactConverter.convert( artifact, targetRepository ); - checkSuccess( artifactConverter ); - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - assertTrue( "Check artifact created", artifactFile.exists() ); - assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) ); - - artifact = createPomArtifact( artifact ); - File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File expectedPomFile = getTestFile( "src/test/expected-files/converted-v3-timestamped-snapshot.pom" ); - assertTrue( "Check POM created", pomFile.exists() ); - - compareFiles( expectedPomFile, pomFile ); - - assertTrue( "Check artifact snapshotMetadata created", artifactMetadataFile.exists() ); - - File expectedMetadataFile = getTestFile( "src/test/expected-files/v3-snapshot-artifact-metadata.xml" ); - - compareFiles( expectedMetadataFile, artifactMetadataFile ); - - assertTrue( "Check snapshot snapshotMetadata created", snapshotMetadataFile.exists() ); - - expectedMetadataFile = getTestFile( "src/test/expected-files/v3-timestamped-snapshot-metadata.xml" ); - - compareFiles( expectedMetadataFile, snapshotMetadataFile ); - } - - public void testNoPomConvert() - throws Exception - { - // test that a POM is not created when there was none at the source - - Artifact artifact = createArtifact( "test", "noPomArtifact", "1.0.0" ); - artifactConverter.convert( artifact, targetRepository ); - checkWarnings( artifactConverter, 1 ); - - assertHasWarningReason( artifactConverter, Messages.getString( "warning.missing.pom" ) ); - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - assertTrue( "Check artifact created", artifactFile.exists() ); - assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) ); - - artifact = createPomArtifact( artifact ); - File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ); - - assertFalse( "Check no POM created", pomFile.exists() ); - assertFalse( "No source POM", sourcePomFile.exists() ); - } - - public void testIncorrectSourceChecksumMd5() - throws Exception - { - // test that it fails when the source md5 is wrong - - Artifact artifact = createArtifact( "test", "incorrectMd5Artifact", "1.0.0" ); - File file = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - file.delete(); - - artifactConverter.convert( artifact, targetRepository ); - checkWarnings( artifactConverter, 2 ); - - assertHasWarningReason( artifactConverter, Messages.getString( "failure.incorrect.md5" ) ); - - assertFalse( "Check artifact not created", file.exists() ); - - ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact ); - File metadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( metadata ) ); - assertFalse( "Check metadata not created", metadataFile.exists() ); - } - - public void testIncorrectSourceChecksumSha1() - throws Exception - { - // test that it fails when the source sha1 is wrong - - Artifact artifact = createArtifact( "test", "incorrectSha1Artifact", "1.0.0" ); - File file = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - file.delete(); - - artifactConverter.convert( artifact, targetRepository ); - checkWarnings( artifactConverter, 2 ); - - assertHasWarningReason( artifactConverter, Messages.getString( "failure.incorrect.sha1" ) ); - - assertFalse( "Check artifact not created", file.exists() ); - - ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact ); - File metadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( metadata ) ); - assertFalse( "Check metadata not created", metadataFile.exists() ); - } - - public void testUnmodifiedArtifact() - throws Exception, InterruptedException - { - // test the unmodified artifact is untouched - - Artifact artifact = createArtifact( "test", "unmodified-artifact", "1.0.0" ); - Artifact pomArtifact = createPomArtifact( artifact ); - - File sourceFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ); - File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( pomArtifact ) ); - File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File targetPomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( pomArtifact ) ); - - assertTrue( "Check target file exists", targetFile.exists() ); - assertTrue( "Check target POM exists", targetPomFile.exists() ); - - sourceFile.setLastModified( System.currentTimeMillis() ); - sourcePomFile.setLastModified( System.currentTimeMillis() ); - - long origTime = targetFile.lastModified(); - long origPomTime = targetPomFile.lastModified(); - - // Need to guarantee last modified is not equal - Thread.sleep( SLEEP_MILLIS ); - - artifactConverter.convert( artifact, targetRepository ); - checkSuccess( artifactConverter ); - - compareFiles( sourceFile, targetFile ); - compareFiles( sourcePomFile, targetPomFile ); - - assertEquals( "Check artifact unmodified", origTime, targetFile.lastModified() ); - assertEquals( "Check POM unmodified", origPomTime, targetPomFile.lastModified() ); - } - - public void testModifedArtifactFails() - throws Exception - { - // test that it fails when the source artifact has changed and is different to the existing artifact in the - // target repository - - Artifact artifact = createArtifact( "test", "modified-artifact", "1.0.0" ); - Artifact pomArtifact = createPomArtifact( artifact ); - - File sourceFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ); - File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( pomArtifact ) ); - File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File targetPomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( pomArtifact ) ); - - assertTrue( "Check target file exists", targetFile.exists() ); - assertTrue( "Check target POM exists", targetPomFile.exists() ); - - sourceFile.setLastModified( System.currentTimeMillis() ); - sourcePomFile.setLastModified( System.currentTimeMillis() ); - - long origTime = targetFile.lastModified(); - long origPomTime = targetPomFile.lastModified(); - - // Need to guarantee last modified is not equal - Thread.sleep( SLEEP_MILLIS ); - - artifactConverter.convert( artifact, targetRepository ); - checkWarnings( artifactConverter, 2 ); - - assertHasWarningReason( artifactConverter, Messages.getString( "failure.target.already.exists" ) ); - - assertEquals( "Check unmodified", origTime, targetFile.lastModified() ); - assertEquals( "Check unmodified", origPomTime, targetPomFile.lastModified() ); - - ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact ); - File metadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( metadata ) ); - assertFalse( "Check metadata not created", metadataFile.exists() ); - } - - public void testForcedUnmodifiedArtifact() - throws Exception - { - // test unmodified artifact is still converted when set to force - - artifactConverter = (ArtifactConverter) lookup( ArtifactConverter.ROLE, "force-repository-converter" ); - - Artifact artifact = createArtifact( "test", "unmodified-artifact", "1.0.0" ); - Artifact pomArtifact = createPomArtifact( artifact ); - - File sourceFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ); - File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( pomArtifact ) ); - File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File targetPomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( pomArtifact ) ); - - SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd", Locale.getDefault() ); - long origTime = dateFormat.parse( "2006-03-03" ).getTime(); - targetFile.setLastModified( origTime ); - targetPomFile.setLastModified( origTime ); - - sourceFile.setLastModified( dateFormat.parse( "2006-01-01" ).getTime() ); - sourcePomFile.setLastModified( dateFormat.parse( "2006-02-02" ).getTime() ); - - artifactConverter.convert( artifact, targetRepository ); - checkSuccess( artifactConverter ); - - compareFiles( sourceFile, targetFile ); - compareFiles( sourcePomFile, targetPomFile ); - - assertFalse( "Check modified", origTime == targetFile.lastModified() ); - assertFalse( "Check modified", origTime == targetPomFile.lastModified() ); - - ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact ); - File metadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( metadata ) ); - assertTrue( "Check metadata created", metadataFile.exists() ); - } - - public void testDryRunSuccess() - throws Exception - { - // test dry run does nothing on a run that will be successful, and returns success - - artifactConverter = (ArtifactConverter) lookup( ArtifactConverter.ROLE, "dryrun-repository-converter" ); - - Artifact artifact = createArtifact( "test", "dryrun-artifact", "1.0.0" ); - Artifact pomArtifact = createPomArtifact( artifact ); - - File sourceFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ); - File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( pomArtifact ) ); - File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File targetPomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( pomArtifact ) ); - - artifactConverter.convert( artifact, targetRepository ); - checkSuccess( artifactConverter ); - - assertTrue( "Check source file exists", sourceFile.exists() ); - assertTrue( "Check source POM exists", sourcePomFile.exists() ); - - assertFalse( "Check target file doesn't exist", targetFile.exists() ); - assertFalse( "Check target POM doesn't exist", targetPomFile.exists() ); - - ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact ); - File metadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( metadata ) ); - assertFalse( "Check metadata not created", metadataFile.exists() ); - } - - public void testDryRunFailure() - throws Exception - { - // test dry run does nothing on a run that will fail, and returns failure - - artifactConverter = (ArtifactConverter) lookup( ArtifactConverter.ROLE, "dryrun-repository-converter" ); - - Artifact artifact = createArtifact( "test", "modified-artifact", "1.0.0" ); - Artifact pomArtifact = createPomArtifact( artifact ); - - File sourceFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ); - File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( pomArtifact ) ); - File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File targetPomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( pomArtifact ) ); - - assertTrue( "Check target file exists", targetFile.exists() ); - assertTrue( "Check target POM exists", targetPomFile.exists() ); - - sourceFile.setLastModified( System.currentTimeMillis() ); - sourcePomFile.setLastModified( System.currentTimeMillis() ); - - long origTime = targetFile.lastModified(); - long origPomTime = targetPomFile.lastModified(); - - // Need to guarantee last modified is not equal - Thread.sleep( SLEEP_MILLIS ); - - artifactConverter.convert( artifact, targetRepository ); - checkWarnings( artifactConverter, 2 ); - - assertHasWarningReason( artifactConverter, Messages.getString( "failure.target.already.exists" ) ); - - assertEquals( "Check unmodified", origTime, targetFile.lastModified() ); - assertEquals( "Check unmodified", origPomTime, targetPomFile.lastModified() ); - - ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact ); - File metadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( metadata ) ); - assertFalse( "Check metadata not created", metadataFile.exists() ); - } - - public void testRollbackArtifactCreated() - throws Exception - { - // test rollback can remove a created artifact, including checksums - - Artifact artifact = createArtifact( "test", "rollback-created-artifact", "1.0.0" ); - ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact ); - File artifactMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( artifactMetadata ) ); - FileUtils.deleteDirectory( artifactMetadataFile.getParentFile() ); - - ArtifactMetadata versionMetadata = new SnapshotArtifactRepositoryMetadata( artifact ); - File versionMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( versionMetadata ) ); - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - - artifactConverter.convert( artifact, targetRepository ); - checkWarnings( artifactConverter, 2 ); - - boolean found = false; - String pattern = "^" + Messages.getString( "invalid.source.pom" ).replaceFirst( "\\{0\\}", ".*" ) + "$"; - for ( Iterator it = artifactConverter.getWarnings().values().iterator(); it.hasNext() && !found; ) - { - List messages = (List) it.next(); - - for ( Iterator itmsgs = messages.iterator(); itmsgs.hasNext(); ) - { - String message = (String) itmsgs.next(); - if ( message.matches( pattern ) ) - { - found = true; - break; - } - } - } - - assertTrue( "Check failure message.", found ); - - assertFalse( "check artifact rolled back", artifactFile.exists() ); - assertFalse( "check metadata rolled back", artifactMetadataFile.exists() ); - assertFalse( "check metadata rolled back", versionMetadataFile.exists() ); - } - - public void testMultipleArtifacts() - throws Exception - { - // test multiple artifacts are converted - - List artifacts = new ArrayList(); - artifacts.add( createArtifact( "test", "artifact-one", "1.0.0" ) ); - artifacts.add( createArtifact( "test", "artifact-two", "1.0.0" ) ); - artifacts.add( createArtifact( "test", "artifact-three", "1.0.0" ) ); - - for ( Iterator it = artifacts.iterator(); it.hasNext(); ) - { - Artifact arti = (Artifact) it.next(); - artifactConverter.convert( arti, targetRepository ); - checkSuccess( artifactConverter ); - } - - for ( Iterator i = artifacts.iterator(); i.hasNext(); ) - { - Artifact artifact = (Artifact) i.next(); - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - assertTrue( "Check artifact created", artifactFile.exists() ); - assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) ); - - artifact = createPomArtifact( artifact ); - File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File expectedPomFile = getTestFile( "src/test/expected-files/converted-" + artifact.getArtifactId() - + ".pom" ); - assertTrue( "Check POM created", pomFile.exists() ); - - compareFiles( expectedPomFile, pomFile ); - } - } - - public void testInvalidSourceArtifactMetadata() - throws Exception - { - // test artifact is not converted when source metadata is invalid, and returns failure - - createModernSourceRepository(); - - Artifact artifact = createArtifact( "test", "incorrectArtifactMetadata", "1.0.0" ); - File file = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - file.delete(); - - artifactConverter.convert( artifact, targetRepository ); - checkWarnings( artifactConverter, 2 ); - - assertHasWarningReason( artifactConverter, Messages.getString( "failure.incorrect.artifactMetadata.versions" ) ); - - assertFalse( "Check artifact not created", file.exists() ); - - ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact ); - File metadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( metadata ) ); - assertFalse( "Check metadata not created", metadataFile.exists() ); - } - - public void testInvalidSourceSnapshotMetadata() - throws Exception - { - // test artifact is not converted when source snapshot metadata is invalid and returns failure - - createModernSourceRepository(); - - Artifact artifact = createArtifact( "test", "incorrectSnapshotMetadata", "1.0.0-20060102.030405-6" ); - File file = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - file.delete(); - - artifactConverter.convert( artifact, targetRepository ); - checkWarnings( artifactConverter, 2 ); - - assertHasWarningReason( artifactConverter, Messages.getString( "failure.incorrect.snapshotMetadata.snapshot" ) ); - - assertFalse( "Check artifact not created", file.exists() ); - - ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact ); - File metadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( metadata ) ); - assertFalse( "Check metadata not created", metadataFile.exists() ); - } - - public void testMergeArtifactMetadata() - throws Exception - { - // test artifact level metadata is merged when it already exists on successful conversion - - Artifact artifact = createArtifact( "test", "newversion-artifact", "1.0.1" ); - artifactConverter.convert( artifact, targetRepository ); - checkSuccess( artifactConverter ); - - File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - assertTrue( "Check artifact created", artifactFile.exists() ); - assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) ); - - artifact = createPomArtifact( artifact ); - File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ); - assertTrue( "Check POM created", pomFile.exists() ); - - compareFiles( sourcePomFile, pomFile ); - - ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact ); - File artifactMetadataFile = new File( targetRepository.getBasedir(), targetRepository - .pathOfRemoteRepositoryMetadata( artifactMetadata ) ); - assertTrue( "Check artifact metadata created", artifactMetadataFile.exists() ); - - File expectedMetadataFile = getTestFile( "src/test/expected-files/newversion-artifact-metadata.xml" ); - - compareFiles( expectedMetadataFile, artifactMetadataFile ); - } - - public void testSourceAndTargetRepositoriesMatch() - throws Exception - { - // test that it fails if the same - - ArtifactRepositoryFactory factory = (ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE ); - - sourceRepository = factory.createArtifactRepository( "source", targetRepository.getUrl(), targetRepository - .getLayout(), null, null ); - - Artifact artifact = createArtifact( "test", "repository-artifact", "1.0" ); - - try - { - artifactConverter.convert( artifact, targetRepository ); - fail( "Should have failed trying to convert within the same repository" ); - } - catch ( ArtifactConversionException e ) - { - // expected - assertEquals( "check message", Messages.getString( "exception.repositories.match" ), e.getMessage() ); - assertNull( "Check no additional cause", e.getCause() ); - } - } - - private Artifact createArtifact( String groupId, String artifactId, String version ) - { - Matcher matcher = Artifact.VERSION_FILE_PATTERN.matcher( version ); - String baseVersion; - if ( matcher.matches() ) - { - baseVersion = matcher.group( 1 ) + "-SNAPSHOT"; - } - else - { - baseVersion = version; - } - return createArtifact( groupId, artifactId, baseVersion, version, "jar" ); - } - - private Artifact createArtifact( String groupId, String artifactId, String baseVersion, String version, String type ) - { - Artifact artifact = artifactFactory.createArtifact( groupId, artifactId, version, null, type ); - artifact.setBaseVersion( baseVersion ); - artifact.setRepository( sourceRepository ); - artifact.setFile( new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ) ); - return artifact; - } - - private Artifact createPomArtifact( Artifact artifact ) - { - return createArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getBaseVersion(), artifact - .getVersion(), "pom" ); - } - - private static void compareFiles( File expectedPomFile, File pomFile ) - throws IOException - { - String expectedContent = normalizeString( org.apache.commons.io.FileUtils.readFileToString( expectedPomFile, null ) ); - String targetContent = normalizeString( org.apache.commons.io.FileUtils.readFileToString( pomFile, null ) ); - assertEquals( "Check file match between " + expectedPomFile + " and " + pomFile, expectedContent, targetContent ); - } - - private static String normalizeString( String path ) - { - return path.trim().replaceAll( "\r\n", "\n" ).replace( '\r', '\n' ).replaceAll( "<\\?xml .+\\?>", "" ); - } - - private void checkSuccess( ArtifactConverter converter ) - { - assertNotNull( "Warnings should never be null.", converter.getWarnings() ); - assertEquals( "Should have no warnings.", 0, countWarningMessages( converter ) ); - } - - private void checkWarnings( ArtifactConverter converter, int count ) - { - assertNotNull( "Warnings should never be null.", converter.getWarnings() ); - assertEquals( "Should have some warnings.", count, countWarningMessages( converter ) ); - } - - private int countWarningMessages( ArtifactConverter converter ) - { - int count = 0; - for ( Iterator it = converter.getWarnings().values().iterator(); it.hasNext(); ) - { - List values = (List) it.next(); - count += values.size(); - } - return count; - } - - private void assertHasWarningReason( ArtifactConverter converter, String reason ) - { - assertNotNull( "Warnings should never be null.", converter.getWarnings() ); - assertTrue( "Expecting 1 or more Warnings", countWarningMessages( converter ) > 0 ); - - for ( Iterator it = converter.getWarnings().values().iterator(); it.hasNext(); ) - { - List messages = (List) it.next(); - if ( messages.contains( reason ) ) - { - /* No need to check any furthor */ - return; - } - } - - /* didn't find it. */ - - for ( Iterator it = converter.getWarnings().entrySet().iterator(); it.hasNext(); ) - { - Map.Entry entry = (Entry) it.next(); - Artifact artifact = (Artifact) entry.getKey(); - System.out.println( "-Artifact: " + artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" - + artifact.getVersion() ); - List messages = (List) entry.getValue(); - for ( Iterator itmsgs = messages.iterator(); itmsgs.hasNext(); ) - { - String message = (String) itmsgs.next(); - System.out.println( " " + message ); - } - } - fail( "Unable to find message <" + reason + "> in warnings." ); - } - - private void createModernSourceRepository() - throws Exception - { - ArtifactRepositoryFactory factory = (ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE ); - - ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default" ); - - File sourceBase = getTestFile( "src/test/source-modern-repository" ); - sourceRepository = factory.createArtifactRepository( "source", sourceBase.toURL().toString(), layout, null, - null ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/resources/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverterTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/resources/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverterTest.xml deleted file mode 100644 index 1a3d5913e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/resources/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverterTest.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - org.apache.maven.archiva.converter.artifact.ArtifactConverter - force-repository-converter - org.apache.maven.archiva.converter.artifact.LegacyToDefaultConverter - LegacyToDefaultConverter - - - org.codehaus.plexus.digest.Digester - digesters - - - org.apache.maven.model.converter.ModelConverter - translator - - - org.apache.maven.artifact.factory.ArtifactFactory - artifactFactory - - - org.apache.maven.artifact.handler.manager.ArtifactHandlerManager - artifactHandlerManager - - - - true - false - - - - - org.apache.maven.archiva.converter.artifact.ArtifactConverter - dryrun-repository-converter - org.apache.maven.archiva.converter.artifact.LegacyToDefaultConverter - LegacyToDefaultConverter - - - org.codehaus.plexus.digest.Digester - digesters - - - org.apache.maven.model.converter.ModelConverter - translator - - - org.apache.maven.artifact.factory.ArtifactFactory - artifactFactory - - - org.apache.maven.artifact.handler.manager.ArtifactHandlerManager - artifactHandlerManager - - - - false - true - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.jar deleted file mode 100644 index 72af4bc10570756020552d23caa25003749de088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13 Ucmd1IOU^GUN=+{DO)=#H03_f9x&QzG diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom deleted file mode 100644 index b64e1d0f0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 3 - incorrectArtifactMetadata - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml deleted file mode 100644 index b393bcd3d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - test - incorrectArtifactMetadata - - - 0.9 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.jar deleted file mode 100644 index 72af4bc10570756020552d23caa25003749de088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13 Ucmd1IOU^GUN=+{DO)=#H03_f9x&QzG diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom deleted file mode 100644 index 929190af2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 3 - incorrectSnapshotMetadata - test - 1.0.0-20060102.030405-6 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 5980278b3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - test - incorrectSnapshotMetadata - 1.0.0-SNAPSHOT - - - 10 - 20060102.040506 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml deleted file mode 100644 index 3f9a0cef2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - test - incorrectSnapshotMetadata - - - 1.0.0-SNAPSHOT - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/artifact-one-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/artifact-one-1.0.0.jar deleted file mode 100644 index 5626abf0f72e58d7a153368ba57db4c673c0e171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4 Lcmd1LOXUIp1Kt5m diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/artifact-three-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/artifact-three-1.0.0.jar deleted file mode 100644 index 2bdf67abb163a4ffb2d7f3f0880c9fe5068ce782..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6 NcmXTPC`wJ`0ssh+0wVwb diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/artifact-two-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/artifact-two-1.0.0.jar deleted file mode 100644 index f719efd430d52bcfc8566a43b2eb655688d38871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4 LcmXRZ&*uUF1R()s diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/dryrun-artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/dryrun-artifact-1.0.0.jar deleted file mode 100644 index cbaf024e5e7fa87bdd8ad76b1393d9973585bc97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9 QcmYeT$Sf|&%uDA2021*7b^rhX diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/existing-artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/existing-artifact-1.0.0.jar deleted file mode 100644 index cbaf024e5e7fa87bdd8ad76b1393d9973585bc97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9 QcmYeT$Sf|&%uDA2021*7b^rhX diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar deleted file mode 100644 index 72af4bc10570756020552d23caa25003749de088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13 Ucmd1IOU^GUN=+{DO)=#H03_f9x&QzG diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md5 deleted file mode 100644 index 316d9a4eb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -379dcfcd1e6312cc859111f696047eb4 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar deleted file mode 100644 index f5812f3e58c13ea85ab61528dd70272d88a52921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14 Vcmd1IOU^GUN=+^a&PX)m0stzc1t9 - 4.0.0 - test - artifact-one - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom deleted file mode 100644 index 343291037..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - artifact-three - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom deleted file mode 100644 index 227470167..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - artifact-two - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom deleted file mode 100644 index 1953c5523..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom +++ /dev/null @@ -1,22 +0,0 @@ - - - - 4.0.0 - dryrun-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom deleted file mode 100644 index 74d5e12b4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 3 - incorrectMd5Artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom deleted file mode 100644 index fe3c7fd91..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 3 - incorrectSha1Artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom deleted file mode 100644 index a5a02c42d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 3 - maven-foo-plugin - org.apache.maven.plugins - 1.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom deleted file mode 100644 index fcfdaacb4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom +++ /dev/null @@ -1,22 +0,0 @@ - - - - 4.0.0 - modified-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom deleted file mode 100644 index f441c9a46..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom +++ /dev/null @@ -1,22 +0,0 @@ - - - - 4.0.0 - test - newversoin-artifact - 1.0.1 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom deleted file mode 100644 index ab112a296..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom +++ /dev/null @@ -1,27 +0,0 @@ - - 3 - relocated-v3artifact - test - 1.0.0 - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - relocated-test - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom deleted file mode 100644 index 00692be72..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom +++ /dev/null @@ -1,39 +0,0 @@ - - - - 3 - v3artifact - test - 1.0.0 - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom deleted file mode 100644 index a8428a8a4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - unmodified-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom deleted file mode 100644 index 5f347f371..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom +++ /dev/null @@ -1,48 +0,0 @@ - - - - 3 - ../project.xml - v3-warnings-artifact - test - 1.0.0 - - - 1.0 - 1.0 - 1_0 - - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom deleted file mode 100644 index d7ae8953b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom +++ /dev/null @@ -1,40 +0,0 @@ - - - - 3 - v3artifact - test - 1.0.0-20060105.130101-3 - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom deleted file mode 100644 index 3958a3358..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom +++ /dev/null @@ -1,40 +0,0 @@ - - - - 3 - v3artifact - test - 1.0.0-SNAPSHOT - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom deleted file mode 100644 index 5aed3437a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom +++ /dev/null @@ -1,24 +0,0 @@ - - 3 - v3artifact - test - 1.0.0 - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom deleted file mode 100644 index e4f36566a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom +++ /dev/null @@ -1,22 +0,0 @@ - - - - 4.0.0 - test - v4artifact - 1.0.0-20060111.120115-1 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom deleted file mode 100644 index be5b8b7e2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom +++ /dev/null @@ -1,22 +0,0 @@ - - - - 4.0.0 - test - v4artifact - 1.0.0-SNAPSHOT - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom deleted file mode 100644 index fa6e82b1e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - v4artifact - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar deleted file mode 100644 index 27597bc21f5a2e82ea2b85a880cb2521f1f626a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11 ScmXTT%gs;8Ov_A7;Q{~~fCMi9 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom deleted file mode 100644 index d23afd027..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - modified-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.jar deleted file mode 100644 index 27597bc21f5a2e82ea2b85a880cb2521f1f626a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11 ScmXTT%gs;8Ov_A7;Q{~~fCMi9 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom deleted file mode 100644 index e21492ebf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - newversion-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml deleted file mode 100644 index 42537e4c5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - test - newversion-artifact - - - 1.0.0 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.jar deleted file mode 100644 index 27597bc21f5a2e82ea2b85a880cb2521f1f626a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11 ScmXTT%gs;8Ov_A7;Q{~~fCMi9 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom deleted file mode 100644 index a8428a8a4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-artifact-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - unmodified-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/pom.xml deleted file mode 100644 index 0764fcc12..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - 4.0.0 - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - archiva-checksum - Archiva Checksum - - jar - - - - - maven-compiler-plugin - - 1.5 - 1.5 - - - - - - - - org.slf4j - slf4j-api - - - commons-lang - commons-lang - - - commons-io - commons-io - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/Checksum.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/Checksum.java deleted file mode 100644 index fd6943260..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/Checksum.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.apache.archiva.checksum; - -/* - * 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.IOException; -import java.io.InputStream; -import java.security.DigestInputStream; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.List; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.io.output.NullOutputStream; - -/** - * Checksum - simple checksum hashing routines. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class Checksum -{ - private static final int BUFFER_SIZE = 32768; - - public static void update( List checksums, InputStream stream ) - throws IOException - { - byte[] buffer = new byte[BUFFER_SIZE]; - int size = stream.read( buffer, 0, BUFFER_SIZE ); - while ( size >= 0 ) - { - for ( Checksum checksum : checksums ) - { - checksum.update( buffer, 0, size ); - } - size = stream.read( buffer, 0, BUFFER_SIZE ); - } - } - - protected final MessageDigest md; - - private ChecksumAlgorithm checksumAlgorithm; - - public Checksum( ChecksumAlgorithm checksumAlgorithm ) - { - this.checksumAlgorithm = checksumAlgorithm; - try - { - md = MessageDigest.getInstance( checksumAlgorithm.getAlgorithm() ); - } - catch ( NoSuchAlgorithmException e ) - { - // Not really possible, but here none-the-less - throw new IllegalStateException( "Unable to initialize MessageDigest algorithm " + checksumAlgorithm.getAlgorithm() - + " : " + e.getMessage(), e ); - } - } - - public String getChecksum() - { - return Hex.encode( md.digest() ); - } - - public ChecksumAlgorithm getAlgorithm() - { - return this.checksumAlgorithm; - } - - public void reset() - { - md.reset(); - } - - public Checksum update( byte[] buffer, int offset, int size ) - { - md.update( buffer, 0, size ); - return this; - } - - public Checksum update( InputStream stream ) - throws IOException - { - DigestInputStream dig = new DigestInputStream( stream, md ); - IOUtils.copy( dig, new NullOutputStream() ); - - return this; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumAlgorithm.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumAlgorithm.java deleted file mode 100644 index 69be9df06..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumAlgorithm.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.apache.archiva.checksum; - -/* - * 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.io.FilenameUtils; - -/** - * Enumeration of available ChecksumAlgorithm techniques. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public enum ChecksumAlgorithm { - SHA1("SHA-1", "sha1", "SHA1"), - MD5("MD5", "md5", "MD5"); - - public static ChecksumAlgorithm getByExtension( File file ) - { - String ext = FilenameUtils.getExtension( file.getName() ).toLowerCase(); - if ( ChecksumAlgorithm.SHA1.getExt().equals( ext ) ) - { - return ChecksumAlgorithm.SHA1; - } - else if ( ChecksumAlgorithm.MD5.getExt().equals( ext ) ) - { - return ChecksumAlgorithm.MD5; - } - - throw new IllegalArgumentException( "Filename " + file.getName() + " has no associated extension." ); - } - - /** - * The MessageDigest algorithm for this hash. - */ - private String algorithm; - - /** - * The file extension for this ChecksumAlgorithm. - */ - private String ext; - - /** - * The checksum type, the key that you see in checksum files. - */ - private String type; - - /** - * Construct a ChecksumAlgorithm - * - * @param algorithm the MessageDigest algorithm - * @param ext the file extension. - * @param type the checksum type. - */ - private ChecksumAlgorithm( String algorithm, String ext, String type ) - { - this.algorithm = algorithm; - this.ext = ext; - this.type = type; - } - - public String getAlgorithm() - { - return algorithm; - } - - public String getExt() - { - return ext; - } - - public String getType() - { - return type; - } - - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksummedFile.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksummedFile.java deleted file mode 100644 index 6b5657121..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksummedFile.java +++ /dev/null @@ -1,354 +0,0 @@ -package org.apache.archiva.checksum; - -/* - * 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.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ChecksummedFile - * - *
- * Terminology: - *
Checksum File
- *
The file that contains the previously calculated checksum value for the reference file. - * This is a text file with the extension ".sha1" or ".md5", and contains a single entry - * consisting of an optional reference filename, and a checksum string. - *
- *
Reference File
- *
The file that is being referenced in the checksum file.
- *
- * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ChecksummedFile -{ - private Logger log = LoggerFactory.getLogger( ChecksummedFile.class ); - - private final File referenceFile; - - /** - * Construct a ChecksummedFile object. - * - * @param referenceFile - */ - public ChecksummedFile( final File referenceFile ) - { - this.referenceFile = referenceFile; - } - - /** - * Calculate the checksum based on a given checksum. - * - * @param checksumAlgorithm the algorithm to use. - * @return the checksum string for the file. - * @throws IOException if unable to calculate the checksum. - */ - public String calculateChecksum( ChecksumAlgorithm checksumAlgorithm ) - throws IOException - { - FileInputStream fis = null; - try - { - Checksum checksum = new Checksum( checksumAlgorithm ); - fis = new FileInputStream( referenceFile ); - checksum.update( fis ); - return checksum.getChecksum(); - } - finally - { - IOUtils.closeQuietly( fis ); - } - } - - /** - * Creates a checksum file of the provided referenceFile. - * @param checksumAlgorithm the hash to use. - * - * @return the checksum File that was created. - * @throws IOException if there was a problem either reading the referenceFile, or writing the checksum file. - */ - public File createChecksum( ChecksumAlgorithm checksumAlgorithm ) - throws IOException - { - File checksumFile = new File( referenceFile.getAbsolutePath() + "." + checksumAlgorithm.getExt() ); - String checksum = calculateChecksum( checksumAlgorithm ); - FileUtils.writeStringToFile( checksumFile, checksum + " " + referenceFile.getName() ); - return checksumFile; - } - - /** - * Get the checksum file for the reference file and hash. - * - * @param checksumAlgorithm the hash that we are interested in. - * @return the checksum file to return - */ - public File getChecksumFile( ChecksumAlgorithm checksumAlgorithm ) - { - return new File( referenceFile.getAbsolutePath() + "." + checksumAlgorithm.getExt() ); - } - - /** - *

- * Given a checksum file, check to see if the file it represents is valid according to the checksum. - *

- * - *

- * NOTE: Only supports single file checksums of type MD5 or SHA1. - *

- * - * @param checksumFile the algorithms to check for. - * @return true if the checksum is valid for the file it represents. or if the checksum file does not exist. - * @throws IOException if the reading of the checksumFile or the file it refers to fails. - */ - public boolean isValidChecksum( ChecksumAlgorithm algorithm ) - throws IOException - { - return isValidChecksums( new ChecksumAlgorithm[] { algorithm } ); - } - - /** - * Of any checksum files present, validate that the reference file conforms - * the to the checksum. - * - * @param algorithms the algorithms to check for. - * @return true if the checksums report that the the reference file is valid, false if invalid. - */ - public boolean isValidChecksums( ChecksumAlgorithm algorithms[] ) - { - FileInputStream fis = null; - try - { - List checksums = new ArrayList(); - // Create checksum object for each algorithm. - for ( ChecksumAlgorithm checksumAlgorithm : algorithms ) - { - File checksumFile = getChecksumFile( checksumAlgorithm ); - - // Only add algorithm if checksum file exists. - if ( checksumFile.exists() ) - { - checksums.add( new Checksum( checksumAlgorithm ) ); - } - } - - // Any checksums? - if ( checksums.isEmpty() ) - { - // No checksum objects, no checksum files, default to is invalid. - return false; - } - - // Parse file once, for all checksums. - try - { - fis = new FileInputStream( referenceFile ); - Checksum.update( checksums, fis ); - } - catch ( IOException e ) - { - log.warn( "Unable to update checksum:" + e.getMessage() ); - return false; - } - - boolean valid = true; - - // check the checksum files - try - { - for ( Checksum checksum : checksums ) - { - ChecksumAlgorithm checksumAlgorithm = checksum.getAlgorithm(); - File checksumFile = getChecksumFile( checksumAlgorithm ); - - String rawChecksum = FileUtils.readFileToString( checksumFile ); - String expectedChecksum = parseChecksum( rawChecksum, checksumAlgorithm, referenceFile.getName() ); - - if ( StringUtils.equalsIgnoreCase( expectedChecksum, checksum.getChecksum() ) == false ) - { - valid = false; - } - } - } - catch ( IOException e ) - { - log.warn( "Unable to read / parse checksum: " + e.getMessage() ); - return false; - } - - return valid; - } - finally - { - IOUtils.closeQuietly( fis ); - } - } - - /** - * Fix or create checksum files for the reference file. - * - * @param algorithms the hashes to check for. - * @return true if checksums were created successfully. - */ - public boolean fixChecksums( ChecksumAlgorithm algorithms[] ) - { - List checksums = new ArrayList(); - // Create checksum object for each algorithm. - for ( ChecksumAlgorithm checksumAlgorithm : algorithms ) - { - checksums.add( new Checksum( checksumAlgorithm ) ); - } - - // Any checksums? - if ( checksums.isEmpty() ) - { - // No checksum objects, no checksum files, default to is valid. - return true; - } - - FileInputStream fis = null; - try - { - // Parse file once, for all checksums. - fis = new FileInputStream( referenceFile ); - Checksum.update( checksums, fis ); - } - catch ( IOException e ) - { - log.warn( e.getMessage(), e ); - return false; - } - finally - { - IOUtils.closeQuietly( fis ); - } - - boolean valid = true; - - // check the hash files - for ( Checksum checksum : checksums ) - { - ChecksumAlgorithm checksumAlgorithm = checksum.getAlgorithm(); - try - { - File checksumFile = getChecksumFile( checksumAlgorithm ); - String actualChecksum = checksum.getChecksum(); - - if ( checksumFile.exists() ) - { - String rawChecksum = FileUtils.readFileToString( checksumFile ); - String expectedChecksum = parseChecksum( rawChecksum, checksumAlgorithm, referenceFile.getName() ); - - if ( StringUtils.equalsIgnoreCase( expectedChecksum, actualChecksum ) == false ) - { - // create checksum (again) - FileUtils.writeStringToFile( checksumFile, actualChecksum + " " + referenceFile.getName() ); - } - } - else - { - FileUtils.writeStringToFile( checksumFile, actualChecksum + " " + referenceFile.getName() ); - } - } - catch ( IOException e ) - { - log.warn( e.getMessage(), e ); - valid = false; - } - } - - return valid; - - } - - private boolean isValidChecksumPattern( String filename, String path ) - { - // check if it is a remote metadata file - Pattern pattern = Pattern.compile( "maven-metadata-\\S*.xml" ); - Matcher m = pattern.matcher( path ); - if( m.matches() ) - { - return filename.endsWith( path ) || ( "-".equals( filename ) ) - || filename.endsWith( "maven-metadata.xml" ); - } - - return filename.endsWith( path ) || ( "-".equals( filename ) ); - } - - /** - * Parse a checksum string. - * - * Validate the expected path, and expected checksum algorithm, then return - * the trimmed checksum hex string. - * - * @param rawChecksumString - * @param expectedHash - * @param expectedPath - * @return - * @throws IOException - */ - public String parseChecksum( String rawChecksumString, ChecksumAlgorithm expectedHash, String expectedPath ) - throws IOException - { - String trimmedChecksum = rawChecksumString.replace( '\n', ' ' ).trim(); - - // Free-BSD / openssl - String regex = expectedHash.getType() + "\\s*\\(([^)]*)\\)\\s*=\\s*([a-fA-F0-9]+)"; - Matcher m = Pattern.compile( regex ).matcher( trimmedChecksum ); - if ( m.matches() ) - { - String filename = m.group( 1 ); - if ( !isValidChecksumPattern( filename, expectedPath ) ) - { - throw new IOException( "Supplied checksum file '" + filename + "' does not match expected file: '" - + expectedPath + "'" ); - } - trimmedChecksum = m.group( 2 ); - } - else - { - // GNU tools - m = Pattern.compile( "([a-fA-F0-9]+)\\s+\\*?(.+)" ).matcher( trimmedChecksum ); - if ( m.matches() ) - { - String filename = m.group( 2 ); - if ( !isValidChecksumPattern( filename, expectedPath ) ) - { - throw new IOException( "Supplied checksum file '" + filename + "' does not match expected file: '" - + expectedPath + "'" ); - } - trimmedChecksum = m.group( 1 ); - } - } - return trimmedChecksum; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/Hex.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/Hex.java deleted file mode 100644 index 03f65290e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/Hex.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.apache.archiva.checksum; - -/** - * Hex - simple hex conversions. - * - * @version $Id$ - */ -public class Hex -{ - private static final byte[] DIGITS = "0123456789abcdef".getBytes(); - - public static String encode( byte[] data ) - { - int l = data.length; - - byte[] raw = new byte[l * 2]; - - for ( int i = 0, j = 0; i < l; i++ ) - { - raw[j++] = DIGITS[( 0xF0 & data[i] ) >>> 4]; - raw[j++] = DIGITS[0x0F & data[i]]; - } - - return new String( raw ); - } - - public static String encode( String raw ) - { - return encode( raw.getBytes() ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/AbstractChecksumTestCase.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/AbstractChecksumTestCase.java deleted file mode 100644 index 73f163672..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/AbstractChecksumTestCase.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.apache.archiva.checksum; - -/* - * 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 junit.framework.TestCase; - -/** - * AbstractChecksumTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractChecksumTestCase - extends TestCase -{ - private File basedir; - - public File getBasedir() - { - if ( basedir == null ) - { - String sysprop = System.getProperty( "basedir" ); - if ( sysprop != null ) - { - basedir = new File( sysprop ); - } - else - { - basedir = new File( System.getProperty( "user.dir" ) ); - } - } - return basedir; - } - - public File getTestOutputDir() - { - File dir = new File( getBasedir(), "target/test-output/" + getName() ); - if ( dir.exists() == false ) - { - if ( dir.mkdirs() == false ) - { - fail( "Unable to create test output directory: " + dir.getAbsolutePath() ); - } - } - return dir; - } - - public File getTestResource( String filename ) - { - File dir = new File( getBasedir(), "src/test/resources" ); - File file = new File( dir, filename ); - if ( file.exists() == false ) - { - fail( "Test Resource does not exist: " + file.getAbsolutePath() ); - } - return file; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumAlgorithmTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumAlgorithmTest.java deleted file mode 100644 index f6b91ac97..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumAlgorithmTest.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.apache.archiva.checksum; - -/* - * 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 junit.framework.TestCase; - -/** - * ChecksumAlgorithmTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ChecksumAlgorithmTest - extends TestCase -{ - public void testGetHashByExtensionSha1() - { - assertEquals( ChecksumAlgorithm.SHA1, ChecksumAlgorithm.getByExtension( new File( "something.jar.sha1" ) ) ); - assertEquals( ChecksumAlgorithm.SHA1, ChecksumAlgorithm.getByExtension( new File( "OTHER.JAR.SHA1" ) ) ); - } - - public void testGetHashByExtensionMd5() - { - assertEquals( ChecksumAlgorithm.MD5, ChecksumAlgorithm.getByExtension( new File( "something.jar.md5" ) ) ); - assertEquals( ChecksumAlgorithm.MD5, ChecksumAlgorithm.getByExtension( new File( "OTHER.JAR.MD5" ) ) ); - } - - public void testGetHashByExtensionInvalid() - { - try - { - ChecksumAlgorithm.getByExtension( new File( "something.jar" ) ); - fail( "Expected " + IllegalArgumentException.class.getName() ); - } - catch ( IllegalArgumentException e ) - { - /* expected path */ - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumTest.java deleted file mode 100644 index f8889e70a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumTest.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.apache.archiva.checksum; - -/* - * 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.ByteArrayInputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -/** - * ChecksumTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ChecksumTest - extends AbstractChecksumTestCase -{ - private static final String UNSET_SHA1 = "da39a3ee5e6b4b0d3255bfef95601890afd80709"; - - public void testConstructSha1() - { - Checksum checksum = new Checksum( ChecksumAlgorithm.SHA1 ); - assertEquals( "Checksum.algorithm", checksum.getAlgorithm().getAlgorithm(), ChecksumAlgorithm.SHA1 - .getAlgorithm() ); - } - - public void testConstructMd5() - { - Checksum checksum = new Checksum( ChecksumAlgorithm.MD5 ); - assertEquals( "Checksum.algorithm", checksum.getAlgorithm().getAlgorithm(), ChecksumAlgorithm.MD5 - .getAlgorithm() ); - } - - public void testUpdate() - { - Checksum checksum = new Checksum( ChecksumAlgorithm.SHA1 ); - byte buf[] = ( "You know, I'm sick of following my dreams, man. " - + "I'm just going to ask where they're going and hook up with 'em later. - Mitch Hedberg" ).getBytes(); - checksum.update( buf, 0, buf.length ); - assertEquals( "Checksum", "e396119ae0542e85a74759602fd2f81e5d36d762", checksum.getChecksum() ); - } - - public void testUpdateMany() - throws IOException - { - Checksum checksumSha1 = new Checksum( ChecksumAlgorithm.SHA1 ); - Checksum checksumMd5 = new Checksum( ChecksumAlgorithm.MD5 ); - List checksums = new ArrayList(); - checksums.add( checksumSha1 ); - checksums.add( checksumMd5 ); - - byte buf[] = ( "You know, I'm sick of following my dreams, man. " - + "I'm just going to ask where they're going and hook up with 'em later. - Mitch Hedberg" ).getBytes(); - - ByteArrayInputStream stream = new ByteArrayInputStream( buf ); - Checksum.update( checksums, stream ); - - assertEquals( "Checksum SHA1", "e396119ae0542e85a74759602fd2f81e5d36d762", checksumSha1.getChecksum() ); - assertEquals( "Checksum MD5", "21c2c5ca87ec018adacb2e2fb3432219", checksumMd5.getChecksum() ); - } - - public void testUpdateWholeUpdatePartial() - { - Checksum checksum = new Checksum( ChecksumAlgorithm.SHA1 ); - assertEquals( "Checksum unset", UNSET_SHA1, checksum.getChecksum() ); - - String expected = "066c2cbbc8cdaecb8ff97dcb84502462d6f575f3"; - byte reesepieces[] = "eatagramovabits".getBytes(); - checksum.update( reesepieces, 0, reesepieces.length ); - String actual = checksum.getChecksum(); - - assertEquals( "Expected", expected, actual ); - - // Reset the checksum. - checksum.reset(); - assertEquals( "Checksum unset", UNSET_SHA1, checksum.getChecksum() ); - - // Now parse it again in 3 pieces. - checksum.update( reesepieces, 0, 5 ); - checksum.update( reesepieces, 5, 5 ); - checksum.update( reesepieces, 10, reesepieces.length - 10 ); - - assertEquals( "Expected", expected, actual ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksummedFileTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksummedFileTest.java deleted file mode 100644 index 16377079b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksummedFileTest.java +++ /dev/null @@ -1,269 +0,0 @@ -package org.apache.archiva.checksum; - -/* - * 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.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; - -/** - * ChecksummedFileTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ChecksummedFileTest - extends AbstractChecksumTestCase -{ - /** SHA1 checksum from www.ibiblio.org/maven2, incuding file path */ - private static final String SERVLETAPI_SHA1 = "bcc82975c0f9c681fcb01cc38504c992553e93ba"; - - private static final String REMOTE_METADATA_SHA1 = "da39a3ee5e6b4b0d3255bfef95601890afd80709"; - - private static final String REMOTE_METADATA_MD5 = "d41d8cd98f00b204e9800998ecf8427e"; - - private File createTestableJar( String filename ) - throws IOException - { - File srcFile = getTestResource( filename ); - File destFile = new File( getTestOutputDir(), srcFile.getName() ); - FileUtils.copyFile( srcFile, destFile ); - return destFile; - } - - private File createTestableJar( String filename, boolean copySha1, boolean copyMd5 ) - throws IOException - { - File srcFile = getTestResource( filename ); - File jarFile = new File( getTestOutputDir(), srcFile.getName() ); - FileUtils.copyFile( srcFile, jarFile ); - - if ( copySha1 ) - { - File srcSha1 = new File( srcFile.getAbsolutePath() + ".sha1" ); - File sha1File = new File( jarFile.getAbsolutePath() + ".sha1" ); - - FileUtils.copyFile( srcSha1, sha1File ); - } - - if ( copyMd5 ) - { - File srcMd5 = new File( srcFile.getAbsolutePath() + ".md5" ); - File md5File = new File( jarFile.getAbsolutePath() + ".md5" ); - - FileUtils.copyFile( srcMd5, md5File ); - } - - return jarFile; - } - - public void testCalculateChecksumMd5() - throws IOException - { - File testfile = getTestResource( "examples/redback-authz-open.jar" ); - ChecksummedFile checksummedFile = new ChecksummedFile( testfile ); - String expectedChecksum = "f42047fe2e177ac04d0df7aa44d408be"; - String actualChecksum = checksummedFile.calculateChecksum( ChecksumAlgorithm.MD5 ); - assertEquals( expectedChecksum, actualChecksum ); - } - - public void testCalculateChecksumSha1() - throws IOException - { - File testfile = getTestResource( "examples/redback-authz-open.jar" ); - ChecksummedFile checksummedFile = new ChecksummedFile( testfile ); - String expectedChecksum = "2bb14b388973351b0a4dfe11d171965f59cc61a1"; - String actualChecksum = checksummedFile.calculateChecksum( ChecksumAlgorithm.SHA1 ); - assertEquals( expectedChecksum, actualChecksum ); - } - - public void testCreateChecksum() - throws IOException - { - File testableJar = createTestableJar( "examples/redback-authz-open.jar" ); - ChecksummedFile checksummedFile = new ChecksummedFile( testableJar ); - checksummedFile.createChecksum( ChecksumAlgorithm.SHA1 ); - File hashFile = checksummedFile.getChecksumFile( ChecksumAlgorithm.SHA1 ); - assertTrue( "ChecksumAlgorithm file should exist.", hashFile.exists() ); - String hashContents = FileUtils.readFileToString( hashFile ); - hashContents = StringUtils.trim( hashContents ); - assertEquals( "2bb14b388973351b0a4dfe11d171965f59cc61a1 redback-authz-open.jar", hashContents ); - } - - public void testFixChecksum() - throws IOException - { - File jarFile = createTestableJar( "examples/redback-authz-open.jar" ); - File sha1File = new File( jarFile.getAbsolutePath() + ".sha1" ); - - // A typical scenario seen in the wild. - FileUtils.writeStringToFile( sha1File, "sha1sum: redback-authz-open.jar: No such file or directory" ); - - ChecksummedFile checksummedFile = new ChecksummedFile( jarFile ); - assertFalse( "ChecksummedFile.isValid(SHA1) == false", checksummedFile.isValidChecksum( ChecksumAlgorithm.SHA1 ) ); - - boolean fixed = checksummedFile.fixChecksums( new ChecksumAlgorithm[] { ChecksumAlgorithm.SHA1 } ); - assertTrue( "ChecksummedFile.fixChecksums() == true", fixed ); - - assertTrue( "ChecksummedFile.isValid(SHA1) == true", checksummedFile.isValidChecksum( ChecksumAlgorithm.SHA1 ) ); - } - - public void testGetChecksumFile() - { - ChecksummedFile checksummedFile = new ChecksummedFile( new File( "test.jar" ) ); - assertEquals( "test.jar.sha1", checksummedFile.getChecksumFile( ChecksumAlgorithm.SHA1 ).getName() ); - } - - public void testIsValidChecksum() - throws IOException - { - File jarFile = createTestableJar( "examples/redback-authz-open.jar", true, false ); - - ChecksummedFile checksummedFile = new ChecksummedFile( jarFile ); - assertTrue( "ChecksummedFile.isValid(SHA1)", checksummedFile.isValidChecksum( ChecksumAlgorithm.SHA1 ) ); - } - - public void testIsValidChecksumInvalidSha1Format() - throws IOException - { - File jarFile = createTestableJar( "examples/redback-authz-open.jar" ); - File sha1File = new File( jarFile.getAbsolutePath() + ".sha1" ); - - // A typical scenario seen in the wild. - FileUtils.writeStringToFile( sha1File, "sha1sum: redback-authz-open.jar: No such file or directory" ); - - ChecksummedFile checksummedFile = new ChecksummedFile( jarFile ); - assertFalse( "ChecksummedFile.isValid(SHA1)", checksummedFile.isValidChecksum( ChecksumAlgorithm.SHA1 ) ); - - } - - public void testIsValidChecksumNoChecksumFiles() - throws IOException - { - File jarFile = createTestableJar( "examples/redback-authz-open.jar", false, false ); - - ChecksummedFile checksummedFile = new ChecksummedFile( jarFile ); - assertFalse( "ChecksummedFile.isValid(SHA1,MD5)", checksummedFile.isValidChecksums( new ChecksumAlgorithm[] { - ChecksumAlgorithm.SHA1, - ChecksumAlgorithm.MD5 } ) ); - - } - - public void testIsValidChecksumSha1AndMd5() - throws IOException - { - File jarFile = createTestableJar( "examples/redback-authz-open.jar", true, true ); - - ChecksummedFile checksummedFile = new ChecksummedFile( jarFile ); - assertTrue( "ChecksummedFile.isValid(SHA1,MD5)", checksummedFile.isValidChecksums( new ChecksumAlgorithm[] { - ChecksumAlgorithm.SHA1, - ChecksumAlgorithm.MD5 } ) ); - } - - public void testIsValidChecksumSha1NoMd5() - throws IOException - { - File jarFile = createTestableJar( "examples/redback-authz-open.jar", true, false ); - - ChecksummedFile checksummedFile = new ChecksummedFile( jarFile ); - assertTrue( "ChecksummedFile.isValid(SHA1)", checksummedFile.isValidChecksums( new ChecksumAlgorithm[] { - ChecksumAlgorithm.SHA1, - ChecksumAlgorithm.MD5 } ) ); - - } - - public void testParseChecksum() - throws IOException - { - String expected = SERVLETAPI_SHA1 - + " /home/projects/maven/repository-staging/to-ibiblio/maven2/servletapi/servletapi/2.4/servletapi-2.4.pom"; - - File testfile = getTestResource( "examples/redback-authz-open.jar" ); - ChecksummedFile checksummedFile = new ChecksummedFile( testfile ); - String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.SHA1, - "servletapi/servletapi/2.4/servletapi-2.4.pom" ); - assertEquals( "Checksum doesn't match", SERVLETAPI_SHA1, s ); - - } - - public void testParseChecksumAltDash1() - throws IOException - { - String expected = SERVLETAPI_SHA1 + " -"; - File testfile = getTestResource( "examples/redback-authz-open.jar" ); - ChecksummedFile checksummedFile = new ChecksummedFile( testfile ); - String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.SHA1, - "servletapi/servletapi/2.4/servletapi-2.4.pom" ); - assertEquals( "Checksum doesn't match", SERVLETAPI_SHA1, s ); - } - - public void testParseChecksumAltDash2() - throws IOException - { - String expected = "SHA1(-)=" + SERVLETAPI_SHA1; - File testfile = getTestResource( "examples/redback-authz-open.jar" ); - ChecksummedFile checksummedFile = new ChecksummedFile( testfile ); - String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.SHA1, - "servletapi/servletapi/2.4/servletapi-2.4.pom" ); - assertEquals( "Checksum doesn't match", SERVLETAPI_SHA1, s ); - } - - public void testRemoteMetadataChecksumFilePathSha1() - throws IOException - { - String expected = REMOTE_METADATA_SHA1 + " /home/test/repository/examples/metadata/maven-metadata.xml"; - File testfile = getTestResource( "examples/metadata/maven-metadata-remote.xml" ); - ChecksummedFile checksummedFile = new ChecksummedFile( testfile ); - - try - { - String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.SHA1, - "maven-metadata-remote.xml" ); - assertEquals( "Checksum doesn't match", REMOTE_METADATA_SHA1, s ); - } - catch ( IOException e ) - { - e.printStackTrace(); - fail( "IOException should not occur." ); - } - } - - public void testRemoteMetadataChecksumFilePathMd5() - throws IOException - { - String expected = REMOTE_METADATA_MD5 + " ./examples/metadata/maven-metadata.xml"; - File testfile = getTestResource( "examples/metadata/maven-metadata-remote.xml" ); - ChecksummedFile checksummedFile = new ChecksummedFile( testfile ); - - try - { - String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.MD5, - "maven-metadata-remote.xml" ); - assertEquals( "Checksum doesn't match", REMOTE_METADATA_MD5, s ); - } - catch ( IOException e ) - { - e.printStackTrace(); - fail( "IOException should not occur." ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.md5 deleted file mode 100644 index 8f9a626ff..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -d41d8cd98f00b204e9800998ecf8427e ./examples/metadata/maven-metadata.xml \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.sha1 deleted file mode 100644 index e87d16529..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -da39a3ee5e6b4b0d3255bfef95601890afd80709 /home/test/repository/examples/metadata/maven-metadata.xml \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-authz-open.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-authz-open.jar deleted file mode 100644 index fada8a200474231848bf852f0710fdfa3949d782..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4080 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 aXz(~oXshGlA7Y=y{N-T&3Bd6Ct@VF*?Jyt! diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-keys-api.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-keys-api.jar.md5 deleted file mode 100644 index e5e4348c6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-keys-api.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -MD5 ("redback-keys-api.jar") = 5628d13ea40c238a049d8f104811485c diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-keys-api.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-keys-api.jar.sha1 deleted file mode 100644 index d9395602d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/redback-keys-api.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -SHA1 ("redback-keys-api.jar") = 266548fcba2c32b3999291e8303d58813c3794e3 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/pom.xml deleted file mode 100644 index 2be615090..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/pom.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - 4.0.0 - archiva-common - Archiva Base :: Common - - - - commons-lang - commons-lang - - - commons-io - commons-io - - - org.slf4j - slf4j-api - - - org.codehaus.plexus - plexus-component-api - - - org.codehaus.plexus - plexus-spring - test - - - xalan - xalan - 2.7.0 - - - dom4j - dom4j - 1.6.1 - test - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/ArchivaException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/ArchivaException.java deleted file mode 100644 index 84837d7b8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/ArchivaException.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.apache.maven.archiva.common; - -/* - * 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. - */ - -/** - * ArchivaException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaException - extends Exception -{ - public ArchivaException( String message, Throwable cause ) - { - super( message, cause ); - } - - public ArchivaException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/BaseFile.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/BaseFile.java deleted file mode 100644 index 0baf09d6a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/BaseFile.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.apache.maven.archiva.common.utils; - -/* - * 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.net.URI; - -/** - * BaseFile - convenient File object that tracks the Base Directory and can provide relative path values - * for the file object based on that Base Directory value. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BaseFile - extends File -{ - private File baseDir; - - public BaseFile( File pathFile ) - { - this( pathFile.getAbsolutePath() ); - } - - public BaseFile( File repoDir, File pathFile ) - { - this( repoDir, PathUtil.getRelative( repoDir.getAbsolutePath(), pathFile ) ); - } - - public BaseFile( File parent, String child ) - { - super( parent, child ); - this.baseDir = parent; - } - - public BaseFile( String pathname ) - { - super( pathname ); - - // Calculate the top level directory. - - File parent = this; - while ( parent.getParentFile() != null ) - { - parent = parent.getParentFile(); - } - - this.baseDir = parent; - } - - public BaseFile( String repoDir, File pathFile ) - { - this( new File( repoDir ), pathFile ); - } - - public BaseFile( String parent, String child ) - { - super( parent, child ); - this.baseDir = new File( parent ); - } - - public BaseFile( URI uri ) - { - super( uri ); // only to satisfy java compiler. - throw new IllegalStateException( "The " + BaseFile.class.getName() - + " object does not support URI construction." ); - } - - public File getBaseDir() - { - return baseDir; - } - - public String getRelativePath() - { - return PathUtil.getRelative( this.baseDir.getAbsolutePath(), this ); - } - - public void setBaseDir( File baseDir ) - { - this.baseDir = baseDir; - } - - public void setBaseDir( String repoDir ) - { - setBaseDir( new File( repoDir ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/DateUtil.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/DateUtil.java deleted file mode 100644 index dd980b396..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/DateUtil.java +++ /dev/null @@ -1,130 +0,0 @@ -package org.apache.maven.archiva.common.utils; - -/* - * 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.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; - -/** - * DateUtil - some (not-so) common date utility methods. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DateUtil -{ - public static String getDuration( long duration ) - { - return getDuration( new Date( 0 ), new Date( duration ) ); - } - - public static String getDuration( long ms1, long ms2 ) - { - return getDuration( new Date( ms1 ), new Date( ms2 ) ); - } - - public static String getDuration( Date d1, Date d2 ) - { - Calendar cal1 = new GregorianCalendar(); - cal1.setTime( d1 ); - - Calendar cal2 = new GregorianCalendar(); - cal2.setTime( d2 ); - - return getDuration( cal1, cal2 ); - } - - public static String getDuration( Calendar cal1, Calendar cal2 ) - { - int year1 = cal1.get( Calendar.YEAR ); - int day1 = cal1.get( Calendar.DAY_OF_YEAR ); - int hour1 = cal1.get( Calendar.HOUR_OF_DAY ); - int min1 = cal1.get( Calendar.MINUTE ); - int sec1 = cal1.get( Calendar.SECOND ); - int ms1 = cal1.get( Calendar.MILLISECOND ); - - int year2 = cal2.get( Calendar.YEAR ); - int day2 = cal2.get( Calendar.DAY_OF_YEAR ); - int hour2 = cal2.get( Calendar.HOUR_OF_DAY ); - int min2 = cal2.get( Calendar.MINUTE ); - int sec2 = cal2.get( Calendar.SECOND ); - int ms2 = cal2.get( Calendar.MILLISECOND ); - - int leftDays = ( day1 - day2 ) + ( year1 - year2 ) * 365; - int leftHours = hour2 - hour1; - int leftMins = min2 - min1; - int leftSeconds = sec2 - sec1; - int leftMilliSeconds = ms2 - ms1; - - if ( leftMilliSeconds < 0 ) - { - leftMilliSeconds += 1000; - --leftSeconds; - } - - if ( leftSeconds < 0 ) - { - leftSeconds += 60; - --leftMins; - } - - if ( leftMins < 0 ) - { - leftMins += 60; - --leftHours; - } - - if ( leftHours < 0 ) - { - leftHours += 24; - --leftDays; - } - - StringBuffer interval = new StringBuffer(); - - appendInterval( interval, leftDays, "Day" ); - appendInterval( interval, leftHours, "Hour" ); - appendInterval( interval, leftMins, "Minute" ); - appendInterval( interval, leftSeconds, "Second" ); - appendInterval( interval, leftMilliSeconds, "Millisecond" ); - - return interval.toString(); - } - - private static void appendInterval( StringBuffer interval, int count, String type ) - { - if ( count > 0 ) - { - if ( interval.length() > 0 ) - { - interval.append( " " ); - } - - interval.append( count ); - interval.append( " " ).append( type ); - if ( count > 1 ) - { - interval.append( "s" ); - } - } - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/PathUtil.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/PathUtil.java deleted file mode 100644 index 836838e41..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/PathUtil.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.apache.maven.archiva.common.utils; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.lang.StringUtils; - -import java.io.File; -import java.net.MalformedURLException; - -/** - * PathUtil - simple utility methods for path manipulation. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class PathUtil -{ - public static String toUrl( String path ) - { - // Is our work already done for us? - if ( path.startsWith( "file:/" ) ) - { - return path; - } - - return toUrl( new File( path ) ); - } - - public static String toUrl( File file ) - { - try - { - return file.toURL().toExternalForm(); - } - catch ( MalformedURLException e ) - { - String pathCorrected = StringUtils.replaceChars( file.getAbsolutePath(), '\\', '/' ); - if ( pathCorrected.startsWith( "file:/" ) ) - { - return pathCorrected; - } - - return "file://" + pathCorrected; - } - } - - /** - * Given a basedir and a child file, return the relative path to the child. - * - * @param basedir the basedir. - * @param file the file to get the relative path for. - * @return the relative path to the child. (NOTE: this path will NOT start with a {@link File#separator} character) - */ - public static String getRelative( String basedir, File file ) - { - return getRelative( basedir, file.getAbsolutePath() ); - } - - /** - * Given a basedir and a child file, return the relative path to the child. - * - * @param basedir the basedir. - * @param child the child path (can be a full path) - * @return the relative path to the child. (NOTE: this path will NOT start with a {@link File#separator} character) - */ - public static String getRelative( String basedir, String child ) - { - if ( basedir.endsWith( "/" ) || basedir.endsWith( "\\" ) ) - { - basedir = basedir.substring( 0, basedir.length() - 1 ); - } - - if ( child.startsWith( basedir ) ) - { - // simple solution. - return child.substring( basedir.length() + 1 ); - } - - String absoluteBasedir = new File( basedir ).getAbsolutePath(); - if ( child.startsWith( absoluteBasedir ) ) - { - // resolved basedir solution. - return child.substring( absoluteBasedir.length() + 1 ); - } - - // File is not within basedir. - throw new IllegalStateException( "Unable to obtain relative path of file " + child - + ", it is not within basedir " + basedir + "." ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/Slf4JPlexusLogger.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/Slf4JPlexusLogger.java deleted file mode 100644 index e186d2c45..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/Slf4JPlexusLogger.java +++ /dev/null @@ -1,130 +0,0 @@ -package org.apache.maven.archiva.common.utils; - -/* - * 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.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Slf4JPlexusLogger - temporary logger to provide an Slf4j Logger to those components - * outside of the archiva codebase that require a plexus logger. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class Slf4JPlexusLogger implements org.codehaus.plexus.logging.Logger { - private Logger log; - - public Slf4JPlexusLogger(Class clazz) { - log = LoggerFactory.getLogger(clazz); - } - - public Slf4JPlexusLogger(String name) { - log = LoggerFactory.getLogger(name); - } - - public void debug(String message) { - log.debug(message); - } - - public void debug(String message, Throwable throwable) { - log.debug(message, throwable); - } - - public void error(String message) { - log.error(message); - } - - public void error(String message, Throwable throwable) { - log.error(message, throwable); - } - - public void fatalError(String message) { - log.error(message); - } - - public void fatalError(String message, Throwable throwable) { - log.error(message, throwable); - } - - public org.codehaus.plexus.logging.Logger getChildLogger(String name) { - return new Slf4JPlexusLogger(log.getName() + "." + name); - } - - public String getName() { - return log.getName(); - } - - public int getThreshold() { - if (log.isTraceEnabled()) { - return org.codehaus.plexus.logging.Logger.LEVEL_DEBUG; - } else if (log.isDebugEnabled()) { - return org.codehaus.plexus.logging.Logger.LEVEL_DEBUG; - } else if (log.isInfoEnabled()) { - return org.codehaus.plexus.logging.Logger.LEVEL_INFO; - } else if (log.isWarnEnabled()) { - return org.codehaus.plexus.logging.Logger.LEVEL_WARN; - } else if (log.isErrorEnabled()) { - return org.codehaus.plexus.logging.Logger.LEVEL_ERROR; - } - - return org.codehaus.plexus.logging.Logger.LEVEL_DISABLED; - } - - public void info(String message) { - log.info(message); - } - - public void info(String message, Throwable throwable) { - log.info(message, throwable); - } - - public boolean isDebugEnabled() { - return log.isDebugEnabled(); - } - - public boolean isErrorEnabled() { - return log.isErrorEnabled(); - } - - public boolean isFatalErrorEnabled() { - return log.isErrorEnabled(); - } - - public boolean isInfoEnabled() { - return log.isInfoEnabled(); - } - - public boolean isWarnEnabled() { - return log.isWarnEnabled(); - } - - public void setThreshold(int threshold) { - /* do nothing */ - } - - public void warn(String message) { - log.warn(message); - } - - public void warn(String message, Throwable throwable) { - log.warn(message, throwable); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/VersionComparator.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/VersionComparator.java deleted file mode 100644 index 9acd26869..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/VersionComparator.java +++ /dev/null @@ -1,260 +0,0 @@ -package org.apache.maven.archiva.common.utils; - -/* - * 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.ArrayUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.math.NumberUtils; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; - -/** - * VersionComparator - compare the parts of two version strings. - *

- * Technique. - *

- * * Split the version strings into parts by splitting on "-._" first, then breaking apart words from numbers. - *

- * - * "1.0" = "1", "0" - * "1.0-alpha-1" = "1", "0", "alpha", "1" - * "2.0-rc2" = "2", "0", "rc", "2" - * "1.3-m2" = "1", "3", "m", "3" - * - *

- * compare each part individually, and when they do not match, perform the following test. - *

- * Numbers are calculated per normal comparison rules. - * Words that are part of the "special word list" will be treated as their index within that heirarchy. - * Words that cannot be identified as special, are treated using normal case-insensitive comparison rules. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class VersionComparator - implements Comparator -{ - private static Comparator INSTANCE = new VersionComparator(); - - private List specialWords; - - public VersionComparator() - { - specialWords = new ArrayList(); - - // ids that refer to LATEST - specialWords.add( "final" ); - specialWords.add( "release" ); - specialWords.add( "current" ); - specialWords.add( "latest" ); - specialWords.add( "g" ); - specialWords.add( "gold" ); - specialWords.add( "fcs" ); - - // ids that are for a release cycle. - specialWords.add( "a" ); - specialWords.add( "alpha" ); - specialWords.add( "b" ); - specialWords.add( "beta" ); - specialWords.add( "pre" ); - specialWords.add( "rc" ); - specialWords.add( "m" ); - specialWords.add( "milestone" ); - - // ids that are for dev / debug cycles. - specialWords.add( "dev" ); - specialWords.add( "test" ); - specialWords.add( "debug" ); - specialWords.add( "unofficial" ); - specialWords.add( "nightly" ); - specialWords.add( "incubating" ); - specialWords.add( "incubator" ); - specialWords.add( "snapshot" ); - } - - public static Comparator getInstance() - { - return INSTANCE; - } - - public int compare( String o1, String o2 ) - { - if ( o1 == null && o2 == null ) - { - return 0; - } - - if ( o1 == null ) - { - return 1; - } - - if ( o2 == null ) - { - return -1; - } - - String[] parts1 = toParts( o1 ); - String[] parts2 = toParts( o2 ); - - int diff; - int partLen = Math.max( parts1.length, parts2.length ); - for ( int i = 0; i < partLen; i++ ) - { - diff = comparePart( safePart( parts1, i ), safePart( parts2, i ) ); - if ( diff != 0 ) - { - return diff; - } - } - - diff = parts2.length - parts1.length; - - if ( diff != 0 ) - { - return diff; - } - - return o1.compareToIgnoreCase( o2 ); - } - - private String safePart( String[] parts, int idx ) - { - if ( idx < parts.length ) - { - return parts[idx]; - } - - return "0"; - } - - private int comparePart( String s1, String s2 ) - { - boolean is1Num = NumberUtils.isNumber( s1 ); - boolean is2Num = NumberUtils.isNumber( s2 ); - - // (Special Case) Test for numbers both first. - if ( is1Num && is2Num ) - { - int i1 = NumberUtils.toInt( s1 ); - int i2 = NumberUtils.toInt( s2 ); - - return i1 - i2; - } - - // Test for text both next. - if ( !is1Num && !is2Num ) - { - int idx1 = specialWords.indexOf( s1.toLowerCase() ); - int idx2 = specialWords.indexOf( s2.toLowerCase() ); - - // Only operate perform index based operation, if both strings - // are found in the specialWords index. - if ( idx1 >= 0 && idx2 >= 0 ) - { - return idx1 - idx2; - } - } - - // Comparing text to num - if ( !is1Num && is2Num ) - { - return -1; - } - - // Comparing num to text - if ( is1Num && !is2Num ) - { - return 1; - } - - // Return comparison of strings themselves. - return s1.compareToIgnoreCase( s2 ); - } - - public static String[] toParts( String version ) - { - if ( StringUtils.isBlank( version ) ) - { - return ArrayUtils.EMPTY_STRING_ARRAY; - } - - int modeOther = 0; - int modeDigit = 1; - int modeText = 2; - - List parts = new ArrayList(); - int len = version.length(); - int i = 0; - int start = 0; - int mode = modeOther; - - while ( i < len ) - { - char c = version.charAt( i ); - - if ( Character.isDigit( c ) ) - { - if ( mode != modeDigit ) - { - if ( mode != modeOther ) - { - parts.add( version.substring( start, i ) ); - } - mode = modeDigit; - start = i; - } - } - else if ( Character.isLetter( c ) ) - { - if ( mode != modeText ) - { - if ( mode != modeOther ) - { - parts.add( version.substring( start, i ) ); - } - mode = modeText; - start = i; - } - } - else - { - // Other. - if ( mode != modeOther ) - { - parts.add( version.substring( start, i ) ); - mode = modeOther; - } - } - - i++; - } - - // Add remainder - if ( mode != modeOther ) - { - parts.add( version.substring( start, i ) ); - } - - return parts.toArray( new String[parts.size()] ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/VersionUtil.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/VersionUtil.java deleted file mode 100644 index 2e3831d4a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/VersionUtil.java +++ /dev/null @@ -1,204 +0,0 @@ -package org.apache.maven.archiva.common.utils; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.lang.StringUtils; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * Version utility methods. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class VersionUtil -{ - /** - * These are the version patterns found in the filenames of the various artifact's versions IDs. - * These patterns are all tackling lowercase version IDs. - */ - private static final String versionPatterns[] = new String[] { - "([0-9][_.0-9a-z]*)", - "(snapshot)", - "(g?[_.0-9ab]*(pre|rc|g|m)[_.0-9]*)", - "(dev[_.0-9]*)", - "(alpha[_.0-9]*)", - "(beta[_.0-9]*)", - "(rc[_.0-9]*)", -// "(test[_.0-9]*)", -- omitted for MRM-681, can be reinstated as part of MRM-712 - "(debug[_.0-9]*)", - "(unofficial[_.0-9]*)", - "(current)", - "(latest)", - "(fcs)", - "(release[_.0-9]*)", - "(nightly)", - "(final)", - "(incubating)", - "(incubator)", - "([ab][_.0-9]+)" }; - - public static final String SNAPSHOT = "SNAPSHOT"; - - public static final Pattern UNIQUE_SNAPSHOT_PATTERN = Pattern.compile( "^(.*)-([0-9]{8}\\.[0-9]{6})-([0-9]+)$" ); - - public static final Pattern TIMESTAMP_PATTERN = Pattern.compile( "^([0-9]{8})\\.([0-9]{6})$" ); - - public static final Pattern GENERIC_SNAPSHOT_PATTERN = Pattern.compile( "^(.*)-" + SNAPSHOT ); - - private static final Pattern VERSION_MEGA_PATTERN = Pattern.compile( StringUtils.join( versionPatterns, '|' ), Pattern.CASE_INSENSITIVE ); - - /** - *

- * Tests if the unknown string contains elements that identify it as a version string (or not). - *

- * - *

- * The algorithm tests each part of the string that is delimited by a '-' (dash) character. - * If 75% or more of the sections are identified as 'version' strings, the result is - * determined to be of a high probability to be version identifier string. - *

- * - * @param unknown the unknown string to test. - * @return true if the unknown string is likely a version string. - */ - public static boolean isVersion( String unknown ) - { - String versionParts[] = StringUtils.split( unknown, '-' ); - - Matcher mat; - - int countValidParts = 0; - - for ( int i = 0; i < versionParts.length; i++ ) - { - String part = versionParts[i]; - mat = VERSION_MEGA_PATTERN.matcher( part ); - - if ( mat.matches() ) - { - countValidParts++; - } - } - - /* Calculate version probability as true if 3/4's of the input string has pieces of - * of known version identifier strings. - */ - int threshold = (int) Math.floor( Math.max( (double) 1.0, (double) ( versionParts.length * 0.75 ) ) ); - - return ( countValidParts >= threshold ); - } - - /** - *

- * Tests if the identifier is a known simple version keyword. - *

- * - *

- * This method is different from {@link #isVersion(String)} in that it tests the whole input string in - * one go as a simple identifier. (eg "alpha", "1.0", "beta", "debug", "latest", "rc#", etc...) - *

- * - * @param identifier the identifier to test. - * @return true if the unknown string is likely a version string. - */ - public static boolean isSimpleVersionKeyword( String identifier ) - { - Matcher mat = VERSION_MEGA_PATTERN.matcher( identifier ); - - return mat.matches(); - } - - public static boolean isSnapshot( String version ) - { - Matcher m = UNIQUE_SNAPSHOT_PATTERN.matcher( version ); - if ( m.matches() ) - { - return true; - } - else - { - return version.endsWith( SNAPSHOT ); - } - } - - public static String getBaseVersion( String version ) - { - Matcher m = UNIQUE_SNAPSHOT_PATTERN.matcher( version ); - if ( m.matches() ) - { - return m.group( 1 ) + "-" + SNAPSHOT; - } - else - { - return version; - } - } - - /** - *

- * Get the release version of the snapshot version. - *

- * - *

- * If snapshot version is 1.0-SNAPSHOT, then release version would be 1.0 - * And if snapshot version is 1.0-20070113.163208-1.jar, then release version would still be 1.0 - *

- * - * @param snapshotVersion - * @return - */ - public static String getReleaseVersion( String snapshotVersion ) - { - Matcher m = UNIQUE_SNAPSHOT_PATTERN.matcher( snapshotVersion ); - - if( isGenericSnapshot( snapshotVersion ) ) - { - m = GENERIC_SNAPSHOT_PATTERN.matcher( snapshotVersion ); - } - - if ( m.matches() ) - { - return m.group( 1 ); - } - else - { - return snapshotVersion; - } - } - - public static boolean isUniqueSnapshot( String version ) - { - Matcher m = UNIQUE_SNAPSHOT_PATTERN.matcher( version ); - if( m.matches() ) - { - return true; - } - - return false; - } - - public static boolean isGenericSnapshot( String version ) - { - return version.endsWith( SNAPSHOT ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java deleted file mode 100644 index 4de78842b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.apache.maven.archiva.common.utils; - -/* - * 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 junit.framework.TestCase; - -import java.io.File; - -/** - * BaseFileTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BaseFileTest - extends TestCase -{ - public void testFileString() - { - File repoDir = new File( "/home/user/foo/repository" ); - String pathFile = "path/to/resource.xml"; - BaseFile file = new BaseFile( repoDir, pathFile ); - - assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file ); - assertRelativePath( "path/to/resource.xml", file ); - assertBasedir( "/home/user/foo/repository", file ); - } - - public void testFileFile() - { - File repoDir = new File( "/home/user/foo/repository" ); - File pathFile = new File( "/home/user/foo/repository/path/to/resource.xml" ); - BaseFile file = new BaseFile( repoDir, pathFile ); - - assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file ); - assertRelativePath( "path/to/resource.xml", file ); - assertBasedir( "/home/user/foo/repository", file ); - } - - public void testStringFile() - { - String repoDir = "/home/user/foo/repository"; - File pathFile = new File( "/home/user/foo/repository/path/to/resource.xml" ); - BaseFile file = new BaseFile( repoDir, pathFile ); - - assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file ); - assertRelativePath( "path/to/resource.xml", file ); - assertBasedir( "/home/user/foo/repository", file ); - } - - public void testFileThenSetBaseString() - { - String repoDir = "/home/user/foo/repository"; - File pathFile = new File( "/home/user/foo/repository/path/to/resource.xml" ); - BaseFile file = new BaseFile( pathFile ); - file.setBaseDir( repoDir ); - - assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file ); - assertRelativePath( "path/to/resource.xml", file ); - assertBasedir( "/home/user/foo/repository", file ); - } - - public void testFileThenSetBaseFile() - { - File repoDir = new File( "/home/user/foo/repository" ); - File pathFile = new File( "/home/user/foo/repository/path/to/resource.xml" ); - BaseFile file = new BaseFile( pathFile ); - file.setBaseDir( repoDir ); - - assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file ); - assertRelativePath( "path/to/resource.xml", file ); - assertBasedir( "/home/user/foo/repository", file ); - } - - public void testStringThenSetBaseString() - { - String repoDir = "/home/user/foo/repository"; - String pathFile = "/home/user/foo/repository/path/to/resource.xml"; - BaseFile file = new BaseFile( pathFile ); - file.setBaseDir( repoDir ); - - assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file ); - assertRelativePath( "path/to/resource.xml", file ); - assertBasedir( "/home/user/foo/repository", file ); - } - - public void testStringThenSetBaseFile() - { - File repoDir = new File( "/home/user/foo/repository" ); - String pathFile = "/home/user/foo/repository/path/to/resource.xml"; - BaseFile file = new BaseFile( pathFile ); - file.setBaseDir( repoDir ); - - assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file ); - assertRelativePath( "path/to/resource.xml", file ); - assertBasedir( "/home/user/foo/repository", file ); - } - - private void assertAbsolutePath( String expectedPath, BaseFile actualFile ) - { - assertEquals( new File( expectedPath ).getAbsolutePath(), actualFile.getAbsolutePath() ); - } - - private void assertRelativePath( String expectedPath, BaseFile actualFile ) - { - assertEquals( expectedPath, StringUtils.replace( actualFile.getRelativePath(), "\\", "/" ) ); - } - - private void assertBasedir( String expectedPath, BaseFile actualFile ) - { - assertEquals( new File( expectedPath ), actualFile.getBaseDir() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/DateUtilTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/DateUtilTest.java deleted file mode 100644 index b080227fe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/DateUtilTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.apache.maven.archiva.common.utils; - -/* - * 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.text.SimpleDateFormat; -import java.util.Date; - -import junit.framework.TestCase; - -/** - * DateUtilTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DateUtilTest extends TestCase -{ - private void assertDuration( String expectedDuration, String startTimestamp, String endTimestamp ) - throws ParseException - { - SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss SSS" ); - Date startDate = sdf.parse( startTimestamp ); - Date endDate = sdf.parse( endTimestamp ); - -// System.out.println( "Date: " + endTimestamp + " - " + startTimestamp + " = " -// + ( endDate.getTime() - startDate.getTime() ) + " ms" ); - - assertEquals( expectedDuration, DateUtil.getDuration( startDate, endDate ) ); - } - - public void testGetDurationDifference() throws ParseException - { - assertDuration( "2 Seconds", "2006-08-22 13:00:02 0000", - "2006-08-22 13:00:04 0000" ); - - assertDuration( "12 Minutes 12 Seconds 234 Milliseconds", "2006-08-22 13:12:02 0000", - "2006-08-22 13:24:14 0234" ); - - assertDuration( "12 Minutes 501 Milliseconds", "2006-08-22 13:12:01 0500", - "2006-08-22 13:24:02 0001" ); - } - - public void testGetDurationDirect() throws ParseException - { - assertEquals( "2 Seconds", DateUtil.getDuration( 2000 ) ); - - assertEquals( "12 Minutes 12 Seconds 234 Milliseconds", DateUtil.getDuration( 732234 ) ); - - assertEquals( "12 Minutes 501 Milliseconds", DateUtil.getDuration( 720501 ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/PathUtilTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/PathUtilTest.java deleted file mode 100644 index a318e57f4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/PathUtilTest.java +++ /dev/null @@ -1,94 +0,0 @@ -package org.apache.maven.archiva.common.utils; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.lang.StringUtils; - -import java.io.File; - -import junit.framework.TestCase; - -/** - * PathUtilTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class PathUtilTest - extends TestCase -{ - public void testToRelativeWithoutSlash() - { - assertEquals( "path/to/resource.xml", PathUtil.getRelative( "/home/user/foo/repository", - "/home/user/foo/repository/path/to/resource.xml" ) ); - } - - public void testToRelativeWithSlash() - { - assertEquals( "path/to/resource.xml", PathUtil.getRelative( "/home/user/foo/repository/", - "/home/user/foo/repository/path/to/resource.xml" ) ); - } - - public void testToUrlRelativePath() - { - File workingDir = new File( "." ); - - String workingDirname = StringUtils.replaceChars( workingDir.getAbsolutePath(), '\\', '/' ); - - // Some JVM's retain the "." at the end of the path. Drop it. - if ( workingDirname.endsWith( "/." ) ) - { - workingDirname = workingDirname.substring( 0, workingDirname.length() - 2 ); - } - - if ( !workingDirname.startsWith( "/" ) ) - { - workingDirname = "/" + workingDirname; - } - - String path = "path/to/resource.xml"; - String expectedPath = "file:" + workingDirname + "/" + path; - - assertEquals( expectedPath, PathUtil.toUrl( path ) ); - } - - public void testToUrlUsingFileUrl() - { - File workingDir = new File( "." ); - - String workingDirname = StringUtils.replaceChars( workingDir.getAbsolutePath(), '\\', '/' ); - - // Some JVM's retain the "." at the end of the path. Drop it. - if ( workingDirname.endsWith( "/." ) ) - { - workingDirname = workingDirname.substring( 0, workingDirname.length() - 2 ); - } - - if ( !workingDirname.startsWith( "/" ) ) - { - workingDirname = "/" + workingDirname; - } - - String path = "path/to/resource.xml"; - String expectedPath = "file:" + workingDirname + "/" + path; - - assertEquals( expectedPath, PathUtil.toUrl( expectedPath ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/ResourceUtils.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/ResourceUtils.java deleted file mode 100644 index db2a0dc27..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/ResourceUtils.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.apache.maven.archiva.common.utils; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.lang.StringUtils; - -import java.io.File; -import java.io.IOException; -import java.net.URL; - -/** - * ResourceUtils - */ -public class ResourceUtils -{ - /** - * Lookup resource at the given path relative to the root of the classpath and if it exists return a file object - * that can be used to access it. - *

- * At test time the contents of both the src/resources and test/resources dirs are available at the root of the - * classpath. - *

- * To retrieve the file src/test/resources/sometest/test.properties use getResource("/sometest/test.properties"). - * - * @param resourcePath the path to the resource relative to the root of the classpath - * @return File a file object pointing to the resource on the classpath or null if the resource cannot be found - */ - public static File getResource( String resourcePath ) - throws IOException - { - return getResource( resourcePath, null ); - } - - /** - * Lookup resource at the given path relative to the root of the classpath and if it exists return a file object - * that can be used to access it. - *

- * At test time the contents of both the src/resources and test/resources dirs are available at the root of the - * classpath. - *

- * To retrieve the file src/test/resources/sometest/test.properties use getResource("/sometest/test.properties"). - * - * @param resourcePath the path to the resource relative to the root of the classpath - * @param classloader the classloader who's classpath should be searched for the resource - * @return File a file object pointing to the resource on the classpath or null if the resource cannot be found - */ - public static File getResource( String resourcePath, ClassLoader classloader ) - throws IOException - { - File testResource = null; - - if ( StringUtils.isNotBlank( resourcePath ) ) - { - // make sure the retrieval is relative to the root of the classpath - resourcePath = resourcePath.startsWith( "/" ) ? resourcePath : "/" + resourcePath; - - URL resourceUrl = getResourceUrl( resourcePath, classloader ); - if ( resourceUrl == null ) - { - throw new IOException( "Could not find test resource at path '" + resourcePath + "'" ); - } - testResource = new File( resourceUrl.getFile() ); - } - - return testResource; - } - - private static URL getResourceUrl( String resourcePath, ClassLoader classloader ) - { - return classloader != null ? classloader.getResource( resourcePath ) - : ResourceUtils.class.getResource( resourcePath ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/VersionComparatorTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/VersionComparatorTest.java deleted file mode 100644 index 4bfef29fb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/VersionComparatorTest.java +++ /dev/null @@ -1,131 +0,0 @@ -package org.apache.maven.archiva.common.utils; - -/* - * 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.Arrays; -import java.util.Collections; -import java.util.List; - -import junit.framework.TestCase; - -/** - * VersionComparatorTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class VersionComparatorTest - extends TestCase -{ - public void testComparator() - { - /* Sort order is oldest to newest */ - - assertSort( new String[] { "1.0", "3.0", "2.0" }, new String[] { "1.0", "2.0", "3.0" } ); - assertSort( new String[] { "1.5", "1.2", "1.0" }, new String[] { "1.0", "1.2", "1.5" } ); - - assertSort( new String[] { "1.5-SNAPSHOT", "1.2", "1.20" }, new String[] { "1.2", "1.5-SNAPSHOT", "1.20" } ); - - assertSort( new String[] { "1.1", "1.0-SNAPSHOT", "1.1-m6", "1.1-rc1" }, new String[] { - "1.0-SNAPSHOT", - "1.1-rc1", - "1.1-m6", - "1.1" } ); - - assertSort( new String[] { "1.1-m6", "1.0-SNAPSHOT", "1.1-rc1", "1.1" }, new String[] { - "1.0-SNAPSHOT", - "1.1-rc1", - "1.1-m6", - "1.1" } ); - - assertSort( new String[] { "2.0.5", "2.0.4-SNAPSHOT", "2.0", "2.0-rc1" }, new String[] { - "2.0-rc1", - "2.0", - "2.0.4-SNAPSHOT", - "2.0.5" } ); - - assertSort( new String[] { "1.0-alpha-1", "1.0-alpha-22", "1.0-alpha-10", "1.0-alpha-9" }, new String[] { - "1.0-alpha-1", - "1.0-alpha-9", - "1.0-alpha-10", - "1.0-alpha-22" } ); - - assertSort( new String[] { "1.0-alpha1", "1.0-alpha22", "1.0-alpha10", "1.0-alpha9" }, new String[] { - "1.0-alpha1", - "1.0-alpha9", - "1.0-alpha10", - "1.0-alpha22" } ); - - assertSort( new String[] { "1.0-1", "1.0-22", "1.0-10", "1.0-9" }, new String[] { - "1.0-1", - "1.0-9", - "1.0-10", - "1.0-22" } ); - - assertSort( new String[] { "alpha-1", "alpha-22", "alpha-10", "alpha-9" }, new String[] { - "alpha-1", - "alpha-9", - "alpha-10", - "alpha-22" } ); - - assertSort( new String[] { "1.0.1", "1.0.22", "1.0.10", "1.0.9" }, new String[] { - "1.0.1", - "1.0.9", - "1.0.10", - "1.0.22" } ); - - - // TODO: write more unit tests. - } - - private void assertSort( String[] rawVersions, String[] expectedSort ) - { - List versions = new ArrayList(); - versions.addAll( Arrays.asList( rawVersions ) ); - - Collections.sort( versions, VersionComparator.getInstance() ); - - assertEquals( "Versions.size()", expectedSort.length, versions.size() ); - for ( int i = 0; i < expectedSort.length; i++ ) - { - assertEquals( "Sorted Versions[" + i + "]", expectedSort[i], (String) versions.get( i ) ); - } - } - - public void testToParts() - { - assertParts( "1.0", new String[] { "1", "0" } ); - assertParts( "1.0-alpha-1", new String[] { "1", "0", "alpha", "1" } ); - assertParts( "2.0-rc2", new String[] { "2", "0", "rc", "2" } ); - assertParts( "1.3-m6", new String[] { "1", "3", "m", "6" } ); - } - - private void assertParts( String version, String[] expectedParts ) - { - String actualParts[] = VersionComparator.toParts( version ); - assertEquals( "Parts.length", expectedParts.length, actualParts.length ); - - for ( int i = 0; i < expectedParts.length; i++ ) - { - assertEquals( "parts[" + i + "]", expectedParts[i], actualParts[i] ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/CVS/Root b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/CVS/Root deleted file mode 100644 index 2e65f24a6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -not a real CVS root - for testing exclusions diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/KEYS b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/KEYS deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/foo/invalid-1.0.foo b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/foo/invalid-1.0.foo deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/invalid-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/invalid-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/1.0/invalid-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/1.0/invalid-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/invalid-1.0.rar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/invalid-1.0.rar deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/invalid.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/invalid.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/no-extension b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/invalid/jars/no-extension deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/javax.sql/jars/jdbc-2.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/javax.sql/jars/jdbc-2.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven.update/jars/test-not-updated-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven.update/jars/test-not-updated-1.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven.update/jars/test-updated-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven.update/jars/test-updated-1.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/some-ejb-1.0-client.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/some-ejb-1.0-client.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0-20050611.112233-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0-20050611.112233-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0.tar.gz b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0.tar.gz deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0.zip b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-1.0.zip deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-UNKNOWN.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/legacy-repository/org.apache.maven/jars/testing-UNKNOWN.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/CVS/Root b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/CVS/Root deleted file mode 100644 index 2e65f24a6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -not a real CVS root - for testing exclusions diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/KEYS b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/KEYS deleted file mode 100644 index d3b34d5ad..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/KEYS +++ /dev/null @@ -1 +0,0 @@ -test KEYS file \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0/invalid-1.0b.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0/invalid-1.0b.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0/invalid-2.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1.0/invalid-2.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1/invalid-1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/invalid/invalid/1/invalid-1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/maven-metadata.xml deleted file mode 100644 index b3baf545d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/maven-metadata.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - javax.sql - jdbc - 2.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/jdbc/2.0/jdbc-2.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/jdbc/2.0/jdbc-2.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml deleted file mode 100644 index caf5b6697..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - javax.sql - jdbc - 2.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/jdbc/maven-metadata-repository.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/jdbc/maven-metadata-repository.xml deleted file mode 100644 index bb7570891..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/jdbc/maven-metadata-repository.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - javax.sql - jdbc - 2.0 - - - 2.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/maven-metadata-repository.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/maven-metadata-repository.xml deleted file mode 100644 index caf5b6697..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/javax/sql/maven-metadata-repository.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - javax.sql - jdbc - 2.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/A/1.0/A-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/A/1.0/A-1.0.pom deleted file mode 100644 index 202a0a448..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/A/1.0/A-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - A - 1.0 - Maven Test Repository Artifact Discovery - war - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/A/1.0/A-1.0.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/A/1.0/A-1.0.war deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/B/1.0/B-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/B/1.0/B-1.0.pom deleted file mode 100644 index fa5f8f6c8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/B/1.0/B-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - B - 1.0 - Maven Test Repository Artifact Discovery - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/B/2.0/B-2.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/B/2.0/B-2.0.pom deleted file mode 100644 index c3034e820..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/B/2.0/B-2.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - B - 2.0 - Maven Test Repository Artifact Discovery - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/C/1.0/C-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/C/1.0/C-1.0.pom deleted file mode 100644 index ae14cd7eb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/C/1.0/C-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - C - 1.0 - Maven Test Repository Artifact Discovery - war - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/C/1.0/C-1.0.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/C/1.0/C-1.0.war deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/discovery/1.0/discovery-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/discovery/1.0/discovery-1.0.pom deleted file mode 100644 index 5a29f6117..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/discovery/1.0/discovery-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - discovery - 1.0 - Maven Test Repository Artifact Discovery - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/maven-metadata.xml deleted file mode 100644 index 8ce7fc7bb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/maven-metadata.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - org.apache.maven - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/1.0/samplejar-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/1.0/samplejar-1.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom deleted file mode 100644 index 6ab57d162..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom +++ /dev/null @@ -1,29 +0,0 @@ - - - - 4.0.0 - org.apache.maven - C - 1.0 - Maven Test Repository Artifact Discovery - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/2.0/samplejar-2.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/2.0/samplejar-2.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom deleted file mode 100644 index a959980df..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom +++ /dev/null @@ -1,29 +0,0 @@ - - - - 4.0.0 - org.apache.maven - C - 1.0 - Maven Test Repository Artifact Discovery - - jar - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/some-ejb/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/some-ejb/1.0/maven-metadata.xml deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0-test-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0-test-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.zip b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/testing/1.0/testing-1.0.zip deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom deleted file mode 100644 index 452727f28..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom +++ /dev/null @@ -1,29 +0,0 @@ - - - - 4.0.0 - org.apache.maven.update - test-not-updated - 1.0 - Maven Test Repository Artifact Discovery - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-not-updated/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-not-updated/maven-metadata.xml deleted file mode 100644 index bd56a21c1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-not-updated/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - org.apache.maven.update - test-not-updated - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom deleted file mode 100644 index edd7b6479..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom +++ /dev/null @@ -1,29 +0,0 @@ - - - - 4.0.0 - org.apache.maven.update - test-updated - 1.0 - Maven Test Repository Artifact Discovery - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-updated/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-updated/maven-metadata.xml deleted file mode 100644 index 86e063ca8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/maven/update/test-updated/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - org.apache.maven.update - test-updated - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom deleted file mode 100644 index 12538e81a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.testgroup - discovery - 1.0 - Maven Test Repository Artifact Discovery - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml deleted file mode 100644 index 8ee18048c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - org.apache.testgroup - discovery - 1.0 - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/maven-metadata.xml deleted file mode 100644 index b024ef7ef..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/repository/org/apache/testgroup/discovery/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - org.apache.testgroup - discovery - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar deleted file mode 100644 index d1b610e5ec784ce3e22b3c40775c522bf8797743..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2422 zcmWIWW@h1H0DuQ}lbAEG>!4=~NPm6TC&YjTl)^*}wf3hTOikS8R zm5QBnx`TwhgMv%uYONKK;TD=~93)yJd^+eeP{zx+*z3Tf$e*1zXYLf3C=$DVO3s9j z%c|HuvWe}9*%QM6a~P)k`H>x#n^=~b2loZ0Vl7O?`97 zrKP!e%yA~k9Jqmdfnk*}1A`ZJEGWp& z)vL(O*&E^8f7?u8@B8%u;#Ps@tB_=jSfZ_3pE{qj-JEbT^mOy(KR*4VDrRYG+lEZJ&5 zSWoRK?(ll>e)|2i`)LOqRkwfaeeP;GZOZFUf?^R_-VDR*{0nDuediJIn)fY(bM z^OtB8MKD&bJ+6`a&27c88M4({q7{PYn|J>IQLw%0&xfDuIj&y1BvZ0U{gjK-W&Lld zPorC`HqG9ww){(gM!cB9iH!SSIv)2N`)+zGIyB?`d8ydFdWD>4HT^Zzd$e9VDqBf4 zTJvyDeVu&%=eo6G7yC6ELf9Kw{nZgGpWsqOx!QTvU4S(k{^_nT(oCrII$Un;xEa#N)4tbN9suMZaz_aaB}Z zm@?f+G&|BkC927+Ym!rWYi?n5)GnQZRlAI|dp8D|L@)nh(if6sZsz%F)4F2?sS{!( zlwZ&4l_}fal6!n%h5bff#lriiPu!}%)Uu#V(x@Xy%U5j-L_7eFrnbUghJJo zPfts)oV{)9>4gccU(K#XGO+h+dT^|8=snXv7{$%$K4fmjC^-lZ|?oB z#2R{>^YuRC#ufHE+P)T8P261m^>E$6`3~{y#^Or6x4W+|^u4CS5296-d>@u4S3Y!V z&zUu;#q)vSrwnG9S^5DAFK-)6*LVD7_9WGK&as-TztHs=kp6aI$_k1pEy)^Gu5@%m^6oZl`$5)Zxv&}BQT+wJSx24Qw=9}e9 zyhJ7ioCrF%`f(-iwOA#mA3A!vwa*RS=C#gwtL1ce=98x#mu4RHBkDd1X z@@pYunkei3bc3IL<^}F&KRw#%feuN_OOBzQlj&Ie7Uv>ShVy3 zaUk`In1Z7Gg4Cjt%+zArGkduX8HhMMwDm7sSnPD!NwbxYZxLUVVr^q~RW9?hb`#BC z->x0~`naG=*s^OzM$>Wjbvq^|ADzL;Hg~}^h1u)!cCTt(EVWSUbX%@S_~Tgp)+evZ zcC7wvu*ve5j9&2j$2tZJ;yiBL_s)1fsn9aI&2Xmrt1aR6Pae9y-}7lk`GzC=0=yZS zM3`~cbwFPOfdIo>M-Yuv^TD)XulqoXL10OvI*^2GL#he!Sq!SAAOK|X0U#4@0<6k{ zS&zNaLTG-AsTpq-hTB|FB?bW?N0~BWI0}!sc&ap*h1e@Kn3YQ!r%}g3XcdPDee5Y6 fVed~?s(2J+FCyIsc(byBtY8PiGA0IwS706hN(Y&# diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.md5-bad b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.md5-bad deleted file mode 100644 index aafbb1c77..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.md5-bad +++ /dev/null @@ -1 +0,0 @@ -444ccc111aaa222999888eee222fff00 artifact.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.md5-good b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.md5-good deleted file mode 100644 index 1c8465238..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.md5-good +++ /dev/null @@ -1 +0,0 @@ -360ccd01d8a0a2d94b86f9802c2fc548 artifact.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.sha1-bad b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.sha1-bad deleted file mode 100644 index 2d809c29b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.sha1-bad +++ /dev/null @@ -1 +0,0 @@ -ddd888999000444888bbbaaa555333999777eee0 artifact.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.sha1-good b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.sha1-good deleted file mode 100644 index 0f10d257e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/checksums/artifact.jar.sha1-good +++ /dev/null @@ -1 +0,0 @@ -7dd8929150664f182db60ad15f20359d875f059f artifact.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericArtifactConsumerTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericArtifactConsumerTest.xml deleted file mode 100644 index 5760e8918..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericArtifactConsumerTest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - org.apache.maven.archiva.common.consumers.Consumer - mock-artifact - org.apache.maven.archiva.common.consumers.MockArtifactConsumer - - - org.apache.maven.artifact.factory.ArtifactFactory - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericModelConsumerTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericModelConsumerTest.xml deleted file mode 100644 index 2ded1b62d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericModelConsumerTest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - org.apache.maven.archiva.discoverer.DiscovererConsumer - mock-model - org.apache.maven.archiva.discoverer.consumers.MockModelConsumer - - - org.apache.maven.artifact.factory.ArtifactFactory - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericRepositoryMetadataConsumerTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericRepositoryMetadataConsumerTest.xml deleted file mode 100644 index da9864d00..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-common/src/test/resources/org/apache/maven/archiva/common/consumers/GenericRepositoryMetadataConsumerTest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - org.apache.maven.archiva.discoverer.DiscovererConsumer - mock-metadata - org.apache.maven.archiva.discoverer.consumers.MockRepositoryMetadataConsumer - - - org.apache.maven.artifact.factory.ArtifactFactory - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/pom.xml deleted file mode 100644 index 2999766b9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/pom.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - 4.0.0 - archiva-configuration - Archiva Base :: Configuration - - - org.codehaus.plexus - plexus-spring - test - - - org.codehaus.plexus.registry - plexus-registry-api - - - org.codehaus.plexus.registry - plexus-registry-commons - - - org.codehaus.plexus - plexus-expression-evaluator - - - commons-io - commons-io - - - org.apache.archiva - archiva-policies - - - xmlunit - xmlunit - test - - - - - - org.codehaus.modello - modello-maven-plugin - 1.0-alpha-15 - - - - java - registry-reader - registry-writer - - - - - 1.2.0 - src/main/mdo/configuration.mdo - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - - org/apache/maven/archiva/configuration/io/** - org/apache/maven/archiva/configuration/*RepositoryConfiguration.* - org/apache/maven/archiva/configuration/Configuration.* - org/apache/maven/archiva/configuration/Proxy.* - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java deleted file mode 100644 index 0705fd654..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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.registry.RegistryException; -import org.codehaus.plexus.registry.RegistryListener; - -/** - * Configuration holder for the model read from the registry. - */ -public interface ArchivaConfiguration -{ - String ROLE = ArchivaConfiguration.class.getName(); - - /** - * Get the configuration. - * - * @return the configuration - */ - Configuration getConfiguration(); - - /** - * Save any updated configuration. - * - * @param configuration the configuration to save - * @throws org.codehaus.plexus.registry.RegistryException - * if there is a problem saving the registry data - * @throws IndeterminateConfigurationException - * if the configuration cannot be saved because it was read from two sources - */ - void save( Configuration configuration ) - throws RegistryException, IndeterminateConfigurationException; - - /** - * Determines if the configuration in use was as a result of a defaulted configuration. - * - * @return true if the configuration was created from the default-archiva.xml as opposed - * to being loaded from the usual locations of ${user.home}/.m2/archiva.xml or - * ${appserver.base}/conf/archiva.xml - */ - boolean isDefaulted(); - - /** - * Add a configuration listener to notify of changes to the configuration. - * - * @param listener the listener - */ - void addListener( ConfigurationListener listener ); - - /** - * Remove a configuration listener to stop notifications of changes to the configuration. - * - * @param listener the listener - */ - void removeListener( ConfigurationListener listener ); - - /** - * Add a registry listener to notify of events in plexus-registry. - * - * @param listener the listener - * TODO: Remove in future. - */ - void addChangeListener( RegistryListener listener ); -} - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationEvent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationEvent.java deleted file mode 100644 index 3105ee96e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationEvent.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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. - */ - -/** - * ConfigurationEvent - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ConfigurationEvent -{ - public static final int SAVED = 1; - - public static final int CHANGED = 2; - - private int type; - - public ConfigurationEvent( int type ) - { - this.type = type; - } - - public int getType() - { - return type; - } - - @Override - public int hashCode() - { - final int prime = 31; - int result = 1; - result = prime * result + type; - return result; - } - - @Override - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - if ( obj == null ) - { - return false; - } - if ( getClass() != obj.getClass() ) - { - return false; - } - final ConfigurationEvent other = (ConfigurationEvent) obj; - if ( type != other.type ) - { - return false; - } - return true; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationListener.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationListener.java deleted file mode 100644 index f02637c83..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationListener.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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. - */ - -/** - * ConfigurationListener - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ConfigurationListener -{ - /** - * Generic event point to notify components that something has happend in the configuration. - */ - public void configurationEvent(ConfigurationEvent event); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationNames.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationNames.java deleted file mode 100644 index e1daac902..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationNames.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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. - */ - -/** - * Utility methods for testing the configuration property name. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ConfigurationNames -{ - public static boolean isNetworkProxy( String propertyName ) - { - return startsWith( "networkProxies.", propertyName ); - } - - public static boolean isRepositoryScanning( String propertyName ) - { - return startsWith( "repositoryScanning.", propertyName ); - } - - public static boolean isManagedRepositories( String propertyName ) - { - return startsWith( "managedRepositories.", propertyName ); - } - - public static boolean isRemoteRepositories( String propertyName ) - { - return startsWith( "remoteRepositories.", propertyName ); - } - - public static boolean isProxyConnector( String propertyName ) - { - return startsWith( "proxyConnectors.", propertyName ); - } - - private static boolean startsWith( String prefix, String name ) - { - if ( name == null ) - { - return false; - } - - if ( name.length() <= 0 ) - { - return false; - } - - return name.startsWith( prefix ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationRuntimeException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationRuntimeException.java deleted file mode 100644 index 5fc44f80d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationRuntimeException.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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. - */ - -/** - * Unrecoverable exception in the configuration mechanism that is the result of a programming error. - */ -public class ConfigurationRuntimeException - extends RuntimeException -{ - public ConfigurationRuntimeException( String msg, Throwable cause ) - { - super( msg, cause ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java deleted file mode 100644 index af3180d13..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java +++ /dev/null @@ -1,736 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.collections.MapUtils; -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.functors.ProxyConnectorConfigurationOrderComparator; -import org.apache.maven.archiva.configuration.io.registry.ConfigurationRegistryReader; -import org.apache.maven.archiva.configuration.io.registry.ConfigurationRegistryWriter; -import org.apache.maven.archiva.policies.AbstractUpdatePolicy; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.Policy; -import org.apache.maven.archiva.policies.PostDownloadPolicy; -import org.apache.maven.archiva.policies.PreDownloadPolicy; -import org.codehaus.plexus.evaluator.DefaultExpressionEvaluator; -import org.codehaus.plexus.evaluator.EvaluatorException; -import org.codehaus.plexus.evaluator.ExpressionEvaluator; -import org.codehaus.plexus.evaluator.sources.SystemPropertyExpressionSource; -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.RegistryException; -import org.codehaus.plexus.registry.RegistryListener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -/** - *

- * Implementation of configuration holder that retrieves it from the registry. - *

- *

- * The registry layers and merges the 2 configuration files: user, and application server. - *

- *

- * Instead of relying on the model defaults, if the registry is empty a default configuration file is loaded and - * applied from a resource. The defaults are not loaded into the registry as the lists (eg repositories) could no longer - * be removed if that was the case. - *

- *

- * When saving the configuration, it is saved to the location it was read from. If it was read from the defaults, it - * will be saved to the user location. - * However, if the configuration contains information from both sources, an exception is raised as this is currently - * unsupported. The reason for this is that it is not possible to identify where to re-save elements, and can result - * in list configurations (eg repositories) becoming inconsistent. - *

- *

- * If the configuration is outdated, it will be upgraded when it is loaded. This is done by checking the version flag - * before reading it from the registry. - *

- * - * @plexus.component role="org.apache.maven.archiva.configuration.ArchivaConfiguration" - */ -public class DefaultArchivaConfiguration - implements ArchivaConfiguration, RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( DefaultArchivaConfiguration.class ); - - /** - * Plexus registry to read the configuration from. - * - * @plexus.requirement role-hint="commons-configuration" - */ - private Registry registry; - - /** - * The configuration that has been converted. - */ - private Configuration configuration; - - /** - * @plexus.requirement role="org.apache.maven.archiva.policies.PreDownloadPolicy" - * @todo these don't strictly belong in here - */ - private Map prePolicies; - - /** - * @plexus.requirement role="org.apache.maven.archiva.policies.PostDownloadPolicy" - * @todo these don't strictly belong in here - */ - private Map postPolicies; - - /** - * @plexus.configuration default-value="${user.home}/.m2/archiva.xml" - */ - private String userConfigFilename; - - /** - * @plexus.configuration default-value="${appserver.base}/conf/archiva.xml" - */ - private String altConfigFilename; - - /** - * Configuration Listeners we've registered. - */ - private Set listeners = new HashSet(); - - /** - * Registry Listeners we've registered. - */ - private Set registryListeners = new HashSet(); - - /** - * Boolean to help determine if the configuration exists as a result of pulling in - * the default-archiva.xml - */ - private boolean isConfigurationDefaulted = false; - - private static final String KEY = "org.apache.maven.archiva"; - - public synchronized Configuration getConfiguration() - { - if ( configuration == null ) - { - configuration = load(); - configuration = unescapeExpressions( configuration ); - if( isConfigurationDefaulted ) - { - configuration = checkRepositoryLocations( configuration ); - } - } - - return configuration; - } - - private Configuration load() - { - // TODO: should this be the same as section? make sure unnamed sections still work (eg, sys properties) - Registry subset = registry.getSubset( KEY ); - if ( subset.getString( "version" ) == null ) - { - // a little autodetection of v1, even if version is omitted (this was previously allowed) - if ( subset.getSubset( "repositoryScanning" ).isEmpty() ) - { - // only for empty, or v < 1 - subset = readDefaultConfiguration(); - } - } - - Configuration config = new ConfigurationRegistryReader().read( subset ); - - if ( !config.getRepositories().isEmpty() ) - { - for ( Iterator i = config.getRepositories().iterator(); i.hasNext(); ) - { - V1RepositoryConfiguration r = i.next(); - r.setScanned( r.isIndexed() ); - - if ( r.getUrl().startsWith( "file://" ) ) - { - r.setLocation( r.getUrl().substring( 7 ) ); - config.addManagedRepository( r ); - } - else if ( r.getUrl().startsWith( "file:" ) ) - { - r.setLocation( r.getUrl().substring( 5 ) ); - config.addManagedRepository( r ); - } - else - { - RemoteRepositoryConfiguration repo = new RemoteRepositoryConfiguration(); - repo.setId( r.getId() ); - repo.setLayout( r.getLayout() ); - repo.setName( r.getName() ); - repo.setUrl( r.getUrl() ); - config.addRemoteRepository( repo ); - } - } - - // Prevent duplicate repositories from showing up. - config.getRepositories().clear(); - - registry.removeSubset( KEY + ".repositories" ); - } - - if ( !CollectionUtils.isEmpty( config.getRemoteRepositories() ) ) - { - List remoteRepos = config.getRemoteRepositories(); - for ( RemoteRepositoryConfiguration repo : remoteRepos ) - { - // [MRM-582] Remote Repositories with empty and fields shouldn't be created in configuration. - if ( StringUtils.isBlank( repo.getUsername() ) ) - { - repo.setUsername( null ); - } - - if ( StringUtils.isBlank( repo.getPassword() ) ) - { - repo.setPassword( null ); - } - } - } - - if ( !config.getProxyConnectors().isEmpty() ) - { - // Fix Proxy Connector Settings. - - List proxyConnectorList = new ArrayList(); - // Create a copy of the list to read from (to prevent concurrent modification exceptions) - proxyConnectorList.addAll( config.getProxyConnectors() ); - // Remove the old connector list. - config.getProxyConnectors().clear(); - - for ( ProxyConnectorConfiguration connector : proxyConnectorList ) - { - // Fix policies - boolean connectorValid = true; - - Map policies = new HashMap(); - // Make copy of policies - policies.putAll( connector.getPolicies() ); - // Clear out policies - connector.getPolicies().clear(); - - // Work thru policies. cleaning them up. - for ( Entry entry : policies.entrySet() ) - { - String policyId = entry.getKey(); - String setting = entry.getValue(); - - // Upgrade old policy settings. - if ( "releases".equals( policyId ) || "snapshots".equals( policyId ) ) - { - if ( "ignored".equals( setting ) ) - { - setting = AbstractUpdatePolicy.ALWAYS; - } - else if ( "disabled".equals( setting ) ) - { - setting = AbstractUpdatePolicy.NEVER; - } - } - else if ( "cache-failures".equals( policyId ) ) - { - if ( "ignored".equals( setting ) ) - { - setting = CachedFailuresPolicy.NO; - } - else if ( "cached".equals( setting ) ) - { - setting = CachedFailuresPolicy.YES; - } - } - else if ( "checksum".equals( policyId ) ) - { - if ( "ignored".equals( setting ) ) - { - setting = ChecksumPolicy.IGNORE; - } - } - - // Validate existance of policy key. - if ( policyExists( policyId ) ) - { - Policy policy = findPolicy( policyId ); - // Does option exist? - if ( !policy.getOptions().contains( setting ) ) - { - setting = policy.getDefaultOption(); - } - connector.addPolicy( policyId, setting ); - } - else - { - // Policy key doesn't exist. Don't add it to golden version. - log.warn( "Policy [" + policyId + "] does not exist." ); - } - } - - if ( connectorValid ) - { - config.addProxyConnector( connector ); - } - } - - // Normalize the order fields in the proxy connectors. - Map> proxyConnectorMap = config - .getProxyConnectorAsMap(); - - for ( String key : proxyConnectorMap.keySet() ) - { - List connectors = proxyConnectorMap.get( key ); - // Sort connectors by order field. - Collections.sort( connectors, ProxyConnectorConfigurationOrderComparator.getInstance() ); - - // Normalize the order field values. - int order = 1; - for ( ProxyConnectorConfiguration connector : connectors ) - { - connector.setOrder( order++ ); - } - } - } - - return config; - } - - private Policy findPolicy( String policyId ) - { - if ( MapUtils.isEmpty( prePolicies ) ) - { - log.error( "No PreDownloadPolicies found!" ); - return null; - } - - if ( MapUtils.isEmpty( postPolicies ) ) - { - log.error( "No PostDownloadPolicies found!" ); - return null; - } - - Policy policy; - - policy = prePolicies.get( policyId ); - if ( policy != null ) - { - return policy; - } - - policy = postPolicies.get( policyId ); - if ( policy != null ) - { - return policy; - } - - return null; - } - - private boolean policyExists( String policyId ) - { - if ( MapUtils.isEmpty( prePolicies ) ) - { - log.error( "No PreDownloadPolicies found!" ); - return false; - } - - if ( MapUtils.isEmpty( postPolicies ) ) - { - log.error( "No PostDownloadPolicies found!" ); - return false; - } - - return ( prePolicies.containsKey( policyId ) || postPolicies.containsKey( policyId ) ); - } - - private Registry readDefaultConfiguration() - { - // if it contains some old configuration, remove it (Archiva 0.9) - registry.removeSubset( KEY ); - - try - { - registry.addConfigurationFromResource( "org/apache/maven/archiva/configuration/default-archiva.xml", KEY ); - this.isConfigurationDefaulted = true; - } - catch ( RegistryException e ) - { - throw new ConfigurationRuntimeException( - "Fatal error: Unable to find the built-in default configuration and load it into the registry", - e ); - } - return registry.getSubset( KEY ); - } - - public synchronized void save( Configuration configuration ) - throws RegistryException, IndeterminateConfigurationException - { - Registry section = registry.getSection( KEY + ".user" ); - Registry baseSection = registry.getSection( KEY + ".base" ); - if ( section == null ) - { - section = baseSection; - if ( section == null ) - { - section = createDefaultConfigurationFile(); - } - } - else if ( baseSection != null ) - { - Collection keys = baseSection.getKeys(); - boolean foundList = false; - for ( Iterator i = keys.iterator(); i.hasNext() && !foundList; ) - { - String key = i.next(); - - // a little aggressive with the repositoryScanning and databaseScanning - should be no need to split - // that configuration - if ( key.startsWith( "repositories" ) || key.startsWith( "proxyConnectors" ) - || key.startsWith( "networkProxies" ) || key.startsWith( "repositoryScanning" ) - || key.startsWith( "databaseScanning" ) || key.startsWith( "remoteRepositories" ) - || key.startsWith( "managedRepositories" ) || key.startsWith( "repositoryGroups" ) ) - { - foundList = true; - } - } - - if ( foundList ) - { - this.configuration = null; - - throw new IndeterminateConfigurationException( - "Configuration can not be saved when it is loaded from two sources" ); - } - } - - // escape all cron expressions to handle ',' - escapeCronExpressions( configuration ); - - // [MRM-661] Due to a bug in the modello registry writer, we need to take these out by hand. They'll be put back by the writer. - if ( configuration.getManagedRepositories().isEmpty() ) - { - section.removeSubset( "managedRepositories" ); - } - if ( configuration.getRemoteRepositories().isEmpty() ) - { - section.removeSubset( "remoteRepositories" ); - } - if ( configuration.getProxyConnectors().isEmpty() ) - { - section.removeSubset( "proxyConnectors" ); - } - if ( configuration.getNetworkProxies().isEmpty() ) - { - section.removeSubset( "networkProxies" ); - } - if ( configuration.getLegacyArtifactPaths().isEmpty() ) - { - section.removeSubset( "legacyArtifactPaths" ); - } - if ( configuration.getRepositoryGroups().isEmpty() ) - { - section.removeSubset( "repositoryGroups" ); - } - if ( configuration.getRepositoryScanning() != null ) - { - if ( configuration.getRepositoryScanning().getKnownContentConsumers().isEmpty() ) - { - section.removeSubset( "repositoryScanning.knownContentConsumers" ); - } - if ( configuration.getRepositoryScanning().getInvalidContentConsumers().isEmpty() ) - { - section.removeSubset( "repositoryScanning.invalidContentConsumers" ); - } - } - if ( configuration.getDatabaseScanning() != null ) - { - if ( configuration.getDatabaseScanning().getCleanupConsumers().isEmpty() ) - { - section.removeSubset( "databaseScanning.cleanupConsumers" ); - } - if ( configuration.getDatabaseScanning().getUnprocessedConsumers().isEmpty() ) - { - section.removeSubset( "databaseScanning.unprocessedConsumers" ); - } - } - - new ConfigurationRegistryWriter().write( configuration, section ); - section.save(); - - this.configuration = unescapeExpressions( configuration ); - - triggerEvent( ConfigurationEvent.SAVED ); - } - - private void escapeCronExpressions( Configuration configuration ) - { - for ( ManagedRepositoryConfiguration c : (List) configuration.getManagedRepositories() ) - { - c.setRefreshCronExpression( escapeCronExpression( c.getRefreshCronExpression() ) ); - } - - DatabaseScanningConfiguration scanning = configuration.getDatabaseScanning(); - if ( scanning != null ) - { - scanning.setCronExpression( escapeCronExpression( scanning.getCronExpression() ) ); - } - } - - private Registry createDefaultConfigurationFile() - throws RegistryException - { - // TODO: may not be needed under commons-configuration 1.4 - check - // UPDATE: Upgrading to commons-configuration 1.4 breaks half the unit tests. 2007-10-11 (joakime) - - String contents = ""; - if ( !writeFile( "user configuration", userConfigFilename, contents ) ) - { - if ( !writeFile( "alternative configuration", altConfigFilename, contents ) ) - { - throw new RegistryException( "Unable to create configuration file in either user [" - + userConfigFilename + "] or alternative [" + altConfigFilename - + "] locations on disk, usually happens when not allowed to write to those locations." ); - } - } - - try - { - ( (Initializable) registry ).initialize(); - - for ( RegistryListener regListener : registryListeners ) - { - addRegistryChangeListener( regListener ); - } - } - catch ( InitializationException e ) - { - throw new RegistryException( "Unable to reinitialize configuration: " + e.getMessage(), e ); - } - - triggerEvent( ConfigurationEvent.SAVED ); - - return registry.getSection( KEY + ".user" ); - } - - /** - * Attempts to write the contents to a file, if an IOException occurs, return false. - * - * The file will be created if the directory to the file exists, otherwise this will return false. - * - * @param filetype the filetype (freeform text) to use in logging messages when failure to write. - * @param path the path to write to. - * @param contents the contents to write. - * @return true if write successful. - */ - private boolean writeFile( String filetype, String path, String contents ) - { - File file = new File( path ); - - try - { - // Check parent directory (if it is declared) - if ( file.getParentFile() != null ) - { - // Check that directory exists - if ( ( file.getParentFile().exists() == false ) || ( file.getParentFile().isDirectory() == false ) ) - { - // Directory to file must exist for file to be created - return false; - } - } - - FileUtils.writeStringToFile( file, contents, "UTF-8" ); - return true; - } - catch ( IOException e ) - { - log.error( "Unable to create " + filetype + " file: " + e.getMessage(), e ); - return false; - } - } - - private void triggerEvent( int type ) - { - ConfigurationEvent evt = new ConfigurationEvent( type ); - for ( ConfigurationListener listener : listeners ) - { - listener.configurationEvent( evt ); - } - } - - public void addListener( ConfigurationListener listener ) - { - if ( listener == null ) - { - return; - } - - listeners.add( listener ); - } - - public void removeListener( ConfigurationListener listener ) - { - if ( listener == null ) - { - return; - } - - listeners.remove( listener ); - } - - public void addChangeListener( RegistryListener listener ) - { - addRegistryChangeListener( listener ); - - // keep track for later - registryListeners.add( listener ); - } - - private void addRegistryChangeListener( RegistryListener listener ) - { - Registry section = registry.getSection( KEY + ".user" ); - if ( section != null ) - { - section.addChangeListener( listener ); - } - section = registry.getSection( KEY + ".base" ); - if ( section != null ) - { - section.addChangeListener( listener ); - } - } - - public void initialize() - throws InitializationException - { - // Resolve expressions in the userConfigFilename and altConfigFilename - try - { - ExpressionEvaluator expressionEvaluator = new DefaultExpressionEvaluator(); - expressionEvaluator.addExpressionSource( new SystemPropertyExpressionSource() ); - userConfigFilename = expressionEvaluator.expand( userConfigFilename ); - altConfigFilename = expressionEvaluator.expand( altConfigFilename ); - } - catch ( EvaluatorException e ) - { - throw new InitializationException( "Unable to evaluate expressions found in " - + "userConfigFilename or altConfigFilename." ); - } - - registry.addChangeListener( this ); - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - // nothing to do here - } - - public synchronized void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - configuration = null; - } - - private String removeExpressions( String directory ) - { - String value = StringUtils.replace( directory, "${appserver.base}", registry.getString( "appserver.base", - "${appserver.base}" ) ); - value = StringUtils.replace( value, "${appserver.home}", registry.getString( "appserver.home", - "${appserver.home}" ) ); - return value; - } - - private String unescapeCronExpression( String cronExpression ) - { - return StringUtils.replace( cronExpression, "\\,", "," ); - } - - private String escapeCronExpression( String cronExpression ) - { - return StringUtils.replace( cronExpression, ",", "\\," ); - } - - private Configuration unescapeExpressions( Configuration config ) - { - // TODO: for commons-configuration 1.3 only - for ( Iterator i = config.getManagedRepositories().iterator(); i.hasNext(); ) - { - ManagedRepositoryConfiguration c = i.next(); - c.setLocation( removeExpressions( c.getLocation() ) ); - c.setRefreshCronExpression( unescapeCronExpression( c.getRefreshCronExpression() ) ); - } - - DatabaseScanningConfiguration databaseScanning = config.getDatabaseScanning(); - if ( databaseScanning != null ) - { - String cron = databaseScanning.getCronExpression(); - databaseScanning.setCronExpression( unescapeCronExpression( cron ) ); - } - - return config; - } - - private Configuration checkRepositoryLocations( Configuration config ) - { - // additional check for [MRM-789], ensure that the location of the default repositories - // are not installed in the server installation - for( ManagedRepositoryConfiguration repo : (List) config.getManagedRepositories() ) - { - String repoPath = repo.getLocation(); - File repoLocation = new File( repoPath ); - - if( repoLocation.exists() && repoLocation.isDirectory() && !repoPath.endsWith( "data/repositories/" + repo.getId() ) ) - { - repo.setLocation( repoPath + "/data/repositories/" + repo.getId() ); - } - } - - return config; - } - - public String getUserConfigFilename() - { - return userConfigFilename; - } - - public String getAltConfigFilename() - { - return altConfigFilename; - } - - public boolean isDefaulted() - { - return this.isConfigurationDefaulted; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/FileTypes.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/FileTypes.java deleted file mode 100644 index 66be709b6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/FileTypes.java +++ /dev/null @@ -1,252 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.Predicate; -import org.apache.commons.configuration.CombinedConfiguration; -import org.apache.maven.archiva.common.utils.Slf4JPlexusLogger; -import org.apache.maven.archiva.configuration.functors.FiletypeSelectionPredicate; -import org.apache.maven.archiva.configuration.io.registry.ConfigurationRegistryReader; -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.RegistryException; -import org.codehaus.plexus.registry.RegistryListener; -import org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry; -import org.codehaus.plexus.util.SelectorUtils; - -/** - * FileTypes - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.configuration.FileTypes" - */ -public class FileTypes - implements Initializable, RegistryListener -{ - public static final String ARTIFACTS = "artifacts"; - - public static final String AUTO_REMOVE = "auto-remove"; - - public static final String INDEXABLE_CONTENT = "indexable-content"; - - public static final String IGNORED = "ignored"; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - /** - * Map of default values for the file types. - */ - private Map> defaultTypeMap = new HashMap>(); - - private List artifactPatterns; - - /** - * Default exclusions from artifact consumers that are using the file types. Note that this is simplistic in the - * case of the support files (based on extension) as it is elsewhere - it may be better to match these to actual - * artifacts and exclude later during scanning. - */ - public static final List DEFAULT_EXCLUSIONS = Arrays.asList( "**/maven-metadata.xml", - "**/maven-metadata-*.xml", "**/*.sha1", - "**/*.asc", "**/*.md5", "**/*.pgp" ); - - public void setArchivaConfiguration( ArchivaConfiguration archivaConfiguration ) - { - this.archivaConfiguration = archivaConfiguration; - } - - /** - *

- * Get the list of patterns for a specified filetype. - *

- * - *

- * You will always get a list. In this order. - *

    - *
  • The Configured List
  • - *
  • The Default List
  • - *
  • A single item list of "**/*"
  • - *
- *

- * - * @param id the id to lookup. - * @return the list of patterns. - */ - public List getFileTypePatterns( String id ) - { - Configuration config = archivaConfiguration.getConfiguration(); - Predicate selectedFiletype = new FiletypeSelectionPredicate( id ); - FileType filetype = (FileType) CollectionUtils.find( config.getRepositoryScanning().getFileTypes(), - selectedFiletype ); - - if ( ( filetype != null ) && CollectionUtils.isNotEmpty( filetype.getPatterns() ) ) - { - return filetype.getPatterns(); - } - - List defaultPatterns = defaultTypeMap.get( id ); - - if ( CollectionUtils.isEmpty( defaultPatterns ) ) - { - return Collections.singletonList( "**/*" ); - } - - return defaultPatterns; - } - - public synchronized boolean matchesArtifactPattern( String relativePath ) - { - // Correct the slash pattern. - relativePath = relativePath.replace( '\\', '/' ); - - if ( artifactPatterns == null ) - { - artifactPatterns = getFileTypePatterns( ARTIFACTS ); - } - - for ( String pattern : artifactPatterns ) - { - if ( SelectorUtils.matchPath( pattern, relativePath, false ) ) - { - // Found match - return true; - } - } - - // No match. - return false; - } - - public boolean matchesDefaultExclusions( String relativePath ) - { - // Correct the slash pattern. - relativePath = relativePath.replace( '\\', '/' ); - - for ( String pattern : DEFAULT_EXCLUSIONS ) - { - if ( SelectorUtils.matchPath( pattern, relativePath, false ) ) - { - // Found match - return true; - } - } - - // No match. - return false; - } - - public void initialize() - throws InitializationException - { - // TODO: why is this done by hand? - - // TODO: ideally, this would be instantiated by configuration instead, and not need to be a component - - String errMsg = "Unable to load default archiva configuration for FileTypes: "; - - try - { - CommonsConfigurationRegistry commonsRegistry = new CommonsConfigurationRegistry(); - - // Configure commonsRegistry - Field fld = commonsRegistry.getClass().getDeclaredField( "configuration" ); - fld.setAccessible( true ); - fld.set( commonsRegistry, new CombinedConfiguration() ); - commonsRegistry.enableLogging( new Slf4JPlexusLogger( FileTypes.class ) ); - commonsRegistry.addConfigurationFromResource( "org/apache/maven/archiva/configuration/default-archiva.xml" ); - - // Read configuration as it was intended. - ConfigurationRegistryReader configReader = new ConfigurationRegistryReader(); - Configuration defaultConfig = configReader.read( commonsRegistry ); - - initialiseTypeMap( defaultConfig ); - } - catch ( RegistryException e ) - { - throw new InitializationException( errMsg + e.getMessage(), e ); - } - catch ( SecurityException e ) - { - throw new InitializationException( errMsg + e.getMessage(), e ); - } - catch ( NoSuchFieldException e ) - { - throw new InitializationException( errMsg + e.getMessage(), e ); - } - catch ( IllegalArgumentException e ) - { - throw new InitializationException( errMsg + e.getMessage(), e ); - } - catch ( IllegalAccessException e ) - { - throw new InitializationException( errMsg + e.getMessage(), e ); - } - - this.archivaConfiguration.addChangeListener( this ); - } - - private void initialiseTypeMap( Configuration configuration ) - { - defaultTypeMap.clear(); - - // Store the default file type declaration. - List filetypes = configuration.getRepositoryScanning().getFileTypes(); - for ( FileType filetype : filetypes ) - { - List patterns = defaultTypeMap.get( filetype.getId() ); - if ( patterns == null ) - { - patterns = new ArrayList(); - } - patterns.addAll( filetype.getPatterns() ); - - defaultTypeMap.put( filetype.getId(), patterns ); - } - } - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( propertyName.contains( "fileType" ) ) - { - artifactPatterns = null; - - initialiseTypeMap( archivaConfiguration.getConfiguration() ); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* nothing to do */ - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/IndeterminateConfigurationException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/IndeterminateConfigurationException.java deleted file mode 100644 index 97d5fbdf2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/IndeterminateConfigurationException.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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. - */ - -/** - * Occurs when the configuration is stored in two locations and the save location can not be determined. - */ -public class IndeterminateConfigurationException - extends Exception -{ - public IndeterminateConfigurationException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/InvalidConfigurationException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/InvalidConfigurationException.java deleted file mode 100644 index 0efcde250..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/InvalidConfigurationException.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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. - */ - -/** - * An error in the configuration. - * - * @author Brett Porter - */ -public class InvalidConfigurationException - extends Exception -{ - private final String name; - - public InvalidConfigurationException( String name, String message ) - { - super( message ); - this.name = name; - } - - public InvalidConfigurationException( String name, String message, Throwable cause ) - { - super( message, cause ); - - this.name = name; - } - - public String getName() - { - return name; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoader.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoader.java deleted file mode 100644 index e48b2d39a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoader.java +++ /dev/null @@ -1,154 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Enumeration; -import java.util.Properties; -import java.util.StringTokenizer; - -/** - * @author Ben Walding - * @author Brett Porter - */ -public class MavenProxyPropertyLoader -{ - private static final String REPO_LOCAL_STORE = "repo.local.store"; - - private static final String PROXY_LIST = "proxy.list"; - - private static final String REPO_LIST = "repo.list"; - - public void load( Properties props, Configuration configuration ) - throws InvalidConfigurationException - { - // set up the managed repository - String localCachePath = getMandatoryProperty( props, REPO_LOCAL_STORE ); - - ManagedRepositoryConfiguration config = new ManagedRepositoryConfiguration(); - config.setLocation( localCachePath ); - config.setName( "Imported Maven-Proxy Cache" ); - config.setId( "maven-proxy" ); - config.setScanned( false ); - config.setReleases( true ); - config.setSnapshots( false ); - configuration.addManagedRepository( config ); - - // Add the network proxies. - String propertyList = props.getProperty( PROXY_LIST ); - if ( propertyList != null ) - { - StringTokenizer tok = new StringTokenizer( propertyList, "," ); - while ( tok.hasMoreTokens() ) - { - String key = tok.nextToken(); - if ( StringUtils.isNotEmpty( key ) ) - { - NetworkProxyConfiguration proxy = new NetworkProxyConfiguration(); - proxy.setHost( getMandatoryProperty( props, "proxy." + key + ".host" ) ); - proxy.setPort( Integer.parseInt( getMandatoryProperty( props, "proxy." + key + ".port" ) ) ); - - // the username and password isn't required - proxy.setUsername( props.getProperty( "proxy." + key + ".username" ) ); - proxy.setPassword( props.getProperty( "proxy." + key + ".password" ) ); - - configuration.addNetworkProxy( proxy ); - } - } - } - - // Add the remote repository list - String repoList = getMandatoryProperty( props, REPO_LIST ); - - StringTokenizer tok = new StringTokenizer( repoList, "," ); - while ( tok.hasMoreTokens() ) - { - String key = tok.nextToken(); - - Properties repoProps = getSubset( props, "repo." + key + "." ); - String url = getMandatoryProperty( props, "repo." + key + ".url" ); - String proxyKey = repoProps.getProperty( "proxy" ); - - int cachePeriod = Integer.parseInt( repoProps.getProperty( "cache.period", "60" ) ); - - RemoteRepositoryConfiguration repository = new RemoteRepositoryConfiguration(); - repository.setId( key ); - repository.setName( "Imported Maven-Proxy Remote Proxy" ); - repository.setUrl( url ); - repository.setLayout( "legacy" ); - - configuration.addRemoteRepository( repository ); - - ProxyConnectorConfiguration proxyConnector = new ProxyConnectorConfiguration(); - proxyConnector.setSourceRepoId( "maven-proxy" ); - proxyConnector.setTargetRepoId( key ); - proxyConnector.setProxyId( proxyKey ); - // TODO: convert cachePeriod to closest "daily" or "hourly" - proxyConnector.addPolicy( ProxyConnectorConfiguration.POLICY_SNAPSHOTS, SnapshotsPolicy.DAILY ); - proxyConnector.addPolicy( ProxyConnectorConfiguration.POLICY_RELEASES, ReleasesPolicy.ALWAYS ); - - configuration.addProxyConnector( proxyConnector ); - } - } - - @SuppressWarnings("unchecked") - private Properties getSubset( Properties props, String prefix ) - { - Enumeration keys = props.keys(); - Properties result = new Properties(); - while ( keys.hasMoreElements() ) - { - String key = (String) keys.nextElement(); - String value = props.getProperty( key ); - if ( key.startsWith( prefix ) ) - { - String newKey = key.substring( prefix.length() ); - result.setProperty( newKey, value ); - } - } - return result; - } - - public void load( InputStream is, Configuration configuration ) - throws IOException, InvalidConfigurationException - { - Properties props = new Properties(); - props.load( is ); - load( props, configuration ); - } - - private String getMandatoryProperty( Properties props, String key ) - throws InvalidConfigurationException - { - String value = props.getProperty( key ); - - if ( value == null ) - { - throw new InvalidConfigurationException( key, "Missing required field: " + key ); - } - - return value; - } -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/FiletypeSelectionPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/FiletypeSelectionPredicate.java deleted file mode 100644 index cfbe58fbe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/FiletypeSelectionPredicate.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.apache.maven.archiva.configuration.functors; - -/* - * 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.collections.Predicate; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.FileType; - -/** - * FiletypeSelectionPredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FiletypeSelectionPredicate - implements Predicate -{ - private String filetypeId; - - public FiletypeSelectionPredicate( String id ) - { - this.filetypeId = id; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof FileType ) - { - FileType filetype = (FileType) object; - return ( StringUtils.equals( filetypeId, filetype.getId() ) ); - } - - return satisfies; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/FiletypeToMapClosure.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/FiletypeToMapClosure.java deleted file mode 100644 index 96f15ab2a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/FiletypeToMapClosure.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.apache.maven.archiva.configuration.functors; - -/* - * 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.collections.Closure; -import org.apache.maven.archiva.configuration.FileType; - -import java.util.HashMap; -import java.util.Map; - -/** - * FiletypeToMapClosure - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FiletypeToMapClosure - implements Closure -{ - private Map map = new HashMap(); - - public void execute( Object input ) - { - if ( input instanceof FileType ) - { - FileType filetype = (FileType) input; - map.put( filetype.getId(), filetype ); - } - } - - public Map getMap() - { - return map; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/NetworkProxyComparator.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/NetworkProxyComparator.java deleted file mode 100644 index aebc924ba..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/NetworkProxyComparator.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.apache.maven.archiva.configuration.functors; - -/* - * 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.configuration.NetworkProxyConfiguration; - -import java.util.Comparator; - -/** - * NetworkProxyComparator - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class NetworkProxyComparator - implements Comparator -{ - public int compare( NetworkProxyConfiguration o1, NetworkProxyConfiguration o2 ) - { - if ( o1 == null && o2 == null ) - { - return 0; - } - - if ( o1 == null && o2 != null ) - { - return 1; - } - - if ( o1 != null && o2 == null ) - { - return -1; - } - - String id1 = o1.getId(); - String id2 = o2.getId(); - return id1.compareToIgnoreCase( id2 ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/NetworkProxySelectionPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/NetworkProxySelectionPredicate.java deleted file mode 100644 index b89828307..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/NetworkProxySelectionPredicate.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.apache.maven.archiva.configuration.functors; - -/* - * 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.collections.Predicate; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.NetworkProxyConfiguration; - -/** - * NetworkProxySelectionPredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class NetworkProxySelectionPredicate - implements Predicate -{ - private String proxyId; - - public NetworkProxySelectionPredicate( String id ) - { - this.proxyId = id; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof NetworkProxyConfiguration ) - { - NetworkProxyConfiguration proxy = (NetworkProxyConfiguration) object; - return ( StringUtils.equals( proxyId, proxy.getId() ) ); - } - - return satisfies; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java deleted file mode 100644 index 6c6cffe6f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.apache.maven.archiva.configuration.functors; - -/* - * 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.configuration.ProxyConnectorConfiguration; - -import java.util.Comparator; - -/** - * ProxyConnectorConfigurationOrderComparator - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProxyConnectorConfigurationOrderComparator - implements Comparator -{ - private static ProxyConnectorConfigurationOrderComparator INSTANCE = new ProxyConnectorConfigurationOrderComparator(); - - public int compare( ProxyConnectorConfiguration o1, ProxyConnectorConfiguration o2 ) - { - if ( o1 == null && o2 == null ) - { - return 0; - } - - // Ensure null goes to end of list. - if ( o1 == null && o2 != null ) - { - return 1; - } - - if ( o1 != null && o2 == null ) - { - return -1; - } - - // Ensure 0 (unordered) goes to end of list. - if ( o1.getOrder() == 0 && o2.getOrder() != 0 ) - { - return 1; - } - - if ( o1.getOrder() != 0 && o2.getOrder() == 0 ) - { - return -1; - } - - return o1.getOrder() - o2.getOrder(); - } - - public static ProxyConnectorConfigurationOrderComparator getInstance() - { - return INSTANCE; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java deleted file mode 100644 index af18c6c5f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.apache.maven.archiva.configuration.functors; - -/* - * 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.collections.Predicate; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; - -/** - * ProxyConnectorPredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProxyConnectorSelectionPredicate - implements Predicate -{ - private String sourceId; - - private String targetId; - - public ProxyConnectorSelectionPredicate( String sourceId, String targetId ) - { - this.sourceId = sourceId; - this.targetId = targetId; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof ProxyConnectorConfiguration ) - { - ProxyConnectorConfiguration connector = (ProxyConnectorConfiguration) object; - return ( StringUtils.equals( sourceId, connector.getSourceRepoId() ) && StringUtils - .equals( targetId, connector.getTargetRepoId() ) ); - } - - return satisfies; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/RepositoryConfigurationComparator.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/RepositoryConfigurationComparator.java deleted file mode 100644 index caf99d343..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/RepositoryConfigurationComparator.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.apache.maven.archiva.configuration.functors; - -/* - * 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.configuration.AbstractRepositoryConfiguration; - -import java.util.Comparator; - -/** - * RepositoryConfigurationComparator - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryConfigurationComparator - implements Comparator -{ - public int compare( AbstractRepositoryConfiguration o1, AbstractRepositoryConfiguration o2 ) - { - if ( o1 == null && o2 == null ) - { - return 0; - } - - if ( o1 == null ) - { - return -1; - } - - if ( o2 == null ) - { - return 1; - } - - return o1.getId().compareToIgnoreCase( o2.getId() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo deleted file mode 100644 index 1af52dd63..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo +++ /dev/null @@ -1,1136 +0,0 @@ - - - - - configuration - Configuration - - Configuration for the Maven Repository Manager. - - - - package - org.apache.maven.archiva.configuration - - - - - Configuration - 1.0.0+ - - - version - 1.0.0+ - String - true - This is the version of the configuration format. - - - - @deprecated use managedRepositories or remoteRepositories instead. - - repositories - 1.0.0+ - - V1RepositoryConfiguration - * - - - - repositoryGroups - 1.2.0+ - - RepositoryGroupConfiguration - * - - The list of repository groups. - - - managedRepositories - 1.0.0+ - - ManagedRepositoryConfiguration - * - - The list of repositories that this archiva instance uses. - - - remoteRepositories - 1.0.0+ - - RemoteRepositoryConfiguration - * - - The list of repositories that this archiva can retrieve from or publish to. - - - proxyConnectors - 1.0.0+ - - ProxyConnectorConfiguration - * - - The list of proxy connectors for this archiva instance. - - - - networkProxies - 1.0.0+ - - NetworkProxyConfiguration - * - - - The list of network proxies to use for outgoing requests. - - - - legacyArtifactPaths - 1.1.0+ - - LegacyArtifactPath - * - - - The list of custom legacy path to artifact. - - - - repositoryScanning - 1.0.0+ - - RepositoryScanningConfiguration - 1 - - - The repository scanning configuration. - - - - databaseScanning - 1.0.0+ - - DatabaseScanningConfiguration - 1 - - - The database scanning configuration. - - - - webapp - 1.0.0+ - - WebappConfiguration - 1 - - - The webapp configuration. - - - - organisationInfo - 1.1.0+ - - OrganisationInformation - 1 - - - The organisation info. - - - - - - 1.2.0+ - > repositoryToGroupMap; - - public java.util.Map> getRepositoryToGroupMap() - { - if ( repositoryGroups != null ) - { - java.util.Map> map = new java.util.HashMap>(); - - for ( RepositoryGroupConfiguration group : (java.util.List) repositoryGroups ) - { - for ( String repositoryId : (java.util.List) group.getRepositories() ) - { - java.util.List groups = map.get( repositoryId ); - if ( groups == null ) - { - groups = new java.util.ArrayList(); - map.put( repositoryId, groups ); - } - groups.add( group.getId() ); - } - } - - repositoryToGroupMap = map; - } - return repositoryToGroupMap; - } - - public java.util.Map getRepositoryGroupsAsMap() - { - java.util.Map map = new java.util.HashMap(); - if ( repositoryGroups != null ) - { - for ( RepositoryGroupConfiguration group : (java.util.List) repositoryGroups ) - { - map.put( group.getId(), group ); - } - } - return map; - } - - public RepositoryGroupConfiguration findRepositoryGroupById( String id ) - { - if ( repositoryGroups != null ) - { - for ( RepositoryGroupConfiguration group : (java.util.List) repositoryGroups ) - { - if ( group.getId().equals( id ) ) - { - return group; - } - } - } - return null; - } - - private java.util.Map> groupToRepositoryMap; - - public java.util.Map> getGroupToRepositoryMap() - { - if ( repositoryGroups != null && managedRepositories != null ) - { - java.util.Map> map = new java.util.HashMap>(); - - for ( ManagedRepositoryConfiguration repo : (java.util.List) managedRepositories ) - { - for ( RepositoryGroupConfiguration group : (java.util.List) repositoryGroups ) - { - if ( !group.getRepositories().contains( repo.getId() ) ) - { - String groupId = group.getId(); - java.util.List repos = map.get( groupId ); - if ( repos == null ) - { - repos = new java.util.ArrayList(); - map.put( groupId, repos ); - } - repos.add( repo.getId() ); - } - } - } - groupToRepositoryMap = map; - } - return groupToRepositoryMap; - } - ]]> - - - 1.0.0+ - getNetworkProxiesAsMap() - { - java.util.Map map = new java.util.HashMap(); - if ( networkProxies != null ) - { - for ( java.util.Iterator i = networkProxies.iterator(); i.hasNext(); ) - { - NetworkProxyConfiguration proxy = i.next(); - map.put( proxy.getId(), proxy ); - } - } - return map; - } - - public java.util.Map> getProxyConnectorAsMap() - { - java.util.Map> proxyConnectorMap = - new java.util.HashMap>(); - - java.util.Iterator it = proxyConnectors.iterator(); - while ( it.hasNext() ) - { - ProxyConnectorConfiguration proxyConfig = it.next(); - String key = proxyConfig.getSourceRepoId(); - - java.util.List connectors = proxyConnectorMap.get( key ); - if ( connectors == null ) - { - connectors = new java.util.ArrayList(); - proxyConnectorMap.put( key, connectors ); - } - - connectors.add( proxyConfig ); - java.util.Collections.sort( connectors, - org.apache.maven.archiva.configuration.functors.ProxyConnectorConfigurationOrderComparator.getInstance() ); - } - - return proxyConnectorMap; - } - - public java.util.Map getRemoteRepositoriesAsMap() - { - java.util.Map map = new java.util.HashMap(); - if ( remoteRepositories != null ) - { - for ( java.util.Iterator i = remoteRepositories.iterator(); i.hasNext(); ) - { - RemoteRepositoryConfiguration repo = i.next(); - map.put( repo.getId(), repo ); - } - } - return map; - } - - public RemoteRepositoryConfiguration findRemoteRepositoryById( String id ) - { - if ( remoteRepositories != null ) - { - for ( java.util.Iterator i = remoteRepositories.iterator(); i.hasNext(); ) - { - RemoteRepositoryConfiguration repo = i.next(); - if ( repo.getId().equals( id ) ) - { - return repo; - } - } - } - return null; - } - - public java.util.Map getManagedRepositoriesAsMap() - { - java.util.Map map = new java.util.HashMap(); - if ( managedRepositories != null ) - { - for ( java.util.Iterator i = managedRepositories.iterator(); i.hasNext(); ) - { - ManagedRepositoryConfiguration repo = i.next(); - map.put( repo.getId(), repo ); - } - } - return map; - } - - public ManagedRepositoryConfiguration findManagedRepositoryById( String id ) - { - if ( managedRepositories != null ) - { - for ( java.util.Iterator i = managedRepositories.iterator(); i.hasNext(); ) - { - ManagedRepositoryConfiguration repo = i.next(); - if ( repo.getId().equals( id ) ) - { - return repo; - } - } - } - return null; - } - ]]> - - - - - - - - AbstractRepositoryConfiguration - 1.0.0+ - true - - - id - 1.0.0+ - String - true - - The repository identifier. - - - - name - 1.0.0+ - String - true - - The descriptive name of the repository. - - - - layout - 1.0.0+ - String - true - - The layout of the repository. Valid values are "default" and "legacy". - - - default - - - - - RemoteRepositoryConfiguration - 1.0.0+ - AbstractRepositoryConfiguration - - - url - 1.0.0+ - String - true - - The URL for this repository. - - - - username - 1.0.0+ - String - - The Username for this repository. - - - - password - 1.0.0+ - String - - The Password for this repository. - - - - timeout - 1.0.1+ - int - - Timeout in seconds for connections to this repository - - 60 - - - - - ManagedRepositoryConfiguration - 1.0.0+ - AbstractRepositoryConfiguration - - - location - 1.0.0+ - String - true - - The file system location for this repository. - - - - releases - 1.0.0+ - boolean - True if this repository contains release versioned artifacts. - true - - - snapshots - 1.0.0+ - boolean - True if this repository contains snapshot versioned artifacts. - false - - - scanned - 1.0.0+ - boolean - True if this repository should be scanned and processed. - true - - - indexDir - 1.0.0+ - String - - The directory for the indexes of this repository. - - - - refreshCronExpression - 1.0.0+ - String - - When to run the refresh task. - Default is every hour - - 0 0 * * * ? - - - retentionCount - 1.0.0+ - int - - The total count of the artifact to be retained for each snapshot. - - 2 - - - daysOlder - 1.0.0+ - int - - The number of days old which will be the basis for removing a snapshot. - - 100 - - - deleteReleasedSnapshots - 1.0.0+ - boolean - - True if the released snapshots are to be removed from the repo during repository purge. - - false - - - - - V1RepositoryConfiguration - 1.0.0+ - ManagedRepositoryConfiguration - - - url - 1.0.0+ - String - true - - The URL for this repository. - - - - indexed - 1.0.0+ - boolean - true - - - - - - LegacyArtifactPath - 1.1.0+ - - - path - 1.1.0+ - String - true - - The legacy path. - - - - artifact - 1.1.0+ - String - true - - The artifact reference, as " [groupId] : [artifactId] : [version] : [classifier] : [type] ". - - - - - - 1.0.0+ - 0 ? classifier : null; - } - - public String getType() - { - return artifact.split( ":" )[4]; - } - ]]> - - - - - RepositoryGroupConfiguration - 1.2.0+ - - - id - 1.2.0+ - String - true - The id of the repository group. - - - repositories - 1.2.0+ - - String - * - - The list of repository ids under the group. - - - - - - - - AbstractRepositoryConnectorConfiguration - true - 1.0.0+ - - - sourceRepoId - 1.0.0+ - String - true - - The Repository Source for this connector. - - - - targetRepoId - 1.0.0+ - String - true - - The Repository Target for this connector. - - - - proxyId - 1.0.0+ - String - - The network proxy ID to use for this connector. - - - - blackListPatterns - 1.0.0+ - - String - * - - - The list of blacklisted patterns for this connector. - - - - whiteListPatterns - 1.0.0+ - - String - * - - - The list of whitelisted patterns for this connector. - - - - policies - 1.0.0+ - Map - Policy configuration for the connector. - - String - * - - - - properties - 1.0.0+ - Map - Configuration for the connector. - - String - * - - - - disabled - 1.2+ - - If the the repository proxy connector is disabled or not - - boolean - false - - - - - 1.0.0+ - - - - - - - AbstractRepositoryConnectorConfiguration - ProxyConnectorConfiguration - 1.0.0+ - - - order - 1.0.0+ - - The order of the proxy connectors. (0 means no order specified) - - int - 0 - - - - - 1.0.0+ - - - - - - - AbstractRepositoryConnectorConfiguration - SyncConnectorConfiguration - true - 1.0.0+ - - - cronExpression - 1.0.0+ - String - When to run the sync mechanism. Default is every hour on the hour. - 0 0 * * * ? - - - method - 1.0.0+ - String - The type of synchronization to use. - rsync - - - - - - - - NetworkProxyConfiguration - 1.0.0+ - - - id - 1.0.0+ - String - - The ID for this proxy. - - - - protocol - 1.0.0+ - - The network protocol to use with this proxy: "http", "socks-4" - - String - true - http - - - host - 1.0.0+ - - The proxy host. - - String - true - - - port - 1.0.0+ - - The proxy port. - - int - 8080 - - - username - 1.0.0+ - - The proxy user. - - String - - - password - 1.0.0+ - - The proxy password. - - String - - - - - - - RepositoryScanningConfiguration - 1.0.0+ - - - fileTypes - 1.0.0+ - true - - FileType - * - - - The FileTypes for the repository scanning configuration. - - - - knownContentConsumers - 1.0.0+ - true - - String - * - - - The list of active consumers IDs for known content. - - - - invalidContentConsumers - 1.0.0+ - true - - String - * - - - The list of active consumer IDs for invalid content. - - - - - - FileType - 1.0.0+ - The FileType object - - - id - 1.0.0+ - true - String - - - patterns - 1.0.0+ - true - - String - * - - - - - - DatabaseScanningConfiguration - 1.0.0+ - - The scanning configuration for unprocessed ArchivaArtifact database objects. - - - - cronExpression - 1.0.0+ - String - When to run the database scanning mechanism. Default is every two hours on the hour. - - 0 0 0/2 * * ? - - - unprocessedConsumers - 1.0.0+ - true - - String - * - - - The list of consumers for the unprocessed ArchivaArtifact database objects. - - - - cleanupConsumers - 1.0.0+ - true - - String - * - - - The list of consumers for previously processed ArchivaArtifact database - objects that no longer exist on the filesystem, and might need to - undergo a cleanup. - - - - - - - - - OrganisationInformation - 1.1.0+ - - The organisation information settings. - - - - name - name of the organisation - 1.1.0+ - - String - - - - url - name of the organisation - 1.1.0+ - - String - - - - logoLocation - name of the organisation - 1.1.0+ - - String - - - - - - - WebappConfiguration - 1.0.0+ - - The webapp configuration settings. - - - - ui - options for altering the ui presentation - 1.0.0+ - - UserInterfaceOptions - - - - - - - UserInterfaceOptions - 1.0.0+ - - The user interface configuration settings. - - - - showFindArtifacts - true if find artifacts should be enabled - 1.0.0+ - boolean - true - - - appletFindEnabled - true if applet behavior for find artifacts should be enabled - 1.0.0+ - boolean - true - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/SyncedRepositoryConfiguration-conversion.properties b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/SyncedRepositoryConfiguration-conversion.properties deleted file mode 100644 index 2beeea469..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/SyncedRepositoryConfiguration-conversion.properties +++ /dev/null @@ -1,21 +0,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. -# - -Key_properties=java.lang.String -Element_properties=java.lang.String diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/default-archiva.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/default-archiva.xml deleted file mode 100644 index 12473f3f1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/default-archiva.xml +++ /dev/null @@ -1,178 +0,0 @@ - - - 2 - - - internal - Archiva Managed Internal Repository - ${appserver.base}/data/repositories/internal - default - true - false - true - 0 0 * * * ? - 30 - - - snapshots - Archiva Managed Snapshot Repository - ${appserver.base}/data/repositories/snapshots - default - false - true - true - 0 0\,30 * * * ? - 30 - - - - - central - Central Repository - http://repo1.maven.org/maven2 - default - - - maven2-repository.dev.java.net - Java.net Repository for Maven 2 - http://download.java.net/maven/2/ - default - - - - - - internal - central - - - disabled - once - fix - cached - - - **/* - - - - internal - maven2-repository.dev.java.net - - - disabled - once - fix - cached - - - javax/** - org/jvnet/** - com/sun/** - - - - - - - jaxen/jars/jaxen-1.0-FCS-full.jar - jaxen:jaxen:1.0-FCS:full:jar - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - metadata-updater - - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - - - true - true - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/archiva-0.9.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/archiva-0.9.xml deleted file mode 100644 index c8032436a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/archiva-0.9.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - managed-repository - local - local - - - - - http://www.ibiblio.org/maven2/ - local - true - ibiblio - Ibiblio - - - http://repository.codehaus.org/ - local - codehaus - Codehaus - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/archiva-v1.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/archiva-v1.xml deleted file mode 100644 index 2b05c9251..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/archiva-v1.xml +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - internal - Archiva Managed Internal Repository - file://${appserver.base}/repositories/internal - default - true - false - true - 0 0 * * * ? - - - snapshots - Archiva Managed Snapshot Repository - file://${appserver.base}/repositories/snapshots - default - false - true - false - 0 0,30 * * * ? - - - central - Central Repository - http://repo1.maven.org/maven2 - default - true - false - false - - - maven2-repository.dev.java.net - Java.net Repository for Maven 2 - https://maven2-repository.dev.java.net/nonav/repository - default - true - false - false - - - - - - internal - central - - disabled - never - not-found - - - internal - maven2-repository.dev.java.net - - disabled - never - not-found - - javax/** - - - - - - - example - http - proxy.mycompany.com - 8080 - myself - mypass - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - metadata-updater - - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - - - true - true - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/autodetect-v1.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/autodetect-v1.xml deleted file mode 100644 index 29f3775bb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/autodetect-v1.xml +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - internal - Archiva Managed Internal Repository - file://${appserver.base}/repositories/internal - default - true - false - true - 0 0 * * * ? - - - snapshots - Archiva Managed Snapshot Repository - file:${appserver.base}/repositories/snapshots - default - false - true - true - 0 0,30 * * * ? - - - central - Central Repository - http://repo1.maven.org/maven2 - default - true - false - false - - - maven2-repository.dev.java.net - Java.net Repository for Maven 2 - https://maven2-repository.dev.java.net/nonav/repository - default - true - false - false - - - - - - internal - central - - disabled - never - not-found - - - internal - maven2-repository.dev.java.net - - disabled - never - not-found - - javax/** - - - - - - - example - http - proxy.mycompany.com - 8080 - myself - mypass - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - metadata-updater - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - - - true - true - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-base.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-base.xml deleted file mode 100644 index 84ab085d0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-base.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - 2 - - - internal - Archiva Managed Internal Repository - ${appserver.base}/repositories/internal - default - true - false - true - 0 0 * * * ? - - - snapshots - Archiva Managed Snapshot Repository - ${appserver.base}/repositories/snapshots - default - false - true - true - 0 0,30 * * * ? - - - - - central - Central Repository - http://repo1.maven.org/maven2 - default - - - maven2-repository.dev.java.net - Java.net Repository for Maven 2 - https://maven2-repository.dev.java.net/nonav/repository - default - - - - - - false - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-single-list-elements.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-single-list-elements.xml deleted file mode 100644 index 3e3d4dc97..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-single-list-elements.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - 2 - - - default - - snapshots - - - - - - snapshots - Archiva Managed Snapshot Repository - ${appserver.base}/repositories/snapshots - default - false - true - true - 0 0,30 * * * ? - - - - - central - Central Repository - http://repo1.maven.org/maven2 - default - - - - - 2 - internal - maven2-repository.dev.java.net - - - javax/** - - - once - fix - never - yes - - - - - - proxy - proxy - 8080 - - - - - jaxen/jars/jaxen-1.0-FCS-full.jar - jaxen:jaxen:1.0-FCS:full:jar - - - - - auto-remove - - - update-db-bad-content - - - - - update-db-bytecode-stats - - - not-present-remove-db-project - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-user.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-user.xml deleted file mode 100644 index 61c4dadc2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/conf-user.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - 2 - - - internal - central - - disabled - never - not-found - - - internal - maven2-repository.dev.java.net - - disabled - never - not-found - - javax/** - - - - - - - false - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/corrupt.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/corrupt.xml deleted file mode 100644 index b4469289a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/corrupt.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/escape-cron-expressions.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/escape-cron-expressions.xml deleted file mode 100644 index 547e8c0b5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/escape-cron-expressions.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - 2 - - - snapshots - Archiva Managed Snapshot Repository - file://${appserver.base}/repositories/internal - false - true - 0 0\,30 * * * ? - - - - 0 0 0 * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - - - false - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/maven-proxy-complete.conf b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/maven-proxy-complete.conf deleted file mode 100644 index 7908a9ad9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/maven-proxy-complete.conf +++ /dev/null @@ -1,144 +0,0 @@ -################ GLOBAL SETTINGS -# This is where maven-proxy stores files it has downloaded -repo.local.store=target - -#The port to listen on - not used if loaded as a webapp -port=9999 - -#This is the base area that all files are loaded from. While it is possible to leave this blank, this behaviour -#is deprecated and will be disabled in version 2.0. There are too many namespace conflicts caused by not using -#a prefix. -#The repository will be shown at http://localhost:9999/repository/ -#for the .war loaded into a webapp server, the default prefix is "repository" (edit the web.xml to change) -# As maven doesn't like a trailing slash, this address shouldn't have one either. -prefix=repository - -#This is the simple date format used to display the last modified date while browsing the repository. -lastModifiedDateFormat=yyyy/MM/dd HH:mm:ss - -################ SNAPSHOT HANDLING -#If you want the proxy to look for newer snapshots, set to true -snapshot.update=true - -################ M2 METADATA HANDLING -#If you want the proxy to prevent looking for newer metadata, set to false (default is true) -#metadata.update=false - -################ M2 POM HANDLING -#If you want the proxy to look for newer POMs, set to true (default is false) -pom.update=true - -################ PROMOTION HANDLING -# ***** NOT CURRENTLY IMPLEMENTED ***** -#Promotion describes the process by which new artifacts are loaded to global maven-proxy repository. It -# is designed to be used by "higher security installations" that do not want to acquire artifacts from -# remote repositories without approval. -# -#If promotion handling is enabled, then the proxy will not download remote artifacts without permission -# (local repositories with copy=false are considered to be local) -# -#Permission to download is granted via the Promotion menu which will be enabled -# when promotion handling is enabled. -# -#If promotion is false, artifacts are sourced from any repository as per normal. -# -#Promotion and snapshots: If promotion is enabled, snapshots are not downloadable. The concept of using -# a snapshot in a production build (which is primarily what promotion is for) is counterintuitive. -## -promotion=false - -################ WEB INTERFACE -# This defines the absolute URL the server should use to identify itself. -# This can often be determined automatically, but we recommend you specify -# it explicitly to prevent problems during startup. -# The prefix will be added to this for the actual repository -# i.e. proxy available at http://localhost:9999/, repository at http://localhost:9999/repository -serverName=http://localhost:9999 - -#If true, the repository can be browsed -browsable=true - -#If true, the repository can be searched -searchable=true - -#Not currently implemented. Will allow webdav access to the repository at some point. -webdav=true - -#Stylesheet - if configured, will override the default stylesheet shipped with maven-proxy - absolute URLs only -#eg. /maven-proxy/style.css, http://www.example.com/style.css -stylesheet=/maven-proxy/style.css - -#bgColor / bgColorHighlight are replaced in the built in stylesheet to produce a simple color scheme. -#If a stylesheet is set, these are not used. -bgColor=#14B -bgColorHighlight=#94B - -#rowColor / rowColorHighlight are replaced in the built in stylesheet to produce a simple color scheme. -#If a stylesheet is set, these are not used. -rowColor=#CCF -rowColorHighlight=#DDF - - -################ PROXIES -#This is just a hack, it should auto discover them -proxy.list=one,two,three - -#Unauthenticated proxy -proxy.one.host=proxy1.example.com -proxy.one.port=3128 - -#Authenticated proxy -proxy.two.host=proxy2.example.org -proxy.two.port=80 -proxy.two.username=username2 -proxy.two.password=password2 - -#Authenticated proxy -proxy.three.host=proxy3.example.net -proxy.three.port=3129 -proxy.three.username=username3 -proxy.three.password=password3 - - -################# REPOSITORIES -#This is not just a hack, it specifies the order repositories should be checked -#Note that the proxy adds a "/" which is why the urls aren't suffixed with a "/" -repo.list=local-repo,www-ibiblio-org,dist-codehaus-org,private-example-com - -#local-store -# The local store represents a location that local jars you host can be located. -# This could also be achieved by having a local http repository, but this is less cumbersome -repo.local-repo.url=file://target -repo.local-repo.description=Super Secret Custom Repository -#If copy is true, jars are copied from the store to the proxy-repo. Only configurable for file:/// repos -repo.local-repo.copy=false -#If hardfail is true, any unexpected errors from the repository will cause -#the client download to fail (typically with a 500 error) -repo.local-repo.hardfail=true -#Don't cache a file repository -repo.local-repo.cache.period=0 - - -#www.ibiblio.org -repo.www-ibiblio-org.url=http://www.ibiblio.org/maven2 -repo.www-ibiblio-org.description=www.ibiblio.org -repo.www-ibiblio-org.proxy=one -repo.www-ibiblio-org.hardfail=true -#Cache this repository for 1 hour -repo.www-ibiblio-org.cache.period=3600 -repo.www-ibiblio-org.cache.failures=true - -#dist.codehaus.org -repo.dist-codehaus-org.url=http://dist.codehaus.org -repo.dist-codehaus-org.proxy=two -repo.dist-codehaus-org.hardfail=false -repo.dist-codehaus-org.cache.period=3600 -repo.dist-codehaus-org.cache.failures=true - -#private.example.com -repo.private-example-com.url=http://private.example.com/internal -repo.private-example-com.description=Commercial In Confidence Repository -repo.private-example-com.username=username1 -repo.private-example-com.password=password1 -repo.private-example-com.proxy=three -repo.private-example-com.cache.period=3600 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/repository-manager.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/repository-manager.xml deleted file mode 100644 index 8fabacf5b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/conf/repository-manager.xml +++ /dev/null @@ -1,193 +0,0 @@ - - - - - 2 - - - internal - Archiva Managed Internal Repository - ${appserver.base}/repositories/internal - default - true - false - true - 0 0 * * * ? - - - snapshots - Archiva Managed Snapshot Repository - ${appserver.base}/repositories/internal - default - false - true - true - 0 0,30 * * * ? - - - - - central - Central Repository - http://repo1.maven.org/maven2 - default - - - maven2-repository.dev.java.net - Java.net Repository for Maven 2 - https://maven2-repository.dev.java.net/nonav/repository - default - - - - - - - - internal - central - - - ignored - disabled - cached - - - - internal - maven2-repository.dev.java.net - - - ignored - disabled - cached - - - javax/** - - - - - - - example - http - proxy.mycompany.com - 8080 - myself - mypass - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - metadata-updater - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - - - true - true - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java deleted file mode 100644 index 70c88d4d8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java +++ /dev/null @@ -1,819 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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 java.util.Map; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.custommonkey.xmlunit.XMLAssert; -import org.easymock.MockControl; - -/** - * Test the configuration store. - * - * @author Brett Porter - */ -public class ArchivaConfigurationTest - extends PlexusInSpringTestCase -{ - /** - * {@inheritDoc} - * @see org.codehaus.plexus.spring.PlexusInSpringTestCase#getSpringConfigLocation() - */ - protected String getSpringConfigLocation() - { - return "org/apache/maven/archiva/configuration/spring-context.xml"; - } - - public void testGetConfigurationFromRegistryWithASingleNamedConfigurationResource() - throws Exception - { - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-configuration" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - assertConfiguration( configuration ); - assertEquals( "check network proxies", 1, configuration.getNetworkProxies().size() ); - - ManagedRepositoryConfiguration repository = - (ManagedRepositoryConfiguration) configuration.getManagedRepositories().get( 0 ); - - assertEquals( "check managed repositories", "${appserver.base}/repositories/internal", - repository.getLocation() ); - assertEquals( "check managed repositories", "Archiva Managed Internal Repository", repository.getName() ); - assertEquals( "check managed repositories", "internal", repository.getId() ); - assertEquals( "check managed repositories", "default", repository.getLayout() ); - assertTrue( "check managed repositories", repository.isScanned() ); - } - - public void testGetConfigurationFromDefaults() - throws Exception - { - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-defaults" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - assertConfiguration( configuration ); - assertEquals( "check network proxies", 0, configuration.getNetworkProxies().size() ); - - ManagedRepositoryConfiguration repository = - (ManagedRepositoryConfiguration) configuration.getManagedRepositories().get( 0 ); - - assertEquals( "check managed repositories", "${appserver.base}/data/repositories/internal", - repository.getLocation() ); - assertEquals( "check managed repositories", "Archiva Managed Internal Repository", repository.getName() ); - assertEquals( "check managed repositories", "internal", repository.getId() ); - assertEquals( "check managed repositories", "default", repository.getLayout() ); - assertTrue( "check managed repositories", repository.isScanned() ); - } - - // test for [MRM-789] - public void testGetConfigurationFromDefaultsWithDefaultRepoLocationAlreadyExisting() - throws Exception - { - File repo = new File( getBasedir(), "/target/test-classes/existing_snapshots" ); - repo.mkdirs(); - - repo = new File( getBasedir(), "/target/test-classes/existing_internal" ); - repo.mkdirs(); - - String existingTestDefaultArchivaConfigFile = - FileUtils.readFileToString( getTestFile( "target/test-classes/org/apache/maven/archiva/configuration/test-default-archiva.xml" ) ) ; - existingTestDefaultArchivaConfigFile = StringUtils.replace( existingTestDefaultArchivaConfigFile, "${appserver.base}", getBasedir() ); - - File generatedTestDefaultArchivaConfigFile = - new File( getBasedir(), "target/test-classes/org/apache/maven/archiva/configuration/default-archiva.xml" ); - - FileUtils.writeStringToFile( generatedTestDefaultArchivaConfigFile, existingTestDefaultArchivaConfigFile, null ); - - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), - "test-defaults-default-repo-location-exists" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - assertConfiguration( configuration ); - - ManagedRepositoryConfiguration repository = - (ManagedRepositoryConfiguration) configuration.getManagedRepositories().get( 0 ); - assertTrue( "check managed repositories", repository.getLocation().endsWith( "data/repositories/internal" ) ); - - generatedTestDefaultArchivaConfigFile.delete(); - assertFalse( generatedTestDefaultArchivaConfigFile.exists() ); - } - - /** - * Ensures that the provided configuration matches the details present in the archiva-default.xml file. - */ - private void assertConfiguration( Configuration configuration ) - throws Exception - { - FileTypes filetypes = (FileTypes) lookup( FileTypes.class.getName() ); - - assertEquals( "check repositories", 2, configuration.getManagedRepositories().size() ); - assertEquals( "check repositories", 2, configuration.getRemoteRepositories().size() ); - assertEquals( "check proxy connectors", 2, configuration.getProxyConnectors().size() ); - - RepositoryScanningConfiguration repoScanning = configuration.getRepositoryScanning(); - assertNotNull( "check repository scanning", repoScanning ); - assertEquals( "check file types", 4, repoScanning.getFileTypes().size() ); - assertEquals( "check known consumers", 9, repoScanning.getKnownContentConsumers().size() ); - assertEquals( "check invalid consumers", 1, repoScanning.getInvalidContentConsumers().size() ); - - List patterns = filetypes.getFileTypePatterns( "artifacts" ); - assertNotNull( "check 'artifacts' file type", patterns ); - assertEquals( "check 'artifacts' patterns", 13, patterns.size() ); - - DatabaseScanningConfiguration dbScanning = configuration.getDatabaseScanning(); - assertNotNull( "check database scanning", dbScanning ); - assertEquals( "check unprocessed consumers", 6, dbScanning.getUnprocessedConsumers().size() ); - assertEquals( "check cleanup consumers", 3, dbScanning.getCleanupConsumers().size() ); - - WebappConfiguration webapp = configuration.getWebapp(); - assertNotNull( "check webapp", webapp ); - - UserInterfaceOptions ui = webapp.getUi(); - assertNotNull( "check webapp ui", ui ); - assertTrue( "check showFindArtifacts", ui.isShowFindArtifacts() ); - assertTrue( "check appletFindEnabled", ui.isAppletFindEnabled() ); - } - - public void testGetConfigurationFromRegistryWithTwoConfigurationResources() - throws Exception - { - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-configuration-both" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - - // from base - assertEquals( "check repositories", 2, configuration.getManagedRepositories().size() ); - assertEquals( "check repositories", 2, configuration.getRemoteRepositories().size() ); - // from user - assertEquals( "check proxy connectors", 2, configuration.getProxyConnectors().size() ); - - WebappConfiguration webapp = configuration.getWebapp(); - assertNotNull( "check webapp", webapp ); - - UserInterfaceOptions ui = webapp.getUi(); - assertNotNull( "check webapp ui", ui ); - // from base - assertFalse( "check showFindArtifacts", ui.isShowFindArtifacts() ); - // from user - assertFalse( "check appletFindEnabled", ui.isAppletFindEnabled() ); - } - - public void testGetConfigurationSystemOverride() - throws Exception - { - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-configuration" ); - - System.setProperty( "org.apache.maven.archiva.webapp.ui.appletFindEnabled", "false" ); - - try - { - Configuration configuration = archivaConfiguration.getConfiguration(); - - assertFalse( "check boolean", configuration.getWebapp().getUi().isAppletFindEnabled() ); - } - finally - { - System.getProperties().remove( "org.apache.maven.archiva.webapp.ui.appletFindEnabled" ); - } - } - - public void testStoreConfiguration() - throws Exception - { - File file = getTestFile( "target/test/test-file.xml" ); - file.delete(); - assertFalse( file.exists() ); - - // TODO: remove with commons-configuration 1.4 - file.getParentFile().mkdirs(); - FileUtils.writeStringToFile( file, "", null ); - - DefaultArchivaConfiguration archivaConfiguration = - (DefaultArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-save" ); - - Configuration configuration = new Configuration(); - configuration.setVersion( "1" ); - configuration.setWebapp( new WebappConfiguration() ); - configuration.getWebapp().setUi( new UserInterfaceOptions() ); - configuration.getWebapp().getUi().setAppletFindEnabled( false ); - - // add a change listener - MockControl control = createConfigurationListenerMockControl(); - ConfigurationListener listener = (ConfigurationListener) control.getMock(); - archivaConfiguration.addListener( listener ); - - listener.configurationEvent( new ConfigurationEvent( ConfigurationEvent.SAVED ) ); - control.setVoidCallable(); - - control.replay(); - - archivaConfiguration.save( configuration ); - - control.verify(); - - assertTrue( "Check file exists", file.exists() ); - - // check it - configuration = archivaConfiguration.getConfiguration(); - assertFalse( "check value", configuration.getWebapp().getUi().isAppletFindEnabled() ); - - // read it back - archivaConfiguration = - (DefaultArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-read-saved" ); - configuration = archivaConfiguration.getConfiguration(); - assertFalse( "check value", configuration.getWebapp().getUi().isAppletFindEnabled() ); - } - - private static MockControl createConfigurationListenerMockControl() - { - return MockControl.createControl( ConfigurationListener.class ); - } - - public void testStoreConfigurationUser() - throws Exception - { - File baseFile = getTestFile( "target/test/test-file.xml" ); - baseFile.delete(); - assertFalse( baseFile.exists() ); - - File userFile = getTestFile( "target/test/test-file-user.xml" ); - userFile.delete(); - assertFalse( userFile.exists() ); - - userFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( userFile, "", null ); - - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-save-user" ); - - Configuration configuration = new Configuration(); - configuration.setWebapp( new WebappConfiguration() ); - configuration.getWebapp().setUi( new UserInterfaceOptions() ); - configuration.getWebapp().getUi().setAppletFindEnabled( false ); - - archivaConfiguration.save( configuration ); - - assertTrue( "Check file exists", userFile.exists() ); - assertFalse( "Check file not created", baseFile.exists() ); - - // check it - configuration = archivaConfiguration.getConfiguration(); - assertFalse( "check value", configuration.getWebapp().getUi().isAppletFindEnabled() ); - } - - public void testStoreConfigurationLoadedFromDefaults() - throws Exception - { - File baseFile = getTestFile( "target/test/test-file.xml" ); - baseFile.delete(); - assertFalse( baseFile.exists() ); - - File userFile = getTestFile( "target/test/test-file-user.xml" ); - userFile.delete(); - assertFalse( userFile.exists() ); - - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-save-user" ); - - Configuration configuration = new Configuration(); - configuration.setWebapp( new WebappConfiguration() ); - configuration.getWebapp().setUi( new UserInterfaceOptions() ); - configuration.getWebapp().getUi().setAppletFindEnabled( false ); - - // add a change listener - MockControl control = createConfigurationListenerMockControl(); - ConfigurationListener listener = (ConfigurationListener) control.getMock(); - archivaConfiguration.addListener( listener ); - - listener.configurationEvent( new ConfigurationEvent( ConfigurationEvent.SAVED ) ); - // once from default creation, and again from manual call to save - control.setVoidCallable( 2 ); - - control.replay(); - - archivaConfiguration.save( configuration ); - - control.verify(); - - assertTrue( "Check file exists", userFile.exists() ); - assertFalse( "Check file not created", baseFile.exists() ); - - // check it - configuration = archivaConfiguration.getConfiguration(); - assertFalse( "check value", configuration.getWebapp().getUi().isAppletFindEnabled() ); - } - - public void testDefaultUserConfigFilename() - throws Exception - { - DefaultArchivaConfiguration archivaConfiguration = - (DefaultArchivaConfiguration) lookup( ArchivaConfiguration.class.getName() ); - - assertEquals( System.getProperty( "user.home" ) + "/.m2/archiva.xml", - archivaConfiguration.getUserConfigFilename() ); - assertEquals( System.getProperty( "appserver.base", "${appserver.base}" ) + "/conf/archiva.xml", - archivaConfiguration.getAltConfigFilename() ); - } - - public void testStoreConfigurationFallback() - throws Exception - { - File baseFile = getTestFile( "target/test/test-file.xml" ); - baseFile.delete(); - assertFalse( baseFile.exists() ); - - File userFile = getTestFile( "target/test/test-file-user.xml" ); - userFile.delete(); - assertFalse( userFile.exists() ); - - baseFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( baseFile, "", null ); - - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-save-user" ); - - Configuration configuration = new Configuration(); - configuration.setWebapp( new WebappConfiguration() ); - configuration.getWebapp().setUi( new UserInterfaceOptions() ); - configuration.getWebapp().getUi().setAppletFindEnabled( false ); - - archivaConfiguration.save( configuration ); - - assertTrue( "Check file exists", baseFile.exists() ); - assertFalse( "Check file not created", userFile.exists() ); - - // check it - configuration = archivaConfiguration.getConfiguration(); - assertFalse( "check value", configuration.getWebapp().getUi().isAppletFindEnabled() ); - } - - public void testStoreConfigurationFailsWhenReadFromBothLocationsNoLists() - throws Exception - { - File baseFile = getTestFile( "target/test/test-file.xml" ); - baseFile.delete(); - assertFalse( baseFile.exists() ); - - File userFile = getTestFile( "target/test/test-file-user.xml" ); - userFile.delete(); - assertFalse( userFile.exists() ); - - baseFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( baseFile, "", null ); - - userFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( userFile, "", null ); - - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-save-user" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - assertTrue( "check value", configuration.getWebapp().getUi().isAppletFindEnabled() ); - - configuration.getWebapp().getUi().setAppletFindEnabled( false ); - - archivaConfiguration.save( configuration ); - - assertTrue( "Check file exists", baseFile.exists() ); - assertEquals( "Check base file is unchanged", "", - FileUtils.readFileToString( baseFile, null ) ); - assertTrue( "Check file exists", userFile.exists() ); - assertFalse( "Check base file is changed", - "".equals( FileUtils.readFileToString( userFile, null ) ) ); - - // check it - configuration = archivaConfiguration.getConfiguration(); - assertFalse( "check value", configuration.getWebapp().getUi().isAppletFindEnabled() ); - } - - public void testStoreConfigurationFailsWhenReadFromBothLocationsUserHasLists() - throws Exception - { - File baseFile = getTestFile( "target/test/test-file.xml" ); - baseFile.delete(); - assertFalse( baseFile.exists() ); - - File userFile = getTestFile( "target/test/test-file-user.xml" ); - userFile.delete(); - assertFalse( userFile.exists() ); - - userFile.getParentFile().mkdirs(); - FileUtils.copyFile( getTestFile( "src/test/conf/conf-user.xml" ), userFile ); - - baseFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( baseFile, "", null ); - - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-save-user" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - assertTrue( "check value", configuration.getWebapp().getUi().isShowFindArtifacts() ); - - configuration.getWebapp().getUi().setShowFindArtifacts( false ); - - archivaConfiguration.save( configuration ); - - assertTrue( "Check file exists", baseFile.exists() ); - assertEquals( "Check base file is unchanged", "", - FileUtils.readFileToString( baseFile, null ) ); - assertTrue( "Check file exists", userFile.exists() ); - assertFalse( "Check base file is changed", - "".equals( FileUtils.readFileToString( userFile, null ) ) ); - - // check it - configuration = archivaConfiguration.getConfiguration(); - assertFalse( "check value", configuration.getWebapp().getUi().isShowFindArtifacts() ); - } - - public void testStoreConfigurationFailsWhenReadFromBothLocationsAppserverHasLists() - throws Exception - { - File baseFile = getTestFile( "target/test/test-file.xml" ); - baseFile.delete(); - assertFalse( baseFile.exists() ); - - File userFile = getTestFile( "target/test/test-file-user.xml" ); - userFile.delete(); - assertFalse( userFile.exists() ); - - baseFile.getParentFile().mkdirs(); - FileUtils.copyFile( getTestFile( "src/test/conf/conf-base.xml" ), baseFile ); - - userFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( userFile, "", null ); - - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-save-user" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - assertTrue( "check value", configuration.getWebapp().getUi().isAppletFindEnabled() ); - - configuration.getWebapp().getUi().setAppletFindEnabled( false ); - - try - { - archivaConfiguration.save( configuration ); - fail( "Configuration saving should not succeed if it was loaded from two locations" ); - } - catch ( IndeterminateConfigurationException e ) - { - // check it was reverted - configuration = archivaConfiguration.getConfiguration(); - assertTrue( "check value", configuration.getWebapp().getUi().isAppletFindEnabled() ); - } - } - - public void testLoadConfigurationFromInvalidBothLocationsOnDisk() - throws Exception - { - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-not-allowed-to-write-to-both" ); - Configuration config = archivaConfiguration.getConfiguration(); - - try - { - archivaConfiguration.save( config ); - fail( "Should have thrown a RegistryException because the configuration can't be saved." ); - } - catch ( RegistryException e ) - { - /* expected exception */ - } - } - - public void testLoadConfigurationFromInvalidUserLocationOnDisk() - throws Exception - { - File testConfDir = getTestFile( "target/test-appserver-base/conf/" ); - testConfDir.mkdirs(); - - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-not-allowed-to-write-to-user" ); - Configuration config = archivaConfiguration.getConfiguration(); - archivaConfiguration.save( config ); - // No Exception == test passes. - // Expected Path is: Should not have thrown an exception. - } - - public void testConfigurationUpgradeFrom09() - throws Exception - { - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-upgrade-09" ); - - // we just use the defaults when upgrading from 0.9 at this point. - Configuration configuration = archivaConfiguration.getConfiguration(); - assertConfiguration( configuration ); - assertEquals( "check network proxies", 0, configuration.getNetworkProxies().size() ); - - ManagedRepositoryConfiguration repository = - (ManagedRepositoryConfiguration) configuration.getManagedRepositories().get( 0 ); - - assertEquals( "check managed repositories", "${appserver.base}/data/repositories/internal", - repository.getLocation() ); - assertEquals( "check managed repositories", "Archiva Managed Internal Repository", repository.getName() ); - assertEquals( "check managed repositories", "internal", repository.getId() ); - assertEquals( "check managed repositories", "default", repository.getLayout() ); - assertTrue( "check managed repositories", repository.isScanned() ); - } - - public void testAutoDetectV1() - throws Exception - { - // Setup the autodetect-v1.xml file in the target directory (so we can save/load it) - File userFile = getTestFile( "target/test-autodetect-v1/archiva-user.xml" ); - userFile.delete(); - assertFalse( userFile.exists() ); - - userFile.getParentFile().mkdirs(); - FileUtils.copyFile( getTestFile( "src/test/conf/autodetect-v1.xml" ), userFile ); - - // Load the original (unconverted) archiva.xml - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-autodetect-v1" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - assertConfiguration( configuration ); - assertEquals( "check network proxies", 1, configuration.getNetworkProxies().size() ); - - ManagedRepositoryConfiguration repository = - (ManagedRepositoryConfiguration) configuration.getManagedRepositories().get( 0 ); - - assertEquals( "check managed repositories", "${appserver.base}/repositories/internal", - repository.getLocation() ); - assertEquals( "check managed repositories", "Archiva Managed Internal Repository", repository.getName() ); - assertEquals( "check managed repositories", "internal", repository.getId() ); - assertEquals( "check managed repositories", "default", repository.getLayout() ); - assertTrue( "check managed repositories", repository.isScanned() ); - - // Test that only 1 set of repositories exist. - assertEquals( "check managed repositories size.", 2, configuration.getManagedRepositories().size() ); - assertEquals( "check remote repositories size.", 2, configuration.getRemoteRepositories().size() ); - assertEquals( "check v1 repositories size.", 0, configuration.getRepositories().size() ); - - // Save the file. - archivaConfiguration.save( configuration ); - - // Release existing -// FIXME spring equivalent ? release( archivaConfiguration ); - - // Reload. - archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-autodetect-v1" ); - configuration = archivaConfiguration.getConfiguration(); - - // Test that only 1 set of repositories exist. - assertEquals( "check managed repositories size.", 2, configuration.getManagedRepositories().size() ); - assertEquals( "check managed repositories size.", 2, configuration.getManagedRepositoriesAsMap().size() ); - assertEquals( "check remote repositories size.", 2, configuration.getRemoteRepositories().size() ); - assertEquals( "check remote repositories size.", 2, configuration.getRemoteRepositoriesAsMap().size() ); - assertEquals( "check v1 repositories size.", 0, configuration.getRepositories().size() ); - - String actualXML = FileUtils.readFileToString( userFile, null ); - XMLAssert.assertXpathNotExists( "//configuration/repositories/repository", actualXML ); - XMLAssert.assertXpathNotExists( "//configuration/repositories", actualXML ); - } - - public void testArchivaV1() - throws Exception - { - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-archiva-v1" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - assertConfiguration( configuration ); - assertEquals( "check network proxies", 1, configuration.getNetworkProxies().size() ); - - assertEquals( "check managed repositories", 2, configuration.getManagedRepositories().size() ); - assertEquals( "check v1 repositories size.", 0, configuration.getRepositories().size() ); - - Map map = configuration.getManagedRepositoriesAsMap(); - - ManagedRepositoryConfiguration repository = map.get( "internal" ); - assertEquals( "check managed repositories", "${appserver.base}/repositories/internal", - repository.getLocation() ); - assertEquals( "check managed repositories", "Archiva Managed Internal Repository", repository.getName() ); - assertEquals( "check managed repositories", "internal", repository.getId() ); - assertEquals( "check managed repositories", "default", repository.getLayout() ); - assertTrue( "check managed repositories", repository.isScanned() ); - assertFalse( "check managed repositories", repository.isSnapshots() ); - - repository = map.get( "snapshots" ); - assertEquals( "check managed repositories", "${appserver.base}/repositories/snapshots", - repository.getLocation() ); - assertEquals( "check managed repositories", "Archiva Managed Snapshot Repository", repository.getName() ); - assertEquals( "check managed repositories", "snapshots", repository.getId() ); - assertEquals( "check managed repositories", "default", repository.getLayout() ); - assertFalse( "check managed repositories", repository.isScanned() ); - assertTrue( "check managed repositories", repository.isSnapshots() ); - } - - public void testCronExpressionsWithComma() - throws Exception - { - File baseFile = getTestFile( "target/test/test-file.xml" ); - baseFile.delete(); - assertFalse( baseFile.exists() ); - - File userFile = getTestFile( "target/test/test-file-user.xml" ); - userFile.delete(); - assertFalse( userFile.exists() ); - - baseFile.getParentFile().mkdirs(); - FileUtils.copyFile( getTestFile( "src/test/conf/escape-cron-expressions.xml" ), baseFile ); - - userFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( userFile, "", null ); - - final ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-cron-expressions" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - - ManagedRepositoryConfiguration repository = - (ManagedRepositoryConfiguration) configuration.getManagedRepositories().get( 0 ); - - assertEquals( "check cron expression", "0 0,30 * * * ?", repository.getRefreshCronExpression().trim() ); - - configuration.getDatabaseScanning().setCronExpression( "0 0,15 0 * * ?" ); - - // add a test listener to confirm it doesn't see the escaped format. We don't need to test the number of calls, - // etc. as it's done in other tests - archivaConfiguration.addListener( new ConfigurationListener() - { - public void configurationEvent( ConfigurationEvent event ) - { - assertEquals( ConfigurationEvent.SAVED, event.getType() ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - - ManagedRepositoryConfiguration repository = - (ManagedRepositoryConfiguration) configuration.getManagedRepositories().get( 0 ); - - assertEquals( "check cron expression", "0 0,15 0 * * ?", - configuration.getDatabaseScanning().getCronExpression() ); - } - } ); - - archivaConfiguration.save( configuration ); - - configuration = archivaConfiguration.getConfiguration(); - - assertEquals( "check cron expression", "0 0,15 0 * * ?", - configuration.getDatabaseScanning().getCronExpression() ); - - // test for the escape character '\' showing up on repositories.jsp - repository.setRefreshCronExpression( "0 0,20 0 * * ?" ); - - archivaConfiguration.save( configuration ); - - repository = archivaConfiguration.getConfiguration().findManagedRepositoryById( "snapshots" ); - - assertEquals( "check cron expression", "0 0,20 0 * * ?", repository.getRefreshCronExpression() ); - } - - public void testRemoveLastElements() - throws Exception - { - File baseFile = getTestFile( "target/test/test-file.xml" ); - baseFile.delete(); - assertFalse( baseFile.exists() ); - - File userFile = getTestFile( "target/test/test-file-user.xml" ); - userFile.delete(); - assertFalse( userFile.exists() ); - - baseFile.getParentFile().mkdirs(); - FileUtils.copyFile( getTestFile( "src/test/conf/conf-single-list-elements.xml" ), baseFile ); - - userFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( userFile, "", null ); - - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-remove-central" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - - RepositoryGroupConfiguration repositoryGroup = ( RepositoryGroupConfiguration ) configuration.getRepositoryGroups().get( 0 ); - assertNotNull( repositoryGroup ); - configuration.removeRepositoryGroup( repositoryGroup ); - assertTrue( configuration.getRepositoryGroups().isEmpty() ); - - RemoteRepositoryConfiguration repository = configuration.getRemoteRepositoriesAsMap().get( "central" ); - assertNotNull( repository ); - configuration.removeRemoteRepository( repository ); - assertTrue( configuration.getRemoteRepositories().isEmpty() ); - - ManagedRepositoryConfiguration managedRepository = - configuration.getManagedRepositoriesAsMap().get( "snapshots" ); - assertNotNull( managedRepository ); - configuration.removeManagedRepository( managedRepository ); - assertTrue( configuration.getManagedRepositories().isEmpty() ); - - ProxyConnectorConfiguration proxyConnector = - (ProxyConnectorConfiguration) configuration.getProxyConnectors().get( 0 ); - assertNotNull( proxyConnector ); - configuration.removeProxyConnector( proxyConnector ); - assertTrue( configuration.getProxyConnectors().isEmpty() ); - - NetworkProxyConfiguration networkProxy = configuration.getNetworkProxiesAsMap().get( "proxy" ); - assertNotNull( networkProxy ); - configuration.removeNetworkProxy( networkProxy ); - assertTrue( configuration.getNetworkProxies().isEmpty() ); - - LegacyArtifactPath path = (LegacyArtifactPath) configuration.getLegacyArtifactPaths().get( 0 ); - assertNotNull( path ); - configuration.removeLegacyArtifactPath( path ); - assertTrue( configuration.getLegacyArtifactPaths().isEmpty() ); - - RepositoryScanningConfiguration scanning = configuration.getRepositoryScanning(); - String consumer = (String) scanning.getKnownContentConsumers().get( 0 ); - assertNotNull( consumer ); - scanning.removeKnownContentConsumer( consumer ); - assertTrue( scanning.getKnownContentConsumers().isEmpty() ); - consumer = (String) scanning.getInvalidContentConsumers().get( 0 ); - assertNotNull( consumer ); - scanning.removeInvalidContentConsumer( consumer ); - assertTrue( scanning.getInvalidContentConsumers().isEmpty() ); - - DatabaseScanningConfiguration databaseScanning = configuration.getDatabaseScanning(); - consumer = (String) databaseScanning.getCleanupConsumers().get( 0 ); - assertNotNull( consumer ); - databaseScanning.removeCleanupConsumer( consumer ); - assertTrue( databaseScanning.getCleanupConsumers().isEmpty() ); - consumer = (String) databaseScanning.getUnprocessedConsumers().get( 0 ); - assertNotNull( consumer ); - databaseScanning.removeUnprocessedConsumer( consumer ); - assertTrue( databaseScanning.getUnprocessedConsumers().isEmpty() ); - - archivaConfiguration.save( configuration ); - - archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-read-saved" ); - configuration = archivaConfiguration.getConfiguration(); - assertNull( configuration.getRemoteRepositoriesAsMap().get( "central" ) ); - assertTrue( configuration.getRepositoryGroups().isEmpty() ); - assertNull( configuration.getManagedRepositoriesAsMap().get( "snapshots" ) ); - assertTrue( configuration.getProxyConnectors().isEmpty() ); - assertNull( configuration.getNetworkProxiesAsMap().get( "proxy" ) ); - assertTrue( configuration.getLegacyArtifactPaths().isEmpty() ); - scanning = configuration.getRepositoryScanning(); - assertTrue( scanning.getKnownContentConsumers().isEmpty() ); - assertTrue( scanning.getInvalidContentConsumers().isEmpty() ); - databaseScanning = configuration.getDatabaseScanning(); - assertTrue( databaseScanning.getCleanupConsumers().isEmpty() ); - assertTrue( databaseScanning.getUnprocessedConsumers().isEmpty() ); - } - - /** - * [MRM-582] Remote Repositories with empty and fields shouldn't be created in configuration. - */ - public void testGetConfigurationFixEmptyRemoteRepoUsernamePassword() - throws Exception - { - ArchivaConfiguration archivaConfiguration = (ArchivaConfiguration) lookup( - ArchivaConfiguration.class.getName(), - "test-configuration" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - assertConfiguration( configuration ); - assertEquals( "check remote repositories", 2, configuration.getRemoteRepositories().size() ); - - RemoteRepositoryConfiguration repository = (RemoteRepositoryConfiguration) configuration - .getRemoteRepositoriesAsMap().get( "maven2-repository.dev.java.net" ); - - assertEquals( "remote repository.url", "https://maven2-repository.dev.java.net/nonav/repository", repository.getUrl() ); - assertEquals( "remote repository.name", "Java.net Repository for Maven 2", repository.getName() ); - assertEquals( "remote repository.id", "maven2-repository.dev.java.net", repository.getId() ); - assertEquals( "remote repository.layout", "default", repository.getLayout() ); - assertNull( "remote repository.username == null", repository.getUsername() ); - assertNull( "remote repository.password == null", repository.getPassword() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ConfigurationTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ConfigurationTest.java deleted file mode 100644 index fa6699766..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ConfigurationTest.java +++ /dev/null @@ -1,144 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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 junit.framework.TestCase; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.Map; - -/** - * Test the generated Configuration class from Modello. This is primarily to test the hand coded methods. - */ -public class ConfigurationTest - extends TestCase -{ - private Configuration configuration = new Configuration(); - - public void testNetworkProxyRetrieval() - { - NetworkProxyConfiguration proxy1 = createNetworkProxy( "id1", "host1", 8080 ); - configuration.addNetworkProxy( proxy1 ); - NetworkProxyConfiguration proxy2 = createNetworkProxy( "id2", "host2", 9090 ); - configuration.addNetworkProxy( proxy2 ); - - Map map = configuration.getNetworkProxiesAsMap(); - assertNotNull( map ); - assertEquals( 2, map.size() ); - assertEquals( new HashSet( Arrays.asList( "id1", "id2" ) ), map.keySet() ); - assertEquals( new HashSet( Arrays.asList( proxy1, proxy2 ) ), - new HashSet( map.values() ) ); - } - - private NetworkProxyConfiguration createNetworkProxy( String id, String host, int port ) - { - NetworkProxyConfiguration proxy = new NetworkProxyConfiguration(); - proxy.setId( id ); - proxy.setHost( host ); - proxy.setPort( port ); - proxy.setProtocol( "http" ); - return proxy; - } - - public void testRemoteRepositoryRetrieval() - { - RemoteRepositoryConfiguration repo1 = createRemoteRepository( "id1", "name 1", "url 1" ); - configuration.addRemoteRepository( repo1 ); - RemoteRepositoryConfiguration repo2 = createRemoteRepository( "id2", "name 2", "url 2" ); - configuration.addRemoteRepository( repo2 ); - - Map map = configuration.getRemoteRepositoriesAsMap(); - assertNotNull( map ); - assertEquals( 2, map.size() ); - assertEquals( new HashSet( Arrays.asList( "id1", "id2" ) ), map.keySet() ); - assertEquals( new HashSet( Arrays.asList( repo1, repo2 ) ), - new HashSet( map.values() ) ); - - assertEquals( repo1, configuration.findRemoteRepositoryById( "id1" ) ); - assertEquals( repo2, configuration.findRemoteRepositoryById( "id2" ) ); - assertNull( configuration.findRemoteRepositoryById( "id3" ) ); - } - - private RemoteRepositoryConfiguration createRemoteRepository( String id, String name, String url ) - { - RemoteRepositoryConfiguration repo = new RemoteRepositoryConfiguration(); - repo.setId( id ); - repo.setName( name ); - repo.setLayout( "default" ); - repo.setUrl( url ); - return repo; - } - - public void testManagedRepositoryRetrieval() - { - ManagedRepositoryConfiguration repo1 = createManagedRepository( "id1", "name 1", "path 1", false ); - configuration.addManagedRepository( repo1 ); - ManagedRepositoryConfiguration repo2 = createManagedRepository( "id2", "name 2", "path 2", true ); - configuration.addManagedRepository( repo2 ); - - Map map = configuration.getManagedRepositoriesAsMap(); - assertNotNull( map ); - assertEquals( 2, map.size() ); - assertEquals( new HashSet( Arrays.asList( "id1", "id2" ) ), map.keySet() ); - assertEquals( new HashSet( Arrays.asList( repo1, repo2 ) ), - new HashSet( map.values() ) ); - - assertEquals( repo1, configuration.findManagedRepositoryById( "id1" ) ); - assertEquals( repo2, configuration.findManagedRepositoryById( "id2" ) ); - assertNull( configuration.findManagedRepositoryById( "id3" ) ); - } - - private ManagedRepositoryConfiguration createManagedRepository( String id, String name, String location, - boolean scanned ) - { - ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration(); - repo.setId( id ); - repo.setName( name ); - repo.setLocation( location ); - repo.setScanned( scanned ); - return repo; - } - - public void testNetworkProxyRetrievalWhenEmpty() - { - Map map = configuration.getNetworkProxiesAsMap(); - assertNotNull( map ); - assertTrue( map.isEmpty() ); - } - - public void testRemoteRepositoryRetrievalWhenEmpty() - { - Map map = configuration.getRemoteRepositoriesAsMap(); - assertNotNull( map ); - assertTrue( map.isEmpty() ); - - assertNull( configuration.findRemoteRepositoryById( "id" ) ); - } - - public void testManagedRepositoryRetrievalWhenEmpty() - { - Map map = configuration.getManagedRepositoriesAsMap(); - assertNotNull( map ); - assertTrue( map.isEmpty() ); - - assertNull( configuration.findManagedRepositoryById( "id" ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/FileTypesTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/FileTypesTest.java deleted file mode 100644 index 6c5df3bf8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/FileTypesTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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.spring.PlexusInSpringTestCase; - -public class FileTypesTest - extends PlexusInSpringTestCase -{ - private FileTypes filetypes; - - protected void setUp() - throws Exception - { - super.setUp(); - - filetypes = (FileTypes) lookup( FileTypes.class ); - } - - public void testIsArtifact() - { - assertTrue( filetypes.matchesArtifactPattern( "test.maven-arch/poms/test-arch-2.0.3-SNAPSHOT.pom" ) ); - assertTrue( filetypes.matchesArtifactPattern( - "test/maven-arch/test-arch/2.0.3-SNAPSHOT/test-arch-2.0.3-SNAPSHOT.jar" ) ); - assertTrue( filetypes.matchesArtifactPattern( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz" ) ); - - assertFalse( - filetypes.matchesArtifactPattern( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz.sha1" ) ); - assertFalse( - filetypes.matchesArtifactPattern( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz.md5" ) ); - assertFalse( - filetypes.matchesArtifactPattern( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz.asc" ) ); - assertFalse( - filetypes.matchesArtifactPattern( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz.pgp" ) ); - assertFalse( filetypes.matchesArtifactPattern( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml" ) ); - assertFalse( filetypes.matchesArtifactPattern( "org/apache/derby/derby/maven-metadata.xml" ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/LegacyArtifactPathTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/LegacyArtifactPathTest.java deleted file mode 100644 index dfeba0527..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/LegacyArtifactPathTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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 junit.framework.TestCase; - -/** - * Test the generated LegacyArtifactPath class from Modello. This is primarily to test the hand coded methods. - * @since 1.1 - */ -public class LegacyArtifactPathTest - extends TestCase -{ - - private LegacyArtifactPath legacyArtifactPath = new LegacyArtifactPath(); - - public void testLegacyArtifactPathWithClassifierResolution() - { - legacyArtifactPath.setArtifact( "groupId:artifactId:version:classifier:type" ); - - assertEquals( "groupId", legacyArtifactPath.getGroupId() ); - assertEquals( "artifactId", legacyArtifactPath.getArtifactId() ); - assertEquals( "version", legacyArtifactPath.getVersion() ); - assertEquals( "classifier", legacyArtifactPath.getClassifier() ); - assertEquals( "type", legacyArtifactPath.getType() ); - } - - - public void testLegacyArtifactPathWithoutClassifierResolution() - { - legacyArtifactPath.setArtifact( "groupId:artifactId:version::type" ); - - assertEquals( "groupId", legacyArtifactPath.getGroupId() ); - assertEquals( "artifactId", legacyArtifactPath.getArtifactId() ); - assertEquals( "version", legacyArtifactPath.getVersion() ); - assertNull( legacyArtifactPath.getClassifier() ); - assertEquals( "type", legacyArtifactPath.getType() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoaderTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoaderTest.java deleted file mode 100644 index f472b6564..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoaderTest.java +++ /dev/null @@ -1,108 +0,0 @@ -package org.apache.maven.archiva.configuration; - -/* - * 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.IOException; -import java.util.Map; -import java.util.Properties; - -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * @author Edwin Punzalan - */ -public class MavenProxyPropertyLoaderTest - extends PlexusInSpringTestCase -{ - private MavenProxyPropertyLoader loader; - - /** - * {@inheritDoc} - * @see org.codehaus.plexus.spring.PlexusInSpringTestCase#getSpringConfigLocation() - */ - protected String getSpringConfigLocation() - { - return "org/apache/maven/archiva/configuration/spring-context.xml"; - } - - public void testLoadValidMavenProxyConfiguration() - throws IOException, InvalidConfigurationException - { - File confFile = getTestFile( "src/test/conf/maven-proxy-complete.conf" ); - - Configuration configuration = new Configuration(); - NetworkProxyConfiguration proxy = new NetworkProxyConfiguration(); - proxy.setHost( "original-host" ); - configuration.addNetworkProxy( proxy ); // overwritten - - loader.load( new FileInputStream( confFile ), configuration ); - - Map repositoryIdMap = configuration.getManagedRepositoriesAsMap(); - assertEquals( "Count repositories", 1, repositoryIdMap.size() ); - assertRepositoryExists( "maven-proxy", "target", repositoryIdMap.get( "maven-proxy" ) ); - - Map remoteRepositoryMap = configuration.getRemoteRepositoriesAsMap(); - assertEquals( "Count repositories", 4, remoteRepositoryMap.size() ); - assertRepositoryExists( "local-repo", "file://target", remoteRepositoryMap.get( "local-repo" ) ); - assertRepositoryExists( "www-ibiblio-org", "http://www.ibiblio.org/maven2", - remoteRepositoryMap.get( "www-ibiblio-org" ) ); - assertRepositoryExists( "dist-codehaus-org", "http://dist.codehaus.org", - remoteRepositoryMap.get( "dist-codehaus-org" ) ); - assertRepositoryExists( "private-example-com", "http://private.example.com/internal", - remoteRepositoryMap.get( "private-example-com" ) ); - } - - private void assertRepositoryExists( String id, String expectedLocation, ManagedRepositoryConfiguration repo ) - { - assertNotNull( "Repository id [" + id + "] should not be null", repo ); - assertEquals( "Repository id", id, repo.getId() ); - assertEquals( "Repository url", expectedLocation, repo.getLocation() ); - } - - private void assertRepositoryExists( String id, String expectedUrl, RemoteRepositoryConfiguration repo ) - { - assertNotNull( "Repository id [" + id + "] should not be null", repo ); - assertEquals( "Repository id", id, repo.getId() ); - assertEquals( "Repository url", expectedUrl, repo.getUrl() ); - } - - public void testInvalidConfiguration() - { - Configuration configuration = new Configuration(); - try - { - loader.load( new Properties(), configuration ); - fail( "Incomplete config should have failed" ); - } - catch ( InvalidConfigurationException e ) - { - assertTrue( true ); - } - } - - protected void setUp() - throws Exception - { - super.setUp(); - loader = new MavenProxyPropertyLoader(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparatorTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparatorTest.java deleted file mode 100644 index 9d1552b6a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparatorTest.java +++ /dev/null @@ -1,131 +0,0 @@ -package org.apache.maven.archiva.configuration.functors; - -/* - * 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.configuration.ProxyConnectorConfiguration; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import junit.framework.TestCase; - -/** - * ProxyConnectorConfigurationOrderComparatorTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProxyConnectorConfigurationOrderComparatorTest - extends TestCase -{ - public void testSortOfAllZeros() - { - List proxies = new ArrayList(); - - proxies.add( createConnector( "corporate", 0 ) ); - proxies.add( createConnector( "snapshots", 0 ) ); - proxies.add( createConnector( "3rdparty", 0 ) ); - proxies.add( createConnector( "sandbox", 0 ) ); - - Collections.sort( proxies, ProxyConnectorConfigurationOrderComparator.getInstance() ); - - assertProxyOrder( new String[] { "corporate", "snapshots", "3rdparty", "sandbox" }, proxies ); - } - - public void testSortNormal() - { - List proxies = new ArrayList(); - - proxies.add( createConnector( "corporate", 3 ) ); - proxies.add( createConnector( "snapshots", 1 ) ); - proxies.add( createConnector( "3rdparty", 2 ) ); - proxies.add( createConnector( "sandbox", 4 ) ); - - Collections.sort( proxies, new ProxyConnectorConfigurationOrderComparator() ); - - assertProxyOrder( new String[] { "snapshots", "3rdparty", "corporate", "sandbox" }, proxies ); - } - - public void testSortPartial() - { - List proxies = new ArrayList(); - - proxies.add( createConnector( "corporate", 3 ) ); - proxies.add( createConnector( "snapshots", 0 ) ); - proxies.add( createConnector( "3rdparty", 2 ) ); - proxies.add( createConnector( "sandbox", 0 ) ); - - Collections.sort( proxies, new ProxyConnectorConfigurationOrderComparator() ); - - assertProxyOrder( new String[] { "3rdparty", "corporate", "snapshots", "sandbox" }, proxies ); - } - - private void assertProxyOrder( String[] ids, List proxies ) - { - assertEquals( "Proxies.size() == ids.length", ids.length, proxies.size() ); - - int orderFailedAt = -1; - - for ( int i = 0; i < ids.length; i++ ) - { - if ( !StringUtils.equals( ids[i], proxies.get( i ).getProxyId() ) ) - { - orderFailedAt = i; - break; - } - } - - if ( orderFailedAt >= 0 ) - { - StringBuffer msg = new StringBuffer(); - - msg.append( "Failed expected order of the proxies <" ); - msg.append( StringUtils.join( ids, ", " ) ); - msg.append( ">, actual <" ); - - boolean needsComma = false; - for ( ProxyConnectorConfiguration proxy : proxies ) - { - if ( needsComma ) - { - msg.append( ", " ); - } - msg.append( proxy.getProxyId() ); - needsComma = true; - } - msg.append( "> failure at index <" ).append( orderFailedAt ).append( ">." ); - - fail( msg.toString() ); - } - } - - private ProxyConnectorConfiguration createConnector( String id, int order ) - { - ProxyConnectorConfiguration proxy = new ProxyConnectorConfiguration(); - proxy.setProxyId( id ); - proxy.setOrder( order ); - proxy.setSourceRepoId( id + "_m" ); - proxy.setTargetRepoId( id + "_r" ); - - return proxy; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/functors/RepositoryConfigurationComparatorTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/functors/RepositoryConfigurationComparatorTest.java deleted file mode 100644 index 3dd314842..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/functors/RepositoryConfigurationComparatorTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.apache.maven.archiva.configuration.functors; - -/* - * 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 junit.framework.TestCase; -import org.apache.maven.archiva.configuration.AbstractRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; - -import java.util.Comparator; - -/** - * Test the repositry comparator. - */ -public class RepositoryConfigurationComparatorTest - extends TestCase -{ - public void testComparator() - { - Comparator comparator = new RepositoryConfigurationComparator(); - - assertEquals( 0, comparator.compare( null, null ) ); - assertEquals( 1, comparator.compare( createRepository( "id" ), null ) ); - assertEquals( -1, comparator.compare( null, createRepository( "id" ) ) ); - assertEquals( 0, comparator.compare( createRepository( "id1" ), createRepository( "id1" ) ) ); - assertEquals( -1, comparator.compare( createRepository( "id1" ), createRepository( "id2" ) ) ); - assertEquals( 1, comparator.compare( createRepository( "id2" ), createRepository( "id1" ) ) ); - } - - private ManagedRepositoryConfiguration createRepository( String id ) - { - ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration(); - repo.setId( id ); - return repo; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/log4j.properties b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/log4j.properties deleted file mode 100644 index 6d107570b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/log4j.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Set root logger level to DEBUG and its only appender to A1. -log4j.rootLogger=INFO, A1 - -# A1 is set to be a ConsoleAppender. -log4j.appender.A1=org.apache.log4j.ConsoleAppender - -# A1 uses PatternLayout. -log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml deleted file mode 100644 index 0e84402c7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml +++ /dev/null @@ -1,495 +0,0 @@ - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-defaults-default-repo-location-exists - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - empty - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-defaults - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - empty - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - empty - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-upgrade-09 - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - upgrade-09 - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - upgrade-09 - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-configuration - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configured - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - configured - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-autodetect-v1 - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - autodetect-v1 - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - autodetect-v1 - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-archiva-v1 - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - archiva-v1 - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - archiva-v1 - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-save - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - save - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - save - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-save-user - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - save-user - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - ${basedir}/target/test/test-file-user.xml - - - - org.codehaus.plexus.registry.Registry - save-user - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-configuration-both - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configuration-both - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - configuration-both - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-read-saved - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - read-saved - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - ${basedir}/target/test/test-file.xml - - - - org.codehaus.plexus.registry.Registry - read-saved - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-cron-expressions - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - cron-expressions - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - ${basedir}/target/test/test-file.xml - - - - org.codehaus.plexus.registry.Registry - cron-expressions - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-remove-central - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - remove-central - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - ${basedir}/target/test/test-file.xml - - - - org.codehaus.plexus.registry.Registry - remove-central - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-not-allowed-to-write-to-both - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - not-allowed-to-write-to-both - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - ${basedir}/target/*intentionally:invalid*/.m2/archiva-user.xml - ${basedir}/target/*intentionally:invalid*/conf/archiva.xml - - - - org.codehaus.plexus.registry.Registry - not-allowed-to-write-to-both - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - test-not-allowed-to-write-to-user - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - not-allowed-to-write-to-user - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - ${basedir}/target/*intentionally:invalid*/.m2/archiva-user.xml - ${basedir}/target/test-appserver-base/conf/archiva.xml - - - - org.codehaus.plexus.registry.Registry - not-allowed-to-write-to-user - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - false - 1000 - LRU - cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/test-default-archiva.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/test-default-archiva.xml deleted file mode 100644 index 6f44eb4af..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/test-default-archiva.xml +++ /dev/null @@ -1,176 +0,0 @@ - - 2 - - - internal - Archiva Managed Internal Repository - ${appserver.base}/target/test-classes/existing_internal - default - true - false - true - 0 0 * * * ? - 30 - - - snapshots - Archiva Managed Snapshot Repository - ${appserver.base}/target/test-classes/existing_snapshots - default - false - true - true - 0 0\,30 * * * ? - 30 - - - - - central - Central Repository - http://repo1.maven.org/maven2 - default - - - maven2-repository.dev.java.net - Java.net Repository for Maven 2 - http://download.java.net/maven/2/ - default - - - - - - internal - central - - - disabled - once - fix - cached - - - **/* - - - - internal - maven2-repository.dev.java.net - - - disabled - once - fix - cached - - - javax/** - org/jvnet/** - com/sun/** - - - - - - - jaxen/jars/jaxen-1.0-FCS-full.jar - jaxen:jaxen:1.0-FCS:full:jar - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - metadata-updater - - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - - - true - true - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/pom.xml deleted file mode 100644 index c33620442..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-consumers - 1.2-SNAPSHOT - ../pom.xml - - - archiva-consumer-api - Archiva Consumer API - jar - - - - org.apache.archiva - archiva-configuration - - - org.apache.archiva - archiva-model - - - commons-collections - commons-collections - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/AbstractMonitoredConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/AbstractMonitoredConsumer.java deleted file mode 100644 index 7c306e1e0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/AbstractMonitoredConsumer.java +++ /dev/null @@ -1,109 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import org.apache.maven.archiva.configuration.FileTypes; - -/** - * AbstractMonitoredConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractMonitoredConsumer - implements BaseConsumer -{ - private Set monitors = new HashSet(); - - public void addConsumerMonitor( ConsumerMonitor monitor ) - { - monitors.add( monitor ); - } - - public void removeConsumerMonitor( ConsumerMonitor monitor ) - { - monitors.remove( monitor ); - } - - protected void triggerConsumerError( String type, String message ) - { - for ( Iterator itmonitors = monitors.iterator(); itmonitors.hasNext(); ) - { - ConsumerMonitor monitor = itmonitors.next(); - try - { - monitor.consumerError( this, type, message ); - } - catch ( Throwable t ) - { - /* discard error */ - } - } - } - - protected void triggerConsumerWarning( String type, String message ) - { - for ( Iterator itmonitors = monitors.iterator(); itmonitors.hasNext(); ) - { - ConsumerMonitor monitor = itmonitors.next(); - try - { - monitor.consumerWarning( this, type, message ); - } - catch ( Throwable t ) - { - /* discard error */ - } - } - } - - protected void triggerConsumerInfo( String message ) - { - for ( Iterator itmonitors = monitors.iterator(); itmonitors.hasNext(); ) - { - ConsumerMonitor monitor = itmonitors.next(); - try - { - monitor.consumerInfo( this, message ); - } - catch ( Throwable t ) - { - /* discard error */ - } - } - } - - public boolean isProcessUnmodified() - { - return false; - } - - protected List getDefaultArtifactExclusions() - { - return FileTypes.DEFAULT_EXCLUSIONS; - } - - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ArchivaArtifactConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ArchivaArtifactConsumer.java deleted file mode 100644 index 209051742..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ArchivaArtifactConsumer.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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.model.ArchivaArtifact; - -import java.util.List; - -/** - * ArchivaArtifactConsumer - consumer for ArchivaArtifact objects. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ArchivaArtifactConsumer extends BaseConsumer -{ - /** - * Get the list of included file patterns for this consumer. - * - * @return the list of ({@link String}) artifact types to process. - */ - public List getIncludedTypes(); - - /** - *

- * Event that triggers at the beginning of a scan. - *

- * - *

- * NOTE: This would be a good place to initialize the consumer, to lock any resources, and to - * generally start tracking the scan as a whole. - *

- */ - public void beginScan(); - - /** - *

- * Event indicating an {@link ArchivaArtifact} is to be processed by this consumer. - *

- * - *

- * NOTE: The consumer does not need to process the artifact immediately, can can opt to queue and/or track - * the artifact to be processed in batch. Just be sure to complete the processing by the {@link #completeScan()} - * event. - *

- * - * @param file the file to process. - * @throws ConsumerException if there was a problem processing this file. - */ - public void processArchivaArtifact( ArchivaArtifact artifact ) throws ConsumerException; - - /** - *

- * Event that triggers on the completion of a scan. - *

- * - *

- * NOTE: If the consumer opted to batch up processing requests in the - * {@link #processArchivaArtifact(ArchivaArtifact)} event this would be the last opportunity to drain - * any processing queue's. - *

- */ - public void completeScan(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/BaseConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/BaseConsumer.java deleted file mode 100644 index 2f32f1fec..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/BaseConsumer.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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. - */ - -/** - * BaseConsumer - the base set of methods for a consumer. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract interface BaseConsumer -{ - /** - * This is the id for the consumer. - * - * @return the consumer id. - */ - public String getId(); - - /** - * The human readable description for this consumer. - * - * @return the human readable description for this consumer. - */ - public String getDescription(); - - /** - * Flag indicating permanance of consumer. (if it can be disabled or not) - * - * @return true indicating that consumer is permanent and cannot be disabled. - */ - public boolean isPermanent(); - - /** - * Add a consumer monitor to the consumer. - * - * @param monitor the monitor to add. - */ - public void addConsumerMonitor( ConsumerMonitor monitor ); - - /** - * Remove a consumer monitor. - * - * @param monitor the monitor to remove. - */ - public void removeConsumerMonitor( ConsumerMonitor monitor ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerException.java deleted file mode 100644 index 3b91c5ba3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerException.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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; - -/** - * ConsumerException - details about the failure of a consumer. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ConsumerException - extends ArchivaException -{ - public ConsumerException( String message, Throwable cause ) - { - super( message, cause ); - } - - public ConsumerException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerMonitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerMonitor.java deleted file mode 100644 index 971414764..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerMonitor.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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. - */ - -/** - * ConsumerMonitor - a monitor for consumers. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ConsumerMonitor -{ - /** - * A consumer error event. - * - * @param consumer the consumer that caused the error. - * @param type the type of error. - * @param message the message about the error. - */ - public void consumerError( BaseConsumer consumer, String type, String message ); - - /** - * A consumer warning event. - * - * @param consumer the consumer that caused the warning. - * @param type the type of warning. - * @param message the message about the warning. - */ - public void consumerWarning( BaseConsumer consumer, String type, String message ); - - /** - * A consumer informational event. - * - * @param consumer the consumer that caused the informational message. - * @param message the message. - */ - public void consumerInfo( BaseConsumer consumer, String message ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/DatabaseCleanupConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/DatabaseCleanupConsumer.java deleted file mode 100644 index e9bbd0946..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/DatabaseCleanupConsumer.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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. - */ - -/** - * DatabaseCleanupConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface DatabaseCleanupConsumer - extends ArchivaArtifactConsumer -{ - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/DatabaseUnprocessedArtifactConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/DatabaseUnprocessedArtifactConsumer.java deleted file mode 100644 index b34d0dd7f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/DatabaseUnprocessedArtifactConsumer.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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. - */ - -/** - * DatabaseUnprocessedArtifactConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface DatabaseUnprocessedArtifactConsumer - extends ArchivaArtifactConsumer -{ - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/InvalidRepositoryContentConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/InvalidRepositoryContentConsumer.java deleted file mode 100644 index af31c545a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/InvalidRepositoryContentConsumer.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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. - */ - -/** - * Consumer for Invalid Repository Content - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface InvalidRepositoryContentConsumer - extends RepositoryContentConsumer -{ - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/KnownRepositoryContentConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/KnownRepositoryContentConsumer.java deleted file mode 100644 index 884101143..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/KnownRepositoryContentConsumer.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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. - */ - -/** - * Consumer for Known Repository Content. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface KnownRepositoryContentConsumer - extends RepositoryContentConsumer -{ - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/RepositoryContentConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/RepositoryContentConsumer.java deleted file mode 100644 index 9b23e1713..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/RepositoryContentConsumer.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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.configuration.ManagedRepositoryConfiguration; - -import java.util.Date; -import java.util.List; - -/** - * A consumer of content (files) in the repository. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface RepositoryContentConsumer extends BaseConsumer -{ - /** - * Get the list of included file patterns for this consumer. - * - * @return the list of {@link String} patterns. (example: "**/*.pom") - */ - public List getIncludes(); - - /** - * Get the list of excluded file patterns for this consumer. - * - * @return the list of {@link String} patterns. (example: "**/*.pom") - (can be null for no exclusions) - */ - public List getExcludes(); - - /** - *

- * Event that triggers at the beginning of a scan. - *

- * - *

- * NOTE: This would be a good place to initialize the consumer, to lock any resources, and to - * generally start tracking the scan as a whole. - *

- * - * @param repository the repository that this consumer is being used for. - * @param whenGathered the start of the repository scan - * @throws ConsumerException if there was a problem with using the provided repository with the consumer. - */ - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) throws ConsumerException; - - /** - *

- * Event indicating a file is to be processed by this consumer. - *

- * - *

- * NOTE: The consumer does not need to process the file immediately, can can opt to queue and/or track - * the files to be processed in batch. Just be sure to complete the processing by the {@link #completeScan()} - * event. - *

- * - * @param path the relative file path (in the repository) to process. - * @throws ConsumerException if there was a problem processing this file. - */ - public void processFile( String path ) throws ConsumerException; - - /** - *

- * Event that triggers on the completion of a scan. - *

- * - *

- * NOTE: If the consumer opted to batch up processing requests in the {@link #processFile(String)} event - * this would be the last opportunity to drain any processing queue's. - *

- * - * @todo! this is never called by the RepositoryScannerInstance - */ - public void completeScan(); - - /** - * Whether the consumer should process files that have not been modified since the time passed in to the scan - * method. - * @return whether to process the unmodified files - */ - boolean isProcessUnmodified(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/functors/PermanentConsumerPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/functors/PermanentConsumerPredicate.java deleted file mode 100644 index 92b9e3a55..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/functors/PermanentConsumerPredicate.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.consumers.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.consumers.BaseConsumer; - -/** - * Selects Consumers that are flaged as 'permanent'. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class PermanentConsumerPredicate - implements Predicate -{ - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof BaseConsumer ) - { - BaseConsumer consumer = (BaseConsumer) object; - satisfies = consumer.isPermanent(); - } - - return satisfies; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml deleted file mode 100644 index 538c0cd4d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-consumers - 1.2-SNAPSHOT - ../pom.xml - - - archiva-core-consumers - Archiva Consumers :: Core Consumers - - - - org.apache.archiva - archiva-configuration - - - org.apache.archiva - archiva-consumer-api - - - org.apache.archiva - archiva-repository-layer - - - org.codehaus.plexus - plexus-digest - - - org.codehaus.plexus - plexus-spring - test - - - - - hsqldb - hsqldb - test - - - xmlunit - xmlunit - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumer.java deleted file mode 100644 index 7ce2db144..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumer.java +++ /dev/null @@ -1,202 +0,0 @@ -package org.apache.maven.archiva.consumers.core; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -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.codehaus.plexus.digest.ChecksumFile; -import org.codehaus.plexus.digest.Digester; -import org.codehaus.plexus.digest.DigesterException; -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; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * ArtifactMissingChecksumsConsumer - Create missing checksums for the artifact. - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="create-missing-checksums" - * instantiation-strategy="per-lookup" - */ -public class ArtifactMissingChecksumsConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer, RegistryListener, Initializable -{ - /** - * @plexus.configuration default-value="create-missing-checksums" - */ - private String id; - - /** - * @plexus.configuration default-value="Create Missing Checksums (.sha1 & .md5)" - */ - private String description; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - /** - * @plexus.requirement role-hint="sha1" - */ - private Digester digestSha1; - - /** - * @plexus.requirement role-hint="md5"; - */ - private Digester digestMd5; - - /** - * @plexus.requirement - */ - private ChecksumFile checksum; - - private static final String TYPE_CHECKSUM_NOT_FILE = "checksum-bad-not-file"; - - private static final String TYPE_CHECKSUM_CANNOT_CALC = "checksum-calc-failure"; - - private static final String TYPE_CHECKSUM_CANNOT_CREATE = "checksum-create-failure"; - - private File repositoryDir; - - private List includes = new ArrayList(); - - public String getId() - { - return this.id; - } - - public String getDescription() - { - return this.description; - } - - public boolean isPermanent() - { - return false; - } - - public void beginScan( ManagedRepositoryConfiguration repo, Date whenGathered ) - throws ConsumerException - { - this.repositoryDir = new File( repo.getLocation() ); - } - - public void completeScan() - { - /* do nothing */ - } - - public List getExcludes() - { - return getDefaultArtifactExclusions(); - } - - public List getIncludes() - { - return includes; - } - - public void processFile( String path ) - throws ConsumerException - { - createIfMissing( path, digestSha1 ); - createIfMissing( path, digestMd5 ); - } - - private void createIfMissing( String path, Digester digester ) - { - File checksumFile = new File( this.repositoryDir, path + digester.getFilenameExtension() ); - if ( !checksumFile.exists() ) - { - try - { - checksum.createChecksum( new File( this.repositoryDir, path ), digester ); - triggerConsumerInfo( "Created missing checksum file " + checksumFile.getAbsolutePath() ); - } - catch ( DigesterException e ) - { - triggerConsumerError( TYPE_CHECKSUM_CANNOT_CALC, - "Cannot calculate checksum for file " + checksumFile + ": " + e.getMessage() ); - } - catch ( IOException e ) - { - triggerConsumerError( TYPE_CHECKSUM_CANNOT_CREATE, - "Cannot create checksum for file " + checksumFile + ": " + e.getMessage() ); - } - } - else if ( !checksumFile.isFile() ) - { - triggerConsumerWarning( TYPE_CHECKSUM_NOT_FILE, - "Checksum file " + checksumFile.getAbsolutePath() + " is not a file." ); - } - - } - - 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-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/AutoRemoveConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/AutoRemoveConsumer.java deleted file mode 100644 index a5112272b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/AutoRemoveConsumer.java +++ /dev/null @@ -1,152 +0,0 @@ -package org.apache.maven.archiva.consumers.core; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -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.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; - -import java.io.File; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * AutoRemoveConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="auto-remove" - * instantiation-strategy="per-lookup" - */ -public class AutoRemoveConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer, RegistryListener, Initializable -{ - /** - * @plexus.configuration default-value="auto-remove" - */ - private String id; - - /** - * @plexus.configuration default-value="Automatically Remove File from Filesystem." - */ - private String description; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - private File repositoryDir; - - private List includes = new ArrayList(); - - public String getId() - { - return this.id; - } - - public String getDescription() - { - return this.description; - } - - public boolean isPermanent() - { - return false; - } - - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - this.repositoryDir = new File( repository.getLocation() ); - } - - public void completeScan() - { - /* do nothing */ - } - - public List getExcludes() - { - return null; - } - - public List getIncludes() - { - return includes; - } - - public void processFile( String path ) - throws ConsumerException - { - File file = new File( this.repositoryDir, path ); - if ( file.exists() ) - { - triggerConsumerInfo( "(Auto) Removing File: " + file.getAbsolutePath() ); - file.delete(); - } - } - - 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.AUTO_REMOVE ) ); - } - - public void initialize() - throws InitializationException - { - configuration.addChangeListener( this ); - - initIncludes(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/AutoRenameConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/AutoRenameConsumer.java deleted file mode 100644 index 4c694473e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/AutoRenameConsumer.java +++ /dev/null @@ -1,147 +0,0 @@ -package org.apache.maven.archiva.consumers.core; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * AutoRenameConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="auto-rename" - * instantiation-strategy="per-lookup" - */ -public class AutoRenameConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer -{ - /** - * @plexus.configuration default-value="auto-rename" - */ - private String id; - - /** - * @plexus.configuration default-value="Automatically rename common artifact mistakes." - */ - private String description; - - private static final String RENAME_FAILURE = "rename_failure"; - - private File repositoryDir; - - private List includes = new ArrayList(); - - private Map extensionRenameMap = new HashMap(); - - public AutoRenameConsumer() - { - includes.add( "**/*.distribution-tgz" ); - includes.add( "**/*.distribution-zip" ); - includes.add( "**/*.plugin" ); - - extensionRenameMap.put( ".distribution-tgz", ".tar.gz" ); - extensionRenameMap.put( ".distribution-zip", ".zip" ); - extensionRenameMap.put( ".plugin", ".jar" ); - } - - public String getId() - { - return this.id; - } - - public String getDescription() - { - return this.description; - } - - public boolean isPermanent() - { - return false; - } - - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - this.repositoryDir = new File( repository.getLocation() ); - } - - public void completeScan() - { - /* do nothing */ - } - - public List getExcludes() - { - return null; - } - - public List getIncludes() - { - return includes; - } - - public void processFile( String path ) - throws ConsumerException - { - File file = new File( this.repositoryDir, path ); - if ( file.exists() ) - { - Iterator itExtensions = this.extensionRenameMap.keySet().iterator(); - while ( itExtensions.hasNext() ) - { - String extension = (String) itExtensions.next(); - if ( path.endsWith( extension ) ) - { - String fixedExtension = (String) this.extensionRenameMap.get( extension ); - String correctedPath = path.substring( 0, path.length() - extension.length() ) + fixedExtension; - File to = new File( this.repositoryDir, correctedPath ); - try - { - // Rename the file. - FileUtils.moveFile( file, to ); - } - catch ( IOException e ) - { - triggerConsumerWarning( RENAME_FAILURE, "Unable to rename " + path + " to " + correctedPath + - ": " + e.getMessage() ); - } - } - } - - triggerConsumerInfo( "(Auto) Removing File: " + file.getAbsolutePath() ); - file.delete(); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/MetadataUpdaterConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/MetadataUpdaterConsumer.java deleted file mode 100644 index 5119b3267..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/MetadataUpdaterConsumer.java +++ /dev/null @@ -1,299 +0,0 @@ -package org.apache.maven.archiva.consumers.core; - -/* - * 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.ArrayList; -import java.util.Date; -import java.util.List; - -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.model.ProjectReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.ContentNotFoundException; -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.RepositoryNotFoundException; -import org.apache.maven.archiva.repository.layout.LayoutException; -import org.apache.maven.archiva.repository.metadata.MetadataTools; -import org.apache.maven.archiva.repository.metadata.RepositoryMetadataException; -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; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * MetadataUpdaterConsumer will create and update the metadata present within the repository. - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="metadata-updater" - * instantiation-strategy="per-lookup" - */ -public class MetadataUpdaterConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer, RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( MetadataUpdaterConsumer.class ); - - /** - * @plexus.configuration default-value="metadata-updater" - */ - private String id; - - /** - * @plexus.configuration default-value="Update / Create maven-metadata.xml files" - */ - private String description; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement - */ - private MetadataTools metadataTools; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - private static final String TYPE_METADATA_BAD_INTERNAL_REF = "metadata-bad-internal-ref"; - - private static final String TYPE_METADATA_WRITE_FAILURE = "metadata-write-failure"; - - private static final String TYPE_METADATA_IO = "metadata-io-warning"; - - private ManagedRepositoryContent repository; - - private File repositoryDir; - - private List includes = new ArrayList(); - - private long scanStartTimestamp = 0; - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public void setIncludes( List includes ) - { - this.includes = includes; - } - - public void beginScan( ManagedRepositoryConfiguration repoConfig, Date whenGathered ) - throws ConsumerException - { - try - { - this.repository = repositoryFactory.getManagedRepositoryContent( repoConfig.getId() ); - this.repositoryDir = new File( repository.getRepoRoot() ); - this.scanStartTimestamp = System.currentTimeMillis(); - } - catch ( RepositoryNotFoundException e ) - { - throw new ConsumerException( e.getMessage(), e ); - } - catch ( RepositoryException e ) - { - throw new ConsumerException( e.getMessage(), e ); - } - } - - public void completeScan() - { - /* do nothing here */ - } - - public List getExcludes() - { - return getDefaultArtifactExclusions(); - } - - public List getIncludes() - { - return this.includes; - } - - public void processFile( String path ) - throws ConsumerException - { - try - { - ArtifactReference artifact = repository.toArtifactReference( path ); - updateVersionMetadata( artifact, path ); - updateProjectMetadata( artifact, path ); - } - catch ( LayoutException e ) - { - throw new ConsumerException( "Unable to convert to artifact reference: " + path, e ); - } - } - - private void updateProjectMetadata( ArtifactReference artifact, String path ) - { - ProjectReference projectRef = new ProjectReference(); - projectRef.setGroupId( artifact.getGroupId() ); - projectRef.setArtifactId( artifact.getArtifactId() ); - - try - { - String metadataPath = this.metadataTools.toPath( projectRef ); - - File projectMetadata = new File( this.repositoryDir, metadataPath ); - - if ( projectMetadata.exists() && ( projectMetadata.lastModified() >= this.scanStartTimestamp ) ) - { - // This metadata is up to date. skip it. - log.debug( "Skipping uptodate metadata: " + this.metadataTools.toPath( projectRef ) ); - return; - } - - metadataTools.updateMetadata( this.repository, projectRef ); - log.debug( "Updated metadata: " + this.metadataTools.toPath( projectRef ) ); - } - catch ( LayoutException e ) - { - triggerConsumerWarning( TYPE_METADATA_BAD_INTERNAL_REF, "Unable to convert path [" + path - + "] to an internal project reference: " + e.getMessage() ); - } - catch ( RepositoryMetadataException e ) - { - triggerConsumerError( TYPE_METADATA_WRITE_FAILURE, "Unable to write project metadata for artifact [" + path - + "]: " + e.getMessage() ); - } - catch ( IOException e ) - { - triggerConsumerWarning( TYPE_METADATA_IO, "Project metadata not written due to IO warning: " - + e.getMessage() ); - } - catch ( ContentNotFoundException e ) - { - triggerConsumerWarning( TYPE_METADATA_IO, - "Project metadata not written because no versions were found to update: " - + e.getMessage() ); - } - } - - private void updateVersionMetadata( ArtifactReference artifact, String path ) - { - VersionedReference versionRef = new VersionedReference(); - versionRef.setGroupId( artifact.getGroupId() ); - versionRef.setArtifactId( artifact.getArtifactId() ); - versionRef.setVersion( artifact.getVersion() ); - - try - { - String metadataPath = this.metadataTools.toPath( versionRef ); - - File projectMetadata = new File( this.repositoryDir, metadataPath ); - - if ( projectMetadata.exists() && ( projectMetadata.lastModified() >= this.scanStartTimestamp ) ) - { - // This metadata is up to date. skip it. - log.debug( "Skipping uptodate metadata: " + this.metadataTools.toPath( versionRef ) ); - return; - } - - metadataTools.updateMetadata( this.repository, versionRef ); - log.debug( "Updated metadata: " + this.metadataTools.toPath( versionRef ) ); - } - catch ( LayoutException e ) - { - triggerConsumerWarning( TYPE_METADATA_BAD_INTERNAL_REF, "Unable to convert path [" + path - + "] to an internal version reference: " + e.getMessage() ); - } - catch ( RepositoryMetadataException e ) - { - triggerConsumerError( TYPE_METADATA_WRITE_FAILURE, "Unable to write version metadata for artifact [" + path - + "]: " + e.getMessage() ); - } - catch ( IOException e ) - { - triggerConsumerWarning( TYPE_METADATA_IO, "Version metadata not written due to IO warning: " - + e.getMessage() ); - } - catch ( ContentNotFoundException e ) - { - triggerConsumerWarning( TYPE_METADATA_IO, - "Version metadata not written because no versions were found to update: " - + e.getMessage() ); - } - } - - public boolean isPermanent() - { - return false; - } - - 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 here */ - } - - private void initIncludes() - { - includes.clear(); - - includes.addAll( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) ); - } - - public void initialize() - throws InitializationException - { - configuration.addChangeListener( this ); - - initIncludes(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ValidateChecksumConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ValidateChecksumConsumer.java deleted file mode 100644 index 66e0f24a6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ValidateChecksumConsumer.java +++ /dev/null @@ -1,156 +0,0 @@ -package org.apache.maven.archiva.consumers.core; - -/* - * 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.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.codehaus.plexus.digest.ChecksumFile; -import org.codehaus.plexus.digest.Digester; -import org.codehaus.plexus.digest.DigesterException; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; - -/** - * ValidateChecksumConsumer - validate the provided checksum against the file it represents. - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="validate-checksum" - * instantiation-strategy="per-lookup" - */ -public class ValidateChecksumConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer, Initializable -{ - private static final String NOT_VALID_CHECKSUM = "checksum-not-valid"; - - private static final String CHECKSUM_NOT_FOUND = "checksum-not-found"; - - private static final String CHECKSUM_DIGESTER_FAILURE = "checksum-digester-failure"; - - private static final String CHECKSUM_IO_ERROR = "checksum-io-error"; - - /** - * @plexus.configuration default-value="validate-checksums" - */ - private String id; - - /** - * @plexus.configuration default-value="Validate checksums against file." - */ - private String description; - - /** - * @plexus.requirement - */ - private ChecksumFile checksum; - - /** - * @plexus.requirement role="org.codehaus.plexus.digest.Digester" - */ - private List digesterList; - - private File repositoryDir; - - private List includes = new ArrayList(); - - public String getId() - { - return this.id; - } - - public String getDescription() - { - return this.description; - } - - public boolean isPermanent() - { - return false; - } - - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - this.repositoryDir = new File( repository.getLocation() ); - } - - public void completeScan() - { - /* nothing to do */ - } - - public List getExcludes() - { - return null; - } - - public List getIncludes() - { - return this.includes; - } - - public void processFile( String path ) - throws ConsumerException - { - File checksumFile = new File( this.repositoryDir, path ); - try - { - if ( !checksum.isValidChecksum( checksumFile ) ) - { - triggerConsumerWarning( NOT_VALID_CHECKSUM, "The checksum for " + checksumFile + " is invalid." ); - } - } - catch ( FileNotFoundException e ) - { - triggerConsumerError( CHECKSUM_NOT_FOUND, "File not found during checksum validation: " + e.getMessage() ); - } - catch ( DigesterException e ) - { - triggerConsumerError( CHECKSUM_DIGESTER_FAILURE, - "Digester failure during checksum validation on " + checksumFile ); - } - catch ( IOException e ) - { - triggerConsumerError( CHECKSUM_IO_ERROR, "Checksum I/O error during validation on " + checksumFile ); - } - } - - public void initialize() - throws InitializationException - { - for ( Iterator itDigesters = digesterList.iterator(); itDigesters.hasNext(); ) - { - Digester digester = itDigesters.next(); - includes.add( "**/*" + digester.getFilenameExtension() ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java deleted file mode 100644 index 598375f2e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java +++ /dev/null @@ -1,139 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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.io.File; -import java.io.FilenameFilter; -import java.util.List; -import java.util.Set; - -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.events.RepositoryListener; - -/** - * Base class for all repository purge tasks. - * - * @author Maria Odea Ching - */ -public abstract class AbstractRepositoryPurge - implements RepositoryPurge -{ - protected final ManagedRepositoryContent repository; - - protected final List listeners; - - public AbstractRepositoryPurge( ManagedRepositoryContent repository, List listeners ) - { - this.repository = repository; - this.listeners = listeners; - } - - /** - * Get all files from the directory that matches the specified filename. - * - * @param dir the directory to be scanned - * @param filename the filename to be matched - * @return - */ - protected File[] getFiles( File dir, String filename ) - { - FilenameFilter filter = new ArtifactFilenameFilter( filename ); - - File[] files = dir.listFiles( filter ); - - return files; - } - - protected String toRelativePath( File artifactFile ) - { - String artifactPath = artifactFile.getAbsolutePath(); - if ( artifactPath.startsWith( repository.getRepoRoot() ) ) - { - artifactPath = artifactPath.substring( repository.getRepoRoot().length() ); - } - - return artifactPath; - } - - /** - * Purge the repo. Update db and index of removed artifacts. - * - * @param artifactFiles - * @throws RepositoryIndexException - */ - protected void purge( Set references ) - { - if( references != null && !references.isEmpty() ) - { - for ( ArtifactReference reference : references ) - { - File artifactFile = repository.toFile( reference ); - - ArchivaArtifact artifact = - new ArchivaArtifact( reference.getGroupId(), reference.getArtifactId(), reference.getVersion(), - reference.getClassifier(), reference.getType() ); - - for ( RepositoryListener listener : listeners ) - { - listener.deleteArtifact( repository, artifact ); - } - - // TODO: this needs to be logged - artifactFile.delete(); - purgeSupportFiles( artifactFile ); - } - } - } - - /** - *

- * This find support files for the artifactFile and deletes them. - *

- *

- * Support Files are things like ".sha1", ".md5", ".asc", etc. - *

- * - * @param artifactFile the file to base off of. - */ - private void purgeSupportFiles( File artifactFile ) - { - File parentDir = artifactFile.getParentFile(); - - if ( !parentDir.exists() ) - { - return; - } - - FilenameFilter filter = new ArtifactFilenameFilter( artifactFile.getName() ); - - File[] files = parentDir.listFiles( filter ); - - for ( File file : files ) - { - if ( file.exists() && file.isFile() ) - { - file.delete(); - // TODO: log that it was deleted - } - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/ArtifactFilenameFilter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/ArtifactFilenameFilter.java deleted file mode 100644 index 2162b9096..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/ArtifactFilenameFilter.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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.io.FilenameFilter; -import java.io.File; - -/** - * Filename filter for getting all the files related to a specific artifact. - * - * @author Maria Odea Ching - */ -public class ArtifactFilenameFilter - implements FilenameFilter -{ - private String filename; - - public ArtifactFilenameFilter() - { - - } - - public ArtifactFilenameFilter( String filename ) - { - this.filename = filename; - } - - public boolean accept( File dir, String name ) - { - return ( name.startsWith( filename ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java deleted file mode 100644 index 3bfba763b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java +++ /dev/null @@ -1,255 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.apache.maven.archiva.common.utils.VersionComparator; -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.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.ProjectReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.ContentNotFoundException; -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.RepositoryNotFoundException; -import org.apache.maven.archiva.repository.events.RepositoryListener; -import org.apache.maven.archiva.repository.layout.LayoutException; -import org.apache.maven.archiva.repository.metadata.MetadataTools; -import org.apache.maven.archiva.repository.metadata.RepositoryMetadataException; - -/** - *

- * This will look in a single managed repository, and purge any snapshots that are present - * that have a corresponding released version on the same repository. - *

- * - *

- * So, if you have the following (presented in the m2/default layout form) ... - *

- *   /com/foo/foo-tool/1.0-SNAPSHOT/foo-tool-1.0-SNAPSHOT.jar
- *   /com/foo/foo-tool/1.1-SNAPSHOT/foo-tool-1.1-SNAPSHOT.jar
- *   /com/foo/foo-tool/1.2.1-SNAPSHOT/foo-tool-1.2.1-SNAPSHOT.jar
- *   /com/foo/foo-tool/1.2.1/foo-tool-1.2.1.jar
- *   /com/foo/foo-tool/2.0-SNAPSHOT/foo-tool-2.0-SNAPSHOT.jar
- *   /com/foo/foo-tool/2.0/foo-tool-2.0.jar
- *   /com/foo/foo-tool/2.1-SNAPSHOT/foo-tool-2.1-SNAPSHOT.jar
- * 
- * then the current highest ranked released (non-snapshot) version is 2.0, which means - * the snapshots from 1.0-SNAPSHOT, 1.1-SNAPSHOT, 1.2.1-SNAPSHOT, and 2.0-SNAPSHOT can - * be purged. Leaving 2.1-SNAPSHOT in alone. - *

- * - * @author Maria Odea Ching - * @version $Id$ - */ -public class CleanupReleasedSnapshotsRepositoryPurge - extends AbstractRepositoryPurge -{ - private MetadataTools metadataTools; - - private ArchivaConfiguration archivaConfig; - - private RepositoryContentFactory repoContentFactory; - - public CleanupReleasedSnapshotsRepositoryPurge( ManagedRepositoryContent repository, MetadataTools metadataTools, - ArchivaConfiguration archivaConfig, - RepositoryContentFactory repoContentFactory, - List listeners ) - { - super( repository, listeners ); - this.metadataTools = metadataTools; - this.archivaConfig = archivaConfig; - this.repoContentFactory = repoContentFactory; - } - - public void process( String path ) - throws RepositoryPurgeException - { - try - { - File artifactFile = new File( repository.getRepoRoot(), path ); - - if ( !artifactFile.exists() ) - { - // Nothing to do here, file doesn't exist, skip it. - return; - } - - ArtifactReference artifactRef = repository.toArtifactReference( path ); - - if ( !VersionUtil.isSnapshot( artifactRef.getVersion() ) ) - { - // Nothing to do here, not a snapshot, skip it. - return; - } - - ProjectReference reference = new ProjectReference(); - reference.setGroupId( artifactRef.getGroupId() ); - reference.setArtifactId( artifactRef.getArtifactId() ); - - // Gather up all of the versions. - List allVersions = new ArrayList( repository.getVersions( reference ) ); - - List repos = archivaConfig.getConfiguration().getManagedRepositories(); - for( ManagedRepositoryConfiguration repo : repos ) - { - if( repo.isReleases() && !repo.getId().equals( repository.getId() ) ) - { - try - { - ManagedRepositoryContent repoContent = repoContentFactory.getManagedRepositoryContent( repo.getId() ); - allVersions.addAll( repoContent.getVersions( reference ) ); - } - catch( RepositoryNotFoundException e ) - { - // swallow - } - catch( RepositoryException e ) - { - // swallow - } - } - } - - // Split the versions into released and snapshots. - List releasedVersions = new ArrayList(); - List snapshotVersions = new ArrayList(); - - for ( String version : allVersions ) - { - if ( VersionUtil.isSnapshot( version ) ) - { - snapshotVersions.add( version ); - } - else - { - releasedVersions.add( version ); - } - } - - Collections.sort( allVersions, VersionComparator.getInstance() ); - Collections.sort( releasedVersions, VersionComparator.getInstance() ); - Collections.sort( snapshotVersions, VersionComparator.getInstance() ); - - // Now clean out any version that is earlier than the highest released version. - boolean needsMetadataUpdate = false; - - VersionedReference versionRef = new VersionedReference(); - versionRef.setGroupId( artifactRef.getGroupId() ); - versionRef.setArtifactId( artifactRef.getArtifactId() ); - - ArchivaArtifact artifact = - new ArchivaArtifact( artifactRef.getGroupId(), artifactRef.getArtifactId(), artifactRef.getVersion(), - artifactRef.getClassifier(), artifactRef.getType() ); - - for ( String version : snapshotVersions ) - { - if( releasedVersions.contains( VersionUtil.getReleaseVersion( version ) ) ) - { - versionRef.setVersion( version ); - repository.deleteVersion( versionRef ); - - for ( RepositoryListener listener : listeners ) - { - listener.deleteArtifact( repository, artifact ); - } - - needsMetadataUpdate = true; - } - } - - if ( needsMetadataUpdate ) - { - updateMetadata( artifactRef ); - } - } - catch ( LayoutException e ) - { - throw new RepositoryPurgeException( e.getMessage(), e ); - } - catch ( ContentNotFoundException e ) - { - throw new RepositoryPurgeException( e.getMessage(), e ); - } - } - - private void updateMetadata( ArtifactReference artifact ) - { - VersionedReference versionRef = new VersionedReference(); - versionRef.setGroupId( artifact.getGroupId() ); - versionRef.setArtifactId( artifact.getArtifactId() ); - versionRef.setVersion( artifact.getVersion() ); - - ProjectReference projectRef = new ProjectReference(); - projectRef.setGroupId( artifact.getGroupId() ); - projectRef.setArtifactId( artifact.getArtifactId() ); - - try - { - metadataTools.updateMetadata( repository, versionRef ); - } - catch ( ContentNotFoundException e ) - { - // Ignore. (Just means we have no snapshot versions left to reference). - } - catch ( RepositoryMetadataException e ) - { - // Ignore. - } - catch ( IOException e ) - { - // Ignore. - } - catch ( LayoutException e ) - { - // Ignore. - } - - try - { - metadataTools.updateMetadata( repository, projectRef ); - } - catch ( ContentNotFoundException e ) - { - // Ignore. (Just means we have no snapshot versions left to reference). - } - catch ( RepositoryMetadataException e ) - { - // Ignore. - } - catch ( IOException e ) - { - // Ignore. - } - catch ( LayoutException e ) - { - // Ignore. - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java deleted file mode 100644 index 415fa6082..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java +++ /dev/null @@ -1,196 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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.io.File; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Set; -import java.util.regex.Matcher; - -import org.apache.commons.lang.time.DateUtils; -import org.apache.maven.archiva.common.utils.VersionComparator; -import org.apache.maven.archiva.common.utils.VersionUtil; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.ContentNotFoundException; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.events.RepositoryListener; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * Purge from repository all snapshots older than the specified days in the repository configuration. - * - * @author Maria Odea Ching - */ -public class DaysOldRepositoryPurge - extends AbstractRepositoryPurge -{ - private SimpleDateFormat timestampParser; - - private int daysOlder; - - private int retentionCount; - - public DaysOldRepositoryPurge( ManagedRepositoryContent repository, int daysOlder, - int retentionCount, List listeners ) - { - super( repository, listeners ); - this.daysOlder = daysOlder; - this.retentionCount = retentionCount; - timestampParser = new SimpleDateFormat( "yyyyMMdd.HHmmss" ); - timestampParser.setTimeZone( DateUtils.UTC_TIME_ZONE ); - } - - public void process( String path ) - throws RepositoryPurgeException - { - try - { - File artifactFile = new File( repository.getRepoRoot(), path ); - - if ( !artifactFile.exists() ) - { - return; - } - - ArtifactReference artifact = repository.toArtifactReference( path ); - - Calendar olderThanThisDate = Calendar.getInstance( DateUtils.UTC_TIME_ZONE ); - olderThanThisDate.add( Calendar.DATE, -daysOlder ); - - // respect retention count - VersionedReference reference = new VersionedReference(); - reference.setGroupId( artifact.getGroupId() ); - reference.setArtifactId( artifact.getArtifactId() ); - reference.setVersion( artifact.getVersion() ); - - List versions = new ArrayList( repository.getVersions( reference ) ); - - Collections.sort( versions, VersionComparator.getInstance() ); - - if ( retentionCount > versions.size() ) - { - // Done. nothing to do here. skip it. - return; - } - - int countToPurge = versions.size() - retentionCount; - - for ( String version : versions ) - { - if ( countToPurge-- <= 0 ) - { - break; - } - - ArtifactReference newArtifactReference = - repository.toArtifactReference( artifactFile.getAbsolutePath() ); - newArtifactReference.setVersion( version ); - - File newArtifactFile = repository.toFile( newArtifactReference ); - - // Is this a generic snapshot "1.0-SNAPSHOT" ? - if ( VersionUtil.isGenericSnapshot( newArtifactReference.getVersion() ) ) - { - if ( newArtifactFile.lastModified() < olderThanThisDate.getTimeInMillis() ) - { - doPurgeAllRelated( newArtifactReference ); - } - } - // Is this a timestamp snapshot "1.0-20070822.123456-42" ? - else if ( VersionUtil.isUniqueSnapshot( newArtifactReference.getVersion() ) ) - { - Calendar timestampCal = uniqueSnapshotToCalendar( newArtifactReference.getVersion() ); - - if ( timestampCal.getTimeInMillis() < olderThanThisDate.getTimeInMillis() ) - { - doPurgeAllRelated( newArtifactReference ); - } - else if ( newArtifactFile.lastModified() < olderThanThisDate.getTimeInMillis() ) - { - doPurgeAllRelated( newArtifactReference ); - } - } - } - } - catch ( LayoutException le ) - { - throw new RepositoryPurgeException( le.getMessage(), le ); - } - catch ( ContentNotFoundException e ) - { - throw new RepositoryPurgeException( e.getMessage(), e ); - } - } - - private Calendar uniqueSnapshotToCalendar( String version ) - { - // The latestVersion will contain the full version string "1.0-alpha-5-20070821.213044-8" - // This needs to be broken down into ${base}-${timestamp}-${build_number} - - Matcher m = VersionUtil.UNIQUE_SNAPSHOT_PATTERN.matcher( version ); - if ( m.matches() ) - { - Matcher mtimestamp = VersionUtil.TIMESTAMP_PATTERN.matcher( m.group( 2 ) ); - if ( mtimestamp.matches() ) - { - String tsDate = mtimestamp.group( 1 ); - String tsTime = mtimestamp.group( 2 ); - - Date versionDate; - try - { - versionDate = timestampParser.parse( tsDate + "." + tsTime ); - Calendar cal = Calendar.getInstance( DateUtils.UTC_TIME_ZONE ); - cal.setTime( versionDate ); - - return cal; - } - catch ( ParseException e ) - { - // Invalid Date/Time - return null; - } - } - } - return null; - } - - private void doPurgeAllRelated( ArtifactReference reference ) - throws LayoutException - { - try - { - Set related = repository.getRelatedArtifacts( reference ); - purge( related ); - } - catch ( ContentNotFoundException e ) - { - // Nothing to do here. - // TODO: Log this? - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurge.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurge.java deleted file mode 100644 index 17276dada..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurge.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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. - */ - -/** - * @author Maria Odea Ching - * @version $Id$ - */ -public interface RepositoryPurge -{ - /** - * Perform checking on artifact for repository purge - * - * @param path path to the scanned artifact - */ - public void process( String path ) - throws RepositoryPurgeException; - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java deleted file mode 100644 index d388814c9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java +++ /dev/null @@ -1,218 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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.ArrayList; -import java.util.Date; -import java.util.List; - -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.repository.ManagedRepositoryContent; -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.metadata.MetadataTools; -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; - -import edu.emory.mathcs.backport.java.util.Collections; - -/** - * Consumer for removing old snapshots in the repository based on the criteria - * specified by the user. - * - * @author Maria Odea Ching - * - * @plexus.component - * role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="repository-purge" - * instantiation-strategy="per-lookup" - */ -public class RepositoryPurgeConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer, RegistryListener, Initializable -{ - /** - * @plexus.configuration default-value="repository-purge" - */ - private String id; - - /** - * @plexus.configuration default-value="Purge repository of old snapshots" - */ - private String description; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement - */ - private MetadataTools metadataTools; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - private List includes = new ArrayList(); - - private RepositoryPurge repoPurge; - - private RepositoryPurge cleanUp; - - private boolean deleteReleasedSnapshots; - - /** @plexus.requirement role="org.apache.maven.archiva.repository.events.RepositoryListener" */ - private List listeners = Collections.emptyList(); - - public String getId() - { - return this.id; - } - - public String getDescription() - { - return this.description; - } - - public boolean isPermanent() - { - return false; - } - - public List getExcludes() - { - return getDefaultArtifactExclusions(); - } - - public List getIncludes() - { - return this.includes; - } - - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - try - { - ManagedRepositoryContent repositoryContent = repositoryFactory.getManagedRepositoryContent( repository - .getId() ); - - if ( repository.getDaysOlder() != 0 ) - { - repoPurge = new DaysOldRepositoryPurge( repositoryContent, repository.getDaysOlder(), - repository.getRetentionCount(), listeners ); - } - else - { - repoPurge = new RetentionCountRepositoryPurge( repositoryContent, repository.getRetentionCount(), - listeners ); - } - - cleanUp = - new CleanupReleasedSnapshotsRepositoryPurge( repositoryContent, metadataTools, configuration, - repositoryFactory, listeners ); - - deleteReleasedSnapshots = repository.isDeleteReleasedSnapshots(); - } - catch ( RepositoryNotFoundException e ) - { - throw new ConsumerException( "Can't run repository purge: " + e.getMessage(), e ); - } - catch ( RepositoryException e ) - { - throw new ConsumerException( "Can't run repository purge: " + e.getMessage(), e ); - } - } - - public void processFile( String path ) - throws ConsumerException - { - try - { - if ( deleteReleasedSnapshots ) - { - cleanUp.process( path ); - } - - repoPurge.process( path ); - } - catch ( RepositoryPurgeException rpe ) - { - throw new ConsumerException( rpe.getMessage(), rpe ); - } - } - - 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(); - } - - public boolean isProcessUnmodified() - { - // we need to check all files for deletion, especially if not modified - return true; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeException.java deleted file mode 100644 index d531629e6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeException.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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. - */ - -/** - * - * @author Maria Odea Ching - * @version $Id$ - */ -public class RepositoryPurgeException - extends Exception -{ - public RepositoryPurgeException() - { - super(); - } - - public RepositoryPurgeException( String message, Throwable cause ) - { - super( message, cause ); - } - - public RepositoryPurgeException( String message ) - { - super( message ); - } - - public RepositoryPurgeException( Throwable cause ) - { - super( cause ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java deleted file mode 100644 index 2580c3d96..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java +++ /dev/null @@ -1,130 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; - -import org.apache.maven.archiva.common.utils.VersionComparator; -import org.apache.maven.archiva.common.utils.VersionUtil; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.ContentNotFoundException; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.events.RepositoryListener; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * Purge the repository by retention count. Retain only the specified number of snapshots. - * - * @author Maria Odea Ching - */ -public class RetentionCountRepositoryPurge - extends AbstractRepositoryPurge -{ - private int retentionCount; - - public RetentionCountRepositoryPurge( ManagedRepositoryContent repository, - int retentionCount, List listeners ) - { - super( repository, listeners ); - this.retentionCount = retentionCount; - } - - public void process( String path ) - throws RepositoryPurgeException - { - try - { - File artifactFile = new File( repository.getRepoRoot(), path ); - - if ( !artifactFile.exists() ) - { - return; - } - - ArtifactReference artifact = repository.toArtifactReference( path ); - - if ( VersionUtil.isSnapshot( artifact.getVersion() ) ) - { - VersionedReference reference = new VersionedReference(); - reference.setGroupId( artifact.getGroupId() ); - reference.setArtifactId( artifact.getArtifactId() ); - reference.setVersion( artifact.getVersion() ); - - List versions = new ArrayList( repository.getVersions( reference ) ); - - Collections.sort( versions, VersionComparator.getInstance() ); - - if ( retentionCount > versions.size() ) - { - // Done. nothing to do here. skip it. - return; - } - - int countToPurge = versions.size() - retentionCount; - - for ( String version : versions ) - { - if ( countToPurge-- <= 0 ) - { - break; - } - - doPurgeAllRelated( artifact, version ); - } - } - } - catch ( LayoutException le ) - { - throw new RepositoryPurgeException( le.getMessage(), le ); - } - catch ( ContentNotFoundException e ) - { - // Nothing to do here. - // TODO: Log this condition? - } - } - - private void doPurgeAllRelated( ArtifactReference reference, String version ) - throws LayoutException - { - ArtifactReference artifact = new ArtifactReference(); - artifact.setGroupId( reference.getGroupId() ); - artifact.setArtifactId( reference.getArtifactId() ); - artifact.setVersion( version ); - artifact.setClassifier( reference.getClassifier() ); - artifact.setType( reference.getType() ); - - try - { - Set related = repository.getRelatedArtifacts( artifact ); - purge( related ); - } - catch ( ContentNotFoundException e ) - { - // Nothing to do here. - // TODO: Log this? - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/conf/repository-manager-daysOld.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/conf/repository-manager-daysOld.xml deleted file mode 100644 index bbbee3eb2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/conf/repository-manager-daysOld.xml +++ /dev/null @@ -1,203 +0,0 @@ - - - - - 1 - - - internal - Archiva Managed Internal Repository - file://${appserver.base}/repositories/internal - default - true - false - true - 0 0 * * * ? - - - snapshots - Archiva Managed Snapshot Repository - file://${appserver.base}/repositories/snapshots - default - false - true - true - 0 0,30 * * * ? - - - central - Central Repository - http://repo1.maven.org/maven2 - default - true - false - false - - - maven2-repository.dev.java.net - Java.net Repository for Maven 2 - https://maven2-repository.dev.java.net/nonav/repository - default - true - false - false - - - test-repo - Test Repository - file://${appserver.base}/test-repo - default - true - true - true - 0 0 * * * ? - 100 - true - - - - - - internal - central - - disabled - never - not-found - - - internal - maven2-repository.dev.java.net - - disabled - never - not-found - - javax/** - - - - - - - example - http - proxy.mycompany.com - 8080 - myself - mypass - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - repository-purge - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - - - true - true - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/conf/repository-manager.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/conf/repository-manager.xml deleted file mode 100644 index 29cdebde4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/conf/repository-manager.xml +++ /dev/null @@ -1,203 +0,0 @@ - - - - - 1 - - - internal - Archiva Managed Internal Repository - file://${appserver.base}/repositories/internal - default - true - false - true - 0 0 * * * ? - - - snapshots - Archiva Managed Snapshot Repository - file://${appserver.base}/repositories/snapshots - default - false - true - true - 0 0,30 * * * ? - - - central - Central Repository - http://repo1.maven.org/maven2 - default - true - false - false - - - maven2-repository.dev.java.net - Java.net Repository for Maven 2 - https://maven2-repository.dev.java.net/nonav/repository - default - true - false - false - - - test-repo - Test Repository - file://${appserver.base}/test-repo - default - true - true - true - 0 0 * * * ? - 0 - 2 - - - - - - internal - central - - disabled - never - not-found - - - internal - maven2-repository.dev.java.net - - disabled - never - not-found - - javax/** - - - - - - - example - http - proxy.mycompany.com - 8080 - myself - mypass - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - repository-purge - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - - - true - true - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/AbstractArtifactConsumerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/AbstractArtifactConsumerTest.java deleted file mode 100644 index 59cffadc0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/AbstractArtifactConsumerTest.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.apache.maven.archiva.consumers.core; - -/* - * 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.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.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; - -public abstract class AbstractArtifactConsumerTest - extends PlexusInSpringTestCase -{ - private File repoLocation; - - protected KnownRepositoryContentConsumer consumer; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaConfiguration archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.ROLE ); - FileType fileType = - (FileType) archivaConfiguration.getConfiguration().getRepositoryScanning().getFileTypes().get( 0 ); - assertEquals( FileTypes.ARTIFACTS, fileType.getId() ); - fileType.addPattern( "**/*.xml" ); - - repoLocation = getTestFile( "target/test-" + getName() + "/test-repo" ); - } - - public void testConsumption() - { - File localFile = - new File( repoLocation, "org/apache/maven/plugins/maven-plugin-plugin/2.4.1/maven-metadata.xml" ); - - ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate(); - BaseFile baseFile = new BaseFile( repoLocation, localFile ); - predicate.setBasefile( baseFile ); - - assertFalse( predicate.evaluate( consumer ) ); - } - - public void testConsumptionOfOtherMetadata() - { - File localFile = - new File( repoLocation, "org/apache/maven/plugins/maven-plugin-plugin/2.4.1/maven-metadata-central.xml" ); - - ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate(); - BaseFile baseFile = new BaseFile( repoLocation, localFile ); - predicate.setBasefile( baseFile ); - - assertFalse( predicate.evaluate( consumer ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java deleted file mode 100644 index 42f84d39e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.apache.maven.archiva.consumers.core; - -/* - * 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.KnownRepositoryContentConsumer; - -public class ArtifactMissingChecksumsConsumerTest - extends AbstractArtifactConsumerTest -{ - protected void setUp() - throws Exception - { - super.setUp(); - - consumer = (ArtifactMissingChecksumsConsumer) lookup( KnownRepositoryContentConsumer.class.getName(), - "create-missing-checksums" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/MetadataUpdateConsumerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/MetadataUpdateConsumerTest.java deleted file mode 100644 index b97025fba..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/MetadataUpdateConsumerTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.apache.maven.archiva.consumers.core; - -/* - * 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.KnownRepositoryContentConsumer; - -public class MetadataUpdateConsumerTest - extends AbstractArtifactConsumerTest -{ - protected void setUp() - throws Exception - { - super.setUp(); - - consumer = (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class.getName(), - "metadata-updater" ); - } -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java deleted file mode 100644 index 7335d4694..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java +++ /dev/null @@ -1,151 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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.io.File; -import java.io.IOException; - -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.events.RepositoryListener; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; - -/** - * @author Maria Odea Ching - */ -public abstract class AbstractRepositoryPurgeTest - extends PlexusInSpringTestCase -{ - public static final String TEST_REPO_ID = "test-repo"; - - public static final String TEST_REPO_NAME = "Test Repository"; - - public static final int TEST_RETENTION_COUNT = 2; - - public static final int TEST_DAYS_OLDER = 30; - - public static final String PATH_TO_BY_DAYS_OLD_ARTIFACT = "org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar"; - - public static final String PATH_TO_BY_DAYS_OLD_METADATA_DRIVEN_ARTIFACT = "org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.jar"; - - public static final String PATH_TO_BY_RETENTION_COUNT_ARTIFACT = "org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar"; - - public static final String PATH_TO_BY_RETENTION_COUNT_POM = "org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom"; - - public static final String PATH_TO_TEST_ORDER_OF_DELETION = "org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar"; - - protected static final String RELEASES_TEST_REPO_ID = "releases-test-repo-one"; - - protected static final String RELEASES_TEST_REPO_NAME = "Releases Test Repo One"; - - private ManagedRepositoryConfiguration config; - - private ManagedRepositoryContent repo; - - protected RepositoryPurge repoPurge; - - protected MockControl listenerControl; - - protected RepositoryListener listener; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - listenerControl = MockControl.createControl( RepositoryListener.class ); - - listener = (RepositoryListener) listenerControl.getMock(); - } - - @Override - protected void tearDown() - throws Exception - { - super.tearDown(); - config = null; - repo = null; - } - - public ManagedRepositoryConfiguration getRepoConfiguration( String repoId, String repoName ) - { - config = new ManagedRepositoryConfiguration(); - config.setId( repoId ); - config.setName( repoName ); - config.setDaysOlder( TEST_DAYS_OLDER ); - config.setLocation( getTestFile( "target/test-" + getName() + "/" + repoId ).getAbsolutePath() ); - config.setReleases( true ); - config.setSnapshots( true ); - config.setDeleteReleasedSnapshots( true ); - config.setRetentionCount( TEST_RETENTION_COUNT ); - - return config; - } - - public ManagedRepositoryContent getRepository() - throws Exception - { - if ( repo == null ) - { - repo = (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class, "default" ); - repo.setRepository( getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ) ); - } - - return repo; - } - - protected void assertDeleted( String path ) - { - assertFalse( "File should have been deleted: " + path, new File( path ).exists() ); - } - - protected void assertExists( String path ) - { - assertTrue( "File should exist: " + path, new File( path ).exists() ); - } - - protected File getTestRepoRoot() - { - return getTestFile( "target/test-" + getName() + "/" + TEST_REPO_ID ); - } - - protected String prepareTestRepos() - throws IOException - { - File testDir = getTestRepoRoot(); - FileUtils.deleteDirectory( testDir ); - FileUtils.copyDirectory( getTestFile( "target/test-classes/" + TEST_REPO_ID ), testDir ); - - File releasesTestDir = getTestFile( "target/test-" + getName() + "/" + RELEASES_TEST_REPO_ID ); - FileUtils.deleteDirectory( releasesTestDir ); - FileUtils.copyDirectory( getTestFile( "target/test-classes/" + RELEASES_TEST_REPO_ID ), releasesTestDir ); - - return testDir.getAbsolutePath(); - } - - protected ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String type ) - { - return new ArchivaArtifact( groupId, artifactId, version, null, type ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java deleted file mode 100644 index 50956d265..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java +++ /dev/null @@ -1,223 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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.io.File; -import java.util.Collections; - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.repository.RepositoryContentFactory; -import org.apache.maven.archiva.repository.events.RepositoryListener; -import org.apache.maven.archiva.repository.metadata.MetadataTools; -import org.custommonkey.xmlunit.XMLAssert; -import org.easymock.MockControl; - - -/** - * @author Maria Odea Ching - */ -public class CleanupReleasedSnapshotsRepositoryPurgeTest - extends AbstractRepositoryPurgeTest -{ - private ArchivaConfiguration archivaConfiguration; - - private MockControl listenerControl; - - public static final String PATH_TO_RELEASED_SNAPSHOT_IN_DIFF_REPO = - "org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar"; - - public static final String PATH_TO_HIGHER_SNAPSHOT_EXISTS_IN_SAME_REPO = "org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar"; - - public static final String PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO = "org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar"; - - private RepositoryListener listener; - - protected void setUp() - throws Exception - { - super.setUp(); - - MetadataTools metadataTools = (MetadataTools) lookup( MetadataTools.class ); - RepositoryContentFactory factory = (RepositoryContentFactory) lookup( RepositoryContentFactory.class, "cleanup-released-snapshots"); - - archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class, "cleanup-released-snapshots" ); - - listenerControl = MockControl.createControl( RepositoryListener.class ); - - listener = (RepositoryListener) listenerControl.getMock(); - repoPurge = - new CleanupReleasedSnapshotsRepositoryPurge( getRepository(), metadataTools, archivaConfiguration, factory, - Collections.singletonList( listener ) ); - } - - public void testReleasedSnapshotsExistsInSameRepo() - throws Exception - { - Configuration config = archivaConfiguration.getConfiguration(); - config.removeManagedRepository( config.findManagedRepositoryById( TEST_REPO_ID ) ); - config.addManagedRepository( getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ) ); - - String repoRoot = prepareTestRepos(); - - // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-plugin-plugin", - "2.3-SNAPSHOT", "maven-plugin" ) ); - listenerControl.replay(); - - repoPurge.process( CleanupReleasedSnapshotsRepositoryPurgeTest.PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO ); - - listenerControl.verify(); - - String projectRoot = repoRoot + "/org/apache/maven/plugins/maven-plugin-plugin"; - - // check if the snapshot was removed - assertDeleted( projectRoot + "/2.3-SNAPSHOT" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.md5" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.sha1" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.md5" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.sha1" ); - - // check if the released version was not removed - assertExists( projectRoot + "/2.3" ); - assertExists( projectRoot + "/2.3/maven-plugin-plugin-2.3-sources.jar" ); - assertExists( projectRoot + "/2.3/maven-plugin-plugin-2.3-sources.jar.md5" ); - assertExists( projectRoot + "/2.3/maven-plugin-plugin-2.3-sources.jar.sha1" ); - assertExists( projectRoot + "/2.3/maven-plugin-plugin-2.3.jar" ); - assertExists( projectRoot + "/2.3/maven-plugin-plugin-2.3.jar.md5" ); - assertExists( projectRoot + "/2.3/maven-plugin-plugin-2.3.jar.sha1" ); - assertExists( projectRoot + "/2.3/maven-plugin-plugin-2.3.pom" ); - assertExists( projectRoot + "/2.3/maven-plugin-plugin-2.3.pom.md5" ); - assertExists( projectRoot + "/2.3/maven-plugin-plugin-2.3.pom.sha1" ); - - // check if metadata file was updated - File artifactMetadataFile = new File( projectRoot + "/maven-metadata.xml" ); - - String metadataXml = FileUtils.readFileToString( artifactMetadataFile, null ); - - String expectedVersions = "2.2" + - "2.3"; - - XMLAssert.assertXpathEvaluatesTo( "2.3", "//metadata/versioning/release", metadataXml ); - XMLAssert.assertXpathEvaluatesTo( "2.3", "//metadata/versioning/latest", metadataXml ); - XMLAssert.assertXpathsEqual( "//expected/versions/version", expectedVersions, - "//metadata/versioning/versions/version", metadataXml ); - XMLAssert.assertXpathEvaluatesTo( "20070315032817", "//metadata/versioning/lastUpdated", metadataXml ); - } - - public void testReleasedSnapshotsExistsInDifferentRepo() - throws Exception - { - Configuration config = archivaConfiguration.getConfiguration(); - config.removeManagedRepository( config.findManagedRepositoryById( TEST_REPO_ID ) ); - config.addManagedRepository( getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ) ); - config.addManagedRepository( getRepoConfiguration( RELEASES_TEST_REPO_ID, RELEASES_TEST_REPO_NAME ) ); - - String repoRoot = prepareTestRepos(); - - // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.archiva", - "released-artifact-in-diff-repo", "1.0-SNAPSHOT", - "jar" ) ); - listenerControl.replay(); - - repoPurge.process( PATH_TO_RELEASED_SNAPSHOT_IN_DIFF_REPO ); - - listenerControl.verify(); - - String projectRoot = repoRoot + "/org/apache/archiva/released-artifact-in-diff-repo"; - - // check if the snapshot was removed - assertDeleted( projectRoot + "/1.0-SNAPSHOT" ); - assertDeleted( projectRoot + "/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar" ); - assertDeleted( projectRoot + "/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar.md5" ); - assertDeleted( projectRoot + "/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar.sha1" ); - assertDeleted( projectRoot + "/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom" ); - assertDeleted( projectRoot + "/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom.md5" ); - assertDeleted( projectRoot + "/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom.sha1" ); - - String releasesProjectRoot = - getTestFile( "target/test-" + getName() + "/releases-test-repo-one" ).getAbsolutePath() + - "/org/apache/archiva/released-artifact-in-diff-repo"; - - // check if the released version was not removed - assertExists( releasesProjectRoot + "/1.0" ); - assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.jar" ); - assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.jar.md5" ); - assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.jar.sha1" ); - assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.pom" ); - assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.pom.md5" ); - assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.pom.sha1" ); - } - - public void testHigherSnapshotExistsInSameRepo() - throws Exception - { - Configuration config = archivaConfiguration.getConfiguration(); - config.removeManagedRepository( config.findManagedRepositoryById( TEST_REPO_ID ) ); - config.addManagedRepository( getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ) ); - - String repoRoot = prepareTestRepos(); - - // test listeners for the correct artifacts - no deletions - listenerControl.replay(); - - repoPurge.process( CleanupReleasedSnapshotsRepositoryPurgeTest.PATH_TO_HIGHER_SNAPSHOT_EXISTS_IN_SAME_REPO ); - - listenerControl.verify(); - - String projectRoot = repoRoot + "/org/apache/maven/plugins/maven-source-plugin"; - - // check if the snapshot was not removed - assertExists( projectRoot + "/2.0.3-SNAPSHOT" ); - assertExists( projectRoot + "/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar" ); - assertExists( projectRoot + "/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar.md5" ); - assertExists( projectRoot + "/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar.sha1" ); - assertExists( projectRoot + "/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom" ); - assertExists( projectRoot + "/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom.md5" ); - assertExists( projectRoot + "/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom.sha1" ); - - // check if the released version was not removed - assertExists( projectRoot + "/2.0.4-SNAPSHOT" ); - assertExists( projectRoot + "/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar" ); - assertExists( projectRoot + "/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar.md5" ); - assertExists( projectRoot + "/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar.sha1" ); - assertExists( projectRoot + "/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom" ); - assertExists( projectRoot + "/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom.md5" ); - assertExists( projectRoot + "/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom.sha1" ); - - // check if metadata file was not updated (because nothing was removed) - File artifactMetadataFile = new File( projectRoot + "/maven-metadata.xml" ); - - String metadataXml = FileUtils.readFileToString( artifactMetadataFile, null ); - - String expectedVersions = "2.0.3-SNAPSHOT" + - "2.0.4-SNAPSHOT"; - - XMLAssert.assertXpathEvaluatesTo( "2.0.4-SNAPSHOT", "//metadata/versioning/latest", metadataXml ); - XMLAssert.assertXpathsEqual( "//expected/versions/version", expectedVersions, - "//metadata/versioning/versions/version", metadataXml ); - XMLAssert.assertXpathEvaluatesTo( "20070427033345", "//metadata/versioning/lastUpdated", metadataXml ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java deleted file mode 100644 index 48f630e25..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java +++ /dev/null @@ -1,262 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collections; -import java.util.List; - -import org.apache.commons.lang.time.DateUtils; - -/** - * @author Maria Odea Ching - */ -public class DaysOldRepositoryPurgeTest - extends AbstractRepositoryPurgeTest -{ - private static final String[] extensions = - new String[] { "-5.jar", "-5.pom", "-6.jar", "-6.pom", "-7.jar", "-7.pom" }; - - private String year; - - private String mon; - - private String day; - - private String hr; - - private String min; - - private String sec; - - private void setLastModified( String dirPath, long lastModified ) - { - File dir = new File( dirPath ); - File[] contents = dir.listFiles(); - for ( int i = 0; i < contents.length; i++ ) - { - contents[i].setLastModified( lastModified ); - } - } - - public void testByLastModified() - throws Exception - { - repoPurge = - new DaysOldRepositoryPurge( getRepository(), - getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getDaysOlder(), - getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getRetentionCount(), - Collections.singletonList( listener ) ); - - String repoRoot = prepareTestRepos(); - - String projectRoot = repoRoot + "/org/apache/maven/plugins/maven-install-plugin"; - - setLastModified( projectRoot + "/2.2-SNAPSHOT/", 1179382029 ); - - // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-install-plugin", - "2.2-SNAPSHOT", "maven-plugin" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-install-plugin", - "2.2-SNAPSHOT", "pom" ) ); - listenerControl.replay(); - - repoPurge.process( PATH_TO_BY_DAYS_OLD_ARTIFACT ); - - listenerControl.verify(); - - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar" ); - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.md5" ); - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.sha1" ); - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom" ); - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.md5" ); - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.sha1" ); - - // shouldn't be deleted because even if older than 30 days (because retention count = 2) - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.md5" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.sha1" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.md5" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.sha1" ); - - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.md5" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.sha1" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.md5" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.sha1" ); - } - - public void testOrderOfDeletion() - throws Exception - { - repoPurge = - new DaysOldRepositoryPurge( getRepository(), getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getDaysOlder(), - getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getRetentionCount(), - Collections.singletonList( listener ) ); - - String repoRoot = prepareTestRepos(); - - String projectRoot = repoRoot + "/org/apache/maven/plugins/maven-assembly-plugin"; - - setLastModified( projectRoot + "/1.1.2-SNAPSHOT/", 1179382029 ); - - // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-assembly-plugin", - "1.1.2-20070427.065136-1", "maven-plugin" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-assembly-plugin", - "1.1.2-20070427.065136-1", "pom" ) ); - listenerControl.replay(); - - repoPurge.process( PATH_TO_TEST_ORDER_OF_DELETION ); - - listenerControl.verify(); - - assertDeleted( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar" ); - assertDeleted( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.sha1" ); - assertDeleted( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.md5" ); - assertDeleted( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom" ); - assertDeleted( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom.sha1" ); - assertDeleted( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom.md5" ); - - // the following should not have been deleted - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar" ); - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar.sha1" ); - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar.md5" ); - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom" ); - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom.sha1" ); - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom.md5" ); - - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar" ); - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar.sha1" ); - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar.md5" ); - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom" ); - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom.sha1" ); - assertExists( projectRoot + "/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom.md5" ); - } - - public void testMetadataDrivenSnapshots() - throws Exception - { - repoPurge = - new DaysOldRepositoryPurge( getRepository(), - getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getDaysOlder(), - getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getRetentionCount(), - Collections.singletonList( listener ) ); - - String repoRoot = prepareTestRepos(); - - String versionRoot = repoRoot + "/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT"; - - Calendar currentDate = Calendar.getInstance( DateUtils.UTC_TIME_ZONE ); - setLastModified( versionRoot, currentDate.getTimeInMillis() ); - - year = String.valueOf( currentDate.get( Calendar.YEAR ) ); - mon = String.valueOf( currentDate.get( Calendar.MONTH ) + 1 ); - day = String.valueOf( currentDate.get( Calendar.DATE ) ); - hr = String.valueOf( currentDate.get( Calendar.HOUR ) ); - min = String.valueOf( currentDate.get( Calendar.MINUTE ) ); - sec = String.valueOf( currentDate.get( Calendar.SECOND ) ); - - if ( mon.length() == 1 ) - { - mon = "0" + mon; - } - - if ( day.length() == 1 ) - { - day = "0" + day; - } - - if ( hr.length() == 1 ) - { - hr = "0" + hr; - } - - if ( min.length() == 1 ) - { - min = "0" + min; - } - - if ( sec.length() == 1 ) - { - sec = "0" + sec; - } - - createFiles( versionRoot ); - - List versions = new ArrayList(); - versions.add( "1.4.3-20070113.163208-4" ); - versions.add( "1.4.3-" + year + mon + day + "." + hr + min + sec + "-5" ); - versions.add( "1.4.3-" + year + mon + day + "." + hr + min + sec + "-6" ); - versions.add( "1.4.3-" + year + mon + day + "." + hr + min + sec + "-7" ); - versions.add( "1.4.3-SNAPSHOT" ); - - // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.codehaus.plexus", "plexus-utils", - "1.4.3-20070113.163208-4", "jar" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.codehaus.plexus", "plexus-utils", - "1.4.3-20070113.163208-4", "pom" ) ); - listenerControl.replay(); - - repoPurge.process( PATH_TO_BY_DAYS_OLD_METADATA_DRIVEN_ARTIFACT ); - - listenerControl.verify(); - - // this should be deleted since the filename version (timestamp) is older than - // 100 days even if the last modified date was <100 days ago - assertDeleted( versionRoot + "/plexus-utils-1.4.3-20070113.163208-4.jar" ); - assertDeleted( versionRoot + "/plexus-utils-1.4.3-20070113.163208-4.jar.sha1" ); - assertDeleted( versionRoot + "/plexus-utils-1.4.3-20070113.163208-4.pom" ); - assertDeleted( versionRoot + "/plexus-utils-1.4.3-20070113.163208-4.pom.sha1" ); - - // this should not be deleted because last modified date is <100 days ago - assertExists( versionRoot + "/plexus-utils-1.4.3-SNAPSHOT.jar" ); - assertExists( versionRoot + "/plexus-utils-1.4.3-SNAPSHOT.pom" ); - - for ( int i = 0; i < extensions.length; i++ ) - { - assertExists( versionRoot + "/plexus-utils-1.4.3-" + year + mon + day + "." + hr + min + sec + - extensions[i] ); - } - } - - private void createFiles( String versionRoot ) - throws IOException - { - for ( int i = 0; i < extensions.length; i++ ) - { - File file = - new File( versionRoot, "/plexus-utils-1.4.3-" + year + mon + day + "." + hr + min + sec + extensions[i] ); - file.createNewFile(); - } - } - - protected void tearDown() - throws Exception - { - super.tearDown(); - repoPurge = null; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java deleted file mode 100644 index f7e1c5a15..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java +++ /dev/null @@ -1,282 +0,0 @@ -package org.apache.maven.archiva.consumers.core.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.io.File; - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.common.utils.BaseFile; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -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.custommonkey.xmlunit.XMLAssert; - -/** - * @author Maria Odea Ching - */ -public class RepositoryPurgeConsumerTest - extends AbstractRepositoryPurgeTest -{ - public void testConsumption() - throws Exception - { - assertNotConsumed( "org/apache/maven/plugins/maven-plugin-plugin/2.4.1/maven-metadata.xml" ); - } - - public void testConsumptionOfOtherMetadata() - throws Exception - { - assertNotConsumed( "org/apache/maven/plugins/maven-plugin-plugin/2.4.1/maven-metadata-central.xml" ); - } - - private void assertNotConsumed( String path ) - throws Exception - { - ArchivaConfiguration archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.ROLE ); - FileType fileType = - (FileType) archivaConfiguration.getConfiguration().getRepositoryScanning().getFileTypes().get( 0 ); - assertEquals( FileTypes.ARTIFACTS, fileType.getId() ); - fileType.addPattern( "**/*.xml" ); - - // trigger reload - FileTypes fileTypes = (FileTypes) lookup( FileTypes.class ); - fileTypes.afterConfigurationChange( null, "repositoryScanning.fileTypes", null ); - - KnownRepositoryContentConsumer repoPurgeConsumer = - (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class, "repository-purge" ); - - File repoLocation = getTestFile( "target/test-" + getName() + "/test-repo" ); - - File localFile = - new File( repoLocation, path ); - - ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate(); - BaseFile baseFile = new BaseFile( repoLocation, localFile ); - predicate.setBasefile( baseFile ); - - assertFalse( predicate.evaluate( repoPurgeConsumer ) ); - } - - private void setLastModified( String path ) - { - File dir = new File( path ); - File[] contents = dir.listFiles(); - for ( int i = 0; i < contents.length; i++ ) - { - contents[i].setLastModified( 1179382029 ); - } - } - - public void testConsumerByRetentionCount() - throws Exception - { - KnownRepositoryContentConsumer repoPurgeConsumer = - (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class, - "repo-purge-consumer-by-retention-count" ); - - ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ); - repoConfiguration.setDaysOlder( 0 ); // force days older off to allow retention count purge to execute. - repoConfiguration.setRetentionCount( TEST_RETENTION_COUNT ); - addRepoToConfiguration( "retention-count", repoConfiguration ); - - repoPurgeConsumer.beginScan( repoConfiguration, null ); - - String repoRoot = prepareTestRepos(); - - repoPurgeConsumer.processFile( PATH_TO_BY_RETENTION_COUNT_ARTIFACT ); - - String versionRoot = repoRoot + "/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT"; - - // assert if removed from repo - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.md5" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.sha1" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.md5" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.sha1" ); - - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.md5" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.sha1" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.md5" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.sha1" ); - - // assert if not removed from repo - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.md5" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.sha1" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.md5" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.sha1" ); - - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.md5" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.sha1" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.md5" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.sha1" ); - } - - private void addRepoToConfiguration( String configHint, ManagedRepositoryConfiguration repoConfiguration ) - throws Exception - { - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class, configHint ); - Configuration configuration = archivaConfiguration.getConfiguration(); - configuration.removeManagedRepository( configuration.findManagedRepositoryById( repoConfiguration.getId() ) ); - configuration.addManagedRepository( repoConfiguration ); - } - - public void testConsumerByDaysOld() - throws Exception - { - KnownRepositoryContentConsumer repoPurgeConsumer = - (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class, - "repo-purge-consumer-by-days-old" ); - - ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ); - repoConfiguration.setDaysOlder( TEST_DAYS_OLDER ); - addRepoToConfiguration( "days-old", repoConfiguration ); - - repoPurgeConsumer.beginScan( repoConfiguration, null ); - - String repoRoot = prepareTestRepos(); - String projectRoot = repoRoot + "/org/apache/maven/plugins/maven-install-plugin"; - - setLastModified( projectRoot + "/2.2-SNAPSHOT" ); - - repoPurgeConsumer.processFile( PATH_TO_BY_DAYS_OLD_ARTIFACT ); - - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar" ); - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.md5" ); - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.sha1" ); - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom" ); - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.md5" ); - assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.sha1" ); - - // shouldn't be deleted because even if older than 30 days (because retention count = 2) - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.md5" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.sha1" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.md5" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.sha1" ); - - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.md5" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.sha1" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.md5" ); - assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.sha1" ); - } - - /** - * Test the snapshot clean consumer on a repository set to NOT clean/delete snapshots based on released versions. - * - * @throws Exception - */ - public void testReleasedSnapshotsWereNotCleaned() - throws Exception - { - KnownRepositoryContentConsumer repoPurgeConsumer = - (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class, - "repo-purge-consumer-by-retention-count" ); - - ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ); - repoConfiguration.setDeleteReleasedSnapshots( false ); // Set to NOT delete released snapshots. - addRepoToConfiguration( "retention-count", repoConfiguration ); - - repoPurgeConsumer.beginScan( repoConfiguration, null ); - - String repoRoot = prepareTestRepos(); - - repoPurgeConsumer.processFile( CleanupReleasedSnapshotsRepositoryPurgeTest.PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO ); - - // check if the snapshot wasn't removed - String projectRoot = repoRoot + "/org/apache/maven/plugins/maven-plugin-plugin"; - - assertExists( projectRoot + "/2.3-SNAPSHOT" ); - assertExists( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar" ); - assertExists( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.md5" ); - assertExists( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.sha1" ); - assertExists( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom" ); - assertExists( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.md5" ); - assertExists( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.sha1" ); - - // check if metadata file wasn't updated - File artifactMetadataFile = new File( projectRoot + "/maven-metadata.xml" ); - - String metadataXml = FileUtils.readFileToString( artifactMetadataFile, null ); - - String expectedVersions = "2.3-SNAPSHOT"; - - XMLAssert.assertXpathEvaluatesTo( "2.3-SNAPSHOT", "//metadata/versioning/latest", metadataXml ); - XMLAssert.assertXpathsEqual( "//expected/versions/version", expectedVersions, - "//metadata/versioning/versions/version", metadataXml ); - XMLAssert.assertXpathEvaluatesTo( "20070315032817", "//metadata/versioning/lastUpdated", metadataXml ); - } - - public void testReleasedSnapshotsWereCleaned() - throws Exception - { - KnownRepositoryContentConsumer repoPurgeConsumer = - (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class, - "repo-purge-consumer-by-days-old" ); - - ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ); - repoConfiguration.setDeleteReleasedSnapshots( true ); - addRepoToConfiguration( "days-old", repoConfiguration ); - - repoPurgeConsumer.beginScan( repoConfiguration, null ); - - String repoRoot = prepareTestRepos(); - - repoPurgeConsumer.processFile( CleanupReleasedSnapshotsRepositoryPurgeTest.PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO ); - - String projectRoot = repoRoot + "/org/apache/maven/plugins/maven-plugin-plugin"; - - // check if the snapshot was removed - assertDeleted( projectRoot + "/2.3-SNAPSHOT" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.md5" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.sha1" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.md5" ); - assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.sha1" ); - - // check if metadata file was updated - File artifactMetadataFile = new File( projectRoot + "/maven-metadata.xml" ); - - String metadataXml = FileUtils.readFileToString( artifactMetadataFile, null ); - - String expectedVersions = - "2.2" + "2.3"; - - XMLAssert.assertXpathEvaluatesTo( "2.3", "//metadata/versioning/latest", metadataXml ); - XMLAssert.assertXpathsEqual( "//expected/versions/version", expectedVersions, - "//metadata/versioning/versions/version", metadataXml ); - XMLAssert.assertXpathEvaluatesTo( "20070315032817", "//metadata/versioning/lastUpdated", metadataXml ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java deleted file mode 100644 index e38f712d8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java +++ /dev/null @@ -1,197 +0,0 @@ -package org.apache.maven.archiva.consumers.core.repository; - -import java.util.Collections; - -/* - * 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. - */ - -/** - * Test RetentionsCountRepositoryPurgeTest - * - * @author Maria Odea Ching - */ -public class RetentionCountRepositoryPurgeTest - extends AbstractRepositoryPurgeTest -{ - - protected void setUp() - throws Exception - { - super.setUp(); - - repoPurge = - new RetentionCountRepositoryPurge( - getRepository(), - getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getRetentionCount(), - Collections.singletonList( listener ) ); - } - - /** - * Test if the artifact to be processed was a jar. - * - * @throws Exception - */ - public void testIfAJarWasFound() - throws Exception - { - String repoRoot = prepareTestRepos(); - - // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.jruby.plugins", "jruby-rake-plugin", - "1.0RC1-20070504.153317-1", "jar" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.jruby.plugins", "jruby-rake-plugin", - "1.0RC1-20070504.153317-1", "pom" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.jruby.plugins", "jruby-rake-plugin", - "1.0RC1-20070504.160758-2", "jar" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.jruby.plugins", "jruby-rake-plugin", - "1.0RC1-20070504.160758-2", "pom" ) ); - listenerControl.replay(); - - repoPurge.process( PATH_TO_BY_RETENTION_COUNT_ARTIFACT ); - - listenerControl.verify(); - - String versionRoot = repoRoot + "/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT"; - - // assert if removed from repo - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.md5" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.sha1" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.md5" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.sha1" ); - - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.md5" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.sha1" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.md5" ); - assertDeleted( versionRoot + "/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.sha1" ); - - // assert if not removed from repo - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.md5" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.sha1" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.md5" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.sha1" ); - - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.md5" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.sha1" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.md5" ); - assertExists( versionRoot + "/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.sha1" ); - } - - /** - * Test if the artifact to be processed is a pom - * - * @throws Exception - */ - public void testIfAPomWasFound() - throws Exception - { - String repoRoot = prepareTestRepos(); - - // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.codehaus.castor", "castor-anttasks", - "1.1.2-20070427.065136-1", "jar" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.codehaus.castor", "castor-anttasks", - "1.1.2-20070427.065136-1", "pom" ) ); - listenerControl.replay(); - - repoPurge.process( PATH_TO_BY_RETENTION_COUNT_POM ); - - listenerControl.verify(); - - String versionRoot = repoRoot + "/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT"; - - // assert if removed from repo - assertDeleted( versionRoot + "/castor-anttasks-1.1.2-20070427.065136-1.jar" ); - assertDeleted( versionRoot + "/castor-anttasks-1.1.2-20070427.065136-1.jar.md5" ); - assertDeleted( versionRoot + "/castor-anttasks-1.1.2-20070427.065136-1.jar.sha1" ); - assertDeleted( versionRoot + "/castor-anttasks-1.1.2-20070427.065136-1.pom" ); - assertDeleted( versionRoot + "/castor-anttasks-1.1.2-20070427.065136-1.pom.md5" ); - assertDeleted( versionRoot + "/castor-anttasks-1.1.2-20070427.065136-1.pom.sha1" ); - - // assert if not removed from repo - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070615.105019-3.pom" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070615.105019-3.pom.md5" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070615.105019-3.pom.sha1" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070615.105019-3.jar" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070615.105019-3.jar.md5" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070615.105019-3.jar.sha1" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070615.105019-3-sources.jar" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.md5" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.sha1" ); - - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070506.163513-2.pom" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070506.163513-2.pom.md5" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070506.163513-2.pom.sha1" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070506.163513-2.jar" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070506.163513-2.jar.md5" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070506.163513-2.jar.sha1" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070506.163513-2-sources.jar" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.md5" ); - assertExists( versionRoot + "/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.sha1" ); - } - - public void testOrderOfDeletion() - throws Exception - { - String repoRoot = prepareTestRepos(); - - // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-assembly-plugin", - "1.1.2-20070427.065136-1", "maven-plugin" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-assembly-plugin", - "1.1.2-20070427.065136-1", "pom" ) ); - listenerControl.replay(); - - repoPurge.process( PATH_TO_TEST_ORDER_OF_DELETION ); - - listenerControl.verify(); - - String versionRoot = repoRoot + - "/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT"; - - assertDeleted( versionRoot + "/maven-assembly-plugin-1.1.2-20070427.065136-1.jar" ); - assertDeleted( versionRoot + "/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.sha1" ); - assertDeleted( versionRoot + "/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.md5" ); - assertDeleted( versionRoot + "/maven-assembly-plugin-1.1.2-20070427.065136-1.pom" ); - assertDeleted( versionRoot + "/maven-assembly-plugin-1.1.2-20070427.065136-1.pom.sha1" ); - assertDeleted( versionRoot + "/maven-assembly-plugin-1.1.2-20070427.065136-1.pom.md5" ); - - // the following should not have been deleted - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070506.163513-2.jar" ); - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070506.163513-2.jar.sha1" ); - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070506.163513-2.jar.md5" ); - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070506.163513-2.pom" ); - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070506.163513-2.pom.sha1" ); - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070506.163513-2.pom.md5" ); - - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070615.105019-3.jar" ); - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070615.105019-3.jar.sha1" ); - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070615.105019-3.jar.md5" ); - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070615.105019-3.pom" ); - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070615.105019-3.pom.sha1" ); - assertExists( versionRoot + "/maven-assembly-plugin-1.1.2-20070615.105019-3.pom.md5" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.xml deleted file mode 100644 index 49f384e42..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - org.apache.maven.archiva.database.jdo.JdoAccess - archiva - org.apache.maven.archiva.database.jdo.JdoAccess - - - org.codehaus.plexus.jdo.JdoFactory - archiva - - - - - - - org.codehaus.plexus.jdo.JdoFactory - archiva - org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory - - org.jpox.PersistenceManagerFactoryImpl - org.hsqldb.jdbcDriver - sa - - jdbc:hsqldb:mem:testdb - - - javax.jdo.PersistenceManagerFactoryClass - org.jpox.PersistenceManagerFactoryImpl - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - cleanup-released-snapshots - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - cleanup-released-snapshots - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - - org.codehaus.plexus.registry.Registry - cleanup-released-snapshots - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - org.apache.maven.archiva.repository.RepositoryContentFactory - cleanup-released-snapshots - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - cleanup-released-snapshots - archivaConfiguration - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.xml deleted file mode 100644 index 36d669d55..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - org.apache.maven.archiva.database.jdo.JdoAccess - archiva - org.apache.maven.archiva.database.jdo.JdoAccess - - - org.codehaus.plexus.jdo.JdoFactory - archiva - - - - - - - org.codehaus.plexus.jdo.JdoFactory - archiva - org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory - - org.jpox.PersistenceManagerFactoryImpl - org.hsqldb.jdbcDriver - sa - - jdbc:hsqldb:mem:testdb - - - javax.jdo.PersistenceManagerFactoryClass - org.jpox.PersistenceManagerFactoryImpl - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.xml deleted file mode 100644 index 63f9b0d4d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.xml +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer - repo-purge-consumer-by-retention-count - org.apache.maven.archiva.consumers.core.repository.RepositoryPurgeConsumer - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - retention-count - - - org.apache.maven.archiva.repository.RepositoryContentFactory - retention-count - - - org.apache.maven.archiva.repository.metadata.MetadataTools - - - org.apache.maven.archiva.configuration.FileTypes - retention-count - - - - repository-purge - Purge repository of old snapshots - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - retention-count - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - retention-count - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.apache.maven.archiva.repository.RepositoryContentFactory - retention-count - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - retention-count - archivaConfiguration - - - - - org.codehaus.plexus.registry.Registry - retention-count - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - org.apache.maven.archiva.configuration.FileTypes - retention-count - org.apache.maven.archiva.configuration.FileTypes - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - retention-count - - - - - - - - org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer - repo-purge-consumer-by-days-old - org.apache.maven.archiva.consumers.core.repository.RepositoryPurgeConsumer - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - days-old - - - org.apache.maven.archiva.repository.RepositoryContentFactory - days-old - - - org.apache.maven.archiva.repository.metadata.MetadataTools - - - org.apache.maven.archiva.configuration.FileTypes - days-old - - - - repository-purge - Purge repository of old snapshots - - - - org.apache.maven.archiva.repository.RepositoryContentFactory - days-old - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - days-old - archivaConfiguration - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - days-old - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - days-old - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - days-old - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - org.apache.maven.archiva.configuration.FileTypes - days-old - org.apache.maven.archiva.configuration.FileTypes - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - days-old - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.xml deleted file mode 100644 index 86639b525..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - org.apache.maven.archiva.database.jdo.JdoAccess - archiva - org.apache.maven.archiva.database.jdo.JdoAccess - - - org.codehaus.plexus.jdo.JdoFactory - archiva - - - - - - - org.codehaus.plexus.jdo.JdoFactory - archiva - org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory - - org.jpox.PersistenceManagerFactoryImpl - org.hsqldb.jdbcDriver - sa - - jdbc:hsqldb:mem:testdb - - - javax.jdo.PersistenceManagerFactoryClass - org.jpox.PersistenceManagerFactoryImpl - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/releases-test-repo-one/org/apache/archiva/released-artifact-in-diff-repo/1.0/released-artifact-in-diff-repo-1.0.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070427.065136-1.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070506.163513-2.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index d13b14540..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - org.apache.maven.plugins - maven-install-plugin - 2.2-SNAPSHOT - - - 20070509114036 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.2/maven-plugin-plugin-2.2.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 4beeafc41..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - org.apache.maven.plugins - maven-plugin-plugin - 2.3-SNAPSHOT - - - true - - 20070315032817 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3-sources.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3-sources.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3-sources.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3-sources.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/2.3/maven-plugin-plugin-2.3.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/maven-metadata.xml deleted file mode 100644 index 43865f33f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-plugin-plugin/maven-metadata.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - org.apache.maven.plugins - maven-plugin-plugin - 2.3-SNAPSHOT - - 2.3-SNAPSHOT - - 2.3-SNAPSHOT - - 20070315032817 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2-sources.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2-sources.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2-sources.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2-sources.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.2/maven-source-plugin-2.0.2.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 8d2da6664..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - org.apache.maven.plugins - maven-source-plugin - 2.0.3-SNAPSHOT - - - true - - 20070403120932 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 390c0c1da..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - org.apache.maven.plugins - maven-source-plugin - 2.0.4-SNAPSHOT - - - true - - 20070427033345 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/2.0.4-SNAPSHOT/maven-source-plugin-2.0.4-SNAPSHOT.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/maven-metadata.xml deleted file mode 100644 index 2e9429f60..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/apache/maven/plugins/maven-source-plugin/maven-metadata.xml +++ /dev/null @@ -1,13 +0,0 @@ - - org.apache.maven.plugins - maven-source-plugin - 2.0.3-SNAPSHOT - - 2.0.4-SNAPSHOT - - 2.0.3-SNAPSHOT - 2.0.4-SNAPSHOT - - 20070427033345 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/maven-metadata-codehaus-snapshots.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/maven-metadata-codehaus-snapshots.xml deleted file mode 100644 index 10e90ce2c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/maven-metadata-codehaus-snapshots.xml +++ /dev/null @@ -1,12 +0,0 @@ - - org.codehaus.plexus - plexus-utils - 1.4.3-SNAPSHOT - - - 20070707.122114 - 7 - - 20070707122118 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/maven-metadata-codehaus-snapshots.xml.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/maven-metadata-codehaus-snapshots.xml.sha1 deleted file mode 100644 index be15aa0f0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/maven-metadata-codehaus-snapshots.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -9bf3732f0d4f32363e3331630def1832ab991007 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-SNAPSHOT.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-SNAPSHOT.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index bc60af10a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,12 +0,0 @@ - - org.jruby.plugins - jruby-rake-plugin - 1.0RC1-SNAPSHOT - - - 20070506.090132 - 4 - - 20070506092020 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml.md5 deleted file mode 100644 index 57b0720bf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -a21a4e14a264bc7e528d4d662b282c87 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml.sha1 deleted file mode 100644 index 0562cf4cb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/maven-metadata.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -377229810ed2580399cd339d5bb622f649dd4998 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml deleted file mode 100644 index 798ee845a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-consumers - 1.2-SNAPSHOT - ../pom.xml - - - archiva-database-consumers - Archiva Consumers :: Database Consumers - jar - - - - org.apache.archiva - archiva-database - - - org.apache.archiva - archiva-artifact-reports - - - org.apache.archiva - archiva-configuration - - - org.apache.archiva - archiva-consumer-api - - - org.apache.archiva - archiva-repository-layer - - - org.codehaus.plexus - plexus-spring - test - - - org.codehaus.plexus - plexus-digest - - - hsqldb - hsqldb - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java deleted file mode 100644 index af1dd6a3c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java +++ /dev/null @@ -1,275 +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.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.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArtifactReference; -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.layout.LayoutException; -import org.codehaus.plexus.digest.Digester; -import org.codehaus.plexus.digest.DigesterException; -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; - -import java.io.File; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * ArtifactUpdateDatabaseConsumer - Take an artifact off of disk and put it into the repository. - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="update-db-artifact" - * instantiation-strategy="per-lookup" - */ -public class ArtifactUpdateDatabaseConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer, RegistryListener, Initializable -{ - private static final String TYPE_NOT_ARTIFACT = "file-not-artifact"; - - private static final String DB_ERROR = "db-error"; - - private static final String CHECKSUM_CALCULATION = "checksum-calc"; - - /** - * @plexus.configuration default-value="update-db-artifact" - */ - private String id; - - /** - * @plexus.configuration default-value="Update the Artifact in the Database" - */ - private String description; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement role-hint="sha1" - */ - private Digester digestSha1; - - /** - * @plexus.requirement role-hint="md5"; - */ - private Digester digestMd5; - - private ManagedRepositoryContent repository; - - private File repositoryDir; - - private List includes = new ArrayList(); - - private Date whenGathered; - - public String getId() - { - return this.id; - } - - public String getDescription() - { - return this.description; - } - - public boolean isPermanent() - { - return true; - } - - public List getExcludes() - { - return getDefaultArtifactExclusions(); - } - - public List getIncludes() - { - return this.includes; - } - - public void beginScan( ManagedRepositoryConfiguration repo, Date whenGathered ) - throws ConsumerException - { - try - { - this.repository = repositoryFactory.getManagedRepositoryContent( repo.getId() ); - this.repositoryDir = new File( repository.getRepoRoot() ); - this.whenGathered = whenGathered; - } - catch(RepositoryException e) - { - throw new ConsumerException( "Unable to start ArtifactUpdateDatabaseConsumer: " + e.getMessage(), e ); - } - } - - public void processFile( String path ) - throws ConsumerException - { - ArchivaArtifact artifact = getLiveArtifact( path ); - - if ( artifact == null ) - { - return; - } - - try - { - artifact.getModel().setRepositoryId( this.repository.getId() ); - - // Calculate the hashcodes. - File artifactFile = new File( this.repositoryDir, path ); - try - { - artifact.getModel().setChecksumMD5( digestMd5.calc( artifactFile ) ); - } - catch ( DigesterException e ) - { - triggerConsumerWarning( CHECKSUM_CALCULATION, - "Unable to calculate the MD5 checksum: " + e.getMessage() ); - } - - try - { - artifact.getModel().setChecksumSHA1( digestSha1.calc( artifactFile ) ); - } - catch ( DigesterException e ) - { - triggerConsumerWarning( CHECKSUM_CALCULATION, - "Unable to calculate the SHA1 checksum: " + e.getMessage() ); - } - - artifact.getModel().setLastModified( new Date( artifactFile.lastModified() ) ); - artifact.getModel().setSize( artifactFile.length() ); - artifact.getModel().setOrigin( "FileSystem" ); - artifact.getModel().setWhenProcessed( null ); - - // set this to when the artifact was first discovered in the repo - if ( artifact.getModel().getWhenGathered() == null ) - { - artifact.getModel().setWhenGathered( whenGathered ); - } - - dao.getArtifactDAO().saveArtifact( artifact ); - } - catch ( ArchivaDatabaseException e ) - { - triggerConsumerError( DB_ERROR, "Unable to save artifact to database: " + e.getMessage() ); - } - } - - /** - * Get a Live Artifact from a Path. - *

- * Will resolve the artifact details from the path, and then return a database live version - * of that artifact. Suitable for modification and saving (without the need to check for - * existance in database prior to save.) - * - * @param path the path to work from. - * @return the artifact that is suitable for database saving. - */ - public ArchivaArtifact getLiveArtifact( String path ) - { - try - { - ArtifactReference artifact = repository.toArtifactReference( path ); - - ArchivaArtifact liveArtifact = dao.getArtifactDAO().createArtifact( artifact.getGroupId(), - artifact.getArtifactId(), - artifact.getVersion(), - artifact.getClassifier(), - artifact.getType() ); - - return liveArtifact; - } - catch ( LayoutException e ) - { - triggerConsumerError( TYPE_NOT_ARTIFACT, - "Path " + path + " cannot be converted to artifact: " + e.getMessage() ); - return null; - } - } - - 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-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/BytecodeStatsToDatabaseConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/BytecodeStatsToDatabaseConsumer.java deleted file mode 100644 index be46002f9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/BytecodeStatsToDatabaseConsumer.java +++ /dev/null @@ -1,93 +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.consumers.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.List; - -/** - * BytecodeStatsToDatabaseConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer" - * role-hint="update-db-bytecode-stats" - * instantiation-strategy="per-lookup" - */ -public class BytecodeStatsToDatabaseConsumer - extends AbstractMonitoredConsumer - implements DatabaseUnprocessedArtifactConsumer -{ - /** - * @plexus.configuration default-value="update-db-bytecode-stats" - */ - private String id; - - /** - * @plexus.configuration default-value="Update database with java bytecode stats." - */ - private String description; - - public void beginScan() - { - // TODO Auto-generated method stub - - } - - public void completeScan() - { - // TODO Auto-generated method stub - - } - - public List getIncludedTypes() - { - // TODO Auto-generated method stub - return null; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - // TODO Auto-generated method stub - - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java b/archiva-security-fix/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 5f7013b9e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java +++ /dev/null @@ -1,163 +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.consumers.DatabaseCleanupConsumer; -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.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 java.util.List; -import java.io.File; - -/** - * Consumer for cleaning up the database of artifacts that are no longer existing in the repository. - * - * @author Joakim Erdfelt - * Maria Odea Ching - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.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; - - public void beginScan() - { - // TODO Auto-generated method stub - - } - - public void completeScan() - { - // TODO Auto-generated method stub - } - - public List 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 ); - - // Remove all repository problems related to this artifact - Constraint artifactConstraint = new RepositoryProblemByArtifactConstraint( artifact ); - List 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; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.java b/archiva-security-fix/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 dceb1a81d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.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.commons.lang.StringUtils; -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.DatabaseCleanupConsumer; -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.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. - * - * @author Joakim Erdfelt - * Maria Odea Ching - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.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 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-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java deleted file mode 100644 index 58e1dd9cc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java +++ /dev/null @@ -1,360 +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 java.io.File; -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.common.utils.VersionUtil; -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Keys; -import org.apache.maven.archiva.model.RepositoryProblem; -import org.apache.maven.archiva.reporting.artifact.CorruptArtifactReport; -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.content.ManagedLegacyRepositoryContent; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelFilter; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.apache.maven.archiva.repository.project.filters.EffectiveProjectModelFilter; -import org.apache.maven.archiva.repository.project.readers.ProjectModel300Reader; -import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; -import org.codehaus.plexus.cache.Cache; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ProjectModelToDatabaseConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer" - * role-hint="update-db-project" - * instantiation-strategy="per-lookup" - */ -public class ProjectModelToDatabaseConsumer - extends AbstractMonitoredConsumer - implements DatabaseUnprocessedArtifactConsumer -{ - private Logger log = LoggerFactory.getLogger( ProjectModelToDatabaseConsumer.class ); - - /** - * @plexus.configuration default-value="update-db-project" - */ - private String id; - - /** - * @plexus.configuration default-value="Update database with project model information." - */ - private String description; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement role-hint="expression" - */ - private ProjectModelFilter expressionModelFilter; - - /** - * @plexus.requirement role="org.apache.maven.archiva.repository.project.ProjectModelFilter" - * role-hint="effective" - */ - private EffectiveProjectModelFilter effectiveModelFilter; - - private List includes; - - /** - * @plexus.requirement role-hint="effective-project-cache" - */ - private Cache effectiveProjectCache; - - public ProjectModelToDatabaseConsumer() - { - includes = new ArrayList(); - includes.add( "pom" ); - } - - public void beginScan() - { - /* nothing to do here */ - } - - public void completeScan() - { - /* nothing to do here */ - } - - public List getIncludedTypes() - { - return includes; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - if ( !StringUtils.equals( "pom", artifact.getType() ) ) - { - // Not a pom. Skip it. - return; - } - - ArchivaProjectModel model = null; - - // remove old project model if it already exists in the database - if ( ( model = - getProjectModelFromDatabase( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion() ) ) != null ) - { - removeOldProjectModel( model ); - model = null; - } - - ManagedRepositoryContent repo = getRepository( artifact ); - File artifactFile = repo.toFile( artifact ); - - ProjectModelReader reader; - if ( repo instanceof ManagedLegacyRepositoryContent ) - { - reader = new ProjectModel300Reader(); - } - else - { - reader = new ProjectModel400Reader(); - } - - try - { - model = reader.read( artifactFile ); - - model.setOrigin( "filesystem" ); - - // The version should be updated to the artifact/filename version if it is a unique snapshot - if ( VersionUtil.isUniqueSnapshot( artifact.getVersion() ) ) - { - model.setVersion( artifact.getVersion() ); - } - - // Filter the model - model = expressionModelFilter.filter( model ); - - // Resolve the project model - model = effectiveModelFilter.filter( model ); - - if ( isValidModel( model, repo, artifact ) ) - { - log.debug( "Adding project model to database - " + Keys.toKey( model ) ); - dao.getProjectModelDAO().saveProjectModel( model ); - } - else - { - log.warn( "Invalid or corrupt pom. Project model not added to database - " + Keys.toKey( model ) ); - } - - } - catch ( ProjectModelException e ) - { - log.warn( "Unable to read project model " + artifactFile + " : " + e.getMessage(), e ); - - addProblem( artifact, "Unable to read project model " + artifactFile + " : " + e.getMessage() ); - } - catch ( ArchivaDatabaseException e ) - { - log.warn( "Unable to save project model " + artifactFile + " to the database : " + e.getMessage(), e ); - } - catch ( Throwable t ) - { - // Catch the other errors in the process to allow the rest of the process to complete. - log.error( "Unable to process model " + artifactFile + " due to : " + t.getClass().getName() + " : " + - t.getMessage(), t ); - } - } - - private ArchivaProjectModel getProjectModelFromDatabase( String groupId, String artifactId, String version ) - { - try - { - ArchivaProjectModel model = dao.getProjectModelDAO().getProjectModel( groupId, artifactId, version ); - return model; - } - catch ( ObjectNotFoundException e ) - { - return null; - } - catch ( ArchivaDatabaseException e ) - { - return null; - } - } - - private ManagedRepositoryContent getRepository( ArchivaArtifact artifact ) - throws ConsumerException - { - String repoId = artifact.getModel().getRepositoryId(); - try - { - return repositoryFactory.getManagedRepositoryContent( repoId ); - } - catch ( RepositoryException e ) - { - throw new ConsumerException( "Unable to process project model: " + e.getMessage(), e ); - } - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - // Tells the configuration that this consumer cannot be disabled. - return true; - } - - private boolean isValidModel( ArchivaProjectModel model, ManagedRepositoryContent repo, ArchivaArtifact artifact ) - throws ConsumerException - { - File artifactFile = repo.toFile( artifact ); - - if ( !artifact.getArtifactId().equalsIgnoreCase( model.getArtifactId() ) ) - { - StringBuffer emsg = new StringBuffer(); - emsg.append( "File " ).append( artifactFile.getName() ); - emsg.append( " has an invalid project model [" ); - appendModel( emsg, model ); - emsg.append( "]: The model artifactId [" ).append( model.getArtifactId() ); - emsg.append( "] does not match the artifactId portion of the filename: " ).append( artifact.getArtifactId() ); - - log.warn( emsg.toString() ); - addProblem( artifact, emsg.toString() ); - - return false; - } - - if ( !artifact.getVersion().equalsIgnoreCase( model.getVersion() ) && - !VersionUtil.getBaseVersion( artifact.getVersion() ).equalsIgnoreCase( model.getVersion() ) ) - { - StringBuffer emsg = new StringBuffer(); - emsg.append( "File " ).append( artifactFile.getName() ); - emsg.append( " has an invalid project model [" ); - appendModel( emsg, model ); - emsg.append( "]; The model version [" ).append( model.getVersion() ); - emsg.append( "] does not match the version portion of the filename: " ).append( artifact.getVersion() ); - - log.warn( emsg.toString() ); - addProblem( artifact, emsg.toString() ); - - return false; - } - - return true; - } - - private void appendModel( StringBuffer buf, ArchivaProjectModel model ) - { - buf.append( "groupId:" ).append( model.getGroupId() ); - buf.append( "|artifactId:" ).append( model.getArtifactId() ); - buf.append( "|version:" ).append( model.getVersion() ); - buf.append( "|packaging:" ).append( model.getPackaging() ); - } - - private void addProblem( ArchivaArtifact artifact, String msg ) - throws ConsumerException - { - ManagedRepositoryContent repo = getRepository( artifact ); - - RepositoryProblem problem = new RepositoryProblem(); - problem.setRepositoryId( artifact.getModel().getRepositoryId() ); - problem.setPath( repo.toPath( artifact ) ); - problem.setGroupId( artifact.getGroupId() ); - problem.setArtifactId( artifact.getArtifactId() ); - problem.setVersion( artifact.getVersion() ); - problem.setType( CorruptArtifactReport.PROBLEM_TYPE_CORRUPT_ARTIFACT ); - problem.setOrigin( getId() ); - problem.setMessage( msg ); - - try - { - dao.getRepositoryProblemDAO().saveRepositoryProblem( problem ); - } - catch ( ArchivaDatabaseException e ) - { - String emsg = "Unable to save problem with artifact location to DB: " + e.getMessage(); - log.warn( emsg, e ); - throw new ConsumerException( emsg, e ); - } - } - - 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(); - } - - private void removeOldProjectModel( ArchivaProjectModel model ) - { - try - { - dao.getProjectModelDAO().deleteProjectModel( model ); - } - catch ( ArchivaDatabaseException ae ) - { - log.error( "Unable to delete existing project model." ); - } - - // Force removal of project model from effective cache - String projectKey = toProjectKey( model ); - synchronized ( effectiveProjectCache ) - { - if ( effectiveProjectCache.hasKey( projectKey ) ) - { - effectiveProjectCache.remove( projectKey ); - } - } - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/VerifyMetadataAgainstDatabaseConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/VerifyMetadataAgainstDatabaseConsumer.java deleted file mode 100644 index 9b255540f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/VerifyMetadataAgainstDatabaseConsumer.java +++ /dev/null @@ -1,93 +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.consumers.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.List; - -/** - * VerifyMetadataAgainstDatabaseConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer" - * role-hint="validate-repository-metadata" - * instantiation-strategy="per-lookup" - */ -public class VerifyMetadataAgainstDatabaseConsumer - extends AbstractMonitoredConsumer - implements DatabaseUnprocessedArtifactConsumer -{ - /** - * @plexus.configuration default-value="validate-repository-metadata" - */ - private String id; - - /** - * @plexus.configuration default-value="Verify repository metadata files against database." - */ - private String description; - - public void beginScan() - { - // TODO Auto-generated method stub - - } - - public void completeScan() - { - // TODO Auto-generated method stub - - } - - public List getIncludedTypes() - { - // TODO Auto-generated method stub - return null; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - // TODO Auto-generated method stub - - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/conf/repository-manager.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/conf/repository-manager.xml deleted file mode 100644 index e44390dd9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/conf/repository-manager.xml +++ /dev/null @@ -1,203 +0,0 @@ - - - - - 1 - - - internal - Archiva Managed Internal Repository - file://${appserver.base}/repositories/internal - default - true - false - true - 0 0 * * * ? - - - snapshots - Archiva Managed Snapshot Repository - file://${appserver.base}/repositories/internal - default - false - true - true - 0 0,30 * * * ? - - - central - Central Repository - http://repo1.maven.org/maven2 - default - true - false - false - - - maven2-repository.dev.java.net - Java.net Repository for Maven 2 - https://maven2-repository.dev.java.net/nonav/repository - default - true - false - false - - - test-repo - Test Repository - file://${appserver.base}/repositories/test-repo - default - true - true - true - 0 0 * * * ? - 0 - 2 - - - - - - internal - central - - disabled - never - not-found - - - internal - maven2-repository.dev.java.net - - disabled - never - not-found - - javax/** - - - - - - - example - http - proxy.mycompany.com - 8080 - myself - mypass - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - repository-purge - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - - - true - true - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/AbstractDatabaseCleanupTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/AbstractDatabaseCleanupTest.java deleted file mode 100644 index 51f9412bc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/AbstractDatabaseCleanupTest.java +++ /dev/null @@ -1,98 +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.io.FileUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.repository.RepositoryContentFactory; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; - -/** - * @author Maria Odea Ching - */ -public abstract class AbstractDatabaseCleanupTest - extends PlexusInSpringTestCase -{ - ArchivaConfiguration archivaConfig; - - RepositoryContentFactory repositoryFactory; - - public static final String TEST_GROUP_ID = "org.apache.maven.archiva"; - - public static final String TEST_ARTIFACT_ID = "cleanup-artifact-test"; - - public static final String TEST_VERSION = "1.0"; - - public static final String TEST_REPO_ID = "test-repo"; - - public void setUp() - throws Exception - { - super.setUp(); - - // archiva configuration (need to update the repository url) - File userFile = getTestFile( "target/test/repository-manager.xml" ); - userFile.delete(); - assertFalse( userFile.exists() ); - - userFile.getParentFile().mkdirs(); - FileUtils.copyFileToDirectory( getTestFile( "src/test/conf/repository-manager.xml" ), - userFile.getParentFile() ); - - archivaConfig = (ArchivaConfiguration) lookup( ArchivaConfiguration.class, "database-cleanup" ); - - Configuration configuration = archivaConfig.getConfiguration(); - ManagedRepositoryConfiguration repo = configuration.findManagedRepositoryById( TEST_REPO_ID ); - repo.setLocation( new File( getBasedir(), "src/test/resources/test-repo" ).toString() ); - - archivaConfig.save( configuration ); - - repositoryFactory = (RepositoryContentFactory) lookup( RepositoryContentFactory.class ); - } - - protected ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String type ) - { - ArchivaArtifactModel model = new ArchivaArtifactModel(); - model.setGroupId( groupId ); - model.setArtifactId( artifactId ); - model.setVersion( version ); - model.setType( type ); - model.setRepositoryId( TEST_REPO_ID ); - - return new ArchivaArtifact( model ); - } - - protected ArchivaProjectModel createProjectModel( String groupId, String artifactId, String version ) - { - ArchivaProjectModel projectModel = new ArchivaProjectModel(); - projectModel.setGroupId( groupId ); - projectModel.setArtifactId( artifactId ); - projectModel.setVersion( version ); - - return projectModel; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java deleted file mode 100644 index 19b07ac1e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java +++ /dev/null @@ -1,79 +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.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.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; - -public class ArtifactUpdateDatabaseConsumerTest - extends PlexusInSpringTestCase -{ - private File repoLocation; - - protected KnownRepositoryContentConsumer consumer; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaConfiguration archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.ROLE ); - FileType fileType = - (FileType) archivaConfiguration.getConfiguration().getRepositoryScanning().getFileTypes().get( 0 ); - assertEquals( FileTypes.ARTIFACTS, fileType.getId() ); - fileType.addPattern( "**/*.xml" ); - - repoLocation = getTestFile( "target/test-" + getName() + "/test-repo" ); - - consumer = - (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class, "update-db-artifact" ); - } - - public void testConsumption() - { - File localFile = - new File( repoLocation, "org/apache/maven/plugins/maven-plugin-plugin/2.4.1/maven-metadata.xml" ); - - ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate(); - BaseFile baseFile = new BaseFile( repoLocation, localFile ); - predicate.setBasefile( baseFile ); - - assertFalse( predicate.evaluate( consumer ) ); - } - - public void testConsumptionOfOtherMetadata() - { - File localFile = - new File( repoLocation, "org/apache/maven/plugins/maven-plugin-plugin/2.4.1/maven-metadata-central.xml" ); - - ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate(); - BaseFile baseFile = new BaseFile( repoLocation, localFile ); - predicate.setBasefile( baseFile ); - - assertFalse( predicate.evaluate( consumer ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.java b/archiva-security-fix/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 3dda2ea61..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.java +++ /dev/null @@ -1,97 +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 - * - * @author Maria Odea Ching - */ -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-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.java b/archiva-security-fix/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 8c5846224..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.java +++ /dev/null @@ -1,115 +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 - * - * @author Maria Odea Ching - */ -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-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.xml deleted file mode 100644 index 801d957b8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - org.apache.maven.archiva.database.jdo.JdoAccess - archiva - org.apache.maven.archiva.database.jdo.JdoAccess - - - org.codehaus.plexus.jdo.JdoFactory - archiva - - - - - - - org.codehaus.plexus.jdo.JdoFactory - archiva - org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory - - org.jpox.PersistenceManagerFactoryImpl - org.hsqldb.jdbcDriver - sa - - jdbc:hsqldb:mem:testdb - - - javax.jdo.PersistenceManagerFactoryClass - org.jpox.PersistenceManagerFactoryImpl - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumerTest.xml b/archiva-security-fix/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-security-fix/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 @@ - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - database-cleanup - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - database-cleanup - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - database-cleanup - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - org.apache.maven.archiva.repository.RepositoryContentFactory - org.apache.maven.archiva.repository.RepositoryContentFactory - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - database-cleanup - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumerTest.xml b/archiva-security-fix/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-security-fix/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 @@ - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - database-cleanup - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - database-cleanup - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - database-cleanup - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - org.apache.maven.archiva.repository.RepositoryContentFactory - org.apache.maven.archiva.repository.RepositoryContentFactory - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - database-cleanup - - - - - - - org.codehaus.plexus.cache.Cache - effective-project-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - Effective Project Cache - - 600 - true - ${java.io.tmpdir}/archiva/effectiveproject - true - 1000 - LRU - effective-project-cache - false - - - 2700 - - 1800 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/org/apache/maven/archiva/do-not-cleanup-artifact-test/1.0/do-not-cleanup-artifact-test-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/org/apache/maven/archiva/do-not-cleanup-artifact-test/1.0/do-not-cleanup-artifact-test-1.0.jar deleted file mode 100644 index 4201a06cbd14d48a3302e38f88a4fe1acd81e4e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmWIWW@Zs#U|`^2u!*-Zm$yI1oB`xb0b&&fQHGR!-Mst~-Q=9q#Jti1-Nd4j%(TSh z65W#2;u8IW{9L_?+?>!5P6p;9)qmVTIJAO=;RW*xX5T(XzQYPUEbl8_?HHDncUR9# zlr&%HWnjejKEGJuRpA!nOHQFb4I<|}lQf&UdYxuho}BijbN`NXdKtPu`*Q>_vi3cxiIsv9k()I?Jy|Mo$xpuWK|&X!>CDlPSQPkx85xmj`%(-e6#0 j1mY!)AQo}nVTE`nw1R;lz?+o~q>&K_ - org.apache.maven.archiva - do-not-cleanup-artifact-test - 1.0 - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/pom.xml deleted file mode 100644 index c675a7c6a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ - - 4.0.0 - - org.apache.archiva - archiva-consumers - 1.2-SNAPSHOT - - archiva-dependency-tree-consumer - Archiva Consumers :: Dependency Tree Consumer - - - org.apache.archiva - archiva-consumer-api - - - org.codehaus.plexus - plexus-spring - test - - - dom4j - dom4j - - - org.apache.maven.shared - maven-dependency-tree - 1.1 - - - org.codehaus.plexus - plexus-container-default - - - - - org.apache.maven.wagon - wagon-http-lightweight - ${wagon.version} - runtime - - - xmlunit - xmlunit - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/main/java/org/apache/archiva/consumers/dependencytree/DependencyTreeGeneratorConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/main/java/org/apache/archiva/consumers/dependencytree/DependencyTreeGeneratorConsumer.java deleted file mode 100644 index b5aa3eb9d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/main/java/org/apache/archiva/consumers/dependencytree/DependencyTreeGeneratorConsumer.java +++ /dev/null @@ -1,336 +0,0 @@ -package org.apache.archiva.consumers.dependencytree; - -/* - * 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.FileWriter; -import java.io.IOException; -import java.lang.reflect.Field; -import java.net.MalformedURLException; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; - -import org.apache.commons.io.IOUtils; -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.artifact.Artifact; -import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.metadata.ArtifactMetadataSource; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; -import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout; -import org.apache.maven.artifact.resolver.ArtifactCollector; -import org.apache.maven.artifact.resolver.filter.ArtifactFilter; -import org.apache.maven.project.DefaultMavenProjectBuilder; -import org.apache.maven.project.MavenProject; -import org.apache.maven.project.MavenProjectBuilder; -import org.apache.maven.project.ProjectBuildingException; -import org.apache.maven.shared.dependency.tree.DependencyNode; -import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder; -import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException; -import org.apache.maven.shared.dependency.tree.filter.AncestorOrSelfDependencyNodeFilter; -import org.apache.maven.shared.dependency.tree.filter.DependencyNodeFilter; -import org.apache.maven.shared.dependency.tree.filter.StateDependencyNodeFilter; -import org.apache.maven.shared.dependency.tree.traversal.BuildingDependencyNodeVisitor; -import org.apache.maven.shared.dependency.tree.traversal.CollectingDependencyNodeVisitor; -import org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor; -import org.apache.maven.shared.dependency.tree.traversal.FilteringDependencyNodeVisitor; -import org.dom4j.Document; -import org.dom4j.DocumentHelper; -import org.dom4j.Element; -import org.dom4j.io.OutputFormat; -import org.dom4j.io.XMLWriter; - -/** - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="dependency-tree-generator" instantiation-strategy="per-lookup" - */ -public class DependencyTreeGeneratorConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer -{ - /** @plexus.configuration */ - private File generatedRepositoryLocation; - - /** @plexus.configuration */ - private File localRepository; - - /** @plexus.requirement */ - private DependencyTreeBuilder dependencyTreeBuilder; - - /** @plexus.requirement */ - private ArtifactFactory artifactFactory; - - /** @plexus.requirement role-hint="maven" */ - private ArtifactMetadataSource artifactMetadataSource; - - /** @plexus.requirement */ - private ArtifactCollector artifactCollector; - - /** @plexus.requirement */ - private MavenProjectBuilder projectBuilder; - - /** @plexus.requirement */ - private ArtifactRepositoryFactory artifactRepositoryFactory; - - private String repositoryLocation; - - private final DefaultRepositoryLayout layout = new DefaultRepositoryLayout(); - - private ArtifactRepository localArtifactRepository; - - private Field rawProjectCacheField; - - private Field processedProjectCacheField; - - private List includes = Collections.singletonList( "**/*.pom" ); - - public String getDescription() - { - return "Generate dependency tree metadata for tracking changes across algorithms"; - } - - public String getId() - { - return "dependency-tree-generator"; - } - - public boolean isPermanent() - { - return false; - } - - public void setGeneratedRepositoryLocation( File generatedRepositoryLocation ) - { - this.generatedRepositoryLocation = generatedRepositoryLocation; - } - - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - repositoryLocation = repository.getLocation(); - - if ( generatedRepositoryLocation == null ) - { - generatedRepositoryLocation = new File( repositoryLocation ); - } - - if ( localRepository == null ) - { - // This is a bit crappy, it would be better to operate entirely within - // the base repository, but would need to adjust maven-artifact - localRepository = new File( System.getProperty( "user.home" ), ".m2/repository" ); - try - { - localArtifactRepository = - artifactRepositoryFactory.createArtifactRepository( "local", - localRepository.toURL().toExternalForm(), - layout, null, null ); - } - catch ( MalformedURLException e ) - { - throw new ConsumerException( e.getMessage(), e ); - } - } - } - - public void completeScan() - { - } - - public List getExcludes() - { - return null; - } - - public List getIncludes() - { - return includes; - } - - public void processFile( String path ) - throws ConsumerException - { - MavenProject project; - try - { - project = projectBuilder.build( new File( repositoryLocation, path ), localArtifactRepository, null, false ); - - // manually flush out the cache for memory concerns and more accurate building - flushProjectCache( projectBuilder ); - } - catch ( ProjectBuildingException e ) - { - throw new ConsumerException( e.getMessage(), e ); - } - - DependencyNode rootNode; - try - { - // TODO: do this for different values of new ScopeArtifactFilter( scope ) - ArtifactFilter artifactFilter = null; - - rootNode = - dependencyTreeBuilder.buildDependencyTree( project, localArtifactRepository, artifactFactory, - artifactMetadataSource, artifactFilter, artifactCollector ); - } - catch ( DependencyTreeBuilderException e ) - { - throw new ConsumerException( e.getMessage(), e ); - } - - Document document = DocumentHelper.createDocument(); - DependencyNodeVisitor visitor = new XmlSerializingDependencyNodeVisitor( document ); - - // TODO: remove the need for this when the serializer can calculate last nodes from visitor calls only - visitor = new BuildingDependencyNodeVisitor( visitor ); - - CollectingDependencyNodeVisitor collectingVisitor = new CollectingDependencyNodeVisitor(); - DependencyNodeVisitor firstPassVisitor = - new FilteringDependencyNodeVisitor( collectingVisitor, StateDependencyNodeFilter.INCLUDED ); - rootNode.accept( firstPassVisitor ); - - DependencyNodeFilter secondPassFilter = new AncestorOrSelfDependencyNodeFilter( collectingVisitor.getNodes() ); - visitor = new FilteringDependencyNodeVisitor( visitor, secondPassFilter ); - - rootNode.accept( visitor ); - - FileWriter writer = null; - try - { - Artifact artifact = - artifactFactory.createProjectArtifact( project.getGroupId(), project.getArtifactId(), - project.getVersion() ); - - String p = layout.pathOf( artifact ); - if ( !p.equals( path ) ) - { - throw new ConsumerException( "Bad path: " + p + "; should be: " + path ); - } - - File generatedFile = new File( generatedRepositoryLocation, p + ".xml" ); - generatedFile.getParentFile().mkdirs(); - writer = new FileWriter( generatedFile ); - OutputFormat format = OutputFormat.createPrettyPrint(); - XMLWriter w = new XMLWriter( writer, format ); - w.write( document ); - } - catch ( IOException e ) - { - throw new ConsumerException( e.getMessage(), e ); - } - finally - { - IOUtils.closeQuietly( writer ); - } - } - - private void flushProjectCache( MavenProjectBuilder projectBuilder ) - { - try - { - if ( rawProjectCacheField == null ) - { - rawProjectCacheField = DefaultMavenProjectBuilder.class.getDeclaredField( "rawProjectCache" ); - rawProjectCacheField.setAccessible( true ); - } - - if ( processedProjectCacheField == null ) - { - processedProjectCacheField = - DefaultMavenProjectBuilder.class.getDeclaredField( "processedProjectCache" ); - processedProjectCacheField.setAccessible( true ); - } - - rawProjectCacheField.set( projectBuilder, new HashMap() ); - - processedProjectCacheField.set( projectBuilder, new HashMap() ); - } - catch ( Exception e ) - { - throw new RuntimeException( e ); - } - } - - private static class XmlSerializingDependencyNodeVisitor - implements DependencyNodeVisitor - { - private Element xmlNode; - - public XmlSerializingDependencyNodeVisitor( Document document ) - { - xmlNode = document.addElement( "tree" ); - } - - // DependencyNodeVisitor methods ------------------------------------------ - - /* - * @see org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor#visit(org.apache.maven.shared.dependency.tree.DependencyNode) - */ - public boolean visit( DependencyNode node ) - { - Element dependency = xmlNode.addElement( "dependency" ); - - Artifact artifact = node.getArtifact(); - dependency.addElement( "groupId" ).setText( artifact.getGroupId() ); - dependency.addElement( "artifactId" ).setText( artifact.getArtifactId() ); - dependency.addElement( "type" ).setText( artifact.getType() ); - dependency.addElement( "version" ).setText( artifact.getVersion() ); - if ( artifact.getScope() != null ) - { - dependency.addElement( "scope" ).setText( artifact.getScope() ); - } - if ( artifact.getClassifier() != null ) - { - dependency.addElement( "classifier" ).setText( artifact.getClassifier() ); - } - - xmlNode = dependency.addElement( "dependencies" ); - - return true; - } - - /* - * @see org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor#endVisit(org.apache.maven.shared.dependency.tree.DependencyNode) - */ - public boolean endVisit( DependencyNode node ) - { - Element e = xmlNode.getParent(); - - if ( !xmlNode.hasContent() ) - { - e.remove( xmlNode ); - } - - xmlNode = e.getParent(); - - return true; - } - } - - public void setIncludes( List includes ) - { - this.includes = includes; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/java/org/apache/archiva/consumers/dependencytree/DependencyTreeGeneratorConsumerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/java/org/apache/archiva/consumers/dependencytree/DependencyTreeGeneratorConsumerTest.java deleted file mode 100644 index 07a9d7ab8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/java/org/apache/archiva/consumers/dependencytree/DependencyTreeGeneratorConsumerTest.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.apache.archiva.consumers.dependencytree; - -/* - * 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 javax.xml.parsers.ParserConfigurationException; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; -import org.apache.maven.profiles.DefaultProfileManager; -import org.codehaus.plexus.spring.PlexusContainerAdapter; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.custommonkey.xmlunit.XMLAssert; -import org.xml.sax.SAXException; - -public class DependencyTreeGeneratorConsumerTest - extends PlexusInSpringTestCase -{ - private DependencyTreeGeneratorConsumer consumer; - - private ManagedRepositoryConfiguration repository; - - private File repositoryLocation; - - private File generatedRepositoryLocation; - - public void setUp() - throws Exception - { - super.setUp(); - - consumer = - (DependencyTreeGeneratorConsumer) lookup( KnownRepositoryContentConsumer.class, "dependency-tree-generator" ); - - repositoryLocation = getTestFile( "target/test-" + getName() + "/test-repo" ); - FileUtils.deleteDirectory( repositoryLocation ); - FileUtils.copyDirectory( getTestFile( "target/test-classes/test-repo" ), repositoryLocation ); - - generatedRepositoryLocation = getTestFile( "target/test-" + getName() + "/generated-test-repo" ); - FileUtils.deleteDirectory( generatedRepositoryLocation ); - - consumer.setGeneratedRepositoryLocation( generatedRepositoryLocation ); - - repository = new ManagedRepositoryConfiguration(); - repository.setId( "dependency-tree" ); - repository.setLocation( repositoryLocation.getAbsolutePath() ); - } - - public void testGenerateBasicTree() - throws IOException, ConsumerException, ParserConfigurationException, SAXException - { - consumer.beginScan( repository, null ); - - String path = "org/apache/maven/maven-core/2.0/maven-core-2.0.pom"; - consumer.processFile( path ); - - File generatedFile = new File( generatedRepositoryLocation, path + ".xml" ); - XMLAssert.assertXMLEqual( IOUtils.toString( getClass().getResourceAsStream( "/test-data/maven-core-2.0-tree.xml" ) ), - FileUtils.readFileToString( generatedFile ) ); - - consumer.completeScan(); - } - - public void testInvalidCoordinate() - throws IOException, ConsumerException - { - consumer.beginScan( repository, null ); - - String path = "openejb/jaxb-xjc/2.0EA3/jaxb-xjc-2.0EA3.pom"; - try - { - consumer.processFile( path ); - - fail( "Should not have successfully processed the file" ); - } - catch ( ConsumerException e ) - { - File generatedFile = new File( generatedRepositoryLocation, path + ".xml" ); - assertFalse( generatedFile.exists() ); - } - - consumer.completeScan(); - } - - public void testProfiles() - throws IOException, ConsumerException, ParserConfigurationException, SAXException - { - PlexusContainerAdapter container = new PlexusContainerAdapter(); - container.setApplicationContext( getApplicationContext() ); - - DefaultProfileManager m = new DefaultProfileManager( container ); - - consumer.beginScan( repository, null ); - - String path = "org/apache/maven/surefire/surefire-testng/2.0/surefire-testng-2.0.pom"; - consumer.processFile( path ); - - File generatedFile = new File( generatedRepositoryLocation, path + ".xml" ); - XMLAssert.assertXMLEqual( IOUtils.toString( getClass().getResourceAsStream( "/test-data/surefire-testng-2.0-tree.xml" ) ), - FileUtils.readFileToString( generatedFile ) ); - - consumer.completeScan(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-data/maven-core-2.0-tree.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-data/maven-core-2.0-tree.xml deleted file mode 100644 index 3c55b90d1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-data/maven-core-2.0-tree.xml +++ /dev/null @@ -1,200 +0,0 @@ - - - - - org.apache.maven - maven-core - jar - 2.0 - - - junit - junit - jar - 3.8.1 - test - - - org.apache.maven - maven-settings - jar - 2.0 - compile - - - org.apache.maven.wagon - wagon-file - jar - 1.0-alpha-5 - runtime - - - org.apache.maven - maven-plugin-parameter-documenter - jar - 2.0 - compile - - - org.apache.maven.wagon - wagon-http-lightweight - jar - 1.0-alpha-5 - runtime - - - org.apache.maven.reporting - maven-reporting-api - jar - 2.0 - compile - - - doxia - doxia-sink-api - jar - 1.0-alpha-4 - compile - - - - - org.apache.maven - maven-profile - jar - 2.0 - compile - - - org.apache.maven - maven-model - jar - 2.0 - compile - - - org.apache.maven - maven-artifact - jar - 2.0 - compile - - - org.apache.maven.wagon - wagon-provider-api - jar - 1.0-alpha-5 - compile - - - org.codehaus.plexus - plexus-container-default - jar - 1.0-alpha-8 - compile - - - classworlds - classworlds - jar - 1.1-alpha-2 - compile - - - - - org.apache.maven - maven-repository-metadata - jar - 2.0 - compile - - - org.apache.maven - maven-error-diagnostics - jar - 2.0 - compile - - - org.apache.maven - maven-project - jar - 2.0 - compile - - - org.apache.maven - maven-plugin-registry - jar - 2.0 - compile - - - commons-cli - commons-cli - jar - 1.0 - compile - - - org.apache.maven - maven-plugin-api - jar - 2.0 - compile - - - org.apache.maven - maven-plugin-descriptor - jar - 2.0 - compile - - - org.codehaus.plexus - plexus-interactivity-api - jar - 1.0-alpha-4 - compile - - - org.apache.maven - maven-artifact-manager - jar - 2.0 - compile - - - org.apache.maven - maven-monitor - jar - 2.0 - compile - - - org.apache.maven.wagon - wagon-ssh - jar - 1.0-alpha-5 - runtime - - - com.jcraft - jsch - jar - 0.1.23 - runtime - - - - - org.codehaus.plexus - plexus-utils - jar - 1.0.4 - compile - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-data/surefire-testng-2.0-tree.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-data/surefire-testng-2.0-tree.xml deleted file mode 100644 index 287c45954..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-data/surefire-testng-2.0-tree.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - org.apache.maven.surefire - surefire-testng - jar - 2.0 - - - org.apache.maven.surefire - surefire-api - jar - 2.0 - compile - - - org.codehaus.plexus - plexus-utils - jar - 1.1 - compile - - - - - org.testng - testng - jar - 4.7 - compile - jdk15 - - - junit - junit - jar - 3.8.1 - runtime - - - qdox - qdox - jar - 1.5 - runtime - - - bsh - bsh - jar - 2.0b1 - runtime - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/openejb/jaxb-xjc/2.0EA3/jaxb-xjc-2.0EA3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/openejb/jaxb-xjc/2.0EA3/jaxb-xjc-2.0EA3.pom deleted file mode 100644 index d56af580b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/openejb/jaxb-xjc/2.0EA3/jaxb-xjc-2.0EA3.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - openejb - jaxb-api - 2.0EA3 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/org/apache/maven/maven-core/2.0/maven-core-2.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/org/apache/maven/maven-core/2.0/maven-core-2.0.pom deleted file mode 100644 index a6e158dea..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/org/apache/maven/maven-core/2.0/maven-core-2.0.pom +++ /dev/null @@ -1,186 +0,0 @@ - - - maven - org.apache.maven - 2.0 - - 4.0.0 - org.apache.maven - maven-core - Maven - 2.0 - - - - maven-assembly-plugin - 2.0-beta-1 - - src/assemble/bin.xml - maven-${version} - - - - - - - org.apache.maven - maven-settings - 2.0 - - - org.apache.maven.wagon - wagon-file - runtime - - - org.apache.maven - maven-plugin-parameter-documenter - 2.0 - - - org.apache.maven.wagon - wagon-http-lightweight - runtime - - - org.apache.maven.reporting - maven-reporting-api - 2.0 - - - org.apache.maven - maven-profile - 2.0 - - - org.apache.maven - maven-model - 2.0 - - - org.apache.maven - maven-artifact - 2.0 - - - org.apache.maven.wagon - wagon-provider-api - - - org.codehaus.plexus - plexus-container-default - - - org.apache.maven - maven-repository-metadata - 2.0 - - - org.apache.maven - maven-error-diagnostics - 2.0 - - - org.apache.maven - maven-project - 2.0 - - - org.apache.maven - maven-plugin-registry - 2.0 - - - commons-cli - commons-cli - 1.0 - - - commons-lang - commons-lang - - - commons-logging - commons-logging - - - - - org.apache.maven - maven-plugin-api - 2.0 - - - org.apache.maven - maven-plugin-descriptor - 2.0 - - - org.codehaus.plexus - plexus-interactivity-api - 1.0-alpha-4 - - - plexus-utils - plexus - - - plexus-container-default - org.codehaus.plexus - - - - - org.apache.maven - maven-artifact-manager - 2.0 - - - org.apache.maven - maven-monitor - 2.0 - - - org.apache.maven.wagon - wagon-ssh - runtime - - - plexus-utils - plexus - - - plexus-container-default - org.codehaus.plexus - - - - - org.codehaus.plexus - plexus-utils - - - - - - maven-checkstyle-plugin - - - maven-clover-plugin - - - maven-pmd-plugin - - - maven-project-info-reports-plugin - - - - - - website - scp://minotaur.apache.org//www/maven.apache.org/m2 - - deployed - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/org/apache/maven/surefire/surefire-testng/2.0/surefire-testng-2.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/org/apache/maven/surefire/surefire-testng/2.0/surefire-testng-2.0.pom deleted file mode 100644 index d8de3ad32..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-dependency-tree-consumer/src/test/resources/test-repo/org/apache/maven/surefire/surefire-testng/2.0/surefire-testng-2.0.pom +++ /dev/null @@ -1,82 +0,0 @@ - - - surefire-providers - org.apache.maven.surefire - 2.0 - - 4.0.0 - surefire-testng - SureFire TestNG Runner - 2.0 - - - - maven-compiler-plugin - - 1.4 - 1.4 - - - - maven-surefire-plugin - - false - - - - - - - jdk14 - - 1.4 - - - - org.testng - testng - 4.7 - jdk14 - - - - - jdk15 - - !1.4 - - - - org.testng - testng - 4.7 - jdk15 - - - - - jdk1.3 - - - - maven-compiler-plugin - - false - 1.4 - - - - maven-surefire-plugin - - once - ${JAVA_1_3_HOME}/bin/java - - - - - - - - deployed - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml deleted file mode 100644 index 56e38b751..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-consumers - 1.2-SNAPSHOT - ../pom.xml - - - archiva-lucene-consumers - Archiva Consumers :: Lucene Consumers - jar - - - - org.apache.archiva - archiva-indexer - - - org.apache.archiva - archiva-configuration - - - org.apache.archiva - archiva-consumer-api - - - org.apache.archiva - archiva-repository-layer - - - org.codehaus.plexus - plexus-spring - test - - - org.apache.bcel - bcel - 5.2 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArchiveTableOfContentsConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArchiveTableOfContentsConsumer.java deleted file mode 100644 index 9d819677e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArchiveTableOfContentsConsumer.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.apache.maven.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 org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.List; - -/** - * IndexArchiveTableOfContentsConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer" - * role-hint="index-archive-toc" - * instantiation-strategy="per-lookup" - */ -public class IndexArchiveTableOfContentsConsumer - extends AbstractMonitoredConsumer - implements DatabaseUnprocessedArtifactConsumer -{ - /** - * @plexus.configuration default-value="index-archive-toc" - */ - private String id; - - /** - * @plexus.configuration default-value="Index the archive table of contents for Full Text Search." - */ - private String description; - - public void beginScan() - { - // TODO Auto-generated method stub - - } - - public void completeScan() - { - // TODO Auto-generated method stub - - } - - public List getIncludedTypes() - { - // TODO Auto-generated method stub - return null; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - // TODO Auto-generated method stub - - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java deleted file mode 100644 index eb6c71ce1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java +++ /dev/null @@ -1,217 +0,0 @@ -package org.apache.maven.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.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationNames; -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.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesRecord; -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.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; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * IndexArtifactConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer" - * role-hint="index-artifact" - * instantiation-strategy="per-lookup" - */ -public class IndexArtifactConsumer - extends AbstractMonitoredConsumer - implements DatabaseUnprocessedArtifactConsumer, RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( IndexArtifactConsumer.class ); - - private static final String INDEX_ERROR = "indexing_error"; - - /** - * @plexus.configuration default-value="index-artifact" - */ - private String id; - - /** - * @plexus.configuration default-value="Index the artifact checksums for Find functionality." - */ - private String description; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory indexFactory; - - private Map repositoryMap = new HashMap(); - - public void beginScan() - { - /* nothing to do here */ - } - - public void completeScan() - { - /* nothing to do here */ - } - - public List getIncludedTypes() - { - return null; // TODO: define these as a list of artifacts. - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - HashcodesRecord record = new HashcodesRecord(); - record.setRepositoryId( artifact.getModel().getRepositoryId() ); - record.setArtifact( artifact ); - - IndexedRepositoryDetails pnl = getIndexedRepositoryDetails( artifact ); - - String artifactPath = pnl.repository.toPath( artifact ); - record.setFilename( artifactPath ); - - try - { - pnl.index.modifyRecord( record ); - } - catch ( RepositoryIndexException e ) - { - triggerConsumerError( INDEX_ERROR, "Unable to index hashcodes: " + e.getMessage() ); - } - } - - private IndexedRepositoryDetails getIndexedRepositoryDetails( ArchivaArtifact artifact ) - { - String repoId = artifact.getModel().getRepositoryId(); - if ( StringUtils.isBlank( repoId ) ) - { - throw new IllegalStateException( - "Unable to process artifact [" + artifact + "] as it has no repository id associated with it." ); - } - - return getIndexedRepositoryDetails( repoId ); - } - - private IndexedRepositoryDetails getIndexedRepositoryDetails( String id ) - { - return this.repositoryMap.get( id ); - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isManagedRepositories( propertyName ) ) - { - initRepositoryMap(); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* do nothing */ - } - - public void initialize() - throws InitializationException - { - initRepositoryMap(); - configuration.addChangeListener( this ); - } - - private void initRepositoryMap() - { - synchronized ( this.repositoryMap ) - { - this.repositoryMap.clear(); - - Iterator it = configuration.getConfiguration().getManagedRepositories().iterator(); - while ( it.hasNext() ) - { - ManagedRepositoryConfiguration repository = it.next(); - - try - { - IndexedRepositoryDetails pnl = new IndexedRepositoryDetails(); - - pnl.repository = repositoryFactory.getManagedRepositoryContent( repository.getId() ); - - pnl.index = indexFactory.createHashcodeIndex( repository ); - - this.repositoryMap.put( repository.getId(), pnl ); - } - catch ( RepositoryException e ) - { - log.error( "Unable to load repository content object: " + e.getMessage(), e ); - } - } - } - } - - class IndexedRepositoryDetails - { - public ManagedRepositoryContent repository; - - public RepositoryContentIndex index; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java deleted file mode 100644 index 1cdcb6033..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java +++ /dev/null @@ -1,225 +0,0 @@ -package org.apache.maven.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 org.apache.commons.io.FileUtils; -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.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.filecontent.FileContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArtifactReference; -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.layout.LayoutException; -import org.apache.maven.archiva.repository.metadata.MetadataTools; -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; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * IndexContentConsumer - generic full file content indexing consumer. - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="index-content" - * instantiation-strategy="per-lookup" - */ -public class IndexContentConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer, RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( IndexContentConsumer.class ); - - private static final String READ_CONTENT = "read_content"; - - private static final String INDEX_ERROR = "indexing_error"; - - /** - * @plexus.configuration default-value="index-content" - */ - private String id; - - /** - * @plexus.configuration default-value="Text and XML file contents indexing" - */ - private String description; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory indexFactory; - - private List includes = new ArrayList(); - - private RepositoryContentIndex index; - - private ManagedRepositoryContent repository; - - private File repositoryDir; - - public String getId() - { - return this.id; - } - - public String getDescription() - { - return this.description; - } - - public boolean isPermanent() - { - return false; - } - - public List getExcludes() - { - return null; - } - - public List getIncludes() - { - return this.includes; - } - - public void beginScan( ManagedRepositoryConfiguration repo, Date whenGathered ) - throws ConsumerException - { - try - { - this.repository = repositoryFactory.getManagedRepositoryContent( repo.getId() ); - this.repositoryDir = new File( repository.getRepoRoot() ); - this.index = indexFactory.createFileContentIndex( repository.getRepository() ); - } - catch ( RepositoryException e ) - { - throw new ConsumerException( "Unable to start IndexContentConsumer: " + e.getMessage(), e ); - } - } - - public void processFile( String path ) - throws ConsumerException - { - if ( path.endsWith( "/" + MetadataTools.MAVEN_METADATA ) ) - { - log.debug( "File is a metadata file. Not indexing." ); - return; - } - - FileContentRecord record = new FileContentRecord(); - try - { - File file = new File( repositoryDir, path ); - record.setRepositoryId( this.repository.getId() ); - record.setFilename( path ); - record.setContents( FileUtils.readFileToString( file, null ) ); - - // Test for possible artifact reference syntax. - try - { - ArtifactReference ref = repository.toArtifactReference( path ); - ArchivaArtifact artifact = new ArchivaArtifact( ref ); - artifact.getModel().setRepositoryId( repository.getId() ); - record.setArtifact( artifact ); - } - catch ( LayoutException e ) - { - // Not an artifact. - } - - index.modifyRecord( record ); - } - catch ( IOException e ) - { - triggerConsumerError( READ_CONTENT, "Unable to read file contents: " + e.getMessage() ); - } - catch ( RepositoryIndexException e ) - { - triggerConsumerError( INDEX_ERROR, "Unable to index file contents: " + e.getMessage() ); - } - } - - 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.INDEXABLE_CONTENT ) ); - } - - public void initialize() - throws InitializationException - { - configuration.addChangeListener( this ); - - initIncludes(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumer.java deleted file mode 100644 index dd0ded398..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumer.java +++ /dev/null @@ -1,269 +0,0 @@ -package org.apache.maven.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 org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.bytecode.BytecodeRecord; -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 com.sun.org.apache.bcel.internal.classfile.ClassParser; -import com.sun.org.apache.bcel.internal.classfile.JavaClass; -import com.sun.org.apache.bcel.internal.classfile.Method; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -/** - * IndexJavaPublicMethodsConsumer - * - * @author Joakim Erdfelt - * Maria Odea Ching - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer" - * role-hint="index-public-methods" - * instantiation-strategy="per-lookup" - */ -public class IndexJavaPublicMethodsConsumer - extends AbstractMonitoredConsumer - implements DatabaseUnprocessedArtifactConsumer -{ - /** - * @plexus.configuration default-value="index-public-methods" - */ - private String id; - - /** - * @plexus.configuration default-value="Index the java public methods for Full Text Search." - */ - private String description; - - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory repoIndexFactory; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repoFactory; - - private static final String CLASSES = "classes"; - - private static final String METHODS = "methods"; - - private List includes = new ArrayList(); - - public IndexJavaPublicMethodsConsumer() - { - includes.add( "jar" ); - includes.add( "war" ); - includes.add( "ear" ); - includes.add( "zip" ); - includes.add( "tar.gz" ); - includes.add( "tar.bz2" ); - includes.add( "car" ); - includes.add( "sar" ); - includes.add( "mar" ); - includes.add( "rar" ); - } - - public void beginScan() - { - // TODO Auto-generated method stubx - } - - public void completeScan() - { - // TODO Auto-generated method stub - - } - - public List getIncludedTypes() - { - return includes; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - try - { - ManagedRepositoryContent repoContent = - repoFactory.getManagedRepositoryContent( artifact.getModel().getRepositoryId() ); - File file = new File( repoContent.getRepoRoot(), repoContent.toPath( artifact ) ); - - if( file.getAbsolutePath().endsWith( ".jar" ) || file.getAbsolutePath().endsWith( ".war" ) || - file.getAbsolutePath().endsWith( ".ear" ) || file.getAbsolutePath().endsWith( ".zip" ) || - file.getAbsolutePath().endsWith( ".tar.gz" ) || file.getAbsolutePath().endsWith( ".tar.bz2" ) || - file.getAbsolutePath().endsWith( ".car" ) || file.getAbsolutePath().endsWith( ".sar" ) || - file.getAbsolutePath().endsWith( ".mar" ) || file.getAbsolutePath().endsWith( ".rar" ) ) - { - if( file.exists() ) - { - List files = readFilesInArchive( file ); - Map> mapOfClassesAndMethods = - getPublicClassesAndMethodsFromFiles( file.getAbsolutePath(), files ); - - // NOTE: what about public variables? should these be indexed too? - RepositoryContentIndex bytecodeIndex = repoIndexFactory.createBytecodeIndex( repoContent.getRepository() ); - - artifact.getModel().setRepositoryId( repoContent.getId() ); - - BytecodeRecord bytecodeRecord = new BytecodeRecord(); - bytecodeRecord.setFilename( file.getName() ); - bytecodeRecord.setClasses( mapOfClassesAndMethods.get( CLASSES ) ); - bytecodeRecord.setFiles( files ); - bytecodeRecord.setMethods( mapOfClassesAndMethods.get( METHODS ) ); - bytecodeRecord.setArtifact( artifact ); - bytecodeRecord.setRepositoryId( repoContent.getId() ); - bytecodeIndex.modifyRecord( bytecodeRecord ); - } - } - } - catch ( RepositoryException e ) - { - throw new ConsumerException( "Can't run index cleanup consumer: " + e.getMessage() ); - } - catch ( RepositoryIndexException e ) - { - throw new ConsumerException( "Error encountered while adding artifact to index: " + e.getMessage() ); - } - catch ( IOException e ) - { - throw new ConsumerException( "Error encountered while getting file contents: " + e.getMessage() ); - } - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - - private List readFilesInArchive( File file ) - throws IOException - { - ZipFile zipFile = new ZipFile( file ); - List files; - - try - { - files = new ArrayList( zipFile.size() ); - for ( Enumeration entries = zipFile.entries(); entries.hasMoreElements(); ) - { - ZipEntry entry = (ZipEntry) entries.nextElement(); - files.add( entry.getName() ); - } - } - finally - { - closeQuietly( zipFile ); - } - return files; - } - - private void closeQuietly( ZipFile zipFile ) - { - try - { - if ( zipFile != null ) - { - zipFile.close(); - } - } - catch ( IOException e ) - { - // ignored - } - } - - private static boolean isClass( String name ) - { - return name.endsWith( ".class" ) && name.lastIndexOf( "$" ) < 0; - } - - private Map> getPublicClassesAndMethodsFromFiles( String zipFile, List files ) - { - Map> map = new HashMap>(); - List methods = new ArrayList(); - List classes = new ArrayList(); - - for( String file : files ) - { - if( isClass( file ) ) - { - try - { - ClassParser parser = new ClassParser( zipFile, file ); - JavaClass javaClass = parser.parse(); - - if( javaClass.isPublic() ) - { - classes.add( javaClass.getClassName() ); - } - - Method[] methodsArr = javaClass.getMethods(); - for( Method method : methodsArr ) - { - if( method.isPublic() ) - { - methods.add( method.getName() ); - } - } - } - catch ( IOException e ) - { - // ignore - } - } - } - - map.put( CLASSES, classes ); - map.put( METHODS, methods ); - - return map; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java deleted file mode 100644 index a6f729395..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java +++ /dev/null @@ -1,153 +0,0 @@ -package org.apache.maven.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 org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.DatabaseCleanupConsumer; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.bytecode.BytecodeRecord; -import org.apache.maven.archiva.indexer.filecontent.FileContentRecord; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesRecord; -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 java.io.File; -import java.util.List; - -/** - * LuceneCleanupRemoveIndexedConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.DatabaseCleanupConsumer" - * role-hint="not-present-remove-indexed" instantiation-strategy="per-lookup" - */ -public class LuceneCleanupRemoveIndexedConsumer - extends AbstractMonitoredConsumer - implements DatabaseCleanupConsumer -{ - /** - * @plexus.configuration default-value="not-present-remove-indexed" - */ - private String id; - - /** - * @plexus.configuration default-value="Remove indexed content if not present on filesystem." - */ - private String description; - - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory repoIndexFactory; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repoFactory; - - public void beginScan() - { - // TODO Auto-generated method stub - - } - - public void completeScan() - { - // TODO Auto-generated method stub - - } - - public List getIncludedTypes() - { - // TODO Auto-generated method stub - return null; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - try - { - ManagedRepositoryContent repoContent = - repoFactory.getManagedRepositoryContent( artifact.getModel().getRepositoryId() ); - - File file = new File( repoContent.getRepoRoot(), repoContent.toPath( artifact ) ); - - if( !file.exists() ) - { - RepositoryContentIndex bytecodeIndex = repoIndexFactory.createBytecodeIndex( repoContent.getRepository() ); - RepositoryContentIndex hashcodesIndex = repoIndexFactory.createHashcodeIndex( repoContent.getRepository() ); - RepositoryContentIndex fileContentIndex = - repoIndexFactory.createFileContentIndex( repoContent.getRepository() ); - - FileContentRecord fileContentRecord = new FileContentRecord(); - fileContentRecord.setFilename( repoContent.toPath( artifact ) ); - fileContentIndex.deleteRecord( fileContentRecord ); - - HashcodesRecord hashcodesRecord = new HashcodesRecord(); - hashcodesRecord.setArtifact( artifact ); - hashcodesIndex.deleteRecord( hashcodesRecord ); - - BytecodeRecord bytecodeRecord = new BytecodeRecord(); - bytecodeRecord.setArtifact( artifact ); - bytecodeIndex.deleteRecord( bytecodeRecord ); - } - } - catch ( RepositoryException e ) - { - throw new ConsumerException( "Can't run index cleanup consumer: " + e.getMessage() ); - } - catch ( RepositoryIndexException e ) - { - throw new ConsumerException( e.getMessage() ); - } - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - - public void setRepositoryIndexFactory( RepositoryContentIndexFactory repoIndexFactory ) - { - this.repoIndexFactory = repoIndexFactory; - } - - public void setRepositoryContentFactory( RepositoryContentFactory repoFactory ) - { - this.repoFactory = repoFactory; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/conf/repository-manager.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/conf/repository-manager.xml deleted file mode 100644 index 19e1449cd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/conf/repository-manager.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - 1 - - - test-repo - Test Repository - file://src/test/resources/test-repo - default - true - true - true - 0 0 * * * ? - 0 - 2 - - - - - - - - example - http - proxy.mycompany.com - 8080 - myself - mypass - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - - - - indexable-content - - **/*.txt - **/*.TXT - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - repository-purge - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - - - true - true - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.java deleted file mode 100644 index 83ae9588b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.java +++ /dev/null @@ -1,124 +0,0 @@ -package org.apache.maven.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.util.ArrayList; -import java.util.List; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.search.SearchResultLimits; -import org.apache.maven.archiva.indexer.search.SearchResults; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * - * @author Maria Odea Ching - * @version - * - */ -public class IndexJavaPublicMethodsConsumerTest - extends PlexusInSpringTestCase -{ - DatabaseUnprocessedArtifactConsumer indexMethodsConsumer; - - IndexJavaPublicMethodsCrossRepositorySearch searcher; - - private RepositoryContentIndexFactory indexFactory; - - public void setUp() - throws Exception - { - super.setUp(); - indexMethodsConsumer = - (DatabaseUnprocessedArtifactConsumer) lookup( DatabaseUnprocessedArtifactConsumer.class, - "index-public-methods" ); - - ManagedRepositoryConfiguration config = new ManagedRepositoryConfiguration(); - config.setId( "test-repo" ); - config.setLayout( "default" ); - config.setLocation( getBasedir() + "/target/test-classes/test-repo" ); - config.setName( "Test Repository" ); - - addRepoToConfiguration( "index-public-methods", config ); - - indexFactory = (RepositoryContentIndexFactory) lookup (RepositoryContentIndexFactory.class, "lucene" ); - searcher = new IndexJavaPublicMethodsCrossRepositorySearch( config, indexFactory ); - } - - private void addRepoToConfiguration( String configHint, ManagedRepositoryConfiguration repoConfiguration ) - throws Exception - { - ArchivaConfiguration archivaConfiguration = - (ArchivaConfiguration) lookup( ArchivaConfiguration.class, configHint ); - Configuration configuration = archivaConfiguration.getConfiguration(); - configuration.removeManagedRepository( configuration.findManagedRepositoryById( repoConfiguration.getId() ) ); - configuration.addManagedRepository( repoConfiguration ); - } - - public void testJarPublicMethods() - throws Exception - { - ArchivaArtifact artifact = - createArtifact( "org.apache.archiva", "archiva-index-methods-jar-test", "1.0", "jar" ); - indexMethodsConsumer.processArchivaArtifact( artifact ); - - List selectedRepos = new ArrayList(); - selectedRepos.add( "test-repo" ); - - // search for class names - SearchResults results = searcher.searchForBytecode( "", selectedRepos, "FirstPackageApp", new SearchResultLimits( 0 ) ); - assertEquals( 1, results.getTotalHits() ); - - results = searcher.searchForBytecode( "", selectedRepos, "SecondPackageApp", new SearchResultLimits( 0 ) ); - assertEquals( 1, results.getTotalHits() ); - - // search for public methods - results = searcher.searchForBytecode( "", selectedRepos, "appMethodOne", new SearchResultLimits( 0 ) ); - assertEquals( 1, results.getTotalHits() ); - - // should return only the overridding public method in SecondPackageApp - results = searcher.searchForBytecode( "", selectedRepos, "protectedMethod", new SearchResultLimits( 0 ) ); - assertEquals( 1, results.getTotalHits() ); - - // should not return any private methods - results = searcher.searchForBytecode( "", selectedRepos, "privMethod", new SearchResultLimits( 0 ) ); - assertEquals( 0, results.getTotalHits() ); - - // test for public variables? - } - - private ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String type ) - { - ArchivaArtifactModel model = new ArchivaArtifactModel(); - model.setGroupId( groupId ); - model.setArtifactId( artifactId ); - model.setVersion( version ); - model.setType( type ); - model.setRepositoryId( "test-repo" ); - - return new ArchivaArtifact( model ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsCrossRepositorySearch.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsCrossRepositorySearch.java deleted file mode 100644 index ea9f13311..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsCrossRepositorySearch.java +++ /dev/null @@ -1,191 +0,0 @@ -package org.apache.maven.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.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.apache.lucene.document.Document; -import org.apache.lucene.queryParser.ParseException; -import org.apache.lucene.queryParser.QueryParser; -import org.apache.lucene.search.Hits; -import org.apache.lucene.search.MultiSearcher; -import org.apache.lucene.search.Searchable; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.RepositoryIndexSearchException; -import org.apache.maven.archiva.indexer.bytecode.BytecodeHandlers; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneQuery; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.indexer.search.SearchResultLimits; -import org.apache.maven.archiva.indexer.search.SearchResults; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Searcher used for testing purposes only. - * - * @author Maria Odea Ching - * @version - */ -public class IndexJavaPublicMethodsCrossRepositorySearch -{ - private Logger log = LoggerFactory.getLogger( IndexJavaPublicMethodsCrossRepositorySearch.class ); - - private ManagedRepositoryConfiguration localIndexedRepo; - - private RepositoryContentIndexFactory indexFactory; - - public IndexJavaPublicMethodsCrossRepositorySearch( ManagedRepositoryConfiguration localIndexedRepo, RepositoryContentIndexFactory indexFactory ) - { - this.localIndexedRepo = localIndexedRepo; - this.indexFactory = indexFactory; - } - - public SearchResults searchForBytecode( String principal, List selectedRepos, String term, - SearchResultLimits limits ) throws ParseException - { - List indexes = new ArrayList(); - indexes.add( indexFactory.createBytecodeIndex( localIndexedRepo ) ); - - QueryParser parser = new BytecodeHandlers().getQueryParser(); - LuceneQuery query = new LuceneQuery( parser.parse( term ) ); - SearchResults results = searchAll( query, limits, indexes ); - results.getRepositories().add( localIndexedRepo ); - - return results; - } - - private SearchResults searchAll( LuceneQuery luceneQuery, SearchResultLimits limits, List indexes ) - { - org.apache.lucene.search.Query specificQuery = luceneQuery.getLuceneQuery(); - - SearchResults results = new SearchResults(); - - if ( indexes.isEmpty() ) - { - // No point going any further. - return results; - } - - // Setup the converter - LuceneEntryConverter converter = null; - RepositoryContentIndex index = indexes.get( 0 ); - converter = index.getEntryConverter(); - - // Process indexes into an array of Searchables. - List searchableList = toSearchables( indexes ); - - Searchable searchables[] = new Searchable[searchableList.size()]; - searchableList.toArray( searchables ); - - MultiSearcher searcher = null; - - try - { - // Create a multi-searcher for looking up the information. - searcher = new MultiSearcher( searchables ); - - // Perform the search. - Hits hits = searcher.search( specificQuery ); - - int hitCount = hits.length(); - - // Now process the limits. - results.setLimits( limits ); - results.setTotalHits( hitCount ); - - int fetchCount = limits.getPageSize(); - int offset = ( limits.getSelectedPage() * limits.getPageSize() ); - - if ( limits.getSelectedPage() == SearchResultLimits.ALL_PAGES ) - { - fetchCount = hitCount; - offset = 0; - } - - // Goto offset. - if ( offset < hitCount ) - { - // only process if the offset is within the hit count. - for ( int i = 0; i <= fetchCount; i++ ) - { - // Stop fetching if we are past the total # of available hits. - if ( offset + i >= hitCount ) - { - break; - } - - try - { - Document doc = hits.doc( offset + i ); - LuceneRepositoryContentRecord record = converter.convert( doc ); - results.addHit( record ); - } - catch ( java.text.ParseException e ) - { - log.error( e.getMessage() ); - } - } - } - - } - catch ( IOException e ) - { - log.error( e.getMessage() ); - } - finally - { - try - { - if ( searcher != null ) - { - searcher.close(); - } - } - catch ( IOException ie ) - { - log.error( ie.getMessage() ); - } - } - - return results; - } - - private List toSearchables( List indexes ) - { - List searchableList = new ArrayList(); - for ( RepositoryContentIndex contentIndex : indexes ) - { - try - { - searchableList.add( contentIndex.getSearchable() ); - } - catch ( RepositoryIndexSearchException e ) - { - log.error( e.getMessage() ); - } - } - return searchableList; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java deleted file mode 100644 index 22070f151..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.apache.maven.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 org.apache.maven.archiva.consumers.DatabaseCleanupConsumer; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * LuceneCleanupRemoveIndexedConsumerTest - * - * @author Maria Odea Ching - * @version - */ -public class LuceneCleanupRemoveIndexedConsumerTest - extends PlexusInSpringTestCase -{ - private DatabaseCleanupConsumer luceneCleanupRemoveIndexConsumer; - - public void setUp() - throws Exception - { - super.setUp(); - - luceneCleanupRemoveIndexConsumer = (DatabaseCleanupConsumer) - lookup( DatabaseCleanupConsumer.class, "lucene-cleanup" ); - } - - public void testIfArtifactExists() - throws Exception - { - ArchivaArtifact artifact = createArtifact( - "org.apache.maven.archiva", "archiva-lucene-cleanup", "1.0", "jar" ); - - luceneCleanupRemoveIndexConsumer.processArchivaArtifact( artifact ); - } - - public void testIfArtifactDoesNotExist() - throws Exception - { - ArchivaArtifact artifact = createArtifact( - "org.apache.maven.archiva", "deleted-artifact", "1.0", "jar" ); - - luceneCleanupRemoveIndexConsumer.processArchivaArtifact( artifact ); - } - - private ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String type ) - { - ArchivaArtifactModel model = new ArchivaArtifactModel(); - model.setGroupId( groupId ); - model.setArtifactId( artifactId ); - model.setVersion( version ); - model.setType( type ); - model.setRepositoryId( "test-repo" ); - - return new ArchivaArtifact( model ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexFactoryStub.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexFactoryStub.java deleted file mode 100644 index 4e31f4ba4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexFactoryStub.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.apache.maven.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 org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; - -/** - * LuceneRepositoryContenIndexFactoryStub - * - * @author Maria Odea Ching - * @version - */ -public class LuceneRepositoryContentIndexFactoryStub - implements RepositoryContentIndexFactory -{ - - public RepositoryContentIndex createBytecodeIndex( ManagedRepositoryConfiguration repository ) - { - // TODO Auto-generated method stub - return new LuceneRepositoryContentIndexStub(); - } - - public RepositoryContentIndex createFileContentIndex( ManagedRepositoryConfiguration repository ) - { - // TODO Auto-generated method stub - return new LuceneRepositoryContentIndexStub(); - } - - public RepositoryContentIndex createHashcodeIndex( ManagedRepositoryConfiguration repository ) - { - // TODO Auto-generated method stub - return new LuceneRepositoryContentIndexStub(); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexStub.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexStub.java deleted file mode 100644 index a5b40c8d9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/maven/archiva/consumers/lucene/stubs/LuceneRepositoryContentIndexStub.java +++ /dev/null @@ -1,145 +0,0 @@ -package org.apache.maven.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.File; -import java.util.Collection; - -import junit.framework.Assert; - -import org.apache.lucene.analysis.Analyzer; -import org.apache.lucene.queryParser.QueryParser; -import org.apache.lucene.search.Searchable; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.RepositoryIndexSearchException; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; - -/** - * @author Maria Odea Ching - * @version - */ -public class LuceneRepositoryContentIndexStub - implements RepositoryContentIndex -{ - - public void deleteRecords( Collection records ) - throws RepositoryIndexException - { - // TODO Auto-generated method stub - Assert.assertEquals( 2, records.size() ); - } - - public boolean exists() - throws RepositoryIndexException - { - // TODO Auto-generated method stub - return false; - } - - public Collection getAllRecordKeys() - throws RepositoryIndexException - { - // TODO Auto-generated method stub - return null; - } - - public Analyzer getAnalyzer() - { - // TODO Auto-generated method stub - return null; - } - - public LuceneEntryConverter getEntryConverter() - { - // TODO Auto-generated method stub - return null; - } - - public String getId() - { - // TODO Auto-generated method stub - return null; - } - - public File getIndexDirectory() - { - // TODO Auto-generated method stub - return null; - } - - public QueryParser getQueryParser() - { - // TODO Auto-generated method stub - return null; - } - - public ManagedRepositoryConfiguration getRepository() - { - // TODO Auto-generated method stub - return null; - } - - public Searchable getSearchable() - throws RepositoryIndexSearchException - { - // TODO Auto-generated method stub - return null; - } - - public void indexRecords( Collection records ) - throws RepositoryIndexException - { - // TODO Auto-generated method stub - - } - - public void modifyRecord( LuceneRepositoryContentRecord record ) - throws RepositoryIndexException - { - // TODO Auto-generated method stub - - } - - public void modifyRecords( Collection records ) - throws RepositoryIndexException - { - // TODO Auto-generated method stub - - } - - public void deleteRecord( LuceneRepositoryContentRecord record ) - throws RepositoryIndexException - { - Assert.assertNotNull( record ); - - // fail since the record to be deleted should only be the deleted-artifact-1.0.jar - // according to the tests - if( record.getPrimaryKey().equals( - "org/apache/maven/archiva/archiva-lucene-cleanup/1.0/archiva-lucene-cleanup-1.0.jar" ) && - record.getPrimaryKey().equals( "org.apache.maven.archiva:archiva-lucene-cleanup:1.0:jar" ) ) - { - Assert.fail(); - } - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.xml deleted file mode 100644 index 93f760b56..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/org/apache/maven/archiva/consumers/lucene/IndexJavaPublicMethodsConsumerTest.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer - index-public-methods - org.apache.maven.archiva.consumers.lucene.IndexJavaPublicMethodsConsumer - - - org.apache.maven.archiva.repository.RepositoryContentFactory - index-public-methods - - - org.apache.maven.archiva.indexer.RepositoryContentIndexFactory - lucene - repoIndexFactory - - - - - org.apache.maven.archiva.repository.RepositoryContentFactory - index-public-methods - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - index-public-methods - archivaConfiguration - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - index-public-methods - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - index-public-methods - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - index-public-methods - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.xml deleted file mode 100644 index 0c096a7c0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumerTest.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - org.apache.maven.archiva.consumers.DatabaseCleanupConsumer - lucene-cleanup - org.apache.maven.archiva.consumers.lucene.LuceneCleanupRemoveIndexedConsumer - - - org.apache.maven.archiva.indexer.RepositoryContentIndexFactory - lucene-cleanup - repoIndexFactory - - - org.apache.maven.archiva.repository.RepositoryContentFactory - - - - - org.apache.maven.archiva.repository.RepositoryContentFactory - org.apache.maven.archiva.repository.RepositoryContentFactory - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - lucene-cleanup - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - lucene-cleanup - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - lucene-cleanup - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - lucene-cleanup - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - org.apache.maven.archiva.indexer.RepositoryContentIndexFactory - org.apache.maven.archiva.consumers.lucene.stubs.LuceneRepositoryContentIndexFactoryStub - lucene-cleanup - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/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-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/test-repo/org/apache/archiva/archiva-index-methods-jar-test/1.0/archiva-index-methods-jar-test-1.0.jar deleted file mode 100644 index cc03dacc130ee6ab9135e82d84c1283ff8ddb682..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4460 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 - 4.0.0 - org.apache.archiva - archiva-index-methods-jar-test - jar - 1.0 - archiva-index-methods-jar-test - http://maven.apache.org - - - junit - junit - 3.8.1 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/test-repo/org/apache/maven/archiva/archiva-lucene-cleanup/1.0/archiva-lucene-cleanup-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/resources/test-repo/org/apache/maven/archiva/archiva-lucene-cleanup/1.0/archiva-lucene-cleanup-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-signature-consumers/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-signature-consumers/pom.xml deleted file mode 100644 index 965fbea00..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/archiva-signature-consumers/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-consumers - 1.2-SNAPSHOT - ../pom.xml - - - archiva-signature-consumers - Archiva Consumers :: GPG Signature Consumers - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/pom.xml deleted file mode 100644 index 4d6752164..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-consumers/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - ../pom.xml - - - archiva-consumers - Archiva Consumers - pom - - - archiva-consumer-api - archiva-core-consumers - archiva-database-consumers - archiva-lucene-consumers - archiva-signature-consumers - archiva-dependency-tree-consumer - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/pom.xml deleted file mode 100644 index 2c0813c8f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/pom.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - 4.0.0 - archiva-converter - Archiva Base :: Repository Converter - - - org.apache.archiva - archiva-consumer-api - - - org.apache.archiva - archiva-artifact-converter - - - org.apache.archiva - archiva-repository-layer - - - org.codehaus.plexus - plexus-i18n - - - org.codehaus.plexus - plexus-spring - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/RepositoryConversionException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/RepositoryConversionException.java deleted file mode 100644 index cbc622d64..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/RepositoryConversionException.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.apache.maven.archiva.converter; - -/* - * 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. - */ - -/** - * Exception occuring during repository conversion. - * - * @author Brett Porter - */ -public class RepositoryConversionException - extends Exception -{ - public RepositoryConversionException( String message ) - { - super( message ); - } - - public RepositoryConversionException( String message, Throwable cause ) - { - super( message, cause ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java deleted file mode 100644 index b2ab8e1fe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.apache.maven.archiva.converter.legacy; - -/* - * 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.utils.PathUtil; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -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 - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component - */ -public class DefaultLegacyRepositoryConverter - implements LegacyRepositoryConverter -{ - /** - * @plexus.requirement - */ - private ArtifactRepositoryFactory artifactRepositoryFactory; - - /** - * @plexus.requirement role-hint="default" - */ - private ArtifactRepositoryLayout defaultLayout; - - /** - * @plexus.requirement role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="artifact-legacy-to-default-converter" - */ - private LegacyConverterArtifactConsumer legacyConverterConsumer; - - /** - * @plexus.requirement - */ - private RepositoryScanner repoScanner; - - public void convertLegacyRepository( File legacyRepositoryDirectory, File repositoryDirectory, - List fileExclusionPatterns ) - throws RepositoryConversionException - { - try - { - String defaultRepositoryUrl = PathUtil.toUrl( repositoryDirectory ); - - ManagedRepositoryConfiguration legacyRepository = new ManagedRepositoryConfiguration(); - legacyRepository.setId( "legacy"); - legacyRepository.setName( "Legacy Repository" ); - legacyRepository.setLocation( legacyRepositoryDirectory.getAbsolutePath() ); - legacyRepository.setLayout( "legacy" ); - - ArtifactRepository repository = artifactRepositoryFactory.createArtifactRepository( "default", - defaultRepositoryUrl, - defaultLayout, null, - null ); - legacyConverterConsumer.setExcludes( fileExclusionPatterns ); - legacyConverterConsumer.setDestinationRepository( repository ); - - List knownConsumers = new ArrayList(); - knownConsumers.add( legacyConverterConsumer ); - - List invalidConsumers = Collections.EMPTY_LIST; - List ignoredContent = new ArrayList(); - ignoredContent.addAll( Arrays.asList( RepositoryScanner.IGNORABLE_CONTENT ) ); - - repoScanner.scan( legacyRepository, knownConsumers, invalidConsumers, ignoredContent, - RepositoryScanner.FRESH_SCAN ); - } - catch ( RepositoryException e ) - { - throw new RepositoryConversionException( "Error convering legacy repository.", e ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java deleted file mode 100644 index f79c0cd87..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java +++ /dev/null @@ -1,162 +0,0 @@ -package org.apache.maven.archiva.converter.legacy; - -/* - * 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.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 org.apache.maven.archiva.converter.artifact.ArtifactConversionException; -import org.apache.maven.archiva.converter.artifact.ArtifactConverter; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.content.ManagedDefaultRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * LegacyConverterArtifactConsumer - convert artifacts as they are found - * into the destination repository. - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="artifact-legacy-to-default-converter" - * instantiation-strategy="per-lookup" - */ -public class LegacyConverterArtifactConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer -{ - private Logger log = LoggerFactory.getLogger( LegacyConverterArtifactConsumer.class ); - - /** - * @plexus.requirement role-hint="legacy-to-default" - */ - private ArtifactConverter artifactConverter; - - /** - * @plexus.requirement - */ - private ArtifactFactory artifactFactory; - - private ManagedRepositoryContent managedRepository; - - private ArtifactRepository destinationRepository; - - private List includes; - - private List excludes; - - public LegacyConverterArtifactConsumer() - { - includes = new ArrayList(); - includes.add( "**/*.jar" ); - includes.add( "**/*.ear" ); - includes.add( "**/*.war" ); - } - - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - this.managedRepository = new ManagedDefaultRepositoryContent(); - this.managedRepository.setRepository( repository ); - } - - public void completeScan() - { - - } - - public List getExcludes() - { - return excludes; - } - - public List getIncludes() - { - return includes; - } - - public void processFile( String path ) - throws ConsumerException - { - try - { - ArtifactReference reference = managedRepository.toArtifactReference( path ); - Artifact artifact = artifactFactory.createArtifact( reference.getGroupId(), reference.getArtifactId(), - reference.getVersion(), reference.getClassifier(), - reference.getType() ); - artifactConverter.convert( artifact, destinationRepository ); - } - catch ( LayoutException e ) - { - log.warn( "Unable to convert artifact: " + path + " : " + e.getMessage(), e ); - } - catch ( ArtifactConversionException e ) - { - log.warn( "Unable to convert artifact: " + path + " : " + e.getMessage(), e ); - } - } - - public String getDescription() - { - return "Legacy Artifact to Default Artifact Converter"; - } - - public String getId() - { - return "artifact-legacy-to-default-converter"; - } - - public boolean isPermanent() - { - return false; - } - - public void setExcludes( List excludes ) - { - this.excludes = excludes; - } - - public void setIncludes( List includes ) - { - this.includes = includes; - } - - public ArtifactRepository getDestinationRepository() - { - return destinationRepository; - } - - public void setDestinationRepository( ArtifactRepository destinationRepository ) - { - this.destinationRepository = destinationRepository; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyRepositoryConverter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyRepositoryConverter.java deleted file mode 100644 index 9a2f88ae1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyRepositoryConverter.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.converter.legacy; - -/* - * 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.converter.RepositoryConversionException; - -import java.io.File; -import java.util.List; - -/** - * Convert an entire repository. - * - * @author Jason van Zyl - */ -public interface LegacyRepositoryConverter -{ - String ROLE = LegacyRepositoryConverter.class.getName(); - - /** - * Convert a legacy repository to a modern repository. This means a Maven 1.x repository - * using v3 POMs to a Maven 2.x repository using v4.0.0 POMs. - * - * @param legacyRepositoryDirectory the directory of the legacy repository. - * @param destinationRepositoryDirectory the directory of the modern repository. - * @param fileExclusionPatterns the list of patterns to exclude from the conversion. - * @throws RepositoryConversionException - */ - void convertLegacyRepository( File legacyRepositoryDirectory, File destinationRepositoryDirectory, - List fileExclusionPatterns ) - throws RepositoryConversionException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/resources/org/apache/maven/archiva/converter/DefaultRepositoryConverter.properties b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/resources/org/apache/maven/archiva/converter/DefaultRepositoryConverter.properties deleted file mode 100644 index 8589df468..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/main/resources/org/apache/maven/archiva/converter/DefaultRepositoryConverter.properties +++ /dev/null @@ -1,38 +0,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. -# - -failure.incorrect.md5=The MD5 checksum value was incorrect. -failure.incorrect.sha1=The SHA1 checksum value was incorrect. -failure.target.already.exists=The artifact could not be converted because it already exists. -failure.invalid.source.pom=The source POM was invalid: {0}. - -warning.missing.pom=The artifact had no POM in the source repository. - -exception.repositories.match=Source and target repositories are identical. - -failure.incorrect.groupMetadata.groupId=The group ID in the source group metadata is incorrect. - -failure.incorrect.artifactMetadata.artifactId=The artifact ID in the source artifact metadata is incorrect. -failure.incorrect.artifactMetadata.groupId=The group ID in the source artifact metadata is incorrect. -failure.incorrect.artifactMetadata.versions=The version list in the source artifact metadata is incorrect. - -failure.incorrect.snapshotMetadata.artifactId=The artifact ID in the source artifact version metadata is incorrect. -failure.incorrect.snapshotMetadata.groupId=The group ID in the source artifact version metadata is incorrect. -failure.incorrect.snapshotMetadata.version=The version in the source artifact version metadata is incorrect. -failure.incorrect.snapshotMetadata.snapshot=The snapshot information in the source artifact version metadata is incorrect. diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-one.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-one.pom deleted file mode 100644 index cd3862d35..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-one.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - artifact-one - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-three.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-three.pom deleted file mode 100644 index 343291037..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-three.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - artifact-three - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-two.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-two.pom deleted file mode 100644 index 227470167..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-two.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - artifact-two - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-snapshot.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-snapshot.pom deleted file mode 100644 index 1615b6663..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-snapshot.pom +++ /dev/null @@ -1,28 +0,0 @@ - - 4.0.0 - test - v3artifact - 1.0.0-SNAPSHOT - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - test - - - junit - junit - 3.8.2 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom deleted file mode 100644 index 94307d863..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom +++ /dev/null @@ -1,28 +0,0 @@ - - 4.0.0 - test - v3artifact - 1.0.0-20060105.130101-3 - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - test - - - junit - junit - 3.8.2 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-warnings.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-warnings.pom deleted file mode 100644 index 25f4e76d0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-warnings.pom +++ /dev/null @@ -1,28 +0,0 @@ - - 4.0.0 - test - v3-warnings-artifact - 1.0.0 - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - test - - - junit - junit - 3.8.2 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3.pom deleted file mode 100644 index 9f8b63e16..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3.pom +++ /dev/null @@ -1,28 +0,0 @@ - - 4.0.0 - test - v3artifact - 1.0.0 - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - test - - - junit - junit - 3.8.2 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/maven-foo-plugin-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/maven-foo-plugin-1.0.pom deleted file mode 100644 index 17095cc57..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/maven-foo-plugin-1.0.pom +++ /dev/null @@ -1,7 +0,0 @@ - - 4.0.0 - org.apache.maven.plugins - maven-foo-plugin - 1.0.0 - maven-plugin - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/newversion-artifact-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/newversion-artifact-metadata.xml deleted file mode 100644 index ecc7f09a0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/newversion-artifact-metadata.xml +++ /dev/null @@ -1,10 +0,0 @@ - - test - newversion-artifact - - - 1.0.0 - 1.0.1 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml deleted file mode 100644 index ebd9be970..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml +++ /dev/null @@ -1,6 +0,0 @@ - - relocated-test - relocated-v3artifact - 1.0.0 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.jar deleted file mode 100644 index 29ef827e8a45b1039d908884aae4490157bcb2b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3 KcmXRj<^li#)c~{r diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom deleted file mode 100644 index 0180549f0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - 4.0.0 - relocated-test - relocated-v3artifact - 1.0.0 - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - test - - - junit - junit - 3.8.2 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml deleted file mode 100644 index b4b1a864a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - relocated-test - relocated-v3artifact - - - 1.0.0 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom deleted file mode 100644 index b20f62f9e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom +++ /dev/null @@ -1,12 +0,0 @@ - - test - relocated-v3artifact - 1.0.0 - - - relocated-test - relocated-v3artifact - 1.0.0 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-artifact-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-artifact-metadata.xml deleted file mode 100644 index a8a7f3748..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-artifact-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - test - v3artifact - - - 1.0.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml deleted file mode 100644 index 24d25a0e0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - test - v3artifact - - - 1.0.0-SNAPSHOT - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-metadata.xml deleted file mode 100644 index b19c537b5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-metadata.xml +++ /dev/null @@ -1,6 +0,0 @@ - - test - v3artifact - 1.0.0-SNAPSHOT - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml deleted file mode 100644 index 602c38ec8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - test - v3artifact - 1.0.0-SNAPSHOT - - - 20060105.130101 - 3 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-version-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-version-metadata.xml deleted file mode 100644 index 3c8938984..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-version-metadata.xml +++ /dev/null @@ -1,6 +0,0 @@ - - test - v3artifact - 1.0.0 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-artifact-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-artifact-metadata.xml deleted file mode 100644 index c0cdbfdb4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-artifact-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - test - v4artifact - - - 1.0.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml deleted file mode 100644 index f8072b0df..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - test - v4artifact - - - 1.0.0-SNAPSHOT - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-metadata.xml deleted file mode 100644 index d5ecb7d47..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-metadata.xml +++ /dev/null @@ -1,6 +0,0 @@ - - test - v4artifact - 1.0.0-SNAPSHOT - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml deleted file mode 100644 index 060a79cdd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - test - v4artifact - 1.0.0-SNAPSHOT - - - 20060111.120115 - 1 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-version-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-version-metadata.xml deleted file mode 100644 index 7cbd8ad3d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-version-metadata.xml +++ /dev/null @@ -1,6 +0,0 @@ - - test - v4artifact - 1.0.0 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/maven/archiva/converter/RepositoryConverterTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/maven/archiva/converter/RepositoryConverterTest.java deleted file mode 100644 index 4dbc2a434..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/maven/archiva/converter/RepositoryConverterTest.java +++ /dev/null @@ -1,153 +0,0 @@ -package org.apache.maven.archiva.converter; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.converter.legacy.LegacyRepositoryConverter; -import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; -import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; -import org.codehaus.plexus.i18n.I18N; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -/** - * Test the repository converter. - * - * @author Brett Porter - * @todo what about deletions from the source repository? - * @todo use artifact-test instead - * @todo should reject if dependencies are missing - rely on reporting? - * @todo group metadata - */ -public class RepositoryConverterTest - extends PlexusInSpringTestCase -{ - private ArtifactRepository sourceRepository; - - private ManagedRepositoryConfiguration targetRepository; - - private LegacyRepositoryConverter repositoryConverter; - - private ArtifactFactory artifactFactory; - - private static final int SLEEP_MILLIS = 100; - - private I18N i18n; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArtifactRepositoryFactory factory = (ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE ); - - ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" ); - - File sourceBase = getTestFile( "src/test/source-repository" ); - sourceRepository = factory.createArtifactRepository( "source", sourceBase.toURL().toString(), layout, null, - null ); - - layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default" ); - - File targetBase = getTestFile( "target/test-target-repository" ); - copyDirectoryStructure( getTestFile( "src/test/target-repository" ), targetBase ); - - targetRepository = new ManagedRepositoryConfiguration(); - targetRepository.setId( "target" ); - targetRepository.setName( "Target Repo" ); - targetRepository.setLocation( targetBase.getAbsolutePath() ); - targetRepository.setLayout( "default" ); - - repositoryConverter = (LegacyRepositoryConverter) lookup( LegacyRepositoryConverter.ROLE, "default" ); - - artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE ); - - i18n = (I18N) lookup( I18N.ROLE ); - } - - protected void tearDown() - throws Exception - { - super.tearDown(); - } - - private void copyDirectoryStructure( File sourceDirectory, File destinationDirectory ) - throws IOException - { - if ( !sourceDirectory.exists() ) - { - throw new IOException( "Source directory doesn't exists (" + sourceDirectory.getAbsolutePath() + ")." ); - } - - File[] files = sourceDirectory.listFiles(); - - String sourcePath = sourceDirectory.getAbsolutePath(); - - for ( int i = 0; i < files.length; i++ ) - { - File file = files[i]; - - String dest = file.getAbsolutePath(); - - dest = dest.substring( sourcePath.length() + 1 ); - - File destination = new File( destinationDirectory, dest ); - - if ( file.isFile() ) - { - destination = destination.getParentFile(); - - FileUtils.copyFileToDirectory( file, destination ); - } - else if ( file.isDirectory() ) - { - if ( !".svn".equals( file.getName() ) ) - { - if ( !destination.exists() && !destination.mkdirs() ) - { - throw new IOException( "Could not create destination directory '" - + destination.getAbsolutePath() + "'." ); - } - copyDirectoryStructure( file, destination ); - } - } - else - { - throw new IOException( "Unknown file type: " + file.getAbsolutePath() ); - } - } - } - - public void testLegacyConversion() - throws IOException, RepositoryConversionException - { - File legacyRepoDir = new File( sourceRepository.getBasedir() ); - File destRepoDir = new File( targetRepository.getLocation() ); - List excludes = new ArrayList(); - repositoryConverter.convertLegacyRepository( legacyRepoDir, destRepoDir, excludes ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/resources/log4j.properties b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/resources/log4j.properties deleted file mode 100644 index 9b2c26ade..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/resources/log4j.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Set root logger level to DEBUG and its only appender to A1. -log4j.rootLogger=WARN, A1 - -# A1 is set to be a ConsoleAppender. -log4j.appender.A1=org.apache.log4j.ConsoleAppender - -# A1 uses PatternLayout. -log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/resources/org/apache/maven/archiva/converter/RepositoryConverterTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/resources/org/apache/maven/archiva/converter/RepositoryConverterTest.xml deleted file mode 100644 index b1cf9640a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/resources/org/apache/maven/archiva/converter/RepositoryConverterTest.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - org.apache.maven.archiva.converter.RepositoryConverter - org.apache.maven.archiva.converter.DefaultRepositoryConverter - force-repository-converter - - true - - - - org.codehaus.plexus.digest.Digester - digesters - - - org.apache.maven.artifact.factory.ArtifactFactory - artifactFactory - - - org.codehaus.plexus.i18n.I18N - i18n - - - - - org.apache.maven.archiva.converter.RepositoryConverter - org.apache.maven.archiva.converter.DefaultRepositoryConverter - dryrun-repository-converter - - true - - - - org.codehaus.plexus.digest.Digester - digesters - - - org.apache.maven.artifact.factory.ArtifactFactory - artifactFactory - - - org.codehaus.plexus.i18n.I18N - i18n - - - - - - - org.codehaus.plexus.jdo.JdoFactory - archiva - org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory - - - - org.hsqldb.jdbcDriver - jdbc:hsqldb:mem:TESTDB - sa - - - - org.jpox.PersistenceManagerFactoryImpl - - - javax.jdo.PersistenceManagerFactoryClass - org.jpox.PersistenceManagerFactoryImpl - - - org.jpox.autoCreateSchema - true - - - org.jpox.validateTables - false - - - org.jpox.validateConstraints - false - - - org.jpox.validateColumns - false - - - org.jpox.autoStartMechanism - None - - - org.jpox.transactionIsolation - READ_UNCOMMITTED - - - org.jpox.poid.transactionIsolation - READ_UNCOMMITTED - - - org.jpox.rdbms.dateTimezone - JDK_DEFAULT_TIMEZONE - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.jar deleted file mode 100644 index 72af4bc10570756020552d23caa25003749de088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13 Ucmd1IOU^GUN=+{DO)=#H03_f9x&QzG diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom deleted file mode 100644 index b64e1d0f0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 3 - incorrectArtifactMetadata - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml deleted file mode 100644 index b393bcd3d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - test - incorrectArtifactMetadata - - - 0.9 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.jar deleted file mode 100644 index 72af4bc10570756020552d23caa25003749de088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13 Ucmd1IOU^GUN=+{DO)=#H03_f9x&QzG diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom deleted file mode 100644 index 929190af2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 3 - incorrectSnapshotMetadata - test - 1.0.0-20060102.030405-6 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 5980278b3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - test - incorrectSnapshotMetadata - 1.0.0-SNAPSHOT - - - 10 - 20060102.040506 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml deleted file mode 100644 index 3f9a0cef2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - test - incorrectSnapshotMetadata - - - 1.0.0-SNAPSHOT - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-one-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-one-1.0.0.jar deleted file mode 100644 index 5626abf0f72e58d7a153368ba57db4c673c0e171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4 Lcmd1LOXUIp1Kt5m diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-three-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-three-1.0.0.jar deleted file mode 100644 index 2bdf67abb163a4ffb2d7f3f0880c9fe5068ce782..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6 NcmXTPC`wJ`0ssh+0wVwb diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-two-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-two-1.0.0.jar deleted file mode 100644 index f719efd430d52bcfc8566a43b2eb655688d38871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4 LcmXRZ&*uUF1R()s diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/dryrun-artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/dryrun-artifact-1.0.0.jar deleted file mode 100644 index cbaf024e5e7fa87bdd8ad76b1393d9973585bc97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9 QcmYeT$Sf|&%uDA2021*7b^rhX diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/existing-artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/existing-artifact-1.0.0.jar deleted file mode 100644 index cbaf024e5e7fa87bdd8ad76b1393d9973585bc97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9 QcmYeT$Sf|&%uDA2021*7b^rhX diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar deleted file mode 100644 index 72af4bc10570756020552d23caa25003749de088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13 Ucmd1IOU^GUN=+{DO)=#H03_f9x&QzG diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md5 deleted file mode 100644 index 316d9a4eb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -379dcfcd1e6312cc859111f696047eb4 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar deleted file mode 100644 index f5812f3e58c13ea85ab61528dd70272d88a52921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14 Vcmd1IOU^GUN=+^a&PX)m0stzc1t9 - 4.0.0 - test - artifact-one - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom deleted file mode 100644 index 343291037..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - artifact-three - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom deleted file mode 100644 index 227470167..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - artifact-two - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom deleted file mode 100644 index 1953c5523..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom +++ /dev/null @@ -1,22 +0,0 @@ - - - - 4.0.0 - dryrun-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom deleted file mode 100644 index 74d5e12b4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 3 - incorrectMd5Artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom deleted file mode 100644 index fe3c7fd91..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 3 - incorrectSha1Artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom deleted file mode 100644 index a5a02c42d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 3 - maven-foo-plugin - org.apache.maven.plugins - 1.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom deleted file mode 100644 index fcfdaacb4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom +++ /dev/null @@ -1,22 +0,0 @@ - - - - 4.0.0 - modified-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom deleted file mode 100644 index f441c9a46..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom +++ /dev/null @@ -1,22 +0,0 @@ - - - - 4.0.0 - test - newversoin-artifact - 1.0.1 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom deleted file mode 100644 index ab112a296..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom +++ /dev/null @@ -1,27 +0,0 @@ - - 3 - relocated-v3artifact - test - 1.0.0 - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - - relocated-test - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom deleted file mode 100644 index 00692be72..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom +++ /dev/null @@ -1,39 +0,0 @@ - - - - 3 - v3artifact - test - 1.0.0 - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom deleted file mode 100644 index a8428a8a4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - unmodified-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom deleted file mode 100644 index 5f347f371..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom +++ /dev/null @@ -1,48 +0,0 @@ - - - - 3 - ../project.xml - v3-warnings-artifact - test - 1.0.0 - - - 1.0 - 1.0 - 1_0 - - - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom deleted file mode 100644 index d7ae8953b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom +++ /dev/null @@ -1,40 +0,0 @@ - - - - 3 - v3artifact - test - 1.0.0-20060105.130101-3 - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom deleted file mode 100644 index 3958a3358..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom +++ /dev/null @@ -1,40 +0,0 @@ - - - - 3 - v3artifact - test - 1.0.0-SNAPSHOT - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom deleted file mode 100644 index 5aed3437a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom +++ /dev/null @@ -1,24 +0,0 @@ - - 3 - v3artifact - test - 1.0.0 - - - groupId - artifactId - version - - - groupId - test-artifactId - version - - test - - - - - scm:cvs:ext:${maven.username}@localhost:/home/cvs - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom deleted file mode 100644 index e4f36566a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom +++ /dev/null @@ -1,22 +0,0 @@ - - - - 4.0.0 - test - v4artifact - 1.0.0-20060111.120115-1 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom deleted file mode 100644 index be5b8b7e2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom +++ /dev/null @@ -1,22 +0,0 @@ - - - - 4.0.0 - test - v4artifact - 1.0.0-SNAPSHOT - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom deleted file mode 100644 index fa6e82b1e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom +++ /dev/null @@ -1,6 +0,0 @@ - - 4.0.0 - test - v4artifact - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar deleted file mode 100644 index 27597bc21f5a2e82ea2b85a880cb2521f1f626a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11 ScmXTT%gs;8Ov_A7;Q{~~fCMi9 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom deleted file mode 100644 index d23afd027..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - modified-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.jar deleted file mode 100644 index 27597bc21f5a2e82ea2b85a880cb2521f1f626a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11 ScmXTT%gs;8Ov_A7;Q{~~fCMi9 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom deleted file mode 100644 index e21492ebf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - newversion-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml deleted file mode 100644 index 42537e4c5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - test - newversion-artifact - - - 1.0.0 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.jar deleted file mode 100644 index 27597bc21f5a2e82ea2b85a880cb2521f1f626a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11 ScmXTT%gs;8Ov_A7;Q{~~fCMi9 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom deleted file mode 100644 index a8428a8a4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - unmodified-artifact - test - 1.0.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/pom.xml deleted file mode 100644 index 9e629bd28..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/pom.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - 4.0.0 - archiva-dependency-graph - Archiva Base :: Dependency Graph - - - org.codehaus.plexus - plexus-spring - test - - - commons-collections - commons-collections - - - org.apache.archiva - archiva-model - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - descriptor - - descriptor - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/DependencyGraphFactory.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/DependencyGraphFactory.java deleted file mode 100644 index 3b20c858e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/DependencyGraphFactory.java +++ /dev/null @@ -1,198 +0,0 @@ -package org.apache.maven.archiva.dependency; - -/* - * 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.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder; -import org.apache.maven.archiva.dependency.graph.GraphListener; -import org.apache.maven.archiva.dependency.graph.GraphPhaseEvent; -import org.apache.maven.archiva.dependency.graph.GraphTask; -import org.apache.maven.archiva.dependency.graph.GraphTaskException; -import org.apache.maven.archiva.dependency.graph.PotentialCyclicEdgeProducer; -import org.apache.maven.archiva.dependency.graph.tasks.FlagCyclicEdgesTask; -import org.apache.maven.archiva.dependency.graph.tasks.FlagExcludedEdgesTask; -import org.apache.maven.archiva.dependency.graph.tasks.PopulateGraphMasterTask; -import org.apache.maven.archiva.dependency.graph.tasks.ReduceEnabledEdgesTask; -import org.apache.maven.archiva.dependency.graph.tasks.ReduceScopeTask; -import org.apache.maven.archiva.dependency.graph.tasks.ReduceTransitiveEdgesTask; -import org.apache.maven.archiva.dependency.graph.tasks.RefineConflictsTask; -import org.apache.maven.archiva.dependency.graph.tasks.UpdateScopesTask; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * DependencyGraphFactory - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyGraphFactory -{ - private GraphTask taskFlagCyclicEdges; - - private PopulateGraphMasterTask taskPopulateGraph; - - private ReduceScopeTask taskReduceScope; - - private List listeners; - - private DependencyGraphBuilder graphBuilder; - - private List tasks; - - public DependencyGraphFactory() - { - listeners = new ArrayList(); - - taskFlagCyclicEdges = new FlagCyclicEdgesTask(); - taskPopulateGraph = new PopulateGraphMasterTask(); - taskReduceScope = new ReduceScopeTask( DependencyScope.TEST ); - - tasks = new ArrayList(); - - /* Take the basic graph, and expand the nodes fully, including depman. - */ - tasks.add( taskPopulateGraph ); - - /* Identify, flag, and disable excluded edges. - */ - tasks.add( new FlagExcludedEdgesTask() ); - - /* Reduce the edges of the graph to only those that are enabled. - */ - tasks.add( new ReduceEnabledEdgesTask() ); - - /* Identify dependencies that conflict, resolve to single node. - * - * This will ... - * 1) filter the distant conflicts away for the nearer ones. - * 2) same distance nodes will pick 'newest' version. - * - * This can cause a collapsing of node versions. - */ - tasks.add( new RefineConflictsTask() ); - - /* Reduce the scope of the graph to those visible by the 'test' scope. - */ - tasks.add( taskReduceScope ); - - /* Reduce the edges of the graph. Use the transitive reduction algorithm - * to remove redundant edges. - */ - tasks.add( new ReduceTransitiveEdgesTask() ); - - /* Update the scopes of the edges to conform to the parent setting. - */ - tasks.add( new UpdateScopesTask() ); - } - - public void addGraphListener( GraphListener listener ) - { - this.listeners.add( listener ); - } - - /** - * Get the Graph for a specific Versioned Project Reference. - * - * @param versionedProjectReference - * @return - */ - public DependencyGraph getGraph( VersionedReference versionedProjectReference ) - throws GraphTaskException - { - DependencyGraph graph = graphBuilder.createGraph( versionedProjectReference ); - - triggerGraphPhase( GraphPhaseEvent.GRAPH_NEW, null, graph ); - - Iterator it = this.tasks.iterator(); - while ( it.hasNext() ) - { - GraphTask task = (GraphTask) it.next(); - try - { - triggerGraphPhase( GraphPhaseEvent.GRAPH_TASK_PRE, task, graph ); - task.executeTask( graph ); - if ( task instanceof PotentialCyclicEdgeProducer ) - { - taskFlagCyclicEdges.executeTask( graph ); - } - triggerGraphPhase( GraphPhaseEvent.GRAPH_TASK_POST, task, graph ); - } - catch ( GraphTaskException e ) - { - triggerGraphError( e, graph ); - throw e; - } - catch ( Exception e ) - { - GraphTaskException gte = new GraphTaskException( e.getMessage(), e ); - triggerGraphError( gte, graph ); - throw gte; - } - } - - triggerGraphPhase( GraphPhaseEvent.GRAPH_DONE, null, graph ); - - return graph; - } - - public void removeGraphListener( GraphListener listener ) - { - this.listeners.remove( listener ); - } - - public void setDesiredScope( String scope ) - { - taskReduceScope.setScope( scope ); - } - - public void setGraphBuilder( DependencyGraphBuilder graphBuilder ) - { - this.graphBuilder = graphBuilder; - taskPopulateGraph.setBuilder( graphBuilder ); - } - - private void triggerGraphError( GraphTaskException e, DependencyGraph graph ) - { - Iterator it = listeners.iterator(); - while ( it.hasNext() ) - { - GraphListener listener = (GraphListener) it.next(); - listener.graphError( e, graph ); - } - } - - private void triggerGraphPhase( int type, GraphTask task, DependencyGraph graph ) - { - GraphPhaseEvent evt = new GraphPhaseEvent( type, task, graph ); - - Iterator it = listeners.iterator(); - while ( it.hasNext() ) - { - GraphListener listener = (GraphListener) it.next(); - listener.graphPhaseEvent( evt ); - } - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraph.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraph.java deleted file mode 100644 index 43a470cab..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraph.java +++ /dev/null @@ -1,228 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.collections.map.ListOrderedMap; -import org.apache.maven.archiva.dependency.graph.functors.EdgeFromPredicate; -import org.apache.maven.archiva.dependency.graph.functors.EdgeToPredicate; -import org.apache.maven.archiva.model.ArtifactReference; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -/** - * DependencyGraph - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyGraph -{ - public static final int DISABLED_CYCLIC = 0; - - public static final int DISABLED_EXCLUDED = 1; - - public static final int DISABLED_OPTIONAL = 2; - - public static final int DISABLED_NEARER_DEP = 3; - - public static final int DISABLED_NEARER_EDGE = 4; - - private DependencyGraphNode rootNode; - - private Set edges = new HashSet(); - - private ListOrderedMap nodes = new ListOrderedMap(); - - public DependencyGraph( String groupId, String artifactId, String version ) - { - ArtifactReference rootRef = new ArtifactReference(); - rootRef.setGroupId( groupId ); - rootRef.setArtifactId( artifactId ); - rootRef.setVersion( version ); - rootRef.setClassifier( "" ); - rootRef.setType( "pom" ); - - this.rootNode = new DependencyGraphNode( rootRef ); - } - - public DependencyGraph( DependencyGraphNode root ) - { - this.rootNode = root; - } - - public Collection getEdges() - { - return edges; - } - - public Collection getNodes() - { - return nodes.values(); - } - - public DependencyGraphNode getRootNode() - { - return rootNode; - } - - public void setRootNode( DependencyGraphNode rootNode ) - { - this.rootNode = rootNode; - } - - /** - * Add the edge to the {@link DependencyGraph}. - * - * @param edge the edge to add. - */ - public void addEdge( final DependencyGraphEdge edge ) - { - if ( edge.getNodeFrom() == null ) - { - throw new IllegalArgumentException( "edge.nodeFrom cannot be null." ); - } - - if ( edge.getNodeTo() == null ) - { - throw new IllegalArgumentException( "edge.nodeTo cannot be null." ); - } - - this.edges.add( edge ); - } - - public DependencyGraphNode addNode( DependencyGraphNode node ) - { - if ( node == null ) - { - throw new IllegalArgumentException( "Unable to add a null node." ); - } - - if ( node.getArtifact() == null ) - { - throw new IllegalArgumentException( "Unable to add a node with a null artifact reference." ); - } - - int prevNodeIdx = this.nodes.indexOf( node ); - - // Found it in the node tree? - if ( prevNodeIdx >= 0 ) - { - // Merge new node into existing node. - DependencyGraphNode previousNode = (DependencyGraphNode) this.nodes.get( prevNodeIdx ); - - if ( CollectionUtils.isNotEmpty( node.getExcludes() ) ) - { - previousNode.getExcludes().addAll( node.getExcludes() ); - } - - if ( CollectionUtils.isNotEmpty( node.getDependencyManagement() ) ) - { - previousNode.getDependencyManagement().addAll( node.getDependencyManagement() ); - } - - if ( node.isFromParent() ) - { - previousNode.setFromParent( true ); - } - - // Return newly merged node (from existing node) - return previousNode; - } - - // This is a new node, didn't exist before, just save it. - this.nodes.put( node.getArtifact(), node ); - - return node; - } - - public boolean hasNode( DependencyGraphNode node ) - { - return this.nodes.containsKey( node.getArtifact() ); - } - - public boolean hasEdge( DependencyGraphEdge edge ) - { - return this.edges.contains( edge ); - } - - /** - * Get the list of edges from the provided node. - * - * @param node the node to use as the 'from' side of an edge. - * @return the edges from the provided node. - */ - public List getEdgesFrom( DependencyGraphNode node ) - { - List ret = new ArrayList(); - CollectionUtils.select( this.edges, new EdgeFromPredicate( node.getArtifact() ), ret ); - return ret; - } - - /** - * Get the list of edges to the provided node. - * - * @param node the node to use as the 'to' side of an edge. - * @return the edges to the provided node. - */ - public List getEdgesTo( DependencyGraphNode node ) - { - List ret = new ArrayList(); - CollectionUtils.select( this.edges, new EdgeToPredicate( node.getArtifact() ), ret ); - return ret; - } - - /** - * Get the node for the specified artifact reference. - * - * @param ref the artifact reference to use to find the node. - * @return the node that was found. (null if not found) - */ - public DependencyGraphNode getNode( ArtifactReference ref ) - { - return (DependencyGraphNode) this.nodes.get( ref ); - } - - public void removeEdge( DependencyGraphEdge edge ) - { - this.edges.remove( edge ); - } - - public void removeNode( DependencyGraphNode node ) - { - List edges = getEdgesFrom( node ); - if ( !edges.isEmpty() ) - { - System.out.println( "Removing node left <" + edges + "> hanging edges." ); - } - - edges = getEdgesTo( node ); - if ( !edges.isEmpty() ) - { - System.out.println( "Removing node left <" + edges + "> hanging edges." ); - } - - this.nodes.remove( node.getArtifact() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphBuilder.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphBuilder.java deleted file mode 100644 index b194a5798..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphBuilder.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.VersionedReference; - -/** - * DependencyGraphBuilder - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface DependencyGraphBuilder -{ - /** - * Given a node and a versioned project rexpandeference, resolve the details of the node, creating - * any dependencies and edges as needed. - * - * @param graph the graph to add nodes and edges to. - * @param node the node where the resolution should occur. - * @param versionedProjectReference the versioned project reference for the node - * that needs to be resolved. - */ - public void resolveNode( DependencyGraph graph, DependencyGraphNode node, - VersionedReference versionedProjectReference ); - - /** - * Create a new graph, with the root of the graph for the node specified. - * - * @param versionedProjectReference the root node for the graph. - * @return the new DependencyGraph, complete with root node and direct dependencies. - */ - public DependencyGraph createGraph( VersionedReference versionedProjectReference ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphEdge.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphEdge.java deleted file mode 100644 index a0c98fbe5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphEdge.java +++ /dev/null @@ -1,188 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.model.DependencyScope; - -/** - * DependencyGraphEdge - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyGraphEdge -{ - private ArtifactReference nodeFrom; - - private ArtifactReference nodeTo; - - private String scope; - - private boolean disabled = false; - - private int disabledType; - - private String disabledReason; - - public DependencyGraphEdge( ArtifactReference fromNode, ArtifactReference toNode ) - { - super(); - this.nodeFrom = fromNode; - this.nodeTo = toNode; - this.scope = DependencyScope.COMPILE; - } - - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - if ( obj == null ) - { - return false; - } - if ( getClass() != obj.getClass() ) - { - return false; - } - final DependencyGraphEdge other = (DependencyGraphEdge) obj; - if ( nodeFrom == null ) - { - if ( other.nodeFrom != null ) - { - return false; - } - } - else if ( !nodeFrom.equals( other.nodeFrom ) ) - { - return false; - } - if ( nodeTo == null ) - { - if ( other.nodeTo != null ) - { - return false; - } - } - else if ( !nodeTo.equals( other.nodeTo ) ) - { - return false; - } - return true; - } - - public String getDisabledReason() - { - return disabledReason; - } - - public int getDisabledType() - { - return disabledType; - } - - public ArtifactReference getNodeFrom() - { - return nodeFrom; - } - - public ArtifactReference getNodeTo() - { - return nodeTo; - } - - public String getScope() - { - return scope; - } - - public int hashCode() - { - final int PRIME = 31; - int result = 1; - result = PRIME * result + ( ( nodeFrom == null ) ? 0 : nodeFrom.hashCode() ); - result = PRIME * result + ( ( nodeTo == null ) ? 0 : nodeTo.hashCode() ); - return result; - } - - public boolean isDisabled() - { - return disabled; - } - - public void setDisabled( boolean disabled ) - { - this.disabled = disabled; - if( this.disabled == false ) - { - this.disabledReason = null; - this.disabledType = -1; - } - } - - public void setDisabledReason( String disabledReason ) - { - this.disabledReason = disabledReason; - } - - public void setDisabledType( int disabledType ) - { - this.disabledType = disabledType; - } - - public void setNodeFrom( ArtifactReference ref ) - { - this.nodeFrom = ref; - } - - public void setNodeFrom( DependencyGraphNode node ) - { - this.nodeFrom = node.getArtifact(); - } - - public void setNodeTo( ArtifactReference ref ) - { - this.nodeTo = ref; - } - - public void setNodeTo( DependencyGraphNode node ) - { - this.nodeTo = node.getArtifact(); - } - - public void setScope( String scope ) - { - this.scope = scope; - } - - public String toString() - { - StringBuffer sb = new StringBuffer(); - - sb.append( "GraphEdge[" ); - sb.append( "from=" ).append( DependencyGraphKeys.toKey( nodeFrom ) ); - sb.append( ",to=" ).append( DependencyGraphKeys.toKey( nodeTo ) ); - sb.append( "]" ); - - return sb.toString(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphKeys.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphKeys.java deleted file mode 100644 index 2087de5a5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphKeys.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.Exclusion; - -/** - * Key generation for the various objects used within the DependencyGraph. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyGraphKeys -{ - public static String toManagementKey( DependencyGraphNode node ) - { - return toManagementKey( node.getArtifact() ); - } - - public static String toManagementKey( ArtifactReference ref ) - { - StringBuffer key = new StringBuffer(); - key.append( ref.getGroupId() ).append( ":" ); - key.append( ref.getArtifactId() ); - return key.toString(); - } - - public static String toManagementKey( Dependency ref ) - { - StringBuffer key = new StringBuffer(); - key.append( ref.getGroupId() ).append( ":" ); - key.append( ref.getArtifactId() ); - return key.toString(); - } - - public static String toManagementKey( Exclusion ref ) - { - StringBuffer key = new StringBuffer(); - key.append( ref.getGroupId() ).append( ":" ); - key.append( ref.getArtifactId() ); - return key.toString(); - } - - public static String toKey( DependencyGraphNode node ) - { - return toKey( node.getArtifact() ); - } - - public static String toKey( ArtifactReference ref ) - { - StringBuffer key = new StringBuffer(); - key.append( ref.getGroupId() ).append( ":" ); - key.append( ref.getArtifactId() ).append( ":" ); - key.append( ref.getVersion() ).append( ":" ); - key.append( StringUtils.defaultString( ref.getClassifier() ) ).append( ":" ); - key.append( ref.getType() ); - return key.toString(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphNode.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphNode.java deleted file mode 100644 index 90ab4499e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphNode.java +++ /dev/null @@ -1,191 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.Exclusion; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -/** - * DependencyGraphNode - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyGraphNode -{ - /** - * The artifact reference for this node. - */ - private ArtifactReference artifact; - - /** - * The project level dependency management section for this artifact. - */ - private List dependencyManagement = new ArrayList(); - - /** - * The list of excluded groupId:artifactId for this node's sub-nodes. - */ - private Set excludes = new HashSet(); - - /** - * Flag indicating that this node has been resolved from disk. - * Initially this is set to false, when the node is added due to a dependency entry in the - * project's pom. - * When the resolver comes through and reads the model for this node, it sets this to true. - */ - private boolean resolved = false; - - /** - * Flag indicating that this dependency exists because of a parent dependency. - * TODO: move this to DependencyGraphEdge (where it really belongs) - */ - private boolean fromParent = false; - - /** - * Booleaning indicating that this node is in conflict with another node in the graph. - * If this is true, that means this node is flagged for removal. - */ - private boolean conflicted = false; - - public DependencyGraphNode( ArtifactReference artifact ) - { - super(); - this.artifact = artifact; - } - - public void addExclude( Exclusion exclusion ) - { - this.excludes.add( DependencyGraphKeys.toManagementKey( exclusion ) ); - } - - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - if ( obj == null ) - { - return false; - } - if ( getClass() != obj.getClass() ) - { - return false; - } - final DependencyGraphNode other = (DependencyGraphNode) obj; - if ( artifact == null ) - { - if ( other.artifact != null ) - { - return false; - } - } - else if ( !artifact.equals( other.artifact ) ) - { - return false; - } - return true; - } - - public ArtifactReference getArtifact() - { - return artifact; - } - - public List getDependencyManagement() - { - return dependencyManagement; - } - - public Set getExcludes() - { - return excludes; - } - - public int hashCode() - { - final int PRIME = 31; - int result = 1; - result = PRIME * result + ( ( artifact == null ) ? 0 : artifact.hashCode() ); - return result; - } - - public boolean isConflicted() - { - return conflicted; - } - - public boolean isResolved() - { - return resolved; - } - - public void addDependencyManagement( Dependency dep ) - { - this.dependencyManagement.add( dep ); - } - - public void setArtifact( ArtifactReference artifact ) - { - this.artifact = artifact; - } - - public void setConflicted( boolean conflicted ) - { - this.conflicted = conflicted; - } - - public void setDependencyManagement( List dependencyManagement ) - { - this.dependencyManagement = dependencyManagement; - } - - public void setExcludes( Set excludes ) - { - this.excludes = excludes; - } - - public void setResolved( boolean resolved ) - { - this.resolved = resolved; - } - - public String toString() - { - return DependencyGraphKeys.toKey( artifact ); - } - - public boolean isFromParent() - { - return fromParent; - } - - public void setFromParent( boolean fromParent ) - { - this.fromParent = fromParent; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphUtils.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphUtils.java deleted file mode 100644 index e70d488ef..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphUtils.java +++ /dev/null @@ -1,289 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.collections.Predicate; -import org.apache.commons.collections.functors.AndPredicate; -import org.apache.commons.collections.functors.NotPredicate; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.dependency.graph.functors.NodePredicate; -import org.apache.maven.archiva.dependency.graph.functors.OrphanedNodePredicate; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.Exclusion; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -/** - * Utilities for manipulating the DependencyGraph. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyGraphUtils -{ - /** - * Standard way to add a model to the graph. - * - * NOTE: Used by archiva-repository-layer runtime and archiva-dependency-graph tests. - * - * @param model the model to add - * @param graph the graph to add it to - * @param fromNode the node to add it from. - */ - public static void addNodeFromModel( ArchivaProjectModel model, DependencyGraph graph, DependencyGraphNode fromNode ) - { - if ( model == null ) - { - throw new IllegalStateException( "Unable to add null model for " - + DependencyGraphKeys.toKey( fromNode.getArtifact() ) ); - } - - if ( model.getRelocation() != null ) - { - // We need to CHANGE this node. - ArtifactReference refTO = new ArtifactReference(); - - refTO.setGroupId( fromNode.getArtifact().getGroupId() ); - refTO.setArtifactId( fromNode.getArtifact().getArtifactId() ); - refTO.setVersion( fromNode.getArtifact().getVersion() ); - refTO.setClassifier( fromNode.getArtifact().getClassifier() ); - refTO.setType( fromNode.getArtifact().getType() ); - - VersionedReference relocation = model.getRelocation(); - - if ( StringUtils.isNotBlank( relocation.getGroupId() ) ) - { - refTO.setGroupId( relocation.getGroupId() ); - } - - if ( StringUtils.isNotBlank( relocation.getArtifactId() ) ) - { - refTO.setArtifactId( relocation.getArtifactId() ); - } - - if ( StringUtils.isNotBlank( relocation.getVersion() ) ) - { - refTO.setVersion( relocation.getVersion() ); - } - - DependencyGraphNode nodeTO = new DependencyGraphNode( refTO ); - - graph.addNode( nodeTO ); - collapseNodes( graph, fromNode, nodeTO ); - return; - } - - boolean isRootNode = graph.getRootNode().equals( fromNode ); - - Iterator it; - - if ( CollectionUtils.isNotEmpty( model.getDependencyManagement() ) ) - { - it = model.getDependencyManagement().iterator(); - while ( it.hasNext() ) - { - Dependency dependency = (Dependency) it.next(); - fromNode.addDependencyManagement( dependency ); - } - } - - if ( CollectionUtils.isNotEmpty( model.getDependencies() ) ) - { - it = model.getDependencies().iterator(); - while ( it.hasNext() ) - { - Dependency dependency = (Dependency) it.next(); - - String scope = dependency.getScope(); - - // Test scopes *NOT* from root node can be skipped. - if ( DependencyScope.TEST.equals( scope ) && !isRootNode ) - { - // skip add of test scope - continue; - } - - ArtifactReference artifactRef = new ArtifactReference(); - artifactRef.setGroupId( dependency.getGroupId() ); - artifactRef.setArtifactId( dependency.getArtifactId() ); - artifactRef.setVersion( dependency.getVersion() ); - artifactRef.setClassifier( dependency.getClassifier() ); - artifactRef.setType( dependency.getType() ); - - DependencyGraphNode toNode = new DependencyGraphNode( artifactRef ); - - if ( CollectionUtils.isNotEmpty( dependency.getExclusions() ) ) - { - Iterator itexclusion = dependency.getExclusions().iterator(); - while ( itexclusion.hasNext() ) - { - Exclusion exclusion = (Exclusion) itexclusion.next(); - toNode.addExclude( exclusion ); - } - } - - if ( dependency.isFromParent() ) - { - toNode.setFromParent( true ); - } - - // Add node (to) - graph.addNode( toNode ); - - DependencyGraphEdge edge = new DependencyGraphEdge( fromNode.getArtifact(), toNode.getArtifact() ); - edge.setScope( StringUtils.defaultIfEmpty( dependency.getScope(), DependencyScope.COMPILE ) ); - - if ( dependency.isOptional() ) - { - edge.setDisabled( true ); - edge.setDisabledType( DependencyGraph.DISABLED_OPTIONAL ); - edge.setDisabledReason( "Optional Dependency" ); - } - - graph.addEdge( edge ); - } - } - - fromNode.setResolved( true ); - graph.addNode( fromNode ); - } - - /** - * Clean out any nodes that may have become orphaned in the graph. - * - * @param graph the graph to check. - */ - public static void cleanupOrphanedNodes( DependencyGraph graph ) - { - boolean done = false; - - Predicate orphanedNodePredicate = new OrphanedNodePredicate( graph ); - Predicate notRootNode = NotPredicate.getInstance( new NodePredicate( graph.getRootNode().getArtifact() ) ); - Predicate orphanedChildNodePredicate = AndPredicate.getInstance( notRootNode, orphanedNodePredicate ); - - while ( !done ) - { - // Find orphaned node. - DependencyGraphNode orphanedNode = (DependencyGraphNode) CollectionUtils.find( graph.getNodes(), - orphanedChildNodePredicate ); - - if ( orphanedNode == null ) - { - done = true; - break; - } - - // Remove edges FROM orphaned node. - List edgesFrom = graph.getEdgesFrom( orphanedNode ); - - Iterator it = edgesFrom.iterator(); - while ( it.hasNext() ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); - graph.removeEdge( edge ); - } - - // Remove orphaned node. - graph.removeNode( orphanedNode ); - } - } - - /** - * Functionaly similar to {@link #collapseVersions(DependencyGraph, ArtifactReference, String, String)}, but - * in a new, easier to use, format. - * - * 1) Removes the FROM edges connected to the FROM node - * 2) Moves the TO edges connected to the FROM node to the TO node. - * 3) Removes the FROM node (which is now orphaned) - * - * @param graph the graph to perform operation on - * @param nodeFrom the node to collapse from - * @param nodeTo the node to collapse to - */ - public static void collapseNodes( DependencyGraph graph, DependencyGraphNode nodeFROM, DependencyGraphNode nodeTO ) - { - Iterator it; - - Set edgesToRemove = new HashSet(); - - // 1) Remove all of the edge.from references from nodeFROM - List fromEdges = graph.getEdgesFrom( nodeFROM ); - if ( CollectionUtils.isNotEmpty( fromEdges ) ) - { - edgesToRemove.addAll( fromEdges ); - } - - // 2) Swing all of the edge.to references from nodeFROM to nodeTO. - // System.out.println( "Swinging incoming edges from " + nodeFROM ); - // System.out.println( " to " + nodeTO ); - List toEdges = graph.getEdgesTo( nodeFROM ); - it = toEdges.iterator(); - while ( it.hasNext() ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); - - // Identify old edge to remove. - edgesToRemove.add( edge ); - - // Clone edge, set edge.to and add to graph. - DependencyGraphEdge newedge = clone( edge ); - newedge.setNodeTo( nodeTO ); - // System.out.println( " edge from: " + edge ); - // System.out.println( " to: " + newedge ); - graph.addEdge( newedge ); - } - - // Actually remove the old edges. - it = edgesToRemove.iterator(); - while ( it.hasNext() ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); - graph.removeEdge( edge ); - } - - // 3) Remove the nodeFROM - graph.removeNode( nodeFROM ); - } - - /** - * Create a clone of an edge. - * - * @param edge the edge to clone. - * @return the cloned edge. - */ - public static DependencyGraphEdge clone( DependencyGraphEdge edge ) - { - DependencyGraphEdge cloned = new DependencyGraphEdge( edge.getNodeFrom(), edge.getNodeTo() ); - cloned.setDisabled( edge.isDisabled() ); - cloned.setDisabledReason( edge.getDisabledReason() ); - cloned.setDisabledType( edge.getDisabledType() ); - cloned.setScope( edge.getScope() ); - - return cloned; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyResolutionEvent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyResolutionEvent.java deleted file mode 100644 index c47c1d092..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyResolutionEvent.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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. - */ - -/** - * DependencyResolutionEvent - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyResolutionEvent -{ - public static final int ADDING_MODEL = 1; - - public static final int DEP_CONFLICT_OMIT_FOR_NEARER = 2; - - public static final int CYCLE_BROKEN = 3; - - public static final int APPLYING_DEPENDENCY_MANAGEMENT = 4; - - private int type; - - private DependencyGraph graph; - - public DependencyResolutionEvent( int type, DependencyGraph graph ) - { - this.type = type; - this.graph = graph; - } - - public DependencyGraph getGraph() - { - return graph; - } - - public int getType() - { - return type; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphListener.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphListener.java deleted file mode 100644 index 149ea1d4e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphListener.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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. - */ - -/** - * GraphListener - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface GraphListener -{ - public void graphError( GraphTaskException e, DependencyGraph currentGraph ); - - public void graphPhaseEvent( GraphPhaseEvent event ); - - public void dependencyResolutionEvent( DependencyResolutionEvent event ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphPhaseEvent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphPhaseEvent.java deleted file mode 100644 index cd1a8ccd2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphPhaseEvent.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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. - */ - -/** - * GraphPhaseEvent - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class GraphPhaseEvent -{ - /** - * Graph Phase Event Type - New Graph has been created. No tasks have been run yet. - * NOTE: {{@link #getTask()} will be null for this type. - */ - public static final int GRAPH_NEW = 0; - - /** - * Graph Phase Event Type - Graph Task is about to run. - */ - public static final int GRAPH_TASK_PRE = 1; - - /** - * Graph Phase Event Type - Graph Task has finished. - */ - public static final int GRAPH_TASK_POST = 2; - - /** - * Graph Phase Event Type - All Graph Tasks are done. - * NOTE: {{@link #getTask()} will be null for this type. - */ - public static final int GRAPH_DONE = 10; - - private int type; - - private GraphTask task; - - private DependencyGraph graph; - - public GraphPhaseEvent( int type, GraphTask task, DependencyGraph graph ) - { - this.type = type; - this.task = task; - this.graph = graph; - } - - public DependencyGraph getGraph() - { - return graph; - } - - public GraphTask getTask() - { - return task; - } - - public int getType() - { - return type; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTask.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTask.java deleted file mode 100644 index 38ca1e356..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTask.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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. - */ - -/** - * A Graph Task. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface GraphTask -{ - /** - * Get the id for this task. - * - * @return the id for this task. (used in Exception messages and {@link GraphPhaseEvent}) - */ - public String getTaskId(); - - /** - * Execute the Graph Task. - * - * @param graph the graph to execute the task on. - */ - public void executeTask( DependencyGraph graph ) - throws GraphTaskException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTaskException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTaskException.java deleted file mode 100644 index 75aceccf1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTaskException.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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; - -/** - * GraphTaskException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class GraphTaskException - extends ArchivaException -{ - public GraphTaskException( String message, Throwable cause ) - { - super( message, cause ); - } - - public GraphTaskException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/PotentialCyclicEdgeProducer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/PotentialCyclicEdgeProducer.java deleted file mode 100644 index 2cd744675..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/PotentialCyclicEdgeProducer.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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. - */ - -/** - * A tag for a {@link GraphTask} that has the potential to produce a cyclic edge. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface PotentialCyclicEdgeProducer -{ - /* no interface, just a tag */ -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeCyclicPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeCyclicPredicate.java deleted file mode 100644 index 2dcd81d83..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeCyclicPredicate.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; - -/** - * EdgeCyclicPredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EdgeCyclicPredicate - implements Predicate -{ - private static Predicate INSTANCE = new EdgeCyclicPredicate(); - - public static Predicate getInstance() - { - return INSTANCE; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphEdge ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) object; - satisfies = ( edge.isDisabled() && ( edge.getDisabledType() == DependencyGraph.DISABLED_CYCLIC ) ); - } - - return satisfies; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeDisabledPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeDisabledPredicate.java deleted file mode 100644 index 05aeaac31..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeDisabledPredicate.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; - -/** - * EdgeDisabledPredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EdgeDisabledPredicate - implements Predicate -{ - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphEdge ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) object; - satisfies = edge.isDisabled(); - } - - return satisfies; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExactScopePredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExactScopePredicate.java deleted file mode 100644 index 852f32253..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExactScopePredicate.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Predicate; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.model.DependencyScope; - -/** - * EdgeExactScopePredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EdgeExactScopePredicate - implements Predicate -{ - private String scope; - - public EdgeExactScopePredicate( String scope ) - { - this.scope = scope; - } - - public EdgeExactScopePredicate() - { - // The universal default for scope. - this.scope = DependencyScope.COMPILE; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphEdge ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) object; - satisfies = StringUtils.equals( edge.getScope(), scope ); - } - - return satisfies; - } - - public String getScope() - { - return scope; - } - - public void setScope( String scope ) - { - this.scope = scope; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExcludedPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExcludedPredicate.java deleted file mode 100644 index 951b1ba92..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExcludedPredicate.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; - -/** - * EdgeExcludedPredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EdgeExcludedPredicate - implements Predicate -{ - private static Predicate INSTANCE = new EdgeExcludedPredicate(); - - public static Predicate getInstance() - { - return INSTANCE; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphEdge ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) object; - satisfies = ( edge.isDisabled() && ( edge.getDisabledType() == DependencyGraph.DISABLED_EXCLUDED ) ); - } - - return satisfies; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeFromPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeFromPredicate.java deleted file mode 100644 index f4a0bff17..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeFromPredicate.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.model.ArtifactReference; - -/** - * Predicate returns true on any DependencyGraphEdge which has a - * specific FROM node. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EdgeFromPredicate - implements Predicate -{ - private ArtifactReference nodeRef; - - public EdgeFromPredicate( ArtifactReference ref ) - { - this.nodeRef = ref; - } - - public EdgeFromPredicate( DependencyGraphNode node ) - { - this( node.getArtifact() ); - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphEdge ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) object; - satisfies = edge.getNodeFrom().equals( nodeRef ); - } - - return satisfies; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeScopeClosure.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeScopeClosure.java deleted file mode 100644 index 954acd164..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeScopeClosure.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Closure; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; - -/** - * Closure to set the edge scope. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EdgeScopeClosure - implements Closure -{ - private String scope; - - public EdgeScopeClosure( String scope ) - { - this.scope = scope; - } - - public void execute( Object input ) - { - if ( input instanceof DependencyGraphEdge ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) input; - edge.setScope( scope ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeToPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeToPredicate.java deleted file mode 100644 index e2882db31..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeToPredicate.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.model.ArtifactReference; - -/** - * EdgeToPredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EdgeToPredicate - implements Predicate -{ - private ArtifactReference nodeRef; - - public EdgeToPredicate( ArtifactReference ref ) - { - this.nodeRef = ref; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphEdge ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) object; - satisfies = edge.getNodeTo().equals( nodeRef ); - } - - return satisfies; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeWithinScopePredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeWithinScopePredicate.java deleted file mode 100644 index 9c2928e8e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeWithinScopePredicate.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.model.DependencyScope; - -/** - * EdgeWithinScopePredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EdgeWithinScopePredicate - implements Predicate -{ - private String scope; - - public EdgeWithinScopePredicate( String scope ) - { - this.scope = scope; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphEdge ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) object; - satisfies = DependencyScope.isWithinScope( edge.getScope(), scope ); - } - - return satisfies; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeFromParentPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeFromParentPredicate.java deleted file mode 100644 index eac60d4a2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeFromParentPredicate.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; - -/** - * Predicate for nodes that are flagged as from parent pom reference. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class NodeFromParentPredicate - implements Predicate -{ - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - if ( object instanceof DependencyGraphNode ) - { - DependencyGraphNode node = (DependencyGraphNode) object; - satisfies = node.isFromParent(); - } - return satisfies; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeInEdgePredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeInEdgePredicate.java deleted file mode 100644 index a3eba0d80..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeInEdgePredicate.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.model.ArtifactReference; - -/** - * NodeInEdgePredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class NodeInEdgePredicate - implements Predicate -{ - private ArtifactReference nodeRef; - - public NodeInEdgePredicate( ArtifactReference ref ) - { - this.nodeRef = ref; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphEdge ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) object; - satisfies = ( edge.getNodeFrom().equals( nodeRef ) || edge.getNodeTo().equals( nodeRef ) ); - } - - return satisfies; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodePredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodePredicate.java deleted file mode 100644 index da0373679..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodePredicate.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.model.ArtifactReference; - -/** - * NodePredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class NodePredicate - implements Predicate -{ - private ArtifactReference ref; - - public NodePredicate( ArtifactReference ref ) - { - this.ref = ref; - } - - public NodePredicate( DependencyGraphNode node ) - { - this( node.getArtifact() ); - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphNode ) - { - DependencyGraphNode node = (DependencyGraphNode) object; - satisfies = ref.equals( node.getArtifact() ); - } - - return satisfies; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/OrphanedNodePredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/OrphanedNodePredicate.java deleted file mode 100644 index 2abbd6d98..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/OrphanedNodePredicate.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; - -/** - * OrphanedNodePredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class OrphanedNodePredicate - implements Predicate -{ - private DependencyGraph graph; - - public OrphanedNodePredicate( DependencyGraph graph ) - { - this.graph = graph; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphNode ) - { - DependencyGraphNode node = (DependencyGraphNode) object; - satisfies = CollectionUtils.isEmpty( graph.getEdgesTo( node ) ); - } - - return satisfies; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/ToArtifactReferenceTransformer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/ToArtifactReferenceTransformer.java deleted file mode 100644 index bde317c52..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/ToArtifactReferenceTransformer.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Transformer; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; - -/** - * Transform some common dependency graph objects into their - * ArtifactReference form. - */ -public class ToArtifactReferenceTransformer - implements Transformer -{ - public Object transform( Object input ) - { - if ( input instanceof DependencyGraphNode ) - { - return ( (DependencyGraphNode) input ).getArtifact(); - } - - // TODO: Add more objects to transform here. - - return input; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/UnresolvedGraphNodePredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/UnresolvedGraphNodePredicate.java deleted file mode 100644 index e1bf0afcd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/UnresolvedGraphNodePredicate.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; - -/** - * Predicate for unresolved {@link DependencyGraphNode} objects. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UnresolvedGraphNodePredicate - implements Predicate -{ - private static UnresolvedGraphNodePredicate INSTANCE = new UnresolvedGraphNodePredicate(); - - public static Predicate getInstance() - { - return INSTANCE; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphNode ) - { - DependencyGraphNode node = (DependencyGraphNode) object; - satisfies = !( node.isResolved() ); - } - - return satisfies; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/AbstractReduceEdgeVisitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/AbstractReduceEdgeVisitor.java deleted file mode 100644 index 107a758fb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/AbstractReduceEdgeVisitor.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphUtils; -import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; - -/** - * AbstractReduceEdgeVisitor - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractReduceEdgeVisitor - extends BaseVisitor - implements DependencyGraphVisitor -{ - public void finishGraph( DependencyGraph graph ) - { - super.finishGraph( graph ); - - DependencyGraphUtils.cleanupOrphanedNodes( graph ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementApplier.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementApplier.java deleted file mode 100644 index b83f28fb5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementApplier.java +++ /dev/null @@ -1,218 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.DependencyGraphUtils; -import org.apache.maven.archiva.dependency.graph.tasks.DependencyManagementStack.Rules; -import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * Takes a stack of DependencyManagement objects and applies them to the node in question. - * This merely sets the version / scope / and exclusions on the nodes, as defined by DependencyManagement. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyManagementApplier - extends BaseVisitor - implements DependencyGraphVisitor -{ - private DependencyManagementStack depStack = new DependencyManagementStack(); - - private DependencyGraphBuilder builder; - - /** - * Map of changes to node versions (that will likely cause a reorganization of - * the graph), this is tracked until the walk is complete, at which point the - * changes are applied to the graph. - * - * Performing graph changes of this scope during a walk of graph is hazardous, - * as you will be moving nodes around, mergeing nodes, dropping edges, etc. - */ - private Map nodeVersionChanges = new HashMap(); - - private int nodesAdded = 0; - - public void discoverGraph( DependencyGraph graph ) - { - super.discoverGraph( graph ); - nodeVersionChanges.clear(); - depStack.reset(); - nodesAdded = 0; - } - - public void discoverNode( DependencyGraphNode node ) - { - super.discoverNode( node ); - - depStack.push( node ); - - List edgesFrom = graph.getEdgesFrom( node ); - Iterator it = edgesFrom.iterator(); - while ( it.hasNext() ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); - Rules rules = depStack.getRules( edge ); - - if ( rules == null ) - { - // No rules for edge, skip it. - continue; - } - - DependencyGraphNode subnode = graph.getNode( edge.getNodeTo() ); - - /* There are 3 steps to processing the DependencyManagement. */ - - /* 1) Add exclusions to node ________________________________________________ */ - node.getExcludes().addAll( rules.exclusions ); - - /* 2) Track version changes to node _________________________________________ */ - - // This is the version as specified by the rules. - String specifiedVersion = rules.artifact.getVersion(); - - // This is the version as being tracked by the nodeVersionChanges map. - String trackedVersion = (String) nodeVersionChanges.get( edge.getNodeTo() ); - - // This is the version of the subnode. - String nodeVersion = subnode.getArtifact().getVersion(); - - // This is the actual version as determined by tracked and subnode - String actualVersion = StringUtils.defaultString( trackedVersion, nodeVersion ); - - // If the specified version changes the actual version ... - if ( !StringUtils.equals( specifiedVersion, actualVersion ) ) - { - // ... save this new value to be track ( for processing in #finishedGraph ) - nodeVersionChanges.put( edge.getNodeTo(), specifiedVersion ); - } - - /* 3) Update scope to edge __________________________________________________ */ - - if ( StringUtils.isNotBlank( rules.scope ) ) - { - edge.setScope( rules.scope ); - } - } - } - - public void finishNode( DependencyGraphNode node ) - { - super.finishNode( node ); - - depStack.pop(); - } - - public void finishGraph( DependencyGraph graph ) - { - super.finishGraph( graph ); - - Iterator it = this.nodeVersionChanges.keySet().iterator(); - while ( it.hasNext() ) - { - ArtifactReference ref = (ArtifactReference) it.next(); - String toVersion = (String) this.nodeVersionChanges.get( ref ); - - collapseVersions( graph, ref, ref.getVersion(), toVersion ); - } - } - - /** - * Collapses Versions of nodes. - * - * Takes two nodes, with differing versions. - * - * 1) Removes the FROM edges connected to the FROM node - * 2) Moves the TO edges connected to the FROM node to the TO node. - * 3) Removes the FROM node (which is now orphaned) - * - * @param graph the graph to perform operation on - * @param fromRef the artifact reference of the FROM node. - * @param fromVersion the version of the FROM node - * @param toVersion the version of the TO node - */ - private void collapseVersions( DependencyGraph graph, ArtifactReference fromRef, String fromVersion, - String toVersion ) - { - if ( StringUtils.equals( fromVersion, toVersion ) ) - { - // No point in doing anything. nothing has changed. - return; - } - - ArtifactReference toRef = new ArtifactReference(); - toRef.setGroupId( fromRef.getGroupId() ); - toRef.setArtifactId( fromRef.getArtifactId() ); - toRef.setVersion( toVersion ); - toRef.setClassifier( fromRef.getClassifier() ); - toRef.setType( fromRef.getType() ); - - DependencyGraphNode nodeFROM = graph.getNode( fromRef ); - DependencyGraphNode nodeTO = graph.getNode( toRef ); - - if ( nodeTO == null ) - { - // new node doesn't exist in graph (yet) - nodeTO = new DependencyGraphNode( toRef ); - nodeTO.setResolved( false ); - - graph.addNode( nodeTO ); - - VersionedReference projectRef = new VersionedReference(); - projectRef.setGroupId( toRef.getGroupId() ); - projectRef.setArtifactId( toRef.getArtifactId() ); - projectRef.setVersion( toRef.getVersion() ); - - builder.resolveNode( graph, nodeTO, projectRef ); - nodesAdded++; - } - - DependencyGraphUtils.collapseNodes( graph, nodeFROM, nodeTO ); - } - - public DependencyGraphBuilder getBuilder() - { - return builder; - } - - public void setBuilder( DependencyGraphBuilder builder ) - { - this.builder = builder; - } - - public boolean hasCreatedNodes() - { - return ( nodesAdded > 0 ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStack.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStack.java deleted file mode 100644 index 0aa77a88b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStack.java +++ /dev/null @@ -1,152 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.commons.collections.iterators.ReverseListIterator; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.Exclusion; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.Stack; - -/** - * DependencyManagementStack - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyManagementStack -{ - public class Rules - { - public ArtifactReference artifact; - - public String scope; - - public Set exclusions = new HashSet(); - - public void addAllExclusions( List depExclusions ) - { - Iterator it = depExclusions.iterator(); - while ( it.hasNext() ) - { - Exclusion ref = (Exclusion) it.next(); - String key = DependencyGraphKeys.toManagementKey( ref ); - exclusions.add( key ); - } - } - } - - private Stack depmanStack = new Stack(); - - private Map depMap = new HashMap(); - - private void generateDepMap() - { - depMap.clear(); - - // Using a reverse iterator to ensure that we read the - // stack from last in to first in - ReverseListIterator it = new ReverseListIterator( depmanStack ); - while ( it.hasNext() ) - { - DependencyGraphNode node = (DependencyGraphNode) it.next(); - - addDependencies( node.getDependencyManagement() ); - } - } - - private void addDependencies( List dependencies ) - { - Iterator it = dependencies.iterator(); - while ( it.hasNext() ) - { - Dependency dep = (Dependency) it.next(); - String key = DependencyGraphKeys.toManagementKey( dep ); - - Rules merged = (Rules) depMap.get( key ); - if ( merged == null ) - { - // New map entry. - merged = new Rules(); - merged.artifact = new ArtifactReference(); - merged.artifact.setGroupId( dep.getGroupId() ); - merged.artifact.setArtifactId( dep.getArtifactId() ); - merged.artifact.setClassifier( dep.getClassifier() ); - merged.artifact.setType( dep.getType() ); - } - - merged.artifact.setVersion( dep.getVersion() ); - if ( StringUtils.isNotBlank( dep.getScope() ) ) - { - merged.scope = dep.getScope(); - } - - merged.addAllExclusions( dep.getExclusions() ); - - depMap.put( key, merged ); - } - } - - public Rules getRules( DependencyGraphEdge edge ) - { - return getRules( edge.getNodeTo() ); - } - - public Rules getRules( DependencyGraphNode node ) - { - return getRules( node.getArtifact() ); - } - - public Rules getRules( ArtifactReference ref ) - { - String key = DependencyGraphKeys.toManagementKey( ref ); - return (Rules) depMap.get( key ); - } - - public void push( DependencyGraphNode node ) - { - depmanStack.push( node ); - generateDepMap(); - } - - public DependencyGraphNode pop() - { - DependencyGraphNode node = (DependencyGraphNode) depmanStack.pop(); - generateDepMap(); - return node; - } - - public void reset() - { - depmanStack.clear(); - depMap.clear(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesTask.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesTask.java deleted file mode 100644 index bc54dffe3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesTask.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.GraphTask; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; -import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; - -/** - * FlagCyclicEdgesTask - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FlagCyclicEdgesTask - implements GraphTask -{ - - public void executeTask( DependencyGraph graph ) - { - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - FlagExcludedEdgesVisitor excludedEdgeResolver = new FlagExcludedEdgesVisitor(); - walker.visit( graph, excludedEdgeResolver ); - } - - public String getTaskId() - { - return "flag-cyclic-edges"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesVisitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesVisitor.java deleted file mode 100644 index d881a48b5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesVisitor.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; -import org.apache.maven.archiva.model.ArtifactReference; - -import java.util.HashSet; -import java.util.Set; - -/** - * FlagCyclicEdgesVisitor - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FlagCyclicEdgesVisitor - extends BaseVisitor - implements DependencyGraphVisitor -{ - private DependencyGraphWalker walker; - - private Set cyclicEdges = new HashSet(); - - public FlagCyclicEdgesVisitor( DependencyGraphWalker walker ) - { - this.walker = walker; - } - - public void discoverEdge( DependencyGraphEdge edge ) - { - ArtifactReference artifact = edge.getNodeTo(); - - // Process for cyclic edges. - if ( walker.getNodeVisitState( artifact ) == DependencyGraphWalker.PROCESSING ) - { - edge.setDisabled( true ); - edge.setDisabledType( DependencyGraph.DISABLED_CYCLIC ); - edge.setDisabledReason( "Cycle detected" ); - // TODO: insert into reason the path for the cycle that was detected. - cyclicEdges.add( edge ); - } - } - - public Set getCyclicEdges() - { - return cyclicEdges; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesTask.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesTask.java deleted file mode 100644 index 34a64467a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesTask.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.GraphTask; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; -import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; - -/** - * FlagExcludedEdgesTask - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FlagExcludedEdgesTask - implements GraphTask -{ - public void executeTask( DependencyGraph graph ) - { - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - FlagExcludedEdgesVisitor excludedEdgeResolver = new FlagExcludedEdgesVisitor(); - walker.visit( graph, excludedEdgeResolver ); - } - - public String getTaskId() - { - return "flag-excluded-edges"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesVisitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesVisitor.java deleted file mode 100644 index 01b594157..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesVisitor.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; -import org.apache.maven.archiva.model.ArtifactReference; - -import java.util.Iterator; -import java.util.Stack; - -/** - * FlagExcludedEdgesVisitor - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FlagExcludedEdgesVisitor - extends BaseVisitor - implements DependencyGraphVisitor -{ - private Stack nodePath = new Stack(); - - public void discoverEdge( DependencyGraphEdge edge ) - { - ArtifactReference artifact = edge.getNodeTo(); - - // Process for excluded edges. - String toKey = DependencyGraphKeys.toManagementKey( artifact ); - Iterator it = this.nodePath.iterator(); - while ( it.hasNext() ) - { - DependencyGraphNode pathNode = (DependencyGraphNode) it.next(); - - // Process dependency declared exclusions. - if ( pathNode.getExcludes().contains( toKey ) ) - { - edge.setDisabled( true ); - edge.setDisabledType( DependencyGraph.DISABLED_EXCLUDED ); - String whoExcluded = DependencyGraphKeys.toKey( pathNode ); - edge.setDisabledReason( "Specifically Excluded by " + whoExcluded ); - break; - } - } - } - - public void discoverNode( DependencyGraphNode node ) - { - super.discoverNode( node ); - nodePath.push( node ); - } - - public void finishNode( DependencyGraphNode node ) - { - super.finishNode( node ); - DependencyGraphNode pathNode = (DependencyGraphNode) nodePath.pop(); - if ( !node.equals( pathNode ) ) - { - String pathNodeKey = ArtifactReference.toKey( pathNode.getArtifact() ); - String finishNodeKey = ArtifactReference.toKey( node.getArtifact() ); - throw new IllegalStateException( "Encountered bad visitor state. Expected finish on node " + pathNodeKey - + ", but instead got notified of node " + finishNodeKey ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/GraphCopier.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/GraphCopier.java deleted file mode 100644 index 574c6b875..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/GraphCopier.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; - -/** - * GraphCopier - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class GraphCopier - extends BaseVisitor - implements DependencyGraphVisitor -{ - protected DependencyGraph copiedGraph; - - public DependencyGraph getGraph() - { - return copiedGraph; - } - - public void setGraph( DependencyGraph graph ) - { - this.copiedGraph = graph; - } - - public void discoverNode( DependencyGraphNode node ) - { - if ( copiedGraph == null ) - { - copiedGraph = new DependencyGraph( node ); - } - } - - /** - * Be sure to override and NOT call this method in your sub class, - * if you want to copy edges based on some kind of criteria. - */ - public void discoverEdge( DependencyGraphEdge edge ) - { - copyEdge( edge ); - } - - public void copyEdge( DependencyGraphEdge edge ) - { - DependencyGraphNode nodeFrom = graph.getNode( edge.getNodeFrom() ); - DependencyGraphNode nodeTo = graph.getNode( edge.getNodeTo() ); - - this.copiedGraph.addNode( nodeFrom ); - this.copiedGraph.addNode( nodeTo ); - this.copiedGraph.addEdge( edge ); - } - - public void reset() - { - this.copiedGraph = null; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateDependencyManagementTask.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateDependencyManagementTask.java deleted file mode 100644 index 33dc107b0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateDependencyManagementTask.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.GraphTask; -import org.apache.maven.archiva.dependency.graph.PotentialCyclicEdgeProducer; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; -import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; - -/** - * PopulateDependencyManagementTask - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class PopulateDependencyManagementTask - implements GraphTask, PotentialCyclicEdgeProducer -{ - public void executeTask( DependencyGraph graph ) - { - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - DependencyManagementApplier depManApplier = new DependencyManagementApplier(); - walker.visit( graph, depManApplier ); - } - - public String getTaskId() - { - return "populate-dependency-management"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateGraphMasterTask.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateGraphMasterTask.java deleted file mode 100644 index 300c74e4f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateGraphMasterTask.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder; -import org.apache.maven.archiva.dependency.graph.DependencyGraphUtils; -import org.apache.maven.archiva.dependency.graph.GraphTask; -import org.apache.maven.archiva.dependency.graph.GraphTaskException; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; -import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; - -/** - * PopulateGraphMasterTask - will perform a resolve / depman apply loop until the graph is fully populated. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class PopulateGraphMasterTask - implements GraphTask -{ - private DependencyGraphBuilder builder; - - private ResolveGraphTask resolveGraphTask = new ResolveGraphTask(); - - private DependencyManagementApplier depManApplier = new DependencyManagementApplier(); - - public void executeTask( DependencyGraph graph ) - throws GraphTaskException - { - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - - boolean done = false; - int maxiters = 5; - - while ( !done ) - { - resolveGraphTask.executeTask( graph ); - walker.visit( graph, depManApplier ); - - if ( !depManApplier.hasCreatedNodes() || ( maxiters < 0 ) ) - { - done = true; - break; - } - - maxiters--; - } - - DependencyGraphUtils.cleanupOrphanedNodes( graph ); - } - - public String getTaskId() - { - return "populate-graph"; - } - - public DependencyGraphBuilder getBuilder() - { - return builder; - } - - public void setBuilder( DependencyGraphBuilder builder ) - { - this.builder = builder; - this.resolveGraphTask.setBuilder( builder ); - this.depManApplier.setBuilder( builder ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesTask.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesTask.java deleted file mode 100644 index aca1504f9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesTask.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.commons.collections.functors.TruePredicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.GraphTask; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; -import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; - -/** - * ReduceEnabledEdgesTask - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ReduceEnabledEdgesTask - implements GraphTask -{ - public void executeTask( DependencyGraph graph ) - { - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - walker.setEdgePredicate( TruePredicate.getInstance() ); - ReduceEnabledEdgesVisitor reduceEnabledEdgesResolver = new ReduceEnabledEdgesVisitor(); - walker.visit( graph, reduceEnabledEdgesResolver ); - } - - public String getTaskId() - { - return "reduce-enabled-edges"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesVisitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesVisitor.java deleted file mode 100644 index 3b34dd89a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesVisitor.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; - -/** - * Removes all disabled edges from the graph. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ReduceEnabledEdgesVisitor - extends AbstractReduceEdgeVisitor - implements DependencyGraphVisitor -{ - public void discoverEdge( DependencyGraphEdge edge ) - { - if ( edge.isDisabled() ) - { - super.graph.removeEdge( edge ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeTask.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeTask.java deleted file mode 100644 index 5a35eafff..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeTask.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.GraphTask; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; -import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; - -/** - * ReduceScopeTask - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ReduceScopeTask - implements GraphTask -{ - private String scope; - - public ReduceScopeTask( String scope ) - { - this.scope = scope; - } - - public void executeTask( DependencyGraph graph ) - { - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - ReduceScopeVisitor reduceScopeResolver = new ReduceScopeVisitor( this.scope ); - walker.visit( graph, reduceScopeResolver ); - } - - public String getScope() - { - return scope; - } - - public void setScope( String scope ) - { - this.scope = scope; - } - - public String getTaskId() - { - return "reduce-scope"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeVisitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeVisitor.java deleted file mode 100644 index 05d86198f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeVisitor.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.commons.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.functors.EdgeWithinScopePredicate; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; - -/** - * ReduceScopeVisitor - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ReduceScopeVisitor - extends AbstractReduceEdgeVisitor - implements DependencyGraphVisitor -{ - private Predicate scopedPredicate; - - public ReduceScopeVisitor( String scope ) - { - scopedPredicate = new EdgeWithinScopePredicate( scope ); - } - - public void discoverEdge( DependencyGraphEdge edge ) - { - if ( !scopedPredicate.evaluate( edge ) ) - { - super.graph.removeEdge( edge ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesTask.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesTask.java deleted file mode 100644 index 061af5abd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesTask.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.GraphTask; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; -import org.apache.maven.archiva.dependency.graph.walk.WalkBreadthFirstSearch; - -/** - * ReduceTransitiveEdgesTask - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ReduceTransitiveEdgesTask - implements GraphTask -{ - - public void executeTask( DependencyGraph graph ) - { - DependencyGraphWalker walker = new WalkBreadthFirstSearch(); - ReduceTransitiveEdgesVisitor reduceTransitiveEdgesResolver = new ReduceTransitiveEdgesVisitor(); - walker.visit( graph, reduceTransitiveEdgesResolver ); - } - - public String getTaskId() - { - return "reduce-transitive-edges"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesVisitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesVisitor.java deleted file mode 100644 index 0c84271d7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesVisitor.java +++ /dev/null @@ -1,161 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * Perform a transitive reduction of the graph. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ReduceTransitiveEdgesVisitor - extends AbstractReduceEdgeVisitor - implements DependencyGraphVisitor -{ - class EdgeInfo - { - public DependencyGraphEdge edge; - - public int depth = Integer.MAX_VALUE; - } - - class EdgeInfoDepthComparator - implements Comparator - { - public int compare( Object obj0, Object obj1 ) - { - EdgeInfo edgeInfo0 = (EdgeInfo) obj0; - EdgeInfo edgeInfo1 = (EdgeInfo) obj1; - - return edgeInfo0.depth - edgeInfo1.depth; - } - } - - /** - * A Map of <(Node To) ArtifactReference, Map of <(Node From) ArtifactReference, EdgeInfo>> - */ - private Map /*>*/nodeDistanceMap = new HashMap(); - - private int currentDepth; - - public void discoverGraph( DependencyGraph graph ) - { - super.discoverGraph( graph ); - nodeDistanceMap.clear(); - currentDepth = 0; - } - - public void discoverEdge( DependencyGraphEdge edge ) - { - /* WARNING: it is unwise to remove the edge at this point. - * as modifying the graph as it's being walked is dangerous. - * - * Just record the edge's current depth. - */ - - String nodeTo = DependencyGraphKeys.toKey( edge.getNodeTo() ); - String nodeFrom = DependencyGraphKeys.toKey( edge.getNodeFrom() ); - - // Get sub-map - Map edgeInfoMap = (Map) nodeDistanceMap.get( nodeTo ); - - // Create sub-map if not present (yet) - if ( edgeInfoMap == null ) - { - edgeInfoMap = new HashMap(); - nodeDistanceMap.put( nodeTo, edgeInfoMap ); - } - - // Get sub-map-value. - EdgeInfo edgeInfo = (EdgeInfo) edgeInfoMap.get( nodeFrom ); - - if ( edgeInfo == null ) - { - // Create a new edgeinfo. - edgeInfo = new EdgeInfo(); - edgeInfo.edge = edge; - edgeInfo.depth = currentDepth; - edgeInfoMap.put( nodeFrom, edgeInfo ); - } - // test the current depth, if it is less than previous depth, save it - else if ( currentDepth < edgeInfo.depth ) - { - edgeInfo.depth = currentDepth; - edgeInfoMap.put( nodeFrom, edgeInfo ); - } - - nodeDistanceMap.put( nodeTo, edgeInfoMap ); - } - - public void discoverNode( DependencyGraphNode node ) - { - super.discoverNode( node ); - currentDepth++; - - } - - public void finishNode( DependencyGraphNode node ) - { - super.finishNode( node ); - currentDepth--; - } - - public void finishGraph( DependencyGraph graph ) - { - super.finishGraph( graph ); - - // Now we prune/remove the edges that are transitive in nature. - - Comparator edgeInfoDepthComparator = new EdgeInfoDepthComparator(); - - Iterator it = nodeDistanceMap.values().iterator(); - while ( it.hasNext() ) - { - Map edgeInfoMap = (Map) it.next(); - - if ( edgeInfoMap.size() > 1 ) - { - List edgeInfos = new ArrayList(); - edgeInfos.addAll( edgeInfoMap.values() ); - Collections.sort( edgeInfos, edgeInfoDepthComparator ); - - for ( int i = 1; i < edgeInfos.size(); i++ ) - { - EdgeInfo edgeInfo = (EdgeInfo) edgeInfos.get( i ); - graph.removeEdge( edgeInfo.edge ); - } - } - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsTask.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsTask.java deleted file mode 100644 index cc55539f9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsTask.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.map.MultiValueMap; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.GraphTask; -import org.apache.maven.archiva.dependency.graph.PotentialCyclicEdgeProducer; -import org.apache.maven.archiva.dependency.graph.functors.ToArtifactReferenceTransformer; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; -import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -/** - * RefineConflictsTask - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RefineConflictsTask - implements GraphTask, PotentialCyclicEdgeProducer -{ - - public void executeTask( DependencyGraph graph ) - { - Iterator it; - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - RefineConflictsVisitor refineConflictsVisitor = new RefineConflictsVisitor(); - - MultiValueMap depMap = new MultiValueMap(); - - // Identify deps that need to be resolved. - it = graph.getNodes().iterator(); - while ( it.hasNext() ) - { - DependencyGraphNode node = (DependencyGraphNode) it.next(); - String key = DependencyGraphKeys.toManagementKey( node.getArtifact() ); - // This will add this node to the specified key, not replace a previous one. - depMap.put( key, node ); - } - - // Process those depMap entries with more than 1 value. - ToArtifactReferenceTransformer nodeToArtifact = new ToArtifactReferenceTransformer(); - - it = depMap.entrySet().iterator(); - while ( it.hasNext() ) - { - Map.Entry entry = (Entry) it.next(); - Collection nodes = (Collection) entry.getValue(); - if ( nodes.size() > 1 ) - { - List conflictingArtifacts = new ArrayList(); - conflictingArtifacts.addAll( nodes ); - CollectionUtils.transform( conflictingArtifacts, nodeToArtifact ); - - refineConflictsVisitor.resetConflictingArtifacts(); - refineConflictsVisitor.addAllConflictingArtifacts( conflictingArtifacts ); - walker.visit( graph, refineConflictsVisitor ); - } - } - } - - public String getTaskId() - { - return "refine-conflicts"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsVisitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsVisitor.java deleted file mode 100644 index 9d7852427..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsVisitor.java +++ /dev/null @@ -1,303 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.MapUtils; -import org.apache.commons.collections.Predicate; -import org.apache.commons.collections.comparators.ReverseComparator; -import org.apache.commons.collections.functors.NotPredicate; -import org.apache.commons.collections.list.TypedList; -import org.apache.maven.archiva.common.utils.VersionComparator; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.DependencyGraphUtils; -import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; -import org.apache.maven.archiva.model.ArtifactReference; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * RefineConflictsVisitor - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RefineConflictsVisitor - extends BaseVisitor - implements DependencyGraphVisitor -{ - class DepthComparator - implements Comparator - { - public int compare( Object obj0, Object obj1 ) - { - NodeLocation nodeLoc0 = (NodeLocation) obj0; - NodeLocation nodeLoc1 = (NodeLocation) obj1; - - return nodeLoc0.depth - nodeLoc1.depth; - } - } - - class NodeLocation - { - public ArtifactReference artifact; - - public DependencyGraphEdge edge; - - public int depth; - - public NodeLocation( ArtifactReference artifact, DependencyGraphEdge edge, int depth ) - { - this.artifact = artifact; - this.edge = edge; - this.depth = depth; - } - } - - class NodeLocationPredicate - implements Predicate - { - private ArtifactReference artifact; - - public NodeLocationPredicate( ArtifactReference artifact ) - { - this.artifact = artifact; - } - - public NodeLocationPredicate( DependencyGraphNode node ) - { - this( node.getArtifact() ); - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof NodeLocation ) - { - NodeLocation nodeloc = (NodeLocation) object; - satisfies = nodeloc.artifact.equals( artifact ); - } - - return satisfies; - } - - } - - class NodeLocationVersionComparator - implements Comparator - { - public int compare( Object o1, Object o2 ) - { - if ( o1 == null && o2 == null ) - { - return 0; - } - - if ( o1 == null && o2 != null ) - { - return 1; - } - - if ( o1 != null && o2 == null ) - { - return -1; - } - - if ( ( o1 instanceof NodeLocation ) && ( o2 instanceof NodeLocation ) ) - { - String version1 = ( (NodeLocation) o1 ).artifact.getVersion(); - String version2 = ( (NodeLocation) o2 ).artifact.getVersion(); - - VersionComparator.getInstance().compare( version1, version2 ); - } - - return 0; - } - } - - class DistantNodeLocationPredicate - implements Predicate - { - private int cutoff; - - public DistantNodeLocationPredicate( int distantCutoff ) - { - this.cutoff = distantCutoff; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof NodeLocation ) - { - NodeLocation nodeloc = (NodeLocation) object; - satisfies = ( nodeloc.depth >= this.cutoff ); - } - - return satisfies; - } - } - - private List conflictingArtifacts; - - private Map foundNodesMap = new HashMap(); - - private int currentDepth = 0; - - private DependencyGraph currentGraph; - - public RefineConflictsVisitor() - { - conflictingArtifacts = TypedList.decorate( new ArrayList(), ArtifactReference.class ); - } - - public void discoverGraph( DependencyGraph graph ) - { - super.discoverGraph( graph ); - this.currentGraph = graph; - this.foundNodesMap.clear(); - } - - public void discoverNode( DependencyGraphNode node ) - { - super.discoverNode( node ); - - currentDepth++; - - List edgesFrom = currentGraph.getEdgesFrom( node ); - Iterator it = edgesFrom.iterator(); - while ( it.hasNext() ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); - if ( this.conflictingArtifacts.contains( edge.getNodeTo() ) ) - { - String nodeKey = DependencyGraphKeys.toKey( edge.getNodeTo() ); - // Check for existing NodeLocation with same key - NodeLocation nodeloc = (NodeLocation) this.foundNodesMap.get( nodeKey ); - - if ( ( nodeloc == null ) || ( currentDepth < nodeloc.depth ) ) - { - nodeloc = new NodeLocation( edge.getNodeTo(), edge, currentDepth ); - this.foundNodesMap.put( nodeKey, nodeloc ); - } - } - } - } - - public void finishGraph( DependencyGraph graph ) - { - super.finishGraph( graph ); - - if ( MapUtils.isEmpty( this.foundNodesMap ) ) - { - return; - } - - // Find winning node. - ArtifactReference winningArtifact = findWinningArtifact( this.foundNodesMap.values() ); - DependencyGraphNode winningNode = graph.getNode( winningArtifact ); - - // Gather up Losing Nodes. - Set losingNodes = new HashSet(); - Predicate losersPredicate = NotPredicate.getInstance( new NodeLocationPredicate( winningArtifact ) ); - CollectionUtils.select( this.foundNodesMap.values(), losersPredicate, losingNodes ); - - // Swing losing nodes to winning node. - Iterator it = losingNodes.iterator(); - while ( it.hasNext() ) - { - NodeLocation losingNodeLoc = (NodeLocation) it.next(); - DependencyGraphNode losingNode = graph.getNode( losingNodeLoc.artifact ); - DependencyGraphUtils.collapseNodes( graph, losingNode, winningNode ); - } - } - - private ArtifactReference findWinningArtifact( Collection nodes ) - { - List remainingNodes = new ArrayList(); - remainingNodes.addAll( nodes ); - - /* .\ Filter by Depth \.____________________________________________________ */ - - // Sort by depth. - Collections.sort( remainingNodes, new DepthComparator() ); - - // Determine 'closest' node depth. - NodeLocation nearestNode = (NodeLocation) remainingNodes.get( 0 ); - int nearest = nearestNode.depth; - - // Filter out distant nodes. - Predicate distantLocations = new DistantNodeLocationPredicate( nearest ); - CollectionUtils.filter( remainingNodes, distantLocations ); - - // Do we have 1 node left? - if ( remainingNodes.size() == 1 ) - { - // A winner! - NodeLocation nodeloc = (NodeLocation) remainingNodes.get( 0 ); - return nodeloc.artifact; - } - - /* .\ Filter by Newest Version \.___________________________________________ */ - - // We have 2 or more nodes that are equal distance from the root. - // Determine which one is 'newest' based on version id. - Collections.sort( remainingNodes, new ReverseComparator( new NodeLocationVersionComparator() ) ); - - NodeLocation nodeloc = (NodeLocation) remainingNodes.get( 0 ); - return nodeloc.artifact; - } - - public void finishNode( DependencyGraphNode node ) - { - super.finishNode( node ); - currentDepth--; - } - - public List getConflictingArtifacts() - { - return conflictingArtifacts; - } - - public void addAllConflictingArtifacts( Collection nodes ) - { - this.conflictingArtifacts.addAll( nodes ); - } - - public void resetConflictingArtifacts() - { - this.conflictingArtifacts.clear(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ResolveGraphTask.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ResolveGraphTask.java deleted file mode 100644 index 9888d00ba..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ResolveGraphTask.java +++ /dev/null @@ -1,109 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.commons.collections.CollectionUtils; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.GraphTask; -import org.apache.maven.archiva.dependency.graph.PotentialCyclicEdgeProducer; -import org.apache.maven.archiva.dependency.graph.functors.UnresolvedGraphNodePredicate; -import org.apache.maven.archiva.model.VersionedReference; - -/** - * Loop through the unresolved nodes and resolve them, until there - * are no more unresolved nodes. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ResolveGraphTask - implements GraphTask, PotentialCyclicEdgeProducer -{ - private DependencyGraphBuilder builder; - - private int resolvedCount = 0; - - private VersionedReference toVersionedReference( DependencyGraphNode node ) - { - VersionedReference ref = new VersionedReference(); - ref.setGroupId( node.getArtifact().getGroupId() ); - ref.setArtifactId( node.getArtifact().getArtifactId() ); - ref.setVersion( node.getArtifact().getVersion() ); - - return ref; - } - - public void executeTask( DependencyGraph graph ) - { - resolvedCount = 0; - VersionedReference rootRef = toVersionedReference( graph.getRootNode() ); - - if ( !graph.getRootNode().isResolved() ) - { - builder.resolveNode( graph, graph.getRootNode(), rootRef ); - resolvedCount++; - } - - boolean done = false; - - while ( !done ) - { - DependencyGraphNode node = findUnresolvedNode( graph ); - if ( node == null ) - { - done = true; - break; - } - - VersionedReference otherRef = toVersionedReference( node ); - - builder.resolveNode( graph, node, otherRef ); - resolvedCount++; - } - } - - private DependencyGraphNode findUnresolvedNode( DependencyGraph graph ) - { - return (DependencyGraphNode) CollectionUtils - .find( graph.getNodes(), UnresolvedGraphNodePredicate.getInstance() ); - } - - public DependencyGraphBuilder getBuilder() - { - return builder; - } - - public void setBuilder( DependencyGraphBuilder graphBuilder ) - { - this.builder = graphBuilder; - } - - public String getTaskId() - { - return "resolve-graph"; - } - - public int getResolvedCount() - { - return resolvedCount; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesTask.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesTask.java deleted file mode 100644 index fc340ec62..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesTask.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.GraphTask; -import org.apache.maven.archiva.dependency.graph.GraphTaskException; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; -import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; - -/** - * Update the scopes of the edges to what their parent node says. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UpdateScopesTask - implements GraphTask -{ - public void executeTask( DependencyGraph graph ) - throws GraphTaskException - { - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - UpdateScopesVisitor updateScopes = new UpdateScopesVisitor(); - walker.visit( graph, updateScopes ); - } - - public String getTaskId() - { - return "update-scopes"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesVisitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesVisitor.java deleted file mode 100644 index 3ce72a78a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesVisitor.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.commons.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.functors.EdgeFromPredicate; -import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; -import org.apache.maven.archiva.model.DependencyScope; - -import java.util.Stack; - -/** - * UpdateScopesVisitor - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UpdateScopesVisitor - extends BaseVisitor - implements DependencyGraphVisitor -{ - private Stack scopeStack; - - private Predicate rootEdgePredicate; - - public UpdateScopesVisitor() - { - scopeStack = new Stack(); - // Default setting. - scopeStack.add( DependencyScope.COMPILE ); - } - - public void discoverGraph( DependencyGraph graph ) - { - super.discoverGraph( graph ); - rootEdgePredicate = new EdgeFromPredicate( graph.getRootNode() ); - } - - public void discoverEdge( DependencyGraphEdge edge ) - { - super.discoverEdge( edge ); - - String scope = edge.getScope(); - - if ( !rootEdgePredicate.evaluate( edge ) ) - { - // Not a root edge. Set the scope. - scope = (String) scopeStack.peek(); - edge.setScope( scope ); - } - - // Push the scope used onto the stack. - scopeStack.push( scope ); - } - - public void finishEdge( DependencyGraphEdge edge ) - { - super.finishEdge( edge ); - - scopeStack.pop(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/BaseVisitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/BaseVisitor.java deleted file mode 100644 index d07cb01f5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/BaseVisitor.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.walk; - -/* - * 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.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; - -/** - * The Baseline Visitor. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BaseVisitor - implements DependencyGraphVisitor -{ - private static DependencyGraphVisitor INSTANCE = new BaseVisitor(); - - protected DependencyGraph graph; - - public static DependencyGraphVisitor getInstance() - { - return INSTANCE; - } - - public void discoverEdge( DependencyGraphEdge edge ) - { - /* do nothing */ - } - - public void discoverGraph( DependencyGraph graph ) - { - this.graph = graph; - } - - public void discoverNode( DependencyGraphNode node ) - { - /* do nothing */ - } - - public void finishEdge( DependencyGraphEdge edge ) - { - /* do nothing */ - } - - public void finishGraph( DependencyGraph graph ) - { - /* do nothing */ - } - - public void finishNode( DependencyGraphNode node ) - { - /* do nothing */ - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphVisitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphVisitor.java deleted file mode 100644 index 21027ae36..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphVisitor.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.walk; - -/* - * 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.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; - -/** - * Interface for progress during search. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface DependencyGraphVisitor -{ - /** - * Called once, for when the graph itself is discovered. - * - * @param graph the graph that was discovered. - */ - public void discoverGraph( DependencyGraph graph ); - - /** - * Called for each node, when that node is visited. - * - * @param node the node that is being visited. - */ - public void discoverNode( DependencyGraphNode node ); - - /** - * Called for each edge, when that edge is visited. - * - * @param edge the edge that is being visited. - */ - public void discoverEdge( DependencyGraphEdge edge ); - - /** - * Called for each edge, when that edge has been fully visited. - * - * @param edge the edge that was finished being visited. - */ - public void finishEdge( DependencyGraphEdge edge ); - - /** - * Called for each node, when the node has been fully visited. - * - * @param node the node that was finished being visited. - */ - public void finishNode( DependencyGraphNode node ); - - /** - * Called once, for when the graph is finished being visited. - * - * @param graph the graph that finished being visited. - */ - public void finishGraph( DependencyGraph graph ); - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalker.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalker.java deleted file mode 100644 index 9d6a1ba59..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalker.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.walk; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.model.ArtifactReference; - -/** - * Walk nodes of the {@link DependencyGraph}. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface DependencyGraphWalker -{ - /** - * A {@link #getNodeVisitState(ArtifactReference)} for a node not yet seen in the walker. - */ - public static final Integer UNSEEN = new Integer( 0 ); - - /** - * A {@link #getNodeVisitState(ArtifactReference)} for a node that is actively being processed, - * but not yet finished processing. - */ - public static final Integer PROCESSING = new Integer( 1 ); - - /** - * A {@link #getNodeVisitState(ArtifactReference)} for a node that has been seen, and fully processed. - */ - public static final Integer SEEN = new Integer( 2 ); - - /** - * For a provided node, get the current node visit state. - * - * @param node the node that you are interested in. - * @return the state of that node. (Can be {@link #UNSEEN}, {@link #PROCESSING}, or {@link #SEEN} ) - */ - public Integer getNodeVisitState( ArtifactReference artifact ); - - /** - * Get the predicate used to determine if the walker should traverse an edge (or not). - * - * @return the Predicate that returns true for edges that should be traversed. - */ - public Predicate getEdgePredicate(); - - /** - * Set the predicate used for edge traversal - * - * @param edgePredicate the Predicate that returns true for edges that should be traversed. - */ - public void setEdgePredicate( Predicate edgePredicate ); - - /** - * Visit every node and edge in the graph from the startNode. - * - * @param graph the graph to visit. - * @param startNode the node to start the visit on. - * @param visitor the visitor object to use during this visit. - */ - public void visit( DependencyGraph graph, DependencyGraphNode startNode, DependencyGraphVisitor visitor ); - - /** - * Visit every node and edge in the entire graph. - * - * @param graph the graph to visit. - * @param visitor the visitor object to use during this visit. - */ - public void visit( DependencyGraph graph, DependencyGraphVisitor visitor ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkBreadthFirstSearch.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkBreadthFirstSearch.java deleted file mode 100644 index 22db8b8fd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkBreadthFirstSearch.java +++ /dev/null @@ -1,157 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.walk; - -/* - * 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.collections.Predicate; -import org.apache.commons.collections.functors.NotPredicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.functors.EdgeDisabledPredicate; -import org.apache.maven.archiva.model.ArtifactReference; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -/** - * WalkBreadthFirstSearch - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class WalkBreadthFirstSearch - implements DependencyGraphWalker -{ - private Map nodeVisitStates = new HashMap(); - - private Predicate edgePredicate; - - public WalkBreadthFirstSearch() - { - this.edgePredicate = NotPredicate.getInstance( new EdgeDisabledPredicate() ); - } - - public Predicate getEdgePredicate() - { - return this.edgePredicate; - } - - public void setEdgePredicate( Predicate edgePredicate ) - { - this.edgePredicate = edgePredicate; - } - - public Integer getNodeVisitState( DependencyGraphNode node ) - { - return (Integer) nodeVisitStates.get( node.getArtifact() ); - } - - public Integer getNodeVisitState( ArtifactReference artifact ) - { - return (Integer) nodeVisitStates.get( artifact ); - } - - public void setNodeVisitState( DependencyGraphNode node, Integer state ) - { - this.nodeVisitStates.put( node.getArtifact(), state ); - } - - public void setNodeVisitState( ArtifactReference artifact, Integer state ) - { - this.nodeVisitStates.put( artifact, state ); - } - - private void visitEdge( DependencyGraph graph, DependencyGraphEdge e, DependencyGraphVisitor visitor ) - { - visitor.discoverEdge( e ); - - DependencyGraphNode node = graph.getNode( e.getNodeTo() ); - - if ( getNodeVisitState( node ) == UNSEEN ) - { - setNodeVisitState( node, PROCESSING ); - } - - visitor.finishEdge( e ); - } - - private void visitNode( DependencyGraph graph, DependencyGraphNode node, DependencyGraphVisitor visitor ) - { - setNodeVisitState( node, PROCESSING ); - - visitor.discoverNode( node ); - - Iterator edges; - // First dive down edges. - edges = graph.getEdgesFrom( node ).iterator(); - while ( edges.hasNext() ) - { - DependencyGraphEdge e = (DependencyGraphEdge) edges.next(); - if ( this.edgePredicate.evaluate( e ) ) - { - visitEdge( graph, e, visitor ); - } - } - - // Next move down edges. - edges = graph.getEdgesFrom( node ).iterator(); - while ( edges.hasNext() ) - { - DependencyGraphEdge e = (DependencyGraphEdge) edges.next(); - - if ( this.edgePredicate.evaluate( e ) ) - { - DependencyGraphNode nodeTo = graph.getNode( e.getNodeTo() ); - Integer state = getNodeVisitState( nodeTo ); - if ( ( state == UNSEEN ) || ( state == PROCESSING ) ) - { - visitNode( graph, nodeTo, visitor ); - } - } - } - - visitor.finishNode( node ); - - setNodeVisitState( node, SEEN ); - } - - public void visit( DependencyGraph graph, DependencyGraphVisitor visitor ) - { - visit( graph, graph.getRootNode(), visitor ); - } - - public void visit( DependencyGraph graph, DependencyGraphNode startNode, DependencyGraphVisitor visitor ) - { - nodeVisitStates.clear(); - - Iterator nodes = graph.getNodes().iterator(); - while ( nodes.hasNext() ) - { - setNodeVisitState( (DependencyGraphNode) nodes.next(), UNSEEN ); - } - - visitor.discoverGraph( graph ); - - visitNode( graph, startNode, visitor ); - - visitor.finishGraph( graph ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkDepthFirstSearch.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkDepthFirstSearch.java deleted file mode 100644 index baf2548e0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkDepthFirstSearch.java +++ /dev/null @@ -1,145 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.walk; - -/* - * 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.collections.Predicate; -import org.apache.commons.collections.functors.NotPredicate; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.functors.EdgeDisabledPredicate; -import org.apache.maven.archiva.model.ArtifactReference; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -/** - * Perform a walk of the graph using the DepthFirstSearch algorithm. - * - * NOTE: Default edgePredicate is to NOT traverse disabled edges. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class WalkDepthFirstSearch - implements DependencyGraphWalker -{ - private Map nodeVisitStates = new HashMap(); - - private Predicate edgePredicate; - - public WalkDepthFirstSearch() - { - this.edgePredicate = NotPredicate.getInstance( new EdgeDisabledPredicate() ); - } - - public Predicate getEdgePredicate() - { - return this.edgePredicate; - } - - public void setEdgePredicate( Predicate edgePredicate ) - { - this.edgePredicate = edgePredicate; - } - - public Integer getNodeVisitState( DependencyGraphNode node ) - { - if ( node == null ) - { - return SEEN; - } - - return (Integer) nodeVisitStates.get( node.getArtifact() ); - } - - public Integer getNodeVisitState( ArtifactReference artifact ) - { - return (Integer) nodeVisitStates.get( artifact ); - } - - public void setNodeVisitState( DependencyGraphNode node, Integer state ) - { - this.nodeVisitStates.put( node.getArtifact(), state ); - } - - public void setNodeVisitState( ArtifactReference artifact, Integer state ) - { - this.nodeVisitStates.put( artifact, state ); - } - - private void visitEdge( DependencyGraph graph, DependencyGraphEdge e, DependencyGraphVisitor visitor ) - { - visitor.discoverEdge( e ); - - DependencyGraphNode node = graph.getNode( e.getNodeTo() ); - - if ( getNodeVisitState( node ) == UNSEEN ) - { - visitNode( graph, node, visitor ); - } - - visitor.finishEdge( e ); - } - - private void visitNode( DependencyGraph graph, DependencyGraphNode node, DependencyGraphVisitor visitor ) - { - setNodeVisitState( node, PROCESSING ); - - visitor.discoverNode( node ); - - Iterator edges = graph.getEdgesFrom( node ).iterator(); - while ( edges.hasNext() ) - { - DependencyGraphEdge e = (DependencyGraphEdge) edges.next(); - if ( this.edgePredicate.evaluate( e ) ) - { - visitEdge( graph, e, visitor ); - } - } - - visitor.finishNode( node ); - - setNodeVisitState( node, SEEN ); - } - - public void visit( DependencyGraph graph, DependencyGraphVisitor visitor ) - { - visit( graph, graph.getRootNode(), visitor ); - } - - public void visit( DependencyGraph graph, DependencyGraphNode startNode, DependencyGraphVisitor visitor ) - { - nodeVisitStates.clear(); - - Iterator nodes = graph.getNodes().iterator(); - while ( nodes.hasNext() ) - { - setNodeVisitState( (DependencyGraphNode) nodes.next(), UNSEEN ); - } - - visitor.discoverGraph( graph ); - - visitNode( graph, startNode, visitor ); - - visitor.finishGraph( graph ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractDependencyGraphFactoryTestCase.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractDependencyGraphFactoryTestCase.java deleted file mode 100644 index d35373495..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractDependencyGraphFactoryTestCase.java +++ /dev/null @@ -1,392 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.collections.Predicate; -import org.apache.commons.collections.functors.AndPredicate; -import org.apache.commons.collections.functors.NotPredicate; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.dependency.graph.functors.EdgeExactScopePredicate; -import org.apache.maven.archiva.dependency.graph.functors.EdgeFromPredicate; -import org.apache.maven.archiva.dependency.graph.functors.NodeFromParentPredicate; -import org.apache.maven.archiva.dependency.graph.functors.NodePredicate; -import org.apache.maven.archiva.dependency.graph.functors.ToKeyTransformer; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.VersionedReference; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -/** - * AbstractDependencyGraphFactoryTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractDependencyGraphFactoryTestCase - extends PlexusInSpringTestCase -{ - public class ExpectedEdge - { - public String from; - - public String to; - - public ExpectedEdge( String from, String to ) - { - this.from = from; - this.to = to; - } - } - - public class GraphEdgePredicate - implements Predicate - { - private String edgeFrom; - - private String edgeTo; - - public GraphEdgePredicate( String edgeFrom, String edgeTo ) - { - this.edgeFrom = edgeFrom; - this.edgeTo = edgeTo; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DependencyGraphEdge ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) object; - String actualFrom = ArtifactReference.toKey( edge.getNodeFrom() ); - String actualTo = ArtifactReference.toKey( edge.getNodeTo() ); - - satisfies = ( StringUtils.equals( edgeFrom, actualFrom ) && StringUtils.equals( edgeTo, actualTo ) ); - } - - return satisfies; - } - } - - protected void assertDirectNodes( DependencyGraph graph, List expectedNodes, String scope ) - { - Iterator it; - DependencyGraphNode rootNode = graph.getRootNode(); - List rootEdges = graph.getEdgesFrom( rootNode ); - List actualEdges = new ArrayList(); - - Predicate directDep = NotPredicate.getInstance( new NodeFromParentPredicate() ); - Predicate scopedDirectDeps = AndPredicate.getInstance( new EdgeExactScopePredicate( scope ), directDep ); - CollectionUtils.select( rootEdges, scopedDirectDeps, actualEdges ); - // CollectionUtils.select( rootEdges, new EdgeExactScopePredicate( scope ), actualEdges ); - - if ( expectedNodes.size() != actualEdges.size() ) - { - StringBuffer sb = new StringBuffer(); - - sb.append( "Direct node.count with <" ).append( scope ).append( "> edges from [" ); - sb.append( DependencyGraphKeys.toKey( rootNode.getArtifact() ) ).append( "]" ).append( " expected:<" ); - sb.append( expectedNodes.size() ).append( "> but was:<" ); - sb.append( actualEdges.size() ).append( ">" ); - - CollectionUtils.transform( actualEdges, new ToKeyTransformer() ); - - Collection missingActualKeys = CollectionUtils.subtract( actualEdges, expectedNodes ); - it = missingActualKeys.iterator(); - while ( it.hasNext() ) - { - sb.append( "\n (Extra Actual) " ).append( (String) it.next() ); - } - - Collection missingExpectedKeys = CollectionUtils.subtract( expectedNodes, actualEdges ); - it = missingExpectedKeys.iterator(); - while ( it.hasNext() ) - { - sb.append( "\n (Extra Expected) " ).append( (String) it.next() ); - } - - fail( sb.toString() ); - } - - it = actualEdges.iterator(); - while ( it.hasNext() ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); - String actualKey = DependencyGraphKeys.toKey( edge.getNodeTo() ); - assertTrue( "Direct <" + scope + "> node To [" + actualKey + "] exists in expectedNodes.", expectedNodes - .contains( actualKey ) ); - } - } - - protected void assertEdges( DependencyGraph graph, List expectedEdges ) - { - assertNotNull( "Graph.edges should never be null.", graph.getEdges() ); - assertEquals( "Graph.edges.size()", expectedEdges.size(), graph.getEdges().size() ); - - Iterator it = expectedEdges.iterator(); - while ( it.hasNext() ) - { - ExpectedEdge expectedEdge = (ExpectedEdge) it.next(); - Predicate edgePredicate = new GraphEdgePredicate( expectedEdge.from, expectedEdge.to ); - - DependencyGraphEdge edge = (DependencyGraphEdge) CollectionUtils.find( graph.getEdges(), edgePredicate ); - if ( edge == null ) - { - fail( "Unable to find expected edge from:<" + expectedEdge.from + "> to:<" + expectedEdge.to + ">" ); - } - } - } - - protected void assertGraph( DependencyGraph graph, String rootRefKey, List expectedNodeKeys ) - { - assertNotNull( "Graph.nodes should never be null.", graph.getNodes() ); - assertTrue( "Graph.nodes.size() should always be 1 or better.", graph.getNodes().size() >= 1 ); - - ArtifactReference rootRef = graph.getRootNode().getArtifact(); - StringBuffer actualRootRef = new StringBuffer(); - actualRootRef.append( rootRef.getGroupId() ).append( ":" ); - actualRootRef.append( rootRef.getArtifactId() ).append( ":" ); - actualRootRef.append( rootRef.getVersion() ); - - assertEquals( "Graph.root", rootRefKey, actualRootRef.toString() ); - - Iterator it; - List actualNodes = new ArrayList(); - - Predicate notRootNode = NotPredicate.getInstance( new NodePredicate( graph.getRootNode() ) ); - CollectionUtils.select( graph.getNodes(), notRootNode, actualNodes ); - - boolean fail = false; - StringBuffer sb = new StringBuffer(); - - if ( expectedNodeKeys.size() != actualNodes.size() ) - { - sb.append( "node.count expected:<" ); - sb.append( expectedNodeKeys.size() ).append( "> but was:<" ); - sb.append( actualNodes.size() ).append( ">" ); - fail = true; - } - - CollectionUtils.transform( actualNodes, new ToKeyTransformer() ); - - Collection missingActualKeys = CollectionUtils.subtract( actualNodes, expectedNodeKeys ); - it = missingActualKeys.iterator(); - while ( it.hasNext() ) - { - sb.append( "\n (Extra Actual) " ).append( (String) it.next() ); - fail = true; - } - - Collection missingExpectedKeys = CollectionUtils.subtract( expectedNodeKeys, actualNodes ); - it = missingExpectedKeys.iterator(); - while ( it.hasNext() ) - { - sb.append( "\n (Extra Expected) " ).append( (String) it.next() ); - fail = true; - } - - if( fail ) - { - fail( sb.toString() ); - } - - /* - it = actualNodes.iterator(); - while ( it.hasNext() ) - { - DependencyGraphNode node = (DependencyGraphNode) it.next(); - assertNotNull( "Artifact reference in node should not be null.", node.getArtifact() ); - String key = ArtifactReference.toKey( node.getArtifact() ); - assertTrue( "Artifact reference [" + key + "] should be in expectedNodeKeys.", expectedNodeKeys - .contains( key ) ); - } - */ - } - - protected void assertNodes( DependencyGraph graph, List expectedNodeKeys ) - { - assertNotNull( "Graph.nodes should never be null.", graph.getNodes() ); - assertTrue( "Graph.nodes.size() should always be 1 or better.", graph.getNodes().size() >= 1 ); - // assertEquals( "Graph.nodes.size()", expectedNodeKeys.size(), graph.getNodes().size() ); - - Iterator it; - List actualNodes = new ArrayList(); - actualNodes.addAll( graph.getNodes() ); - - if ( expectedNodeKeys.size() != actualNodes.size() ) - { - StringBuffer sb = new StringBuffer(); - - sb.append( "node.count expected:<" ); - sb.append( expectedNodeKeys.size() ).append( "> but was:<" ); - sb.append( actualNodes.size() ).append( ">" ); - - CollectionUtils.transform( actualNodes, new ToKeyTransformer() ); - - Collection missingActualKeys = CollectionUtils.subtract( actualNodes, expectedNodeKeys ); - it = missingActualKeys.iterator(); - while ( it.hasNext() ) - { - sb.append( "\n (Extra Actual) " ).append( (String) it.next() ); - } - - Collection missingExpectedKeys = CollectionUtils.subtract( expectedNodeKeys, actualNodes ); - it = missingExpectedKeys.iterator(); - while ( it.hasNext() ) - { - sb.append( "\n (Extra Expected) " ).append( (String) it.next() ); - } - - fail( sb.toString() ); - } - - it = graph.getNodes().iterator(); - while ( it.hasNext() ) - { - DependencyGraphNode node = (DependencyGraphNode) it.next(); - assertNotNull( "Artifact reference in node should not be null.", node.getArtifact() ); - String key = ArtifactReference.toKey( node.getArtifact() ); - assertTrue( "Artifact reference [" + key + "] should be in expectedNodeKeys.", expectedNodeKeys - .contains( key ) ); - } - } - - protected void assertRootNode( DependencyGraph graph, String expectedKey ) - { - DependencyGraphNode node = graph.getRootNode(); - - String actualKey = DependencyGraphKeys.toKey( node.getArtifact() ); - assertEquals( "Root Node", expectedKey, actualKey ); - } - - protected void assertTransientNodes( DependencyGraph graph, List expectedNodes, String scope ) - { - Iterator it; - - // Gather up the transient nodes from the DependencyGraph. - List actualEdges = new ArrayList(); - - DependencyGraphNode rootNode = graph.getRootNode(); - - Predicate transientDep = NotPredicate.getInstance( new EdgeFromPredicate( rootNode.getArtifact() ) ); - Predicate edgeByExactScope = new EdgeExactScopePredicate( scope ); - Predicate transitiveEdgesByScopePredicate = AndPredicate.getInstance( transientDep, edgeByExactScope ); - - CollectionUtils.select( graph.getEdges(), transitiveEdgesByScopePredicate, actualEdges ); - - if ( expectedNodes.size() != actualEdges.size() ) - { - StringBuffer sb = new StringBuffer(); - - sb.append( "Transient node.count with <" ).append( scope ).append( "> edges from [" ); - sb.append( DependencyGraphKeys.toKey( rootNode.getArtifact() ) ).append( "]" ).append( " expected:<" ); - sb.append( expectedNodes.size() ).append( "> but was:<" ); - sb.append( actualEdges.size() ).append( ">" ); - - CollectionUtils.transform( actualEdges, new ToKeyTransformer() ); - - Collection missingActualKeys = CollectionUtils.subtract( actualEdges, expectedNodes ); - it = missingActualKeys.iterator(); - while ( it.hasNext() ) - { - sb.append( "\n (Extra Actual) " ).append( (String) it.next() ); - } - - Collection missingExpectedKeys = CollectionUtils.subtract( expectedNodes, actualEdges ); - it = missingExpectedKeys.iterator(); - while ( it.hasNext() ) - { - sb.append( "\n (Extra Expected) " ).append( (String) it.next() ); - } - - fail( sb.toString() ); - } - - it = actualEdges.iterator(); - while ( it.hasNext() ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); - String actualKey = DependencyGraphKeys.toKey( edge.getNodeTo() ); - assertTrue( "Transient Node To [" + actualKey + "] exists in expectedNodes.", expectedNodes - .contains( actualKey ) ); - } - } - - protected Dependency toDependency( String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); - - assertEquals( "Dependency key [" + key + "] should be 5 parts.", 5, parts.length ); - - Dependency dep = new Dependency(); - - dep.setGroupId( parts[0] ); - dep.setArtifactId( parts[1] ); - dep.setVersion( parts[2] ); - dep.setClassifier( parts[3] ); - dep.setType( parts[4] ); - - return dep; - } - - protected ArchivaProjectModel toModel( String key, Dependency deps[] ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); - - assertEquals( "Dependency key [" + key + "] should be 3 parts.", 3, parts.length ); - - ArchivaProjectModel model = new ArchivaProjectModel(); - model.setGroupId( parts[0] ); - model.setArtifactId( parts[1] ); - model.setVersion( parts[2] ); - model.setOrigin( "testcase" ); - model.setPackaging( "jar" ); - - if ( deps != null ) - { - for ( int i = 0; i < deps.length; i++ ) - { - Dependency dep = deps[i]; - model.addDependency( dep ); - } - } - - return model; - } - - protected VersionedReference toVersionedReference( String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); - assertEquals( "Versioned Reference [" + key + "] part count.", 3, parts.length ); - - VersionedReference ref = new VersionedReference(); - ref.setGroupId( parts[0] ); - ref.setArtifactId( parts[1] ); - ref.setVersion( parts[2] ); - return ref; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractMemoryRepository.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractMemoryRepository.java deleted file mode 100644 index efb3277bb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractMemoryRepository.java +++ /dev/null @@ -1,176 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.Exclusion; -import org.apache.maven.archiva.model.Keys; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * AbstractMemoryRepository - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractMemoryRepository - implements MemoryRepository -{ - private Map modelMap = new HashMap(); - - public AbstractMemoryRepository() - { - initialize(); - } - - public void addModel( ArchivaProjectModel model ) - { - String key = Keys.toKey( model ); - modelMap.put( key, model ); - } - - public ArchivaProjectModel getProjectModel( String groupId, String artifactId, String version ) - { - String key = Keys.toKey( groupId, artifactId, version ); - - return (ArchivaProjectModel) modelMap.get( key ); - } - - public abstract void initialize(); - - protected void addExclusion( Dependency dependency, String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); - - if ( parts.length != 2 ) - { - throw new IllegalArgumentException( "Exclusion key [" + key + "] should be 2 parts. (detected " - + parts.length + " instead)" ); - } - - Exclusion exclusion = new Exclusion(); - exclusion.setGroupId( parts[0] ); - exclusion.setArtifactId( parts[1] ); - - dependency.addExclusion( exclusion ); - } - - protected Dependency toDependency( String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); - - if ( parts.length != 5 ) - { - throw new IllegalArgumentException( "Dependency key [" + key + "] should be 5 parts. (detected " - + parts.length + " instead)" ); - } - - Dependency dep = new Dependency(); - - dep.setGroupId( parts[0] ); - dep.setArtifactId( parts[1] ); - dep.setVersion( parts[2] ); - dep.setClassifier( parts[3] ); - dep.setType( parts[4] ); - - return dep; - } - - protected Dependency toDependency( String key, String scope ) - { - Dependency dependency = toDependency( key ); - dependency.setScope( scope ); - - return dependency; - } - - protected ArchivaProjectModel toModel( String key ) - { - return toModel( key, Collections.EMPTY_LIST ); - } - - protected ArchivaProjectModel toModel( String key, Dependency deps[] ) - { - List depList = new ArrayList(); - - if ( deps != null ) - { - depList.addAll( Arrays.asList( deps ) ); - } - - return toModel( key, depList ); - } - - protected ArchivaProjectModel toModel( String key, List deps ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); - - if ( parts.length != 3 ) - { - throw new IllegalArgumentException( "Project/Model key [" + key + "] should be 3 parts. (detected " - + parts.length + " instead)" ); - } - - ArchivaProjectModel model = new ArchivaProjectModel(); - model.setGroupId( parts[0] ); - model.setArtifactId( parts[1] ); - model.setVersion( parts[2] ); - model.setOrigin( "testcase" ); - model.setPackaging( "jar" ); - - Iterator it = deps.iterator(); - while ( it.hasNext() ) - { - Dependency dep = (Dependency) it.next(); - model.addDependency( dep ); - } - - return model; - } - - protected VersionedReference toParent( String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); - - if ( parts.length != 3 ) - { - throw new IllegalArgumentException( "Parent key [" + key + "] should be 3 parts. (detected " + parts.length - + " instead)" ); - } - - VersionedReference ref = new VersionedReference(); - ref.setGroupId( parts[0] ); - ref.setArtifactId( parts[1] ); - ref.setVersion( parts[2] ); - - return ref; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AllTests.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AllTests.java deleted file mode 100644 index 24f12c12b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AllTests.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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 junit.framework.Test; -import junit.framework.TestSuite; - -/** - * Utility class to aide IDE developers. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AllTests -{ - - public static Test suite() - { - TestSuite suite = new TestSuite( "Test for org.apache.maven.archiva.repository.project.dependencies" ); - //$JUnit-BEGIN$ - suite.addTestSuite( ArchivaWebappDependencyGraphTest.class ); - suite.addTestSuite( GraphvizDotTool.class ); - suite.addTestSuite( DepManDeepVersionDependencyGraphTest.class ); - suite.addTestSuite( SimpleDependencyGraphTest.class ); -// suite.addTestSuite( MavenProjectInfoReportsPluginDependencyGraphTest.class ); - suite.addTestSuite( ArchivaCommonDependencyGraphTest.class ); - suite.addTestSuite( WagonManagerDependencyGraphTest.class ); - suite.addTestSuite( ContinuumStoreDependencyGraphTest.class ); - suite.addTestSuite( ArchivaXmlToolsDependencyGraphTest.class ); - //$JUnit-END$ - return suite; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonDependencyGraphTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonDependencyGraphTest.java deleted file mode 100644 index 26a598127..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonDependencyGraphTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.dependency.DependencyGraphFactory; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.ArrayList; -import java.util.List; - -/** - * ArchivaCommonDependencyGraphTest - * - * DependencyGraphTest for testing org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class ArchivaCommonDependencyGraphTest - extends AbstractDependencyGraphFactoryTestCase -{ - public void testResolvedDepsToNodes() - throws GraphTaskException - { - MemoryRepositoryDependencyGraphBuilder graphBuilder = - new MemoryRepositoryDependencyGraphBuilder(); - MemoryRepository repository = new ArchivaCommonMemoryRepository(); - graphBuilder.setMemoryRepository( repository ); - - // Create the factory, and add the test resolver. - DependencyGraphFactory factory = new DependencyGraphFactory(); - factory.setGraphBuilder( graphBuilder ); - factory.setDesiredScope( DependencyScope.TEST ); - - // Get the model to resolve from - VersionedReference rootRef = toVersionedReference( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT"); - - // Perform the resolution. - DependencyGraph graph = factory.getGraph( rootRef ); - - // Test the results. - assertNotNull( "Graph shouldn't be null.", graph ); - - String expectedRootRef = "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT"; - List expectedNodes = new ArrayList(); - - // Check for all nodes, regardless of scope. - expectedNodes.clear(); - expectedNodes.add( "commons-lang:commons-lang:2.2::jar" ); - expectedNodes.add( "junit:junit:3.8.1::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.4::jar" ); - - assertGraph( graph, expectedRootRef, expectedNodes ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonMemoryRepository.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonMemoryRepository.java deleted file mode 100644 index c41474dfe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonMemoryRepository.java +++ /dev/null @@ -1,3469 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.VersionedReference; - -/** - * ArchivaCommonMemoryRepository - * - * MemoryRepository for testing org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class ArchivaCommonMemoryRepository - extends AbstractMemoryRepository -{ - public void initialize() - { - ArchivaProjectModel model; - Dependency dep; - - model = toModel( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); - model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); - model.addProperty( "wagon.version", "1.0-beta-2" ); - model.addProperty( "redback.version", "1.0-alpha-1" ); - model.addProperty( "maven.version", "2.0.5" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); - model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); - model.addProperty( "wagon.version", "1.0-beta-2" ); - model.addProperty( "maven.version", "2.0.5" ); - model.addProperty( "redback.version", "1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:5" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - addModel( model ); - - model = toModel( "org.apache:apache:3" ); - addModel( model ); - - model = toModel( "junit:junit:3.8.1" ); - addModel( model ); - - model = toModel( "javax.activation:activation:1.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependencyManagement( toDependency( "classworlds:classworlds:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "classworlds:classworlds:1.1-alpha-2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:4" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); - model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-containers:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0.3" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-utils:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.27" ); - dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "com.jcraft:jzlib:1.0.7" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); - addModel( model ); - - model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.0.b2" ); - addModel( model ); - - model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); - model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); - model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-components:1.0" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); - model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "jetty:jetty:4.2.10" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.3" ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.3" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.servlet" ); - model.getRelocation().setArtifactId( "servlet-api" ); - model.getRelocation().setVersion( "2.3" ); - addModel( model ); - - model = toModel( "easymock:easymock:1.2_Java1.3" ); - addModel( model ); - - model = toModel( "classworlds:classworlds:1.1" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-digest:1.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.12" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.10" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.9" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jmock:jmock:1.0.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.4.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.11" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-model-converter:2.1" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model-v3:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "dom4j:dom4j:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-shared-components:7" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model-v3:2.0" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon:1.0-alpha-6" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.24" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "dom4j:dom4j:1.4" ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "jaxen:jaxen:1.0-FCS::jar" ) ); - model.addDependency( toDependency( "saxpath:saxpath:1.0-FCS::jar" ) ); - model.addDependency( toDependency( "msv:msv:20020414::jar" ) ); - model.addDependency( toDependency( "relaxngDatatype:relaxngDatatype:20020414::jar" ) ); - model.addDependency( toDependency( "isorelax:isorelax:20020414::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); - model.addDependency( toDependency( "xerces:xerces:2.0.2::jar", "test" ) ); - model.addDependency( toDependency( "xalan:xalan:2.3.1::jar", "test" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar", "test" ) ); - model.addDependency( toDependency( "pull-parser:pull-parser:2::jar", "test" ) ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.0-FCS" ); - addModel( model ); - - model = toModel( "saxpath:saxpath:1.0-FCS" ); - addModel( model ); - - model = toModel( "msv:msv:20020414" ); - addModel( model ); - - model = toModel( "relaxngDatatype:relaxngDatatype:20020414" ); - addModel( model ); - - model = toModel( "isorelax:isorelax:20020414" ); - addModel( model ); - - model = toModel( "junitperf:junitperf:1.8" ); - addModel( model ); - - model = toModel( "xerces:xerces:2.0.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xerces" ); - model.getRelocation().setArtifactId( "xercesImpl" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.0.2" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.3.1" ); - addModel( model ); - - model = toModel( "pull-parser:pull-parser:2" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xerces:xmlParserAPIs" ); - model.addDependency( dep ); - dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - dep = toDependency( "commons-logging:commons-logging:1.0.4::jar" ); - addExclusion( dep, "logkit:logkit" ); - model.addDependency( dep ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - addModel( model ); - - model = toModel( "javax.jdo:jdo2-api:2.0" ); - model.addDependency( toDependency( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ) ); - dep = toDependency( "xerces:xerces:2.4.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2" ); - addModel( model ); - - model = toModel( "xerces:xerces:2.4.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xerces" ); - model.getRelocation().setArtifactId( "xercesImpl" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.4.0" ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-io:commons-io:1.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - dep = toDependency( "dom4j:dom4j:1.6.1::jar" ); - addExclusion( dep, "xom:xom" ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.1::jar" ); - addExclusion( dep, "jdom:jdom" ); - addExclusion( dep, "xom:xom" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - addModel( model ); - - model = toModel( "dom4j:dom4j:1.6.1" ); - dep = toDependency( "jaxme:jaxme-api:0.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.1-beta-6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "msv:xsdlib:20030807::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "msv:relaxngDatatype:20030807::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "pull-parser:pull-parser:2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xpp3:xpp3:1.1.3.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "stax:stax-api:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); - model.addDependency( toDependency( "stax:stax-ri:1.0::jar", "test" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar", "test" ) ); - model.addDependency( toDependency( "xalan:xalan:2.5.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jaxme:jaxme-api:0.3" ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.1-beta-6" ); - addModel( model ); - - model = toModel( "msv:xsdlib:20030807" ); - addModel( model ); - - model = toModel( "msv:relaxngDatatype:20030807" ); - addModel( model ); - - model = toModel( "xpp3:xpp3:1.1.3.3" ); - addModel( model ); - - model = toModel( "stax:stax-api:1.0" ); - addModel( model ); - - model = toModel( "stax:stax-ri:1.0" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.2" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.5.1" ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.1" ); - model.addDependency( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); - model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.3.02::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "xom:xom:1.0::jar" ) ); - addModel( model ); - - model = toModel( "jdom:jdom:1.0" ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.0-FCS::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "saxpath:saxpath:1.0-FCS::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xalan:xalan:2.5.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.0" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.5.0" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.3.02" ); - addModel( model ); - - model = toModel( "xom:xom:1.0" ); - model.addDependency( toDependency( "xerces:xmlParserAPIs:2.6.2::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "xalan:xalan:2.6.0::jar" ) ); - model.addDependency( toDependency( "com.ibm.icu:icu4j:2.6.1::jar" ) ); - addModel( model ); - - model = toModel( "xerces:xmlParserAPIs:2.6.2" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.6.0" ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:2.0.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xml-apis" ); - model.getRelocation().setArtifactId( "xml-apis" ); - model.getRelocation().setVersion( "1.0.b2" ); - addModel( model ); - - model = toModel( "com.ibm.icu:icu4j:2.6.1" ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-log4j12:1.2" ); - model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.13::jar" ) ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-parent:1.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-api:1.2" ); - model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.13" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.9" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "net.sf.ehcache:ehcache:1.2.4" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "compile" ) ); - dep = toDependency( "org.hibernate:hibernate:3.2.0.cr3::jar", "test" ); - addExclusion( dep, "javax.transaction:jta" ); - addExclusion( dep, "javax.security:jacc" ); - model.addDependency( dep ); - dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar", "test" ); - addExclusion( dep, "javax.transaction:jta" ); - addExclusion( dep, "javax.security:jacc" ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6::jar", "test" ) ); - model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); - model.addDependency( toDependency( "com.cenqua.clover:clover:1.3.13::jar", "test" ) ); - model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar", "test" ) ); - model.addDependency( toDependency( "checkstyle:checkstyle-optional:4.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); - model.addProperty( "licenseFile", "${basedir}/tools/clover.license" ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.4" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.6" ); - addModel( model ); - - model = toModel( "logkit:logkit:1.0.1" ); - addModel( model ); - - model = toModel( "junit:junit:3.7" ); - addModel( model ); - - model = toModel( "avalon-framework:avalon-framework:4.1.3" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate:3.2.0.cr3" ); - addModel( model ); - - model = toModel( "net.sf.hibernate:hibernate:2.1.8" ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.4" ); - addModel( model ); - - model = toModel( "httpunit:httpunit:1.6" ); - model.addDependency( toDependency( "xerces:xmlParserAPIs:2.2.1::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "nekohtml:nekohtml:0.9.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "rhino:js:1.5R4.1::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "test" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "xerces:xmlParserAPIs:2.2.1" ); - addModel( model ); - - model = toModel( "nekohtml:nekohtml:0.9.1" ); - model.addDependency( toDependency( "xerces:xerces:2.4.0::jar" ) ); - addModel( model ); - - model = toModel( "rhino:js:1.5R4.1" ); - addModel( model ); - - model = toModel( "javax.activation:activation:1.0.2" ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.3.1" ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "commons-httpclient:commons-httpclient:3.0.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - model.addDependency( toDependency( "commons-codec:commons-codec:1.2::jar" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.3" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-codec:commons-codec:1.2" ); - addModel( model ); - - model = toModel( "com.cenqua.clover:clover:1.3.13" ); - addModel( model ); - - model = toModel( "checkstyle:checkstyle:4.1" ); - model.addDependency( toDependency( "antlr:antlr:2.7.2::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "antlr:antlr:2.7.2" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils-core:1.7.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:2.0" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:2.1" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "checkstyle:checkstyle-optional:4.1" ); - model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar" ) ); - addModel( model ); - - model = toModel( "httpunit:httpunit:1.6.1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.4" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-simple:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging:1.0.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-simple:1.2" ); - model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar", "test" ) ); - dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); - addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); - addExclusion( dep, "xerces:xerces" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xalan:xalan" ); - addExclusion( dep, "xml-apis:xml-apis" ); - addExclusion( dep, "servletapi:servletapi" ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); - addModel( model ); - - model = toModel( "commons-configuration:commons-configuration:1.3" ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - model.addDependency( toDependency( "commons-digester:commons-digester:1.6::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-codec:commons-codec:1.3::jar" ) ); - model.addDependency( toDependency( "commons-jxpath:commons-jxpath:1.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.2.1::jar" ) ); - model.addDependency( toDependency( "xalan:xalan:2.7.0::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "servletapi:servletapi:2.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "spice:spice-jndikit:1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.2.2::jar", "test" ) ); - model.addDependency( toDependency( "dbunit:dbunit:2.1::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "junit-addons:junit-addons:1.4::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging-api:1.0.4" ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.6" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.6" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-codec:commons-codec:1.3" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-jxpath:commons-jxpath:1.2" ); - model.addDependency( toDependency( "xerces:xerces:1.2.3::jar" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8::jar" ) ); - model.addDependency( toDependency( "ant:ant-optional:1.5.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "jdom:jdom:b9::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.4::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - addModel( model ); - - model = toModel( "xerces:xerces:1.2.3" ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.servlet" ); - model.getRelocation().setArtifactId( "servlet-api" ); - model.getRelocation().setVersion( "2.2" ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.2" ); - addModel( model ); - - model = toModel( "junit:junit:3.8" ); - addModel( model ); - - model = toModel( "ant:ant-optional:1.5.1" ); - addModel( model ); - - model = toModel( "jdom:jdom:b9" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.4" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "xerces:xerces:2.2.1" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.7.0" ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.4" ); - addModel( model ); - - model = toModel( "spice:spice-jndikit:1.1" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.1" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.1" ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.2.2" ); - addModel( model ); - - model = toModel( "dbunit:dbunit:2.1" ); - addModel( model ); - - model = toModel( "junit-addons:junit-addons:1.4" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-core:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.7.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - dep = toDependency( "jpox:jpox:1.1.1::jar", "test" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "jpox:jpox:1.1.1" ); - model.setParentProject( toParent( "jpox:jpox-parent:1.1.1" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); - dep = toDependency( "javax.security:jaas:1.0.01::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.sql:jdbc-stdext:2.0::jar" ) ); - dep = toDependency( "ant:ant:1.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "jpox:jpox-dbcp:1.1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2::jar", "test" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar", "test" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jpox:jpox-parent:1.1.1" ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.8" ); - addModel( model ); - - model = toModel( "javax.resource:connector:1.0" ); - addModel( model ); - - model = toModel( "javax.security:jaas:1.0.01" ); - addModel( model ); - - model = toModel( "javax.sql:jdbc-stdext:2.0" ); - addModel( model ); - - model = toModel( "ant:ant:1.6" ); - addModel( model ); - - model = toModel( "jpox:jpox-dbcp:1.1.1" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.2" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.2" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.3.0" ); - addModel( model ); - - model = toModel( "jpox:jpox:1.1.7" ); - model.setParentProject( toParent( "jpox:jpox-parent:1.1.7" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); - model.addDependency( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); - dep = toDependency( "ant:ant:1.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jpox:jpox-parent:1.1.7" ); - addModel( model ); - - model = toModel( "javax.transaction:jta:1.0.1B" ); - addModel( model ); - - model = toModel( "org.apache.derby:derby:10.1.3.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "xmlunit:xmlunit:1.0::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.7" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "xmlunit:xmlunit:1.0" ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.8.0.7" ); - addModel( model ); - - model = toModel( "org.apache.derby:derbytools:10.1.3.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-i18n:1.0-beta-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.lucene:lucene-core:2.0.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); - model.addProperty( "archivaVersion", "1.0-alpha-2-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "runtime" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "runtime" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war", "runtime" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "provided" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.activation:activation:1.1::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:3.0::jar" ) ); - addModel( model ); - - model = toModel( "backport-util-concurrent:backport-util-concurrent:3.0" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "quartz:quartz:1.4.5::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.2::jar" ) ); - addModel( model ); - - model = toModel( "quartz:quartz:1.4.5" ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.2" ); - dep = toDependency( "log4j:log4j:1.1.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "log4j:log4j:1.1.3" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ); - addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); - addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "xalan:xalan:2.7.0::jar" ) ); - model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.3.03::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addProperty( "security.version", "1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); - dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); - addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); - addExclusion( dep, "xerces:xerces" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xalan:xalan" ); - addExclusion( dep, "xml-apis:xml-apis" ); - addExclusion( dep, "servletapi:servletapi" ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging:1.0.2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.5" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xerces:xmlParserAPIs" ); - model.addDependency( dep ); - dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.8.0.4" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "net.java.dev.stax-utils:stax-utils:20060502" ); - model.addDependency( toDependency( "com.bea.xml:jsr173-ri:1.0::jar" ) ); - addModel( model ); - - model = toModel( "com.bea.xml:jsr173-ri:1.0" ); - model.addDependency( toDependency( "javax.xml:jsr173:1.0::jar" ) ); - addModel( model ); - - model = toModel( "javax.xml:jsr173:1.0" ); - addModel( model ); - - model = toModel( "stax:stax-api:1.0.1" ); - addModel( model ); - - model = toModel( "woodstox:wstx-asl:3.2.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "org.codehaus.woodstox" ); - addModel( model ); - - model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.0" ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); - addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "stax:stax:1.1.1-dev" ); - model.addDependency( toDependency( "xmlbeans:xmlbeans-jsr173-api:2.0-dev::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "xmlbeans:xmlbeans-jsr173-api:2.0-dev" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "commons-logging:commons-logging-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "taglibs:standard:1.1.2" ); - addModel( model ); - - model = toModel( "javax.servlet:jstl:1.1.2" ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "javax.servlet:jsp-api:2.0" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - model.addDependency( toDependency( "org.easymock:easymock:2.2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); - model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.easymock:easymock:2.2" ); - addModel( model ); - - model = toModel( "opensymphony:xwork:1.2.1" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.rifers:rife-continuations:0.0.2::jar" ) ); - model.addDependency( toDependency( "opensymphony:oscore:2.2.4::jar" ) ); - model.addDependency( toDependency( "ognl:ognl:2.6.7::jar" ) ); - dep = toDependency( "org.springframework:spring-core:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-aop:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-beans:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-context:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.springframework:spring-mock:1.2.6::jar", "test" ) ); - dep = toDependency( "cglib:cglib:2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.rifers:rife-continuations:0.0.2" ); - addModel( model ); - - model = toModel( "opensymphony:oscore:2.2.4" ); - addModel( model ); - - model = toModel( "ognl:ognl:2.6.7" ); - addModel( model ); - - model = toModel( "org.springframework:spring-core:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-parent:1.2.6" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "org.hibernate:hibernate:3.0.5::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "org.hibernate:hibernate-annotations:3.0beta2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "struts:struts:1.2.7::jar" ); - addExclusion( dep, "servletapi:servletapi" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "oro:oro:2.0.8::jar" ) ); - dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "xdoclet:xjavadoc:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "javax.mail:mail:1.3.2::jar" ) ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); - dep = toDependency( "jotm:jotm:2.0.10::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "c3p0:c3p0:0.9.0.2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.experlog:xapool:1.5.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - dep = toDependency( "com.oracle.toplink:toplink:10.1.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "ojb:db-ojb:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.jdo:jdo:2.0-20050809.1515::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.ibatis:ibatis-sqlmap:1.3.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.ibatis:ibatis2-sqlmap:2.1.5.582::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.jms:jms:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.ejb:ejb:2.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.xml:jaxrpc-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-httpclient:commons-httpclient:3.0-rc4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.caucho:burlap:2.1.12::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.caucho:hessian:2.1.12::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "javax.resource:connector:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "ehcache:ehcache:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "quartz:quartz:1.5.1::jar" ) ); - model.addDependencyManagement( toDependency( "com.servlets:cos:05Nov2002::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_RC2_Java1.3::jar", "test" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.0.6::jar" ) ); - dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "velocity-tools:velocity-tools-generic:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "velocity-tools:velocity-tools-view:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "poi:poi:2.5.1-final-20040804::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "itext:itext:1.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "net.sourceforge.jexcelapi:jxl:2.5.7::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.9" ); - addModel( model ); - - model = toModel( "cglib:cglib:2.1_3" ); - addModel( model ); - - model = toModel( "commons-attributes:commons-attributes-compiler:2.1" ); - model.addDependency( toDependency( "commons-attributes:commons-attributes-api:2.1::jar" ) ); - addModel( model ); - - model = toModel( "commons-attributes:commons-attributes-api:2.1" ); - model.addDependency( toDependency( "ant:ant:1.5::jar" ) ); - model.addDependency( toDependency( "qdox:qdox:1.5::jar" ) ); - addModel( model ); - - model = toModel( "ant:ant:1.5" ); - addModel( model ); - - model = toModel( "qdox:qdox:1.5" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate:3.0.5" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate-annotations:3.0beta2" ); - addModel( model ); - - model = toModel( "struts:struts:1.2.7" ); - addModel( model ); - - model = toModel( "jasperreports:jasperreports:1.0.3" ); - addModel( model ); - - model = toModel( "freemarker:freemarker:2.3.4" ); - addModel( model ); - - model = toModel( "aopalliance:aopalliance:1.0" ); - addModel( model ); - - model = toModel( "oro:oro:2.0.8" ); - addModel( model ); - - model = toModel( "com.jamonapi:jamon:1.0" ); - addModel( model ); - - model = toModel( "xdoclet:xjavadoc:1.1" ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.3.2" ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "velocity:velocity:1.4" ); - model.addDependency( toDependency( "velocity:velocity-dep:1.4::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "velocity:velocity-dep:1.4" ); - addModel( model ); - - model = toModel( "jotm:jotm:2.0.10" ); - addModel( model ); - - model = toModel( "c3p0:c3p0:0.9.0.2" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.2.1" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); - dep = toDependency( "javax.sql:jdbc-stdext:2.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); - addModel( model ); - - model = toModel( "com.experlog:xapool:1.5.0" ); - addModel( model ); - - model = toModel( "com.oracle.toplink:toplink:10.1.3" ); - addModel( model ); - - model = toModel( "ojb:db-ojb:1.0.3" ); - addModel( model ); - - model = toModel( "javax.jdo:jdo:2.0-20050809.1515" ); - addModel( model ); - - model = toModel( "com.ibatis:ibatis-sqlmap:1.3.1" ); - addModel( model ); - - model = toModel( "com.ibatis:ibatis2-sqlmap:2.1.5.582" ); - addModel( model ); - - model = toModel( "javax.jms:jms:1.1" ); - addModel( model ); - - model = toModel( "javax.ejb:ejb:2.0" ); - addModel( model ); - - model = toModel( "javax.xml:jaxrpc-api:1.1" ); - addModel( model ); - - model = toModel( "commons-httpclient:commons-httpclient:3.0-rc4" ); - addModel( model ); - - model = toModel( "com.caucho:burlap:2.1.12" ); - addModel( model ); - - model = toModel( "com.caucho:hessian:2.1.12" ); - addModel( model ); - - model = toModel( "ehcache:ehcache:1.1" ); - addModel( model ); - - model = toModel( "quartz:quartz:1.5.1" ); - addModel( model ); - - model = toModel( "com.servlets:cos:05Nov2002" ); - addModel( model ); - - model = toModel( "easymock:easymock:1.2_RC2_Java1.3" ); - addModel( model ); - - model = toModel( "javax.servlet:jstl:1.0" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "provided" ) ); - addModel( model ); - - model = toModel( "taglibs:standard:1.0.6" ); - addModel( model ); - - model = toModel( "javax.faces:jsf-api:1.1" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools-generic:1.1" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools-view:1.1" ); - addModel( model ); - - model = toModel( "poi:poi:2.5.1-final-20040804" ); - addModel( model ); - - model = toModel( "itext:itext:1.3" ); - addModel( model ); - - model = toModel( "net.sourceforge.jexcelapi:jxl:2.5.7" ); - addModel( model ); - - model = toModel( "org.springframework:spring-aop:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-beans:1.2.6::jar" ) ); - model.addDependency( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); - model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); - dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "xdoclet:xjavadoc:1.1::jar", "test" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-beans:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-core:1.2.6::jar" ) ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.3.2::jar", "test" ) ); - model.addDependency( toDependency( "org.hibernate:hibernate:3.0.5::jar", "test" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-context:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-aop:1.2.6::jar" ) ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.springframework:spring-web:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.0::jar" ) ); - model.addDependency( toDependency( "org.springframework:spring-context:1.2.6::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "struts:struts:1.2.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "com.servlets:cos:05Nov2002::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "taglibs:standard:1.0.6::jar" ) ); - dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.springframework:spring-mock:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - dep = toDependency( "org.springframework:spring-jdbc:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-jdbc:1.2.6" ); - addModel( model ); - - model = toModel( "cglib:cglib:2.1" ); - model.addDependency( toDependency( "asm:asm:1.5.3::jar" ) ); - model.addDependency( toDependency( "asm:asm-util:1.3.4::jar" ) ); - model.addDependency( toDependency( "aspectwerkz:aspectwerkz-core:0.8.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "asm:asm:1.5.3" ); - addModel( model ); - - model = toModel( "asm:asm-util:1.3.4" ); - addModel( model ); - - model = toModel( "aspectwerkz:aspectwerkz-core:0.8.1" ); - addModel( model ); - - model = toModel( "easymock:easymockclassextension:1.1" ); - addModel( model ); - - model = toModel( "opensymphony:webwork:2.2.4" ); - model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); - dep = toDependency( "opensymphony:xwork-tiger:1.2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "freemarker:freemarker:2.3.4::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "commons-lang:commons-lang:2.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "dwr:dwr:1.1-beta-3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "velocity-tools:velocity-tools:1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-fileupload:commons-fileupload:1.1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "servlets.com:cos:05Nov2002::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "opensymphony:pell-multipart:2.1.5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "opensymphony:sitemesh:2.2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jetty:org.mortbay.jetty:5.1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "eclipse:jdtcore:3.1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jasperreports:jasperreports:1.1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jfree:jfreechart:1.0.0::jar" ); - addExclusion( dep, "gnujaxp:gnujaxp" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-digester:commons-digester:1.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "portlet-api:portlet-api:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.apache.pluto:pluto:1.0.1-rc4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "picocontainer:picocontainer:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "picocontainer:picocontainer-gems:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "nanocontainer:nanocontainer:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "nanocontainer:nanocontainer-nanowar:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-beans:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-core:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-context:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-mock:1.2::jar", "compile" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xpp3:xpp3:1.1.3.4-RC8::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "junit:junit:3.8.1::jar", "compile" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); - model.addDependency( toDependency( "jmock:jmock-cglib:1.0.1::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); - addModel( model ); - - model = toModel( "opensymphony:xwork-tiger:1.2.1" ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.0" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "dwr:dwr:1.1-beta-3" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools:1.1" ); - addModel( model ); - - model = toModel( "commons-fileupload:commons-fileupload:1.1.1" ); - addModel( model ); - - model = toModel( "servlets.com:cos:05Nov2002" ); - addModel( model ); - - model = toModel( "opensymphony:pell-multipart:2.1.5" ); - addModel( model ); - - model = toModel( "opensymphony:sitemesh:2.2.1" ); - addModel( model ); - - model = toModel( "jetty:org.mortbay.jetty:5.1.4" ); - addModel( model ); - - model = toModel( "eclipse:jdtcore:3.1.0" ); - addModel( model ); - - model = toModel( "jasperreports:jasperreports:1.1.0" ); - addModel( model ); - - model = toModel( "jfree:jfreechart:1.0.0" ); - addModel( model ); - - model = toModel( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT" ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.7" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "portlet-api:portlet-api:1.0" ); - addModel( model ); - - model = toModel( "org.apache.pluto:pluto:1.0.1-rc4" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "picocontainer:picocontainer:1.2" ); - addModel( model ); - - model = toModel( "picocontainer:picocontainer-gems:1.2" ); - addModel( model ); - - model = toModel( "nanocontainer:nanocontainer:1.0" ); - addModel( model ); - - model = toModel( "nanocontainer:nanocontainer-nanowar:1.0" ); - addModel( model ); - - model = toModel( "org.springframework:spring-beans:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-core:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-context:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-web:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-mock:1.2" ); - addModel( model ); - - model = toModel( "xpp3:xpp3:1.1.3.4-RC8" ); - addModel( model ); - - model = toModel( "jmock:jmock-cglib:1.0.1" ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar" ) ); - model.addDependency( toDependency( "cglib:cglib-full:2.0::jar" ) ); - addModel( model ); - - model = toModel( "cglib:cglib-full:2.0" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-alt-jdk1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-1::jar", "test" ); - addExclusion( dep, "geronimo-spec:geronimo-spec-javamail" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.4" ); - model.addDependency( toDependency( "javax.activation:activation:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); - model.addDependency( toDependency( "dumbster:dumbster:1.5::jar" ) ); - addModel( model ); - - model = toModel( "dumbster:dumbster:1.5" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-core:0.8" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-java:0.8" ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-factory:0.8" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1::jar" ) ); - addModel( model ); - - model = toModel( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1" ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.1" ); - addModel( model ); - - model = toModel( "org.extremecomponents:extremecomponents:1.0.1" ); - dep = toDependency( "avalon-framework:avalon-framework:4.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "batik:batik:1.5-fop-0.20-5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.0::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "fop:fop:0.20.5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - dep = toDependency( "poi:poi:2.5.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "provided" ) ); - model.addDependency( toDependency( "taglibs:standard:1.0.2::jar" ) ); - dep = toDependency( "xalan:xalan:2.5.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xerces:xercesImpl:2.6.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:2.0.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "avalon-framework:avalon-framework:4.0" ); - addModel( model ); - - model = toModel( "batik:batik:1.5-fop-0.20-5" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "fop:fop:0.20.5" ); - addModel( model ); - - model = toModel( "poi:poi:2.5.1" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "poi" ); - model.getRelocation().setArtifactId( "poi" ); - model.getRelocation().setVersion( "2.5.1-final-20040804" ); - addModel( model ); - - model = toModel( "taglibs:standard:1.0.2" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.1" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils-bean-collections:1.7.0" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.2" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar", "compile" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "velocity:velocity:1.4::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.3.03" ); - model.setParentProject( toParent( "org.apache:apache:1" ) ); - addModel( model ); - - model = toModel( "org.apache:apache:1" ); - addModel( model ); - - model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.1" ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration-model:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration-web:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-settings:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - model.addDependency( toDependency( "it.could:webdav:0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "it.could:webdav:0.4" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.5::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-settings:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0.5" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "mx4j:mx4j:3.0.1::jar" ) ); - model.addDependency( toDependency( "mx4j:mx4j-remote:3.0.1::jar" ) ); - model.addDependency( toDependency( "org.livetribe:livetribe-slp:1.0.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - addModel( model ); - - model = toModel( "mx4j:mx4j:3.0.1" ); - addModel( model ); - - model = toModel( "mx4j:mx4j-remote:3.0.1" ); - addModel( model ); - - model = toModel( "org.livetribe:livetribe-slp:1.0.2" ); - model.setParentProject( toParent( "org.livetribe:livetribe:1.0" ) ); - model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:2.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.livetribe:livetribe:1.0" ); - addModel( model ); - - model = toModel( "backport-util-concurrent:backport-util-concurrent:2.2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ) ); - model.addDependency( toDependency( "ant:ant:1.6.2::jar" ) ); - model.addDependency( toDependency( "jetty:org.mortbay.jetty:5.1.10::jar" ) ); - model.addDependency( toDependency( "tomcat:jasper-compiler:5.5.15::jar" ) ); - model.addDependency( toDependency( "tomcat:jasper-runtime:5.5.15::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - dep = toDependency( "commons-el:commons-el:1.0::jar", "runtime" ); - addExclusion( dep, "log4j:log4j" ); - addExclusion( dep, "commons-logging:commons-logging" ); - addExclusion( dep, "logkit:logkit" ); - model.addDependency( dep ); - model.addDependency( toDependency( "jetty:org.mortbay.jetty.plus:5.1.10::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "ant:ant:1.6.2" ); - dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xerces:xerces-impl:2.6.2" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:2.6.2" ); - addModel( model ); - - model = toModel( "jetty:org.mortbay.jetty:5.1.10" ); - addModel( model ); - - model = toModel( "tomcat:jasper-compiler:5.5.15" ); - model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - model.addDependency( toDependency( "ant:ant:1.6.5::jar" ) ); - addModel( model ); - - model = toModel( "tomcat:tomcat-parent:5.5.15" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "ant:ant:1.6.5" ); - dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "tomcat:jasper-runtime:5.5.15" ); - model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependency( toDependency( "commons-el:commons-el:1.0::jar" ) ); - addModel( model ); - - model = toModel( "commons-el:commons-el:1.0" ); - model.addDependency( toDependency( "servletapi:servletapi:2.4-20040521::jar", "provided" ) ); - model.addDependency( toDependency( "jspapi:jsp-api:2.0-20040521::jar", "provided" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.4-20040521" ); - addModel( model ); - - model = toModel( "jspapi:jsp-api:2.0-20040521" ); - addModel( model ); - - model = toModel( "jetty:org.mortbay.jetty.plus:5.1.10" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-cli:1.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-tools:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); - addExclusion( dep, "commons-lang:commons-lang" ); - addExclusion( dep, "commons-logging:commons-logging" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-tools:1.0.8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "commons-cli:commons-cli:1.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:1.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:1.0" ); - model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-config:0.8::jar" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-config:0.8" ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:1.0.1::jar" ) ); - model.addDependency( toDependency( "commons-digester:commons-digester:1.4.1::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6.1::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.0::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.0.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:1.0.1" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.4.1" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.6.1" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.0" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:1.0-b1::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.0::jar" ) ); - model.addDependency( toDependency( "jdbc:jdbc:2.0::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:1.0-b1" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.0" ); - addModel( model ); - - model = toModel( "jdbc:jdbc:2.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.sql" ); - model.getRelocation().setArtifactId( "jdbc-stdext" ); - model.getRelocation().setVersion( "2.0" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.0.1" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappDependencyGraphTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappDependencyGraphTest.java deleted file mode 100644 index b3bb2a1fa..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappDependencyGraphTest.java +++ /dev/null @@ -1,200 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.dependency.DependencyGraphFactory; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.ArrayList; -import java.util.List; - -/** - * ArchivaWebappDependencyGraphTest - * - * DependencyGraphTest for testing org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class ArchivaWebappDependencyGraphTest - extends AbstractDependencyGraphFactoryTestCase -{ - public void testResolvedDepsToNodes() - throws GraphTaskException - { - MemoryRepositoryDependencyGraphBuilder graphBuilder = - new MemoryRepositoryDependencyGraphBuilder(); - MemoryRepository repository = new ArchivaWebappMemoryRepository(); - graphBuilder.setMemoryRepository( repository ); - - // Create the factory, and add the test resolver. - DependencyGraphFactory factory = new DependencyGraphFactory(); - factory.setGraphBuilder( graphBuilder ); - factory.setDesiredScope( DependencyScope.TEST ); - - // Get the model to resolve from - VersionedReference rootRef = toVersionedReference( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT"); - - // Perform the resolution. - DependencyGraph graph = factory.getGraph( rootRef ); - - // Test the results. - assertNotNull( "Graph shouldn't be null.", graph ); - - String expectedRootRef = "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT"; - List expectedNodes = new ArrayList(); - - // Check for all nodes, regardless of scope. - expectedNodes.clear(); - expectedNodes.add( "ant:ant-optional:1.5.1::jar" ); - expectedNodes.add( "backport-util-concurrent:backport-util-concurrent:3.0::jar" ); - expectedNodes.add( "classworlds:classworlds:1.1::jar" ); - expectedNodes.add( "commons-beanutils:commons-beanutils:1.7.0::jar" ); - expectedNodes.add( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ); - expectedNodes.add( "commons-codec:commons-codec:1.3::jar" ); - expectedNodes.add( "commons-collections:commons-collections:3.2::jar" ); - expectedNodes.add( "commons-configuration:commons-configuration:1.3::jar" ); - expectedNodes.add( "commons-digester:commons-digester:1.6::jar" ); - expectedNodes.add( "commons-io:commons-io:1.2::jar" ); - expectedNodes.add( "commons-jxpath:commons-jxpath:1.2::jar" ); - expectedNodes.add( "commons-lang:commons-lang:2.2::jar" ); - expectedNodes.add( "commons-logging:commons-logging:1.0.4::jar" ); - expectedNodes.add( "commons-logging:commons-logging-api:1.0.4::jar" ); - expectedNodes.add( "dom4j:dom4j:1.6.1::jar" ); - expectedNodes.add( "freemarker:freemarker:2.3.4::jar" ); - expectedNodes.add( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ); - expectedNodes.add( "it.could:webdav:0.4::jar" ); - expectedNodes.add( "javax.activation:activation:1.1::jar" ); - expectedNodes.add( "javax.jdo:jdo2-api:2.0::jar" ); - expectedNodes.add( "javax.mail:mail:1.4::jar" ); - expectedNodes.add( "javax.resource:connector:1.0::jar" ); - expectedNodes.add( "javax.servlet:jsp-api:2.0::jar" ); - expectedNodes.add( "javax.servlet:jstl:1.1.2::jar" ); - expectedNodes.add( "javax.servlet:servlet-api:2.4::jar" ); - expectedNodes.add( "javax.transaction:jta:1.0.1B::jar" ); - expectedNodes.add( "jaxen:jaxen:1.1::jar" ); - expectedNodes.add( "jdom:jdom:1.0::jar" ); - expectedNodes.add( "jpox:jpox:1.1.7::jar" ); - expectedNodes.add( "jtidy:jtidy:4aug2000r7-dev::jar" ); - expectedNodes.add( "junit:junit:3.8.1::jar" ); - expectedNodes.add( "log4j:log4j:1.2.8::jar" ); - expectedNodes.add( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - expectedNodes.add( "net.sf.ehcache:ehcache:1.2.4::jar" ); - expectedNodes.add( "ognl:ognl:2.6.7::jar" ); - expectedNodes.add( "opensymphony:oscore:2.2.4::jar" ); - expectedNodes.add( "opensymphony:sitemesh:2.2.1::jar" ); - expectedNodes.add( "opensymphony:webwork:2.2.4::jar" ); - expectedNodes.add( "opensymphony:xwork:1.2.1::jar" ); - expectedNodes.add( "org.apache.derby:derby:10.1.3.1::jar" ); - expectedNodes.add( "org.apache.lucene:lucene-core:2.0.0::jar" ); - expectedNodes.add( "org.apache.maven:maven-artifact:2.0.5::jar" ); - expectedNodes.add( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ); - expectedNodes.add( "org.apache.maven:maven-model:2.0.5::jar" ); - expectedNodes.add( "org.apache.maven:maven-profile:2.0.5::jar" ); - expectedNodes.add( "org.apache.maven:maven-project:2.0.5::jar" ); - expectedNodes.add( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ); - expectedNodes.add( "org.apache.maven:maven-settings:2.0.5::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ); - expectedNodes.add( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-digest:1.1::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.4::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ); - expectedNodes.add( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ); - expectedNodes.add( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ); - expectedNodes.add( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ); - expectedNodes.add( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ); - expectedNodes.add( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2::jar" ); - expectedNodes.add( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ); - expectedNodes.add( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ); - expectedNodes.add( "org.extremecomponents:extremecomponents:1.0.1::jar" ); - expectedNodes.add( "org.rifers:rife-continuations:0.0.2::jar" ); - expectedNodes.add( "org.slf4j:slf4j-api:1.2::jar" ); - expectedNodes.add( "org.slf4j:slf4j-log4j12:1.2::jar" ); - expectedNodes.add( "org.slf4j:slf4j-simple:1.2::jar" ); - expectedNodes.add( "quartz:quartz:1.4.5::jar" ); - expectedNodes.add( "stax:stax-api:1.0.1::jar" ); - expectedNodes.add( "taglibs:standard:1.1.2::jar" ); - expectedNodes.add( "velocity:velocity:1.4::jar" ); - expectedNodes.add( "velocity:velocity-dep:1.4::jar" ); - expectedNodes.add( "xerces:xercesImpl:2.6.2::jar" ); - expectedNodes.add( "xml-apis:xml-apis:1.3.03::jar" ); - - assertGraph( graph, expectedRootRef, expectedNodes ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappMemoryRepository.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappMemoryRepository.java deleted file mode 100644 index ab19663bb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappMemoryRepository.java +++ /dev/null @@ -1,3469 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.VersionedReference; - -/** - * ArchivaWebappMemoryRepository - * - * MemoryRepository for testing org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class ArchivaWebappMemoryRepository - extends AbstractMemoryRepository -{ - public void initialize() - { - ArchivaProjectModel model; - Dependency dep; - - model = toModel( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "runtime" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "runtime" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war", "runtime" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "provided" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.activation:activation:1.1::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); - model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); - model.addProperty( "wagon.version", "1.0-beta-2" ); - model.addProperty( "redback.version", "1.0-alpha-1" ); - model.addProperty( "maven.version", "2.0.5" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); - model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); - model.addProperty( "wagon.version", "1.0-beta-2" ); - model.addProperty( "maven.version", "2.0.5" ); - model.addProperty( "redback.version", "1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:5" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - addModel( model ); - - model = toModel( "org.apache:apache:3" ); - addModel( model ); - - model = toModel( "junit:junit:3.8.1" ); - addModel( model ); - - model = toModel( "javax.activation:activation:1.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependencyManagement( toDependency( "classworlds:classworlds:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "classworlds:classworlds:1.1-alpha-2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:4" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); - model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-containers:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0.3" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-utils:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.27" ); - dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "com.jcraft:jzlib:1.0.7" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); - addModel( model ); - - model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.0.b2" ); - addModel( model ); - - model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); - model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); - model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-components:1.0" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); - model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "jetty:jetty:4.2.10" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.3" ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.3" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.servlet" ); - model.getRelocation().setArtifactId( "servlet-api" ); - model.getRelocation().setVersion( "2.3" ); - addModel( model ); - - model = toModel( "easymock:easymock:1.2_Java1.3" ); - addModel( model ); - - model = toModel( "classworlds:classworlds:1.1" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-digest:1.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.12" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.10" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.9" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jmock:jmock:1.0.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.4.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.11" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-model-converter:2.1" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model-v3:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "dom4j:dom4j:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-shared-components:7" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model-v3:2.0" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon:1.0-alpha-6" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.24" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "dom4j:dom4j:1.4" ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "jaxen:jaxen:1.0-FCS::jar" ) ); - model.addDependency( toDependency( "saxpath:saxpath:1.0-FCS::jar" ) ); - model.addDependency( toDependency( "msv:msv:20020414::jar" ) ); - model.addDependency( toDependency( "relaxngDatatype:relaxngDatatype:20020414::jar" ) ); - model.addDependency( toDependency( "isorelax:isorelax:20020414::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); - model.addDependency( toDependency( "xerces:xerces:2.0.2::jar", "test" ) ); - model.addDependency( toDependency( "xalan:xalan:2.3.1::jar", "test" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar", "test" ) ); - model.addDependency( toDependency( "pull-parser:pull-parser:2::jar", "test" ) ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.0-FCS" ); - addModel( model ); - - model = toModel( "saxpath:saxpath:1.0-FCS" ); - addModel( model ); - - model = toModel( "msv:msv:20020414" ); - addModel( model ); - - model = toModel( "relaxngDatatype:relaxngDatatype:20020414" ); - addModel( model ); - - model = toModel( "isorelax:isorelax:20020414" ); - addModel( model ); - - model = toModel( "junitperf:junitperf:1.8" ); - addModel( model ); - - model = toModel( "xerces:xerces:2.0.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xerces" ); - model.getRelocation().setArtifactId( "xercesImpl" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.0.2" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.3.1" ); - addModel( model ); - - model = toModel( "pull-parser:pull-parser:2" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xerces:xmlParserAPIs" ); - model.addDependency( dep ); - dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - dep = toDependency( "commons-logging:commons-logging:1.0.4::jar" ); - addExclusion( dep, "logkit:logkit" ); - model.addDependency( dep ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "javax.jdo:jdo2-api:2.0" ); - model.addDependency( toDependency( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ) ); - dep = toDependency( "xerces:xerces:2.4.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2" ); - addModel( model ); - - model = toModel( "xerces:xerces:2.4.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xerces" ); - model.getRelocation().setArtifactId( "xercesImpl" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.4.0" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-io:commons-io:1.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - dep = toDependency( "dom4j:dom4j:1.6.1::jar" ); - addExclusion( dep, "xom:xom" ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.1::jar" ); - addExclusion( dep, "jdom:jdom" ); - addExclusion( dep, "xom:xom" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - addModel( model ); - - model = toModel( "dom4j:dom4j:1.6.1" ); - dep = toDependency( "jaxme:jaxme-api:0.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.1-beta-6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "msv:xsdlib:20030807::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "msv:relaxngDatatype:20030807::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "pull-parser:pull-parser:2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xpp3:xpp3:1.1.3.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "stax:stax-api:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); - model.addDependency( toDependency( "stax:stax-ri:1.0::jar", "test" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar", "test" ) ); - model.addDependency( toDependency( "xalan:xalan:2.5.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jaxme:jaxme-api:0.3" ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.1-beta-6" ); - addModel( model ); - - model = toModel( "msv:xsdlib:20030807" ); - addModel( model ); - - model = toModel( "msv:relaxngDatatype:20030807" ); - addModel( model ); - - model = toModel( "xpp3:xpp3:1.1.3.3" ); - addModel( model ); - - model = toModel( "stax:stax-api:1.0" ); - addModel( model ); - - model = toModel( "stax:stax-ri:1.0" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.2" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.5.1" ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.1" ); - model.addDependency( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); - model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.3.02::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "xom:xom:1.0::jar" ) ); - addModel( model ); - - model = toModel( "jdom:jdom:1.0" ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.0-FCS::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "saxpath:saxpath:1.0-FCS::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xalan:xalan:2.5.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.0" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.5.0" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.3.02" ); - addModel( model ); - - model = toModel( "xom:xom:1.0" ); - model.addDependency( toDependency( "xerces:xmlParserAPIs:2.6.2::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "xalan:xalan:2.6.0::jar" ) ); - model.addDependency( toDependency( "com.ibm.icu:icu4j:2.6.1::jar" ) ); - addModel( model ); - - model = toModel( "xerces:xmlParserAPIs:2.6.2" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.6.0" ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:2.0.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xml-apis" ); - model.getRelocation().setArtifactId( "xml-apis" ); - model.getRelocation().setVersion( "1.0.b2" ); - addModel( model ); - - model = toModel( "com.ibm.icu:icu4j:2.6.1" ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-log4j12:1.2" ); - model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.13::jar" ) ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-parent:1.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-api:1.2" ); - model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.13" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.9" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "net.sf.ehcache:ehcache:1.2.4" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "compile" ) ); - dep = toDependency( "org.hibernate:hibernate:3.2.0.cr3::jar", "test" ); - addExclusion( dep, "javax.transaction:jta" ); - addExclusion( dep, "javax.security:jacc" ); - model.addDependency( dep ); - dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar", "test" ); - addExclusion( dep, "javax.transaction:jta" ); - addExclusion( dep, "javax.security:jacc" ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6::jar", "test" ) ); - model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); - model.addDependency( toDependency( "com.cenqua.clover:clover:1.3.13::jar", "test" ) ); - model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar", "test" ) ); - model.addDependency( toDependency( "checkstyle:checkstyle-optional:4.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); - model.addProperty( "licenseFile", "${basedir}/tools/clover.license" ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.4" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.6" ); - addModel( model ); - - model = toModel( "logkit:logkit:1.0.1" ); - addModel( model ); - - model = toModel( "junit:junit:3.7" ); - addModel( model ); - - model = toModel( "avalon-framework:avalon-framework:4.1.3" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate:3.2.0.cr3" ); - addModel( model ); - - model = toModel( "net.sf.hibernate:hibernate:2.1.8" ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.4" ); - addModel( model ); - - model = toModel( "httpunit:httpunit:1.6" ); - model.addDependency( toDependency( "xerces:xmlParserAPIs:2.2.1::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "nekohtml:nekohtml:0.9.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "rhino:js:1.5R4.1::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "test" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "xerces:xmlParserAPIs:2.2.1" ); - addModel( model ); - - model = toModel( "nekohtml:nekohtml:0.9.1" ); - model.addDependency( toDependency( "xerces:xerces:2.4.0::jar" ) ); - addModel( model ); - - model = toModel( "rhino:js:1.5R4.1" ); - addModel( model ); - - model = toModel( "javax.activation:activation:1.0.2" ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.3.1" ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "commons-httpclient:commons-httpclient:3.0.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - model.addDependency( toDependency( "commons-codec:commons-codec:1.2::jar" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.3" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-codec:commons-codec:1.2" ); - addModel( model ); - - model = toModel( "com.cenqua.clover:clover:1.3.13" ); - addModel( model ); - - model = toModel( "checkstyle:checkstyle:4.1" ); - model.addDependency( toDependency( "antlr:antlr:2.7.2::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "antlr:antlr:2.7.2" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils-core:1.7.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:2.0" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:2.1" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "checkstyle:checkstyle-optional:4.1" ); - model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar" ) ); - addModel( model ); - - model = toModel( "httpunit:httpunit:1.6.1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.4" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-simple:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging:1.0.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4" ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-simple:1.2" ); - model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar", "test" ) ); - dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); - addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); - addExclusion( dep, "xerces:xerces" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xalan:xalan" ); - addExclusion( dep, "xml-apis:xml-apis" ); - addExclusion( dep, "servletapi:servletapi" ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); - addModel( model ); - - model = toModel( "commons-configuration:commons-configuration:1.3" ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - model.addDependency( toDependency( "commons-digester:commons-digester:1.6::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-codec:commons-codec:1.3::jar" ) ); - model.addDependency( toDependency( "commons-jxpath:commons-jxpath:1.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.2.1::jar" ) ); - model.addDependency( toDependency( "xalan:xalan:2.7.0::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "servletapi:servletapi:2.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "spice:spice-jndikit:1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.2.2::jar", "test" ) ); - model.addDependency( toDependency( "dbunit:dbunit:2.1::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "junit-addons:junit-addons:1.4::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging-api:1.0.4" ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.6" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.6" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-codec:commons-codec:1.3" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-jxpath:commons-jxpath:1.2" ); - model.addDependency( toDependency( "xerces:xerces:1.2.3::jar" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8::jar" ) ); - model.addDependency( toDependency( "ant:ant-optional:1.5.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "jdom:jdom:b9::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.4::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - addModel( model ); - - model = toModel( "xerces:xerces:1.2.3" ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.servlet" ); - model.getRelocation().setArtifactId( "servlet-api" ); - model.getRelocation().setVersion( "2.2" ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.2" ); - addModel( model ); - - model = toModel( "junit:junit:3.8" ); - addModel( model ); - - model = toModel( "ant:ant-optional:1.5.1" ); - addModel( model ); - - model = toModel( "jdom:jdom:b9" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.4" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "xerces:xerces:2.2.1" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.7.0" ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.4" ); - addModel( model ); - - model = toModel( "spice:spice-jndikit:1.1" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.1" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.1" ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.2.2" ); - addModel( model ); - - model = toModel( "dbunit:dbunit:2.1" ); - addModel( model ); - - model = toModel( "junit-addons:junit-addons:1.4" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-core:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.7.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - dep = toDependency( "jpox:jpox:1.1.1::jar", "test" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "jpox:jpox:1.1.1" ); - model.setParentProject( toParent( "jpox:jpox-parent:1.1.1" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); - dep = toDependency( "javax.security:jaas:1.0.01::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.sql:jdbc-stdext:2.0::jar" ) ); - dep = toDependency( "ant:ant:1.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "jpox:jpox-dbcp:1.1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2::jar", "test" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar", "test" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jpox:jpox-parent:1.1.1" ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.8" ); - addModel( model ); - - model = toModel( "javax.resource:connector:1.0" ); - addModel( model ); - - model = toModel( "javax.security:jaas:1.0.01" ); - addModel( model ); - - model = toModel( "javax.sql:jdbc-stdext:2.0" ); - addModel( model ); - - model = toModel( "ant:ant:1.6" ); - addModel( model ); - - model = toModel( "jpox:jpox-dbcp:1.1.1" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.2" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.2" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.3.0" ); - addModel( model ); - - model = toModel( "jpox:jpox:1.1.7" ); - model.setParentProject( toParent( "jpox:jpox-parent:1.1.7" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); - model.addDependency( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); - dep = toDependency( "ant:ant:1.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jpox:jpox-parent:1.1.7" ); - addModel( model ); - - model = toModel( "javax.transaction:jta:1.0.1B" ); - addModel( model ); - - model = toModel( "org.apache.derby:derby:10.1.3.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "xmlunit:xmlunit:1.0::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.7" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "xmlunit:xmlunit:1.0" ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.8.0.7" ); - addModel( model ); - - model = toModel( "org.apache.derby:derbytools:10.1.3.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-i18n:1.0-beta-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.lucene:lucene-core:2.0.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); - model.addProperty( "archivaVersion", "1.0-alpha-2-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ); - addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:3.0::jar" ) ); - addModel( model ); - - model = toModel( "backport-util-concurrent:backport-util-concurrent:3.0" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "quartz:quartz:1.4.5::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.2::jar" ) ); - addModel( model ); - - model = toModel( "quartz:quartz:1.4.5" ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.2" ); - dep = toDependency( "log4j:log4j:1.1.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "log4j:log4j:1.1.3" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); - addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "xalan:xalan:2.7.0::jar" ) ); - model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.3.03::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addProperty( "security.version", "1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); - dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); - addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); - addExclusion( dep, "xerces:xerces" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xalan:xalan" ); - addExclusion( dep, "xml-apis:xml-apis" ); - addExclusion( dep, "servletapi:servletapi" ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging:1.0.2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.5" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xerces:xmlParserAPIs" ); - model.addDependency( dep ); - dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.8.0.4" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "net.java.dev.stax-utils:stax-utils:20060502" ); - model.addDependency( toDependency( "com.bea.xml:jsr173-ri:1.0::jar" ) ); - addModel( model ); - - model = toModel( "com.bea.xml:jsr173-ri:1.0" ); - model.addDependency( toDependency( "javax.xml:jsr173:1.0::jar" ) ); - addModel( model ); - - model = toModel( "javax.xml:jsr173:1.0" ); - addModel( model ); - - model = toModel( "stax:stax-api:1.0.1" ); - addModel( model ); - - model = toModel( "woodstox:wstx-asl:3.2.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "org.codehaus.woodstox" ); - addModel( model ); - - model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.0" ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); - addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "stax:stax:1.1.1-dev" ); - model.addDependency( toDependency( "xmlbeans:xmlbeans-jsr173-api:2.0-dev::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "xmlbeans:xmlbeans-jsr173-api:2.0-dev" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "commons-logging:commons-logging-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "taglibs:standard:1.1.2" ); - addModel( model ); - - model = toModel( "javax.servlet:jstl:1.1.2" ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "javax.servlet:jsp-api:2.0" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - model.addDependency( toDependency( "org.easymock:easymock:2.2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); - model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.easymock:easymock:2.2" ); - addModel( model ); - - model = toModel( "opensymphony:xwork:1.2.1" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.rifers:rife-continuations:0.0.2::jar" ) ); - model.addDependency( toDependency( "opensymphony:oscore:2.2.4::jar" ) ); - model.addDependency( toDependency( "ognl:ognl:2.6.7::jar" ) ); - dep = toDependency( "org.springframework:spring-core:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-aop:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-beans:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-context:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.springframework:spring-mock:1.2.6::jar", "test" ) ); - dep = toDependency( "cglib:cglib:2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.rifers:rife-continuations:0.0.2" ); - addModel( model ); - - model = toModel( "opensymphony:oscore:2.2.4" ); - addModel( model ); - - model = toModel( "ognl:ognl:2.6.7" ); - addModel( model ); - - model = toModel( "org.springframework:spring-core:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-parent:1.2.6" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "org.hibernate:hibernate:3.0.5::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "org.hibernate:hibernate-annotations:3.0beta2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "struts:struts:1.2.7::jar" ); - addExclusion( dep, "servletapi:servletapi" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "oro:oro:2.0.8::jar" ) ); - dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "xdoclet:xjavadoc:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "javax.mail:mail:1.3.2::jar" ) ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); - dep = toDependency( "jotm:jotm:2.0.10::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "c3p0:c3p0:0.9.0.2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.experlog:xapool:1.5.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - dep = toDependency( "com.oracle.toplink:toplink:10.1.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "ojb:db-ojb:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.jdo:jdo:2.0-20050809.1515::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.ibatis:ibatis-sqlmap:1.3.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.ibatis:ibatis2-sqlmap:2.1.5.582::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.jms:jms:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.ejb:ejb:2.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.xml:jaxrpc-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-httpclient:commons-httpclient:3.0-rc4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.caucho:burlap:2.1.12::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.caucho:hessian:2.1.12::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "javax.resource:connector:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "ehcache:ehcache:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "quartz:quartz:1.5.1::jar" ) ); - model.addDependencyManagement( toDependency( "com.servlets:cos:05Nov2002::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_RC2_Java1.3::jar", "test" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.0.6::jar" ) ); - dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "velocity-tools:velocity-tools-generic:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "velocity-tools:velocity-tools-view:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "poi:poi:2.5.1-final-20040804::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "itext:itext:1.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "net.sourceforge.jexcelapi:jxl:2.5.7::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.9" ); - addModel( model ); - - model = toModel( "cglib:cglib:2.1_3" ); - addModel( model ); - - model = toModel( "commons-attributes:commons-attributes-compiler:2.1" ); - model.addDependency( toDependency( "commons-attributes:commons-attributes-api:2.1::jar" ) ); - addModel( model ); - - model = toModel( "commons-attributes:commons-attributes-api:2.1" ); - model.addDependency( toDependency( "ant:ant:1.5::jar" ) ); - model.addDependency( toDependency( "qdox:qdox:1.5::jar" ) ); - addModel( model ); - - model = toModel( "ant:ant:1.5" ); - addModel( model ); - - model = toModel( "qdox:qdox:1.5" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate:3.0.5" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate-annotations:3.0beta2" ); - addModel( model ); - - model = toModel( "struts:struts:1.2.7" ); - addModel( model ); - - model = toModel( "jasperreports:jasperreports:1.0.3" ); - addModel( model ); - - model = toModel( "freemarker:freemarker:2.3.4" ); - addModel( model ); - - model = toModel( "aopalliance:aopalliance:1.0" ); - addModel( model ); - - model = toModel( "oro:oro:2.0.8" ); - addModel( model ); - - model = toModel( "com.jamonapi:jamon:1.0" ); - addModel( model ); - - model = toModel( "xdoclet:xjavadoc:1.1" ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.3.2" ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "velocity:velocity:1.4" ); - model.addDependency( toDependency( "velocity:velocity-dep:1.4::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "velocity:velocity-dep:1.4" ); - addModel( model ); - - model = toModel( "jotm:jotm:2.0.10" ); - addModel( model ); - - model = toModel( "c3p0:c3p0:0.9.0.2" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.2.1" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); - dep = toDependency( "javax.sql:jdbc-stdext:2.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); - addModel( model ); - - model = toModel( "com.experlog:xapool:1.5.0" ); - addModel( model ); - - model = toModel( "com.oracle.toplink:toplink:10.1.3" ); - addModel( model ); - - model = toModel( "ojb:db-ojb:1.0.3" ); - addModel( model ); - - model = toModel( "javax.jdo:jdo:2.0-20050809.1515" ); - addModel( model ); - - model = toModel( "com.ibatis:ibatis-sqlmap:1.3.1" ); - addModel( model ); - - model = toModel( "com.ibatis:ibatis2-sqlmap:2.1.5.582" ); - addModel( model ); - - model = toModel( "javax.jms:jms:1.1" ); - addModel( model ); - - model = toModel( "javax.ejb:ejb:2.0" ); - addModel( model ); - - model = toModel( "javax.xml:jaxrpc-api:1.1" ); - addModel( model ); - - model = toModel( "commons-httpclient:commons-httpclient:3.0-rc4" ); - addModel( model ); - - model = toModel( "com.caucho:burlap:2.1.12" ); - addModel( model ); - - model = toModel( "com.caucho:hessian:2.1.12" ); - addModel( model ); - - model = toModel( "ehcache:ehcache:1.1" ); - addModel( model ); - - model = toModel( "quartz:quartz:1.5.1" ); - addModel( model ); - - model = toModel( "com.servlets:cos:05Nov2002" ); - addModel( model ); - - model = toModel( "easymock:easymock:1.2_RC2_Java1.3" ); - addModel( model ); - - model = toModel( "javax.servlet:jstl:1.0" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "provided" ) ); - addModel( model ); - - model = toModel( "taglibs:standard:1.0.6" ); - addModel( model ); - - model = toModel( "javax.faces:jsf-api:1.1" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools-generic:1.1" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools-view:1.1" ); - addModel( model ); - - model = toModel( "poi:poi:2.5.1-final-20040804" ); - addModel( model ); - - model = toModel( "itext:itext:1.3" ); - addModel( model ); - - model = toModel( "net.sourceforge.jexcelapi:jxl:2.5.7" ); - addModel( model ); - - model = toModel( "org.springframework:spring-aop:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-beans:1.2.6::jar" ) ); - model.addDependency( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); - model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); - dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "xdoclet:xjavadoc:1.1::jar", "test" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-beans:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-core:1.2.6::jar" ) ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.3.2::jar", "test" ) ); - model.addDependency( toDependency( "org.hibernate:hibernate:3.0.5::jar", "test" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-context:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-aop:1.2.6::jar" ) ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.springframework:spring-web:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.0::jar" ) ); - model.addDependency( toDependency( "org.springframework:spring-context:1.2.6::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "struts:struts:1.2.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "com.servlets:cos:05Nov2002::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "taglibs:standard:1.0.6::jar" ) ); - dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.springframework:spring-mock:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - dep = toDependency( "org.springframework:spring-jdbc:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-jdbc:1.2.6" ); - addModel( model ); - - model = toModel( "cglib:cglib:2.1" ); - model.addDependency( toDependency( "asm:asm:1.5.3::jar" ) ); - model.addDependency( toDependency( "asm:asm-util:1.3.4::jar" ) ); - model.addDependency( toDependency( "aspectwerkz:aspectwerkz-core:0.8.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "asm:asm:1.5.3" ); - addModel( model ); - - model = toModel( "asm:asm-util:1.3.4" ); - addModel( model ); - - model = toModel( "aspectwerkz:aspectwerkz-core:0.8.1" ); - addModel( model ); - - model = toModel( "easymock:easymockclassextension:1.1" ); - addModel( model ); - - model = toModel( "opensymphony:webwork:2.2.4" ); - model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); - dep = toDependency( "opensymphony:xwork-tiger:1.2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "freemarker:freemarker:2.3.4::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "commons-lang:commons-lang:2.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "dwr:dwr:1.1-beta-3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "velocity-tools:velocity-tools:1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-fileupload:commons-fileupload:1.1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "servlets.com:cos:05Nov2002::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "opensymphony:pell-multipart:2.1.5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "opensymphony:sitemesh:2.2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jetty:org.mortbay.jetty:5.1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "eclipse:jdtcore:3.1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jasperreports:jasperreports:1.1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jfree:jfreechart:1.0.0::jar" ); - addExclusion( dep, "gnujaxp:gnujaxp" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-digester:commons-digester:1.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "portlet-api:portlet-api:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.apache.pluto:pluto:1.0.1-rc4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "picocontainer:picocontainer:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "picocontainer:picocontainer-gems:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "nanocontainer:nanocontainer:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "nanocontainer:nanocontainer-nanowar:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-beans:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-core:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-context:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-mock:1.2::jar", "compile" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xpp3:xpp3:1.1.3.4-RC8::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "junit:junit:3.8.1::jar", "compile" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); - model.addDependency( toDependency( "jmock:jmock-cglib:1.0.1::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); - addModel( model ); - - model = toModel( "opensymphony:xwork-tiger:1.2.1" ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.0" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "dwr:dwr:1.1-beta-3" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools:1.1" ); - addModel( model ); - - model = toModel( "commons-fileupload:commons-fileupload:1.1.1" ); - addModel( model ); - - model = toModel( "servlets.com:cos:05Nov2002" ); - addModel( model ); - - model = toModel( "opensymphony:pell-multipart:2.1.5" ); - addModel( model ); - - model = toModel( "opensymphony:sitemesh:2.2.1" ); - addModel( model ); - - model = toModel( "jetty:org.mortbay.jetty:5.1.4" ); - addModel( model ); - - model = toModel( "eclipse:jdtcore:3.1.0" ); - addModel( model ); - - model = toModel( "jasperreports:jasperreports:1.1.0" ); - addModel( model ); - - model = toModel( "jfree:jfreechart:1.0.0" ); - addModel( model ); - - model = toModel( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT" ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.7" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "portlet-api:portlet-api:1.0" ); - addModel( model ); - - model = toModel( "org.apache.pluto:pluto:1.0.1-rc4" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "picocontainer:picocontainer:1.2" ); - addModel( model ); - - model = toModel( "picocontainer:picocontainer-gems:1.2" ); - addModel( model ); - - model = toModel( "nanocontainer:nanocontainer:1.0" ); - addModel( model ); - - model = toModel( "nanocontainer:nanocontainer-nanowar:1.0" ); - addModel( model ); - - model = toModel( "org.springframework:spring-beans:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-core:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-context:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-web:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-mock:1.2" ); - addModel( model ); - - model = toModel( "xpp3:xpp3:1.1.3.4-RC8" ); - addModel( model ); - - model = toModel( "jmock:jmock-cglib:1.0.1" ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar" ) ); - model.addDependency( toDependency( "cglib:cglib-full:2.0::jar" ) ); - addModel( model ); - - model = toModel( "cglib:cglib-full:2.0" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-alt-jdk1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-1::jar", "test" ); - addExclusion( dep, "geronimo-spec:geronimo-spec-javamail" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.4" ); - model.addDependency( toDependency( "javax.activation:activation:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); - model.addDependency( toDependency( "dumbster:dumbster:1.5::jar" ) ); - addModel( model ); - - model = toModel( "dumbster:dumbster:1.5" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-core:0.8" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-java:0.8" ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-factory:0.8" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1::jar" ) ); - addModel( model ); - - model = toModel( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1" ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.1" ); - addModel( model ); - - model = toModel( "org.extremecomponents:extremecomponents:1.0.1" ); - dep = toDependency( "avalon-framework:avalon-framework:4.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "batik:batik:1.5-fop-0.20-5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.0::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "fop:fop:0.20.5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - dep = toDependency( "poi:poi:2.5.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "provided" ) ); - model.addDependency( toDependency( "taglibs:standard:1.0.2::jar" ) ); - dep = toDependency( "xalan:xalan:2.5.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xerces:xercesImpl:2.6.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:2.0.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "avalon-framework:avalon-framework:4.0" ); - addModel( model ); - - model = toModel( "batik:batik:1.5-fop-0.20-5" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "fop:fop:0.20.5" ); - addModel( model ); - - model = toModel( "poi:poi:2.5.1" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "poi" ); - model.getRelocation().setArtifactId( "poi" ); - model.getRelocation().setVersion( "2.5.1-final-20040804" ); - addModel( model ); - - model = toModel( "taglibs:standard:1.0.2" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.1" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils-bean-collections:1.7.0" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.2" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar", "compile" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "velocity:velocity:1.4::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.3.03" ); - model.setParentProject( toParent( "org.apache:apache:1" ) ); - addModel( model ); - - model = toModel( "org.apache:apache:1" ); - addModel( model ); - - model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.1" ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.5::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-settings:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0.5" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration-model:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration-web:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-settings:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "mx4j:mx4j:3.0.1::jar" ) ); - model.addDependency( toDependency( "mx4j:mx4j-remote:3.0.1::jar" ) ); - model.addDependency( toDependency( "org.livetribe:livetribe-slp:1.0.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - addModel( model ); - - model = toModel( "mx4j:mx4j:3.0.1" ); - addModel( model ); - - model = toModel( "mx4j:mx4j-remote:3.0.1" ); - addModel( model ); - - model = toModel( "org.livetribe:livetribe-slp:1.0.2" ); - model.setParentProject( toParent( "org.livetribe:livetribe:1.0" ) ); - model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:2.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.livetribe:livetribe:1.0" ); - addModel( model ); - - model = toModel( "backport-util-concurrent:backport-util-concurrent:2.2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ) ); - model.addDependency( toDependency( "ant:ant:1.6.2::jar" ) ); - model.addDependency( toDependency( "jetty:org.mortbay.jetty:5.1.10::jar" ) ); - model.addDependency( toDependency( "tomcat:jasper-compiler:5.5.15::jar" ) ); - model.addDependency( toDependency( "tomcat:jasper-runtime:5.5.15::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - dep = toDependency( "commons-el:commons-el:1.0::jar", "runtime" ); - addExclusion( dep, "log4j:log4j" ); - addExclusion( dep, "commons-logging:commons-logging" ); - addExclusion( dep, "logkit:logkit" ); - model.addDependency( dep ); - model.addDependency( toDependency( "jetty:org.mortbay.jetty.plus:5.1.10::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "ant:ant:1.6.2" ); - dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xerces:xerces-impl:2.6.2" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:2.6.2" ); - addModel( model ); - - model = toModel( "jetty:org.mortbay.jetty:5.1.10" ); - addModel( model ); - - model = toModel( "tomcat:jasper-compiler:5.5.15" ); - model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - model.addDependency( toDependency( "ant:ant:1.6.5::jar" ) ); - addModel( model ); - - model = toModel( "tomcat:tomcat-parent:5.5.15" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "ant:ant:1.6.5" ); - dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "tomcat:jasper-runtime:5.5.15" ); - model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependency( toDependency( "commons-el:commons-el:1.0::jar" ) ); - addModel( model ); - - model = toModel( "commons-el:commons-el:1.0" ); - model.addDependency( toDependency( "servletapi:servletapi:2.4-20040521::jar", "provided" ) ); - model.addDependency( toDependency( "jspapi:jsp-api:2.0-20040521::jar", "provided" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.4-20040521" ); - addModel( model ); - - model = toModel( "jspapi:jsp-api:2.0-20040521" ); - addModel( model ); - - model = toModel( "jetty:org.mortbay.jetty.plus:5.1.10" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-cli:1.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-tools:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); - addExclusion( dep, "commons-lang:commons-lang" ); - addExclusion( dep, "commons-logging:commons-logging" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-tools:1.0.8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "commons-cli:commons-cli:1.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:1.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:1.0" ); - model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-config:0.8::jar" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-config:0.8" ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:1.0.1::jar" ) ); - model.addDependency( toDependency( "commons-digester:commons-digester:1.4.1::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6.1::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.0::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.0.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:1.0.1" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.4.1" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.6.1" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.0" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:1.0-b1::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.0::jar" ) ); - model.addDependency( toDependency( "jdbc:jdbc:2.0::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:1.0-b1" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.0" ); - addModel( model ); - - model = toModel( "jdbc:jdbc:2.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.sql" ); - model.getRelocation().setArtifactId( "jdbc-stdext" ); - model.getRelocation().setVersion( "2.0" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.0.1" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - model.addDependency( toDependency( "it.could:webdav:0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "it.could:webdav:0.4" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); - addModel( model ); - - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsDependencyGraphTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsDependencyGraphTest.java deleted file mode 100644 index 6733b8900..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsDependencyGraphTest.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.dependency.DependencyGraphFactory; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.ArrayList; -import java.util.List; - -/** - * ArchivaXmlToolsDependencyGraphTest - * - * DependencyGraphTest for testing org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class ArchivaXmlToolsDependencyGraphTest - extends AbstractDependencyGraphFactoryTestCase -{ - public void testResolvedDepsToNodes() - throws GraphTaskException - { - MemoryRepositoryDependencyGraphBuilder graphBuilder = - new MemoryRepositoryDependencyGraphBuilder(); - MemoryRepository repository = new ArchivaXmlToolsMemoryRepository(); - graphBuilder.setMemoryRepository( repository ); - - // Create the factory, and add the test resolver. - DependencyGraphFactory factory = new DependencyGraphFactory(); - factory.setGraphBuilder( graphBuilder ); - factory.setDesiredScope( DependencyScope.TEST ); - - // Get the model to resolve from - VersionedReference rootRef = toVersionedReference( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT"); - - // Perform the resolution. - DependencyGraph graph = factory.getGraph( rootRef ); - - // Test the results. - assertNotNull( "Graph shouldn't be null.", graph ); - - String expectedRootRef = "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT"; - List expectedNodes = new ArrayList(); - - // Check for all nodes, regardless of scope. - expectedNodes.clear(); - expectedNodes.add( "commons-collections:commons-collections:3.2::jar" ); - expectedNodes.add( "commons-lang:commons-lang:2.2::jar" ); - expectedNodes.add( "dom4j:dom4j:1.6.1::jar" ); - expectedNodes.add( "jaxen:jaxen:1.1::jar" ); - expectedNodes.add( "junit:junit:3.8.1::jar" ); - expectedNodes.add( "log4j:log4j:1.2.8::jar" ); - expectedNodes.add( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.4::jar" ); - expectedNodes.add( "org.slf4j:slf4j-api:1.2::jar" ); - expectedNodes.add( "org.slf4j:slf4j-log4j12:1.2::jar" ); - expectedNodes.add( "xerces:xercesImpl:2.6.2::jar" ); - expectedNodes.add( "xml-apis:xml-apis:1.0.b2::jar" ); - - assertGraph( graph, expectedRootRef, expectedNodes ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsMemoryRepository.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsMemoryRepository.java deleted file mode 100644 index 3fd53ce76..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsMemoryRepository.java +++ /dev/null @@ -1,3469 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.VersionedReference; - -/** - * ArchivaXmlToolsMemoryRepository - * - * MemoryRepository for testing org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class ArchivaXmlToolsMemoryRepository - extends AbstractMemoryRepository -{ - public void initialize() - { - ArchivaProjectModel model; - Dependency dep; - - model = toModel( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - dep = toDependency( "dom4j:dom4j:1.6.1::jar" ); - addExclusion( dep, "xom:xom" ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.1::jar" ); - addExclusion( dep, "jdom:jdom" ); - addExclusion( dep, "xom:xom" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); - model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); - model.addProperty( "wagon.version", "1.0-beta-2" ); - model.addProperty( "redback.version", "1.0-alpha-1" ); - model.addProperty( "maven.version", "2.0.5" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); - model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); - model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); - model.addProperty( "wagon.version", "1.0-beta-2" ); - model.addProperty( "maven.version", "2.0.5" ); - model.addProperty( "redback.version", "1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:5" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - addModel( model ); - - model = toModel( "org.apache:apache:3" ); - addModel( model ); - - model = toModel( "junit:junit:3.8.1" ); - addModel( model ); - - model = toModel( "javax.activation:activation:1.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependencyManagement( toDependency( "classworlds:classworlds:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "classworlds:classworlds:1.1-alpha-2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:4" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); - model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-containers:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0.3" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-utils:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.27" ); - dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "com.jcraft:jzlib:1.0.7" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); - addModel( model ); - - model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.0.b2" ); - addModel( model ); - - model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); - model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); - model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-components:1.0" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); - model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "jetty:jetty:4.2.10" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.3" ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.3" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.servlet" ); - model.getRelocation().setArtifactId( "servlet-api" ); - model.getRelocation().setVersion( "2.3" ); - addModel( model ); - - model = toModel( "easymock:easymock:1.2_Java1.3" ); - addModel( model ); - - model = toModel( "classworlds:classworlds:1.1" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-digest:1.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.12" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.10" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.9" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jmock:jmock:1.0.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.4.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.11" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-model-converter:2.1" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model-v3:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "dom4j:dom4j:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-shared-components:7" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model-v3:2.0" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon:1.0-alpha-6" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.24" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "dom4j:dom4j:1.4" ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "jaxen:jaxen:1.0-FCS::jar" ) ); - model.addDependency( toDependency( "saxpath:saxpath:1.0-FCS::jar" ) ); - model.addDependency( toDependency( "msv:msv:20020414::jar" ) ); - model.addDependency( toDependency( "relaxngDatatype:relaxngDatatype:20020414::jar" ) ); - model.addDependency( toDependency( "isorelax:isorelax:20020414::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); - model.addDependency( toDependency( "xerces:xerces:2.0.2::jar", "test" ) ); - model.addDependency( toDependency( "xalan:xalan:2.3.1::jar", "test" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar", "test" ) ); - model.addDependency( toDependency( "pull-parser:pull-parser:2::jar", "test" ) ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.0-FCS" ); - addModel( model ); - - model = toModel( "saxpath:saxpath:1.0-FCS" ); - addModel( model ); - - model = toModel( "msv:msv:20020414" ); - addModel( model ); - - model = toModel( "relaxngDatatype:relaxngDatatype:20020414" ); - addModel( model ); - - model = toModel( "isorelax:isorelax:20020414" ); - addModel( model ); - - model = toModel( "junitperf:junitperf:1.8" ); - addModel( model ); - - model = toModel( "xerces:xerces:2.0.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xerces" ); - model.getRelocation().setArtifactId( "xercesImpl" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.0.2" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.3.1" ); - addModel( model ); - - model = toModel( "pull-parser:pull-parser:2" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xerces:xmlParserAPIs" ); - model.addDependency( dep ); - dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - dep = toDependency( "commons-logging:commons-logging:1.0.4::jar" ); - addExclusion( dep, "logkit:logkit" ); - model.addDependency( dep ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "javax.jdo:jdo2-api:2.0" ); - model.addDependency( toDependency( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ) ); - dep = toDependency( "xerces:xerces:2.4.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2" ); - addModel( model ); - - model = toModel( "xerces:xerces:2.4.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xerces" ); - model.getRelocation().setArtifactId( "xercesImpl" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.4.0" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-io:commons-io:1.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.9" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "net.sf.ehcache:ehcache:1.2.4" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "compile" ) ); - dep = toDependency( "org.hibernate:hibernate:3.2.0.cr3::jar", "test" ); - addExclusion( dep, "javax.transaction:jta" ); - addExclusion( dep, "javax.security:jacc" ); - model.addDependency( dep ); - dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar", "test" ); - addExclusion( dep, "javax.transaction:jta" ); - addExclusion( dep, "javax.security:jacc" ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6::jar", "test" ) ); - model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); - model.addDependency( toDependency( "com.cenqua.clover:clover:1.3.13::jar", "test" ) ); - model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar", "test" ) ); - model.addDependency( toDependency( "checkstyle:checkstyle-optional:4.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); - model.addProperty( "licenseFile", "${basedir}/tools/clover.license" ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.4" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.6" ); - addModel( model ); - - model = toModel( "logkit:logkit:1.0.1" ); - addModel( model ); - - model = toModel( "junit:junit:3.7" ); - addModel( model ); - - model = toModel( "avalon-framework:avalon-framework:4.1.3" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate:3.2.0.cr3" ); - addModel( model ); - - model = toModel( "net.sf.hibernate:hibernate:2.1.8" ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.4" ); - addModel( model ); - - model = toModel( "httpunit:httpunit:1.6" ); - model.addDependency( toDependency( "xerces:xmlParserAPIs:2.2.1::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "nekohtml:nekohtml:0.9.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "rhino:js:1.5R4.1::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "test" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "xerces:xmlParserAPIs:2.2.1" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.2" ); - addModel( model ); - - model = toModel( "nekohtml:nekohtml:0.9.1" ); - model.addDependency( toDependency( "xerces:xerces:2.4.0::jar" ) ); - addModel( model ); - - model = toModel( "rhino:js:1.5R4.1" ); - addModel( model ); - - model = toModel( "javax.activation:activation:1.0.2" ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.3.1" ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "commons-httpclient:commons-httpclient:3.0.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - model.addDependency( toDependency( "commons-codec:commons-codec:1.2::jar" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.3" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-codec:commons-codec:1.2" ); - addModel( model ); - - model = toModel( "com.cenqua.clover:clover:1.3.13" ); - addModel( model ); - - model = toModel( "checkstyle:checkstyle:4.1" ); - model.addDependency( toDependency( "antlr:antlr:2.7.2::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "antlr:antlr:2.7.2" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils-core:1.7.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:2.0" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:2.1" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "checkstyle:checkstyle-optional:4.1" ); - model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar" ) ); - addModel( model ); - - model = toModel( "httpunit:httpunit:1.6.1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.4" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-simple:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging:1.0.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4" ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-simple:1.2" ); - model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-parent:1.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-api:1.2" ); - model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-log4j12:1.2" ); - model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.13::jar" ) ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.13" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar", "test" ) ); - dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); - addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); - addExclusion( dep, "xerces:xerces" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xalan:xalan" ); - addExclusion( dep, "xml-apis:xml-apis" ); - addExclusion( dep, "servletapi:servletapi" ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); - addModel( model ); - - model = toModel( "commons-configuration:commons-configuration:1.3" ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - model.addDependency( toDependency( "commons-digester:commons-digester:1.6::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-codec:commons-codec:1.3::jar" ) ); - model.addDependency( toDependency( "commons-jxpath:commons-jxpath:1.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.2.1::jar" ) ); - model.addDependency( toDependency( "xalan:xalan:2.7.0::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "servletapi:servletapi:2.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "spice:spice-jndikit:1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.2.2::jar", "test" ) ); - model.addDependency( toDependency( "dbunit:dbunit:2.1::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "junit-addons:junit-addons:1.4::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging-api:1.0.4" ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.6" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.6" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-codec:commons-codec:1.3" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-jxpath:commons-jxpath:1.2" ); - model.addDependency( toDependency( "xerces:xerces:1.2.3::jar" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8::jar" ) ); - model.addDependency( toDependency( "ant:ant-optional:1.5.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "jdom:jdom:b9::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.4::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - addModel( model ); - - model = toModel( "xerces:xerces:1.2.3" ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.servlet" ); - model.getRelocation().setArtifactId( "servlet-api" ); - model.getRelocation().setVersion( "2.2" ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.2" ); - addModel( model ); - - model = toModel( "junit:junit:3.8" ); - addModel( model ); - - model = toModel( "ant:ant-optional:1.5.1" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:2.0.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xml-apis" ); - model.getRelocation().setArtifactId( "xml-apis" ); - model.getRelocation().setVersion( "1.0.b2" ); - addModel( model ); - - model = toModel( "jdom:jdom:b9" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.4" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "xerces:xerces:2.2.1" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.7.0" ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.0" ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.4" ); - addModel( model ); - - model = toModel( "spice:spice-jndikit:1.1" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.1" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.1" ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.2.2" ); - addModel( model ); - - model = toModel( "dbunit:dbunit:2.1" ); - addModel( model ); - - model = toModel( "junit-addons:junit-addons:1.4" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-core:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.7.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - dep = toDependency( "jpox:jpox:1.1.1::jar", "test" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "jpox:jpox:1.1.1" ); - model.setParentProject( toParent( "jpox:jpox-parent:1.1.1" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); - dep = toDependency( "javax.security:jaas:1.0.01::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.sql:jdbc-stdext:2.0::jar" ) ); - dep = toDependency( "ant:ant:1.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "jpox:jpox-dbcp:1.1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2::jar", "test" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar", "test" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jpox:jpox-parent:1.1.1" ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.8" ); - addModel( model ); - - model = toModel( "javax.resource:connector:1.0" ); - addModel( model ); - - model = toModel( "javax.security:jaas:1.0.01" ); - addModel( model ); - - model = toModel( "javax.sql:jdbc-stdext:2.0" ); - addModel( model ); - - model = toModel( "ant:ant:1.6" ); - addModel( model ); - - model = toModel( "jpox:jpox-dbcp:1.1.1" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.2" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.2" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.3.0" ); - addModel( model ); - - model = toModel( "jpox:jpox:1.1.7" ); - model.setParentProject( toParent( "jpox:jpox-parent:1.1.7" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); - model.addDependency( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); - dep = toDependency( "ant:ant:1.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jpox:jpox-parent:1.1.7" ); - addModel( model ); - - model = toModel( "javax.transaction:jta:1.0.1B" ); - addModel( model ); - - model = toModel( "org.apache.derby:derby:10.1.3.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "xmlunit:xmlunit:1.0::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.7" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "xmlunit:xmlunit:1.0" ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.8.0.7" ); - addModel( model ); - - model = toModel( "org.apache.derby:derbytools:10.1.3.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-i18n:1.0-beta-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.lucene:lucene-core:2.0.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); - model.addProperty( "archivaVersion", "1.0-alpha-2-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "runtime" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "runtime" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war", "runtime" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "provided" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.activation:activation:1.1::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:3.0::jar" ) ); - addModel( model ); - - model = toModel( "backport-util-concurrent:backport-util-concurrent:3.0" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "quartz:quartz:1.4.5::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.2::jar" ) ); - addModel( model ); - - model = toModel( "quartz:quartz:1.4.5" ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.2" ); - dep = toDependency( "log4j:log4j:1.1.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "log4j:log4j:1.1.3" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ); - addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); - addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "xalan:xalan:2.7.0::jar" ) ); - model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.3.03::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addProperty( "security.version", "1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); - dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); - addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); - addExclusion( dep, "xerces:xerces" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xalan:xalan" ); - addExclusion( dep, "xml-apis:xml-apis" ); - addExclusion( dep, "servletapi:servletapi" ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging:1.0.2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.5" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xerces:xmlParserAPIs" ); - model.addDependency( dep ); - dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.8.0.4" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "net.java.dev.stax-utils:stax-utils:20060502" ); - model.addDependency( toDependency( "com.bea.xml:jsr173-ri:1.0::jar" ) ); - addModel( model ); - - model = toModel( "com.bea.xml:jsr173-ri:1.0" ); - model.addDependency( toDependency( "javax.xml:jsr173:1.0::jar" ) ); - addModel( model ); - - model = toModel( "javax.xml:jsr173:1.0" ); - addModel( model ); - - model = toModel( "stax:stax-api:1.0.1" ); - addModel( model ); - - model = toModel( "woodstox:wstx-asl:3.2.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "org.codehaus.woodstox" ); - addModel( model ); - - model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.0" ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); - addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "stax:stax:1.1.1-dev" ); - model.addDependency( toDependency( "xmlbeans:xmlbeans-jsr173-api:2.0-dev::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "xmlbeans:xmlbeans-jsr173-api:2.0-dev" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "commons-logging:commons-logging-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "taglibs:standard:1.1.2" ); - addModel( model ); - - model = toModel( "javax.servlet:jstl:1.1.2" ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "javax.servlet:jsp-api:2.0" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - model.addDependency( toDependency( "org.easymock:easymock:2.2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); - model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.easymock:easymock:2.2" ); - addModel( model ); - - model = toModel( "opensymphony:xwork:1.2.1" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.rifers:rife-continuations:0.0.2::jar" ) ); - model.addDependency( toDependency( "opensymphony:oscore:2.2.4::jar" ) ); - model.addDependency( toDependency( "ognl:ognl:2.6.7::jar" ) ); - dep = toDependency( "org.springframework:spring-core:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-aop:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-beans:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-context:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.springframework:spring-mock:1.2.6::jar", "test" ) ); - dep = toDependency( "cglib:cglib:2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.rifers:rife-continuations:0.0.2" ); - addModel( model ); - - model = toModel( "opensymphony:oscore:2.2.4" ); - addModel( model ); - - model = toModel( "ognl:ognl:2.6.7" ); - addModel( model ); - - model = toModel( "org.springframework:spring-core:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-parent:1.2.6" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "org.hibernate:hibernate:3.0.5::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "org.hibernate:hibernate-annotations:3.0beta2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "struts:struts:1.2.7::jar" ); - addExclusion( dep, "servletapi:servletapi" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "oro:oro:2.0.8::jar" ) ); - dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "xdoclet:xjavadoc:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "javax.mail:mail:1.3.2::jar" ) ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); - dep = toDependency( "jotm:jotm:2.0.10::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "c3p0:c3p0:0.9.0.2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.experlog:xapool:1.5.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - dep = toDependency( "com.oracle.toplink:toplink:10.1.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "ojb:db-ojb:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.jdo:jdo:2.0-20050809.1515::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.ibatis:ibatis-sqlmap:1.3.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.ibatis:ibatis2-sqlmap:2.1.5.582::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.jms:jms:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.ejb:ejb:2.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.xml:jaxrpc-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-httpclient:commons-httpclient:3.0-rc4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.caucho:burlap:2.1.12::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.caucho:hessian:2.1.12::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "javax.resource:connector:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "ehcache:ehcache:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "quartz:quartz:1.5.1::jar" ) ); - model.addDependencyManagement( toDependency( "com.servlets:cos:05Nov2002::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_RC2_Java1.3::jar", "test" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.0.6::jar" ) ); - dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "velocity-tools:velocity-tools-generic:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "velocity-tools:velocity-tools-view:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "poi:poi:2.5.1-final-20040804::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "itext:itext:1.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "net.sourceforge.jexcelapi:jxl:2.5.7::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.9" ); - addModel( model ); - - model = toModel( "cglib:cglib:2.1_3" ); - addModel( model ); - - model = toModel( "commons-attributes:commons-attributes-compiler:2.1" ); - model.addDependency( toDependency( "commons-attributes:commons-attributes-api:2.1::jar" ) ); - addModel( model ); - - model = toModel( "commons-attributes:commons-attributes-api:2.1" ); - model.addDependency( toDependency( "ant:ant:1.5::jar" ) ); - model.addDependency( toDependency( "qdox:qdox:1.5::jar" ) ); - addModel( model ); - - model = toModel( "ant:ant:1.5" ); - addModel( model ); - - model = toModel( "qdox:qdox:1.5" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate:3.0.5" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate-annotations:3.0beta2" ); - addModel( model ); - - model = toModel( "struts:struts:1.2.7" ); - addModel( model ); - - model = toModel( "jasperreports:jasperreports:1.0.3" ); - addModel( model ); - - model = toModel( "freemarker:freemarker:2.3.4" ); - addModel( model ); - - model = toModel( "aopalliance:aopalliance:1.0" ); - addModel( model ); - - model = toModel( "oro:oro:2.0.8" ); - addModel( model ); - - model = toModel( "com.jamonapi:jamon:1.0" ); - addModel( model ); - - model = toModel( "xdoclet:xjavadoc:1.1" ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.3.2" ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "velocity:velocity:1.4" ); - model.addDependency( toDependency( "velocity:velocity-dep:1.4::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "velocity:velocity-dep:1.4" ); - addModel( model ); - - model = toModel( "jotm:jotm:2.0.10" ); - addModel( model ); - - model = toModel( "c3p0:c3p0:0.9.0.2" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.2.1" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); - dep = toDependency( "javax.sql:jdbc-stdext:2.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); - addModel( model ); - - model = toModel( "com.experlog:xapool:1.5.0" ); - addModel( model ); - - model = toModel( "com.oracle.toplink:toplink:10.1.3" ); - addModel( model ); - - model = toModel( "ojb:db-ojb:1.0.3" ); - addModel( model ); - - model = toModel( "javax.jdo:jdo:2.0-20050809.1515" ); - addModel( model ); - - model = toModel( "com.ibatis:ibatis-sqlmap:1.3.1" ); - addModel( model ); - - model = toModel( "com.ibatis:ibatis2-sqlmap:2.1.5.582" ); - addModel( model ); - - model = toModel( "javax.jms:jms:1.1" ); - addModel( model ); - - model = toModel( "javax.ejb:ejb:2.0" ); - addModel( model ); - - model = toModel( "javax.xml:jaxrpc-api:1.1" ); - addModel( model ); - - model = toModel( "commons-httpclient:commons-httpclient:3.0-rc4" ); - addModel( model ); - - model = toModel( "com.caucho:burlap:2.1.12" ); - addModel( model ); - - model = toModel( "com.caucho:hessian:2.1.12" ); - addModel( model ); - - model = toModel( "ehcache:ehcache:1.1" ); - addModel( model ); - - model = toModel( "quartz:quartz:1.5.1" ); - addModel( model ); - - model = toModel( "com.servlets:cos:05Nov2002" ); - addModel( model ); - - model = toModel( "easymock:easymock:1.2_RC2_Java1.3" ); - addModel( model ); - - model = toModel( "javax.servlet:jstl:1.0" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "provided" ) ); - addModel( model ); - - model = toModel( "taglibs:standard:1.0.6" ); - addModel( model ); - - model = toModel( "javax.faces:jsf-api:1.1" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools-generic:1.1" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools-view:1.1" ); - addModel( model ); - - model = toModel( "poi:poi:2.5.1-final-20040804" ); - addModel( model ); - - model = toModel( "itext:itext:1.3" ); - addModel( model ); - - model = toModel( "net.sourceforge.jexcelapi:jxl:2.5.7" ); - addModel( model ); - - model = toModel( "org.springframework:spring-aop:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-beans:1.2.6::jar" ) ); - model.addDependency( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); - model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); - dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "xdoclet:xjavadoc:1.1::jar", "test" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-beans:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-core:1.2.6::jar" ) ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.3.2::jar", "test" ) ); - model.addDependency( toDependency( "org.hibernate:hibernate:3.0.5::jar", "test" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-context:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-aop:1.2.6::jar" ) ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.springframework:spring-web:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.0::jar" ) ); - model.addDependency( toDependency( "org.springframework:spring-context:1.2.6::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "struts:struts:1.2.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "com.servlets:cos:05Nov2002::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "taglibs:standard:1.0.6::jar" ) ); - dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.springframework:spring-mock:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - dep = toDependency( "org.springframework:spring-jdbc:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-jdbc:1.2.6" ); - addModel( model ); - - model = toModel( "cglib:cglib:2.1" ); - model.addDependency( toDependency( "asm:asm:1.5.3::jar" ) ); - model.addDependency( toDependency( "asm:asm-util:1.3.4::jar" ) ); - model.addDependency( toDependency( "aspectwerkz:aspectwerkz-core:0.8.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "asm:asm:1.5.3" ); - addModel( model ); - - model = toModel( "asm:asm-util:1.3.4" ); - addModel( model ); - - model = toModel( "aspectwerkz:aspectwerkz-core:0.8.1" ); - addModel( model ); - - model = toModel( "easymock:easymockclassextension:1.1" ); - addModel( model ); - - model = toModel( "opensymphony:webwork:2.2.4" ); - model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); - dep = toDependency( "opensymphony:xwork-tiger:1.2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "freemarker:freemarker:2.3.4::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "commons-lang:commons-lang:2.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "dwr:dwr:1.1-beta-3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "velocity-tools:velocity-tools:1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-fileupload:commons-fileupload:1.1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "servlets.com:cos:05Nov2002::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "opensymphony:pell-multipart:2.1.5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "opensymphony:sitemesh:2.2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jetty:org.mortbay.jetty:5.1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "eclipse:jdtcore:3.1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jasperreports:jasperreports:1.1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jfree:jfreechart:1.0.0::jar" ); - addExclusion( dep, "gnujaxp:gnujaxp" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-digester:commons-digester:1.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "portlet-api:portlet-api:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.apache.pluto:pluto:1.0.1-rc4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "picocontainer:picocontainer:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "picocontainer:picocontainer-gems:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "nanocontainer:nanocontainer:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "nanocontainer:nanocontainer-nanowar:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-beans:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-core:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-context:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-mock:1.2::jar", "compile" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xpp3:xpp3:1.1.3.4-RC8::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "junit:junit:3.8.1::jar", "compile" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); - model.addDependency( toDependency( "jmock:jmock-cglib:1.0.1::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); - addModel( model ); - - model = toModel( "opensymphony:xwork-tiger:1.2.1" ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.0" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "dwr:dwr:1.1-beta-3" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools:1.1" ); - addModel( model ); - - model = toModel( "commons-fileupload:commons-fileupload:1.1.1" ); - addModel( model ); - - model = toModel( "servlets.com:cos:05Nov2002" ); - addModel( model ); - - model = toModel( "opensymphony:pell-multipart:2.1.5" ); - addModel( model ); - - model = toModel( "opensymphony:sitemesh:2.2.1" ); - addModel( model ); - - model = toModel( "jetty:org.mortbay.jetty:5.1.4" ); - addModel( model ); - - model = toModel( "eclipse:jdtcore:3.1.0" ); - addModel( model ); - - model = toModel( "jasperreports:jasperreports:1.1.0" ); - addModel( model ); - - model = toModel( "jfree:jfreechart:1.0.0" ); - addModel( model ); - - model = toModel( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT" ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.7" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "portlet-api:portlet-api:1.0" ); - addModel( model ); - - model = toModel( "org.apache.pluto:pluto:1.0.1-rc4" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "picocontainer:picocontainer:1.2" ); - addModel( model ); - - model = toModel( "picocontainer:picocontainer-gems:1.2" ); - addModel( model ); - - model = toModel( "nanocontainer:nanocontainer:1.0" ); - addModel( model ); - - model = toModel( "nanocontainer:nanocontainer-nanowar:1.0" ); - addModel( model ); - - model = toModel( "org.springframework:spring-beans:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-core:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-context:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-web:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-mock:1.2" ); - addModel( model ); - - model = toModel( "xpp3:xpp3:1.1.3.4-RC8" ); - addModel( model ); - - model = toModel( "jmock:jmock-cglib:1.0.1" ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar" ) ); - model.addDependency( toDependency( "cglib:cglib-full:2.0::jar" ) ); - addModel( model ); - - model = toModel( "cglib:cglib-full:2.0" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-alt-jdk1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-1::jar", "test" ); - addExclusion( dep, "geronimo-spec:geronimo-spec-javamail" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.4" ); - model.addDependency( toDependency( "javax.activation:activation:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); - model.addDependency( toDependency( "dumbster:dumbster:1.5::jar" ) ); - addModel( model ); - - model = toModel( "dumbster:dumbster:1.5" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-core:0.8" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-java:0.8" ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-factory:0.8" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1::jar" ) ); - addModel( model ); - - model = toModel( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1" ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.1" ); - addModel( model ); - - model = toModel( "org.extremecomponents:extremecomponents:1.0.1" ); - dep = toDependency( "avalon-framework:avalon-framework:4.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "batik:batik:1.5-fop-0.20-5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.0::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "fop:fop:0.20.5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - dep = toDependency( "poi:poi:2.5.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "provided" ) ); - model.addDependency( toDependency( "taglibs:standard:1.0.2::jar" ) ); - dep = toDependency( "xalan:xalan:2.5.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xerces:xercesImpl:2.6.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:2.0.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "avalon-framework:avalon-framework:4.0" ); - addModel( model ); - - model = toModel( "batik:batik:1.5-fop-0.20-5" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "fop:fop:0.20.5" ); - addModel( model ); - - model = toModel( "poi:poi:2.5.1" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "poi" ); - model.getRelocation().setArtifactId( "poi" ); - model.getRelocation().setVersion( "2.5.1-final-20040804" ); - addModel( model ); - - model = toModel( "taglibs:standard:1.0.2" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.5.1" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.1" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils-bean-collections:1.7.0" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.2" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar", "compile" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "velocity:velocity:1.4::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.3.03" ); - model.setParentProject( toParent( "org.apache:apache:1" ) ); - addModel( model ); - - model = toModel( "org.apache:apache:1" ); - addModel( model ); - - model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.1" ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration-model:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration-web:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-settings:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - model.addDependency( toDependency( "it.could:webdav:0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "it.could:webdav:0.4" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "dom4j:dom4j:1.6.1" ); - dep = toDependency( "jaxme:jaxme-api:0.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.1-beta-6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "msv:xsdlib:20030807::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "msv:relaxngDatatype:20030807::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "pull-parser:pull-parser:2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xpp3:xpp3:1.1.3.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "stax:stax-api:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); - model.addDependency( toDependency( "stax:stax-ri:1.0::jar", "test" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar", "test" ) ); - model.addDependency( toDependency( "xalan:xalan:2.5.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jaxme:jaxme-api:0.3" ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.1-beta-6" ); - addModel( model ); - - model = toModel( "msv:xsdlib:20030807" ); - addModel( model ); - - model = toModel( "msv:relaxngDatatype:20030807" ); - addModel( model ); - - model = toModel( "xpp3:xpp3:1.1.3.3" ); - addModel( model ); - - model = toModel( "stax:stax-api:1.0" ); - addModel( model ); - - model = toModel( "stax:stax-ri:1.0" ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.1" ); - model.addDependency( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); - model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.3.02::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "xom:xom:1.0::jar" ) ); - addModel( model ); - - model = toModel( "jdom:jdom:1.0" ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.0-FCS::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "saxpath:saxpath:1.0-FCS::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xalan:xalan:2.5.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xalan:xalan:2.5.0" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.3.02" ); - addModel( model ); - - model = toModel( "xom:xom:1.0" ); - model.addDependency( toDependency( "xerces:xmlParserAPIs:2.6.2::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "xalan:xalan:2.6.0::jar" ) ); - model.addDependency( toDependency( "com.ibm.icu:icu4j:2.6.1::jar" ) ); - addModel( model ); - - model = toModel( "xerces:xmlParserAPIs:2.6.2" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.6.0" ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "com.ibm.icu:icu4j:2.6.1" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.5::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-settings:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0.5" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "mx4j:mx4j:3.0.1::jar" ) ); - model.addDependency( toDependency( "mx4j:mx4j-remote:3.0.1::jar" ) ); - model.addDependency( toDependency( "org.livetribe:livetribe-slp:1.0.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - addModel( model ); - - model = toModel( "mx4j:mx4j:3.0.1" ); - addModel( model ); - - model = toModel( "mx4j:mx4j-remote:3.0.1" ); - addModel( model ); - - model = toModel( "org.livetribe:livetribe-slp:1.0.2" ); - model.setParentProject( toParent( "org.livetribe:livetribe:1.0" ) ); - model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:2.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.livetribe:livetribe:1.0" ); - addModel( model ); - - model = toModel( "backport-util-concurrent:backport-util-concurrent:2.2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ) ); - model.addDependency( toDependency( "ant:ant:1.6.2::jar" ) ); - model.addDependency( toDependency( "jetty:org.mortbay.jetty:5.1.10::jar" ) ); - model.addDependency( toDependency( "tomcat:jasper-compiler:5.5.15::jar" ) ); - model.addDependency( toDependency( "tomcat:jasper-runtime:5.5.15::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - dep = toDependency( "commons-el:commons-el:1.0::jar", "runtime" ); - addExclusion( dep, "log4j:log4j" ); - addExclusion( dep, "commons-logging:commons-logging" ); - addExclusion( dep, "logkit:logkit" ); - model.addDependency( dep ); - model.addDependency( toDependency( "jetty:org.mortbay.jetty.plus:5.1.10::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "ant:ant:1.6.2" ); - dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xerces:xerces-impl:2.6.2" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:2.6.2" ); - addModel( model ); - - model = toModel( "jetty:org.mortbay.jetty:5.1.10" ); - addModel( model ); - - model = toModel( "tomcat:jasper-compiler:5.5.15" ); - model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); - model.addDependency( toDependency( "ant:ant:1.6.5::jar" ) ); - addModel( model ); - - model = toModel( "tomcat:tomcat-parent:5.5.15" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "ant:ant:1.6.5" ); - dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "tomcat:jasper-runtime:5.5.15" ); - model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); - model.addDependency( toDependency( "commons-el:commons-el:1.0::jar" ) ); - addModel( model ); - - model = toModel( "commons-el:commons-el:1.0" ); - model.addDependency( toDependency( "servletapi:servletapi:2.4-20040521::jar", "provided" ) ); - model.addDependency( toDependency( "jspapi:jsp-api:2.0-20040521::jar", "provided" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.4-20040521" ); - addModel( model ); - - model = toModel( "jspapi:jsp-api:2.0-20040521" ); - addModel( model ); - - model = toModel( "jetty:org.mortbay.jetty.plus:5.1.10" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-cli:1.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-tools:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); - addExclusion( dep, "commons-lang:commons-lang" ); - addExclusion( dep, "commons-logging:commons-logging" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-tools:1.0.8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "commons-cli:commons-cli:1.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:1.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:1.0" ); - model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-config:0.8::jar" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-config:0.8" ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:1.0.1::jar" ) ); - model.addDependency( toDependency( "commons-digester:commons-digester:1.4.1::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6.1::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.0::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.0.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:1.0.1" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.4.1" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.6.1" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.0" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:1.0-b1::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.0::jar" ) ); - model.addDependency( toDependency( "jdbc:jdbc:2.0::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:1.0-b1" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.0" ); - addModel( model ); - - model = toModel( "jdbc:jdbc:2.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.sql" ); - model.getRelocation().setArtifactId( "jdbc-stdext" ); - model.getRelocation().setVersion( "2.0" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.0.1" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreDependencyGraphTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreDependencyGraphTest.java deleted file mode 100644 index e55bf17d1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreDependencyGraphTest.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.dependency.DependencyGraphFactory; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.ArrayList; -import java.util.List; - -/** - * ContinuumStoreDependencyGraphTest - * - * DependencyGraphTest for testing org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class ContinuumStoreDependencyGraphTest - extends AbstractDependencyGraphFactoryTestCase -{ - public void testResolvedDepsToNodes() - throws GraphTaskException - { - MemoryRepositoryDependencyGraphBuilder graphBuilder = - new MemoryRepositoryDependencyGraphBuilder(); - MemoryRepository repository = new ContinuumStoreMemoryRepository(); - graphBuilder.setMemoryRepository( repository ); - - // Create the factory, and add the test resolver. - DependencyGraphFactory factory = new DependencyGraphFactory(); - factory.setGraphBuilder( graphBuilder ); - factory.setDesiredScope( DependencyScope.TEST ); - - // Get the model to resolve from - VersionedReference rootRef = toVersionedReference( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT"); - - // Perform the resolution. - DependencyGraph graph = factory.getGraph( rootRef ); - - // Test the results. - assertNotNull( "Graph shouldn't be null.", graph ); - - String expectedRootRef = "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT"; - List expectedNodes = new ArrayList(); - - // Check for all nodes, regardless of scope. - expectedNodes.clear(); - expectedNodes.add( "ant:ant:1.6::jar" ); - expectedNodes.add( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ); - expectedNodes.add( "hsqldb:hsqldb:1.7.3.3::jar" ); - expectedNodes.add( "jakarta-regexp:jakarta-regexp:1.4::jar" ); - expectedNodes.add( "javax.jdo:jdo2-api:2.0::jar" ); - expectedNodes.add( "javax.resource:connector:1.0::jar" ); - expectedNodes.add( "javax.transaction:jta:1.0.1B::jar" ); - expectedNodes.add( "jmock:jmock:1.0.1::jar" ); - expectedNodes.add( "jpox:jpox:1.1.7::jar" ); - expectedNodes.add( "jpox:jpox-enhancer:1.1.7::jar" ); - expectedNodes.add( "junit:junit:3.8.1::jar" ); - expectedNodes.add( "log4j:log4j:1.2.8::jar" ); - expectedNodes.add( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - expectedNodes.add( "ognl:ognl:2.6.7::jar" ); - expectedNodes.add( "org.apache.bcel:bcel:5.2::jar" ); - expectedNodes.add( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-formica:1.0-beta-13::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.4::jar" ); - expectedNodes.add( "oro:oro:2.0.6::jar" ); - expectedNodes.add( "stax:stax-api:1.0.1::jar" ); - - assertGraph( graph, expectedRootRef, expectedNodes ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreMemoryRepository.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreMemoryRepository.java deleted file mode 100644 index 0ca081578..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreMemoryRepository.java +++ /dev/null @@ -1,4142 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.VersionedReference; - -/** - * ContinuumStoreMemoryRepository - * - * MemoryRepository for testing org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class ContinuumStoreMemoryRepository - extends AbstractMemoryRepository -{ - public void initialize() - { - ArchivaProjectModel model; - Dependency dep; - - model = toModel( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.3::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - dep = toDependency( "org.apache.maven:maven-core:2.0.5::jar" ); - addExclusion( dep, "classworlds:classworlds" ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-api:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-hg:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-local:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-synergy:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-vss:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-webdav:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-configuration:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT:tests:jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-core:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-web:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-api:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-client:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-server:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-plexus-application:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-irc:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-jabber:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-msn:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-wagon:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-release:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-webapp:1.1-SNAPSHOT::war" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - dep = toDependency( "jpox:jpox:1.1.7::jar" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependencyManagement( dep ); - dep = toDependency( "jpox:jpox-enhancer:1.1.7::jar" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "jpox:jpox-dbcp:1.1.7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-formica:1.0-beta-13::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-velocity:1.1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-simple:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-notification:1.0-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.7.3.3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addProperty( "continuumWebappVersion", "1.1-SNAPSHOT" ); - model.addProperty( "wagon.version", "1.0-beta-2" ); - model.addProperty( "maven.version", "2.0.5" ); - model.addProperty( "maven-scm.version", "1.0" ); - model.addProperty( "redback.version", "1.0-alpha-1" ); - model.addProperty( "mail-sender.version", "1.0-alpha-6" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - dep = toDependency( "org.apache.maven:maven-core:2.0.5::jar" ); - addExclusion( dep, "classworlds:classworlds" ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-hg:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-local:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-synergy:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-vss:1.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-webdav:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-configuration:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT:tests:jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-core:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-web:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-api:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-client:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-server:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-plexus-application:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-irc:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-jabber:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-msn:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-wagon:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-release:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-webapp:1.1-SNAPSHOT::war" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - dep = toDependency( "jpox:jpox:1.1.7::jar" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependencyManagement( dep ); - dep = toDependency( "jpox:jpox-enhancer:1.1.7::jar" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "jpox:jpox-dbcp:1.1.7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-formica:1.0-beta-13::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-velocity:1.1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-simple:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-notification:1.0-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.7.3.3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1-SNAPSHOT::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addProperty( "continuumWebappVersion", "1.1-SNAPSHOT" ); - model.addProperty( "wagon.version", "1.0-beta-2" ); - model.addProperty( "maven.version", "2.0.5" ); - model.addProperty( "maven-scm.version", "1.0-SNAPSHOT" ); - model.addProperty( "redback.version", "1.0-alpha-1-SNAPSHOT" ); - model.addProperty( "mail-sender.version", "1.0-alpha-6" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:5" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - addModel( model ); - - model = toModel( "org.apache:apache:3" ); - addModel( model ); - - model = toModel( "junit:junit:3.8.1" ); - addModel( model ); - - model = toModel( "jmock:jmock:1.0.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.10" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.9" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-core:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-parameter-documenter:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven.reporting:maven-reporting-api:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-error-diagnostics:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-registry:2.0.5::jar" ) ); - dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); - addExclusion( dep, "commons-lang:commons-lang" ); - addExclusion( dep, "commons-logging:commons-logging" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-descriptor:2.0.5::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-monitor:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependencyManagement( toDependency( "classworlds:classworlds:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "classworlds:classworlds:1.1-alpha-2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:4" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); - model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-containers:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0.3" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-utils:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.27" ); - dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "com.jcraft:jzlib:1.0.7" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); - addModel( model ); - - model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.0.b2" ); - addModel( model ); - - model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); - model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); - model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-components:1.0" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); - model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "jetty:jetty:4.2.10" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.3" ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.3" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.servlet" ); - model.getRelocation().setArtifactId( "servlet-api" ); - model.getRelocation().setVersion( "2.3" ); - addModel( model ); - - model = toModel( "easymock:easymock:1.2_Java1.3" ); - addModel( model ); - - model = toModel( "classworlds:classworlds:1.1" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-settings:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-parameter-documenter:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.reporting:maven-reporting-api:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven.reporting:maven-reporting:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.reporting:maven-reporting:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-7" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia:1.0-alpha-7" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-error-diagnostics:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.5::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0.5" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-registry:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "commons-cli:commons-cli:1.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:1.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0" ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:1.0" ); - model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); - addModel( model ); - - model = toModel( "junit:junit:3.7" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-api:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-descriptor:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-monitor:2.0.5" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-managers:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-managers:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-test:1.0-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-test:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "regexp:regexp:1.3" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.netbeans.lib:cvsclient:20060125::jar" ) ); - model.addDependency( toDependency( "ch.ethz.ganymed:ganymed-ssh2:build210::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.netbeans.lib:cvsclient:20060125" ); - addModel( model ); - - model = toModel( "ch.ethz.ganymed:ganymed-ssh2:build210" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-hg:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-local:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-providers-svn:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-synergy:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-vss:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-webdav:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "slide:slide-webdavlib:2.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "runtime" ) ); - model.addDependency( toDependency( "it.could:webdav:0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.mortbay.jetty:jetty:4.2.12::jar", "test" ) ); - addModel( model ); - - model = toModel( "slide:slide-webdavlib:2.1" ); - model.addDependency( toDependency( "commons-httpclient:commons-httpclient:2.0.2::jar" ) ); - model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependency( toDependency( "de.zeigermann.xml:xml-im-exporter:1.1::jar" ) ); - addModel( model ); - - model = toModel( "commons-httpclient:commons-httpclient:2.0.2" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.3" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.6" ); - addModel( model ); - - model = toModel( "logkit:logkit:1.0.1" ); - addModel( model ); - - model = toModel( "jdom:jdom:1.0" ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.0-FCS::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "saxpath:saxpath:1.0-FCS::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xalan:xalan:2.5.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.0" ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.0-FCS" ); - addModel( model ); - - model = toModel( "saxpath:saxpath:1.0-FCS" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.5.0" ); - addModel( model ); - - model = toModel( "de.zeigermann.xml:xml-im-exporter:1.1" ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.4" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "avalon-framework:avalon-framework:4.1.3" ); - addModel( model ); - - model = toModel( "it.could:webdav:0.4" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "org.mortbay.jetty:jetty:4.2.12" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - addModel( model ); - - model = toModel( "net.java.dev.stax-utils:stax-utils:20060502" ); - model.addDependency( toDependency( "com.bea.xml:jsr173-ri:1.0::jar" ) ); - addModel( model ); - - model = toModel( "com.bea.xml:jsr173-ri:1.0" ); - model.addDependency( toDependency( "javax.xml:jsr173:1.0::jar" ) ); - addModel( model ); - - model = toModel( "javax.xml:jsr173:1.0" ); - addModel( model ); - - model = toModel( "stax:stax-api:1.0.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-formica:1.0-beta-13::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-formica:1.0-beta-13" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "oro:oro:2.0.6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "ognl:ognl:2.6.7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.9" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "oro:oro:2.0.6" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-i18n:1.0-beta-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - addModel( model ); - - model = toModel( "ognl:ognl:2.6.7" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-configuration:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-core:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-notification:1.0-alpha-5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-velocity:1.1.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-core:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-formica:1.0-beta-13::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-action:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "jpox:jpox:1.1.7::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "velocity:velocity:1.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-release:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.3::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-configuration:1.1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-local:1.0-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "test" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-simple:1.0-alpha-6::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "quartz:quartz:1.4.5::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "quartz:quartz:1.4.5" ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.2" ); - dep = toDependency( "log4j:log4j:1.1.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "log4j:log4j:1.1.3" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-notification:1.0-alpha-5" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-notification:1.0-alpha-5::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.8" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "velocity:velocity:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-15::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-15" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:2.0" ); - addModel( model ); - - model = toModel( "velocity:velocity:1.4" ); - model.addDependency( toDependency( "velocity:velocity-dep:1.4::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "velocity:velocity-dep:1.4" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - dep = toDependency( "jpox:jpox:1.1.1::jar", "test" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "javax.jdo:jdo2-api:2.0" ); - model.addDependency( toDependency( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ) ); - dep = toDependency( "xerces:xerces:2.4.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2" ); - addModel( model ); - - model = toModel( "xerces:xerces:2.4.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xerces" ); - model.getRelocation().setArtifactId( "xercesImpl" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.4.0" ); - addModel( model ); - - model = toModel( "jpox:jpox:1.1.1" ); - model.setParentProject( toParent( "jpox:jpox-parent:1.1.1" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); - dep = toDependency( "javax.security:jaas:1.0.01::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.sql:jdbc-stdext:2.0::jar" ) ); - dep = toDependency( "ant:ant:1.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "jpox:jpox-dbcp:1.1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2::jar", "test" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar", "test" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jpox:jpox-parent:1.1.1" ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.8" ); - addModel( model ); - - model = toModel( "javax.resource:connector:1.0" ); - addModel( model ); - - model = toModel( "javax.security:jaas:1.0.01" ); - addModel( model ); - - model = toModel( "javax.sql:jdbc-stdext:2.0" ); - addModel( model ); - - model = toModel( "ant:ant:1.6" ); - addModel( model ); - - model = toModel( "jpox:jpox-dbcp:1.1.1" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.2" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.2" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:2.1" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:2.0.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xml-apis" ); - model.getRelocation().setArtifactId( "xml-apis" ); - model.getRelocation().setVersion( "1.0.b2" ); - addModel( model ); - - model = toModel( "xerces:xerces:2.0.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xerces" ); - model.getRelocation().setArtifactId( "xercesImpl" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.0.2" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.3.0" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-action:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:3.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.7" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "backport-util-concurrent:backport-util-concurrent:3.0" ); - addModel( model ); - - model = toModel( "jpox:jpox:1.1.7" ); - model.setParentProject( toParent( "jpox:jpox-parent:1.1.7" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); - model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); - model.addDependency( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); - dep = toDependency( "ant:ant:1.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jpox:jpox-parent:1.1.7" ); - addModel( model ); - - model = toModel( "javax.transaction:jta:1.0.1B" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-release:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); - dep = toDependency( "org.apache.maven.release:maven-release-manager:1.0-alpha-1::jar" ); - addExclusion( dep, "classworlds:classworlds" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-local:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.release:maven-release-manager:1.0-alpha-1" ); - model.setParentProject( toParent( "org.apache.maven.release:maven-release:1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ); - addExclusion( dep, "plexus:plexus-utils" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-hg:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-synergy:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); - dep = toDependency( "jaxen:jaxen:1.1-beta-8::jar" ); - addExclusion( dep, "dom4j:dom4j" ); - addExclusion( dep, "xerces:xmlParserAPIs" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xom:xom" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-plugin-testing-harness:1.0-beta-1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-test:1.0-rc1::jar", "test" ) ); - model.addDependency( toDependency( "jmock:jmock-cglib:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.release:maven-release:1" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-interactivity:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-interactivity:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5" ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.23::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "compile" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar", "compile" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.23" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-5" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "jetty:jetty:4.2.10::jar", "test" ) ); - model.addDependency( toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-settings:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-api:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-rc1" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-managers:1.0-rc1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-managers:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-rc1" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-rc1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); - model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-rc1" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-test:1.0-rc1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-test:1.0-rc1" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-rc1" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-rc1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-rc1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-rc1" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-rc1" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-rc1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-rc1" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.netbeans.lib:cvsclient:20060125::jar" ) ); - model.addDependency( toDependency( "ch.ethz.ganymed:ganymed-ssh2:build210::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-rc1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-hg:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); - model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); - model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-rc1" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-rc1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-rc1::jar", "test" ) ); - model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-providers-svn:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-rc1" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-rc1" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-synergy:1.0-rc1" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.1-beta-8" ); - model.addDependency( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); - model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependency( toDependency( "xerces:xmlParserAPIs:2.6.2::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "xom:xom:1.0b3::jar" ) ); - addModel( model ); - - model = toModel( "dom4j:dom4j:1.6.1" ); - dep = toDependency( "jaxme:jaxme-api:0.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.1-beta-6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "msv:xsdlib:20030807::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "msv:relaxngDatatype:20030807::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "pull-parser:pull-parser:2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xpp3:xpp3:1.1.3.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "stax:stax-api:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); - model.addDependency( toDependency( "stax:stax-ri:1.0::jar", "test" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar", "test" ) ); - model.addDependency( toDependency( "xalan:xalan:2.5.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jaxme:jaxme-api:0.3" ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.1-beta-6" ); - addModel( model ); - - model = toModel( "msv:xsdlib:20030807" ); - addModel( model ); - - model = toModel( "msv:relaxngDatatype:20030807" ); - addModel( model ); - - model = toModel( "pull-parser:pull-parser:2" ); - addModel( model ); - - model = toModel( "xpp3:xpp3:1.1.3.3" ); - addModel( model ); - - model = toModel( "stax:stax-api:1.0" ); - addModel( model ); - - model = toModel( "junitperf:junitperf:1.8" ); - addModel( model ); - - model = toModel( "stax:stax-ri:1.0" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.2" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.5.1" ); - addModel( model ); - - model = toModel( "xerces:xmlParserAPIs:2.6.2" ); - addModel( model ); - - model = toModel( "xom:xom:1.0b3" ); - model.addDependency( toDependency( "xerces:xmlParserAPIs:2.6.1::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.2.1::jar" ) ); - model.addDependency( toDependency( "com.ibm.icu:icu4j:2.6.1::jar" ) ); - model.addDependency( toDependency( "xalan:xalan:2.6.0::jar" ) ); - model.addDependency( toDependency( "org.ccil.cowan.tagsoup:tagsoup:0.9.7::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - addModel( model ); - - model = toModel( "xerces:xmlParserAPIs:2.6.1" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.2.1" ); - addModel( model ); - - model = toModel( "com.ibm.icu:icu4j:2.6.1" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.6.0" ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.ccil.cowan.tagsoup:tagsoup:0.9.7" ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.4" ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-plugin-testing-harness:1.0-beta-1" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:1" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-core:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-shared-components:1" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:1" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:1" ); - model.setParentProject( toParent( "org.apache:apache:1" ) ); - addModel( model ); - - model = toModel( "org.apache:apache:1" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-core:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-parameter-documenter:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven.reporting:maven-reporting-api:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-error-diagnostics:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-registry:2.0::jar" ) ); - dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); - addExclusion( dep, "commons-lang:commons-lang" ); - addExclusion( dep, "commons-logging:commons-logging" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-descriptor:2.0::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-monitor:2.0::jar" ) ); - dep = toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5::jar", "runtime" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-parameter-documenter:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.reporting:maven-reporting-api:2.0" ); - model.setParentProject( toParent( "org.apache.maven.reporting:maven-reporting:2.0" ) ); - dep = toDependency( "doxia:doxia-sink-api:1.0-alpha-4::jar" ); - addExclusion( dep, "plexus:plexus-container-default" ); - addExclusion( dep, "plexus:plexus-utils" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.apache.maven.reporting:maven-reporting:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - addModel( model ); - - model = toModel( "doxia:doxia-sink-api:1.0-alpha-4" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-error-diagnostics:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-registry:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-api:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-descriptor:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-monitor:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - addModel( model ); - - model = toModel( "jmock:jmock-cglib:1.0.1" ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar" ) ); - model.addDependency( toDependency( "cglib:cglib-full:2.0::jar" ) ); - addModel( model ); - - model = toModel( "cglib:cglib-full:2.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); - addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1-SNAPSHOT::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "xalan:xalan:2.7.0::jar" ) ); - model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.3.03::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addProperty( "security.version", "1.0-alpha-1-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); - dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); - addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); - addExclusion( dep, "xerces:xerces" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xalan:xalan" ); - addExclusion( dep, "xml-apis:xml-apis" ); - addExclusion( dep, "servletapi:servletapi" ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - addModel( model ); - - model = toModel( "commons-configuration:commons-configuration:1.3" ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); - model.addDependency( toDependency( "commons-digester:commons-digester:1.6::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-codec:commons-codec:1.3::jar" ) ); - model.addDependency( toDependency( "commons-jxpath:commons-jxpath:1.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.2.1::jar" ) ); - model.addDependency( toDependency( "xalan:xalan:2.7.0::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "servletapi:servletapi:2.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "spice:spice-jndikit:1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.2.2::jar", "test" ) ); - model.addDependency( toDependency( "dbunit:dbunit:2.1::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "junit-addons:junit-addons:1.4::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging-api:1.0.4" ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.6" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.6" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils-core:1.7.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-codec:commons-codec:1.3" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-jxpath:commons-jxpath:1.2" ); - model.addDependency( toDependency( "xerces:xerces:1.2.3::jar" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8::jar" ) ); - model.addDependency( toDependency( "ant:ant-optional:1.5.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "jdom:jdom:b9::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.4::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - addModel( model ); - - model = toModel( "xerces:xerces:1.2.3" ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.servlet" ); - model.getRelocation().setArtifactId( "servlet-api" ); - model.getRelocation().setVersion( "2.2" ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.2" ); - addModel( model ); - - model = toModel( "junit:junit:3.8" ); - addModel( model ); - - model = toModel( "ant:ant-optional:1.5.1" ); - addModel( model ); - - model = toModel( "jdom:jdom:b9" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.4" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "xerces:xerces:2.2.1" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.7.0" ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.4" ); - addModel( model ); - - model = toModel( "spice:spice-jndikit:1.1" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.1" ); - addModel( model ); - - model = toModel( "commons-pool:commons-pool:1.1" ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.2.2" ); - addModel( model ); - - model = toModel( "dbunit:dbunit:2.1" ); - addModel( model ); - - model = toModel( "junit-addons:junit-addons:1.4" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-core:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.7.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); - model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging:1.0.2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - addModel( model ); - - model = toModel( "net.sf.ehcache:ehcache:1.2.4" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "compile" ) ); - dep = toDependency( "org.hibernate:hibernate:3.2.0.cr3::jar", "test" ); - addExclusion( dep, "javax.transaction:jta" ); - addExclusion( dep, "javax.security:jacc" ); - model.addDependency( dep ); - dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar", "test" ); - addExclusion( dep, "javax.transaction:jta" ); - addExclusion( dep, "javax.security:jacc" ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "test" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6::jar", "test" ) ); - model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); - model.addDependency( toDependency( "com.cenqua.clover:clover:1.3.13::jar", "test" ) ); - model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar", "test" ) ); - model.addDependency( toDependency( "checkstyle:checkstyle-optional:4.1::jar", "test" ) ); - model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); - model.addProperty( "licenseFile", "${basedir}/tools/clover.license" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate:3.2.0.cr3" ); - addModel( model ); - - model = toModel( "net.sf.hibernate:hibernate:2.1.8" ); - addModel( model ); - - model = toModel( "httpunit:httpunit:1.6" ); - model.addDependency( toDependency( "xerces:xmlParserAPIs:2.2.1::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "nekohtml:nekohtml:0.9.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "rhino:js:1.5R4.1::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "test" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "xerces:xmlParserAPIs:2.2.1" ); - addModel( model ); - - model = toModel( "nekohtml:nekohtml:0.9.1" ); - model.addDependency( toDependency( "xerces:xerces:2.4.0::jar" ) ); - addModel( model ); - - model = toModel( "rhino:js:1.5R4.1" ); - addModel( model ); - - model = toModel( "javax.activation:activation:1.0.2" ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.3.1" ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "commons-httpclient:commons-httpclient:3.0.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - model.addDependency( toDependency( "commons-codec:commons-codec:1.2::jar" ) ); - addModel( model ); - - model = toModel( "commons-codec:commons-codec:1.2" ); - addModel( model ); - - model = toModel( "com.cenqua.clover:clover:1.3.13" ); - addModel( model ); - - model = toModel( "checkstyle:checkstyle:4.1" ); - model.addDependency( toDependency( "antlr:antlr:2.7.2::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "antlr:antlr:2.7.2" ); - addModel( model ); - - model = toModel( "checkstyle:checkstyle-optional:4.1" ); - model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar" ) ); - addModel( model ); - - model = toModel( "httpunit:httpunit:1.6.1" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.5" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1-SNAPSHOT" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xerces:xmlParserAPIs" ); - model.addDependency( dep ); - dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.8.0.4" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "woodstox:wstx-asl:3.2.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "org.codehaus.woodstox" ); - addModel( model ); - - model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.0" ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); - addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "stax:stax:1.1.1-dev" ); - model.addDependency( toDependency( "xmlbeans:xmlbeans-jsr173-api:2.0-dev::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "xmlbeans:xmlbeans-jsr173-api:2.0-dev" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "commons-logging:commons-logging-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "taglibs:standard:1.1.2" ); - addModel( model ); - - model = toModel( "javax.servlet:jstl:1.1.2" ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "javax.servlet:jsp-api:2.0" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - model.addDependency( toDependency( "org.easymock:easymock:2.2::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); - model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.12" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.easymock:easymock:2.2" ); - addModel( model ); - - model = toModel( "opensymphony:xwork:1.2.1" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.rifers:rife-continuations:0.0.2::jar" ) ); - model.addDependency( toDependency( "opensymphony:oscore:2.2.4::jar" ) ); - model.addDependency( toDependency( "ognl:ognl:2.6.7::jar" ) ); - dep = toDependency( "org.springframework:spring-core:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-aop:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-beans:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-context:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.springframework:spring-mock:1.2.6::jar", "test" ) ); - dep = toDependency( "cglib:cglib:2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.rifers:rife-continuations:0.0.2" ); - addModel( model ); - - model = toModel( "opensymphony:oscore:2.2.4" ); - addModel( model ); - - model = toModel( "org.springframework:spring-core:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-parent:1.2.6" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "org.hibernate:hibernate:3.0.5::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "org.hibernate:hibernate-annotations:3.0beta2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "struts:struts:1.2.7::jar" ); - addExclusion( dep, "servletapi:servletapi" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "oro:oro:2.0.8::jar" ) ); - dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "xdoclet:xjavadoc:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "javax.mail:mail:1.3.2::jar" ) ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); - model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); - dep = toDependency( "jotm:jotm:2.0.10::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "c3p0:c3p0:0.9.0.2::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.experlog:xapool:1.5.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - dep = toDependency( "com.oracle.toplink:toplink:10.1.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "ojb:db-ojb:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.jdo:jdo:2.0-20050809.1515::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.ibatis:ibatis-sqlmap:1.3.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.ibatis:ibatis2-sqlmap:2.1.5.582::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.jms:jms:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.ejb:ejb:2.0::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "javax.xml:jaxrpc-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "commons-httpclient:commons-httpclient:3.0-rc4::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.caucho:burlap:2.1.12::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "com.caucho:hessian:2.1.12::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "javax.resource:connector:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "ehcache:ehcache:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "quartz:quartz:1.5.1::jar" ) ); - model.addDependencyManagement( toDependency( "com.servlets:cos:05Nov2002::jar" ) ); - model.addDependencyManagement( toDependency( "easymock:easymock:1.2_RC2_Java1.3::jar", "test" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.0.6::jar" ) ); - dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "velocity-tools:velocity-tools-generic:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "velocity-tools:velocity-tools-view:1.1::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "poi:poi:2.5.1-final-20040804::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "itext:itext:1.3::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - dep = toDependency( "net.sourceforge.jexcelapi:jxl:2.5.7::jar" ); - dep.setOptional( true ); - model.addDependencyManagement( dep ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.9" ); - addModel( model ); - - model = toModel( "cglib:cglib:2.1_3" ); - addModel( model ); - - model = toModel( "commons-attributes:commons-attributes-compiler:2.1" ); - model.addDependency( toDependency( "commons-attributes:commons-attributes-api:2.1::jar" ) ); - addModel( model ); - - model = toModel( "commons-attributes:commons-attributes-api:2.1" ); - model.addDependency( toDependency( "ant:ant:1.5::jar" ) ); - model.addDependency( toDependency( "qdox:qdox:1.5::jar" ) ); - addModel( model ); - - model = toModel( "ant:ant:1.5" ); - addModel( model ); - - model = toModel( "qdox:qdox:1.5" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate:3.0.5" ); - addModel( model ); - - model = toModel( "org.hibernate:hibernate-annotations:3.0beta2" ); - addModel( model ); - - model = toModel( "struts:struts:1.2.7" ); - addModel( model ); - - model = toModel( "jasperreports:jasperreports:1.0.3" ); - addModel( model ); - - model = toModel( "freemarker:freemarker:2.3.4" ); - addModel( model ); - - model = toModel( "aopalliance:aopalliance:1.0" ); - addModel( model ); - - model = toModel( "oro:oro:2.0.8" ); - addModel( model ); - - model = toModel( "com.jamonapi:jamon:1.0" ); - addModel( model ); - - model = toModel( "xdoclet:xjavadoc:1.1" ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.3.2" ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "jotm:jotm:2.0.10" ); - addModel( model ); - - model = toModel( "c3p0:c3p0:0.9.0.2" ); - addModel( model ); - - model = toModel( "commons-dbcp:commons-dbcp:1.2.1" ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); - dep = toDependency( "javax.sql:jdbc-stdext:2.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); - addModel( model ); - - model = toModel( "com.experlog:xapool:1.5.0" ); - addModel( model ); - - model = toModel( "com.oracle.toplink:toplink:10.1.3" ); - addModel( model ); - - model = toModel( "ojb:db-ojb:1.0.3" ); - addModel( model ); - - model = toModel( "javax.jdo:jdo:2.0-20050809.1515" ); - addModel( model ); - - model = toModel( "com.ibatis:ibatis-sqlmap:1.3.1" ); - addModel( model ); - - model = toModel( "com.ibatis:ibatis2-sqlmap:2.1.5.582" ); - addModel( model ); - - model = toModel( "javax.jms:jms:1.1" ); - addModel( model ); - - model = toModel( "javax.ejb:ejb:2.0" ); - addModel( model ); - - model = toModel( "javax.xml:jaxrpc-api:1.1" ); - addModel( model ); - - model = toModel( "commons-httpclient:commons-httpclient:3.0-rc4" ); - addModel( model ); - - model = toModel( "com.caucho:burlap:2.1.12" ); - addModel( model ); - - model = toModel( "com.caucho:hessian:2.1.12" ); - addModel( model ); - - model = toModel( "ehcache:ehcache:1.1" ); - addModel( model ); - - model = toModel( "quartz:quartz:1.5.1" ); - addModel( model ); - - model = toModel( "com.servlets:cos:05Nov2002" ); - addModel( model ); - - model = toModel( "easymock:easymock:1.2_RC2_Java1.3" ); - addModel( model ); - - model = toModel( "javax.servlet:jstl:1.0" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "provided" ) ); - addModel( model ); - - model = toModel( "taglibs:standard:1.0.6" ); - addModel( model ); - - model = toModel( "javax.faces:jsf-api:1.1" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools-generic:1.1" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools-view:1.1" ); - addModel( model ); - - model = toModel( "poi:poi:2.5.1-final-20040804" ); - addModel( model ); - - model = toModel( "itext:itext:1.3" ); - addModel( model ); - - model = toModel( "net.sourceforge.jexcelapi:jxl:2.5.7" ); - addModel( model ); - - model = toModel( "org.springframework:spring-aop:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-beans:1.2.6::jar" ) ); - model.addDependency( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); - model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); - dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "xdoclet:xjavadoc:1.1::jar", "test" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-beans:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-core:1.2.6::jar" ) ); - dep = toDependency( "cglib:cglib:2.1_3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.3.2::jar", "test" ) ); - model.addDependency( toDependency( "org.hibernate:hibernate:3.0.5::jar", "test" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-context:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "org.springframework:spring-aop:1.2.6::jar" ) ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.springframework:spring-web:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.0::jar" ) ); - model.addDependency( toDependency( "org.springframework:spring-context:1.2.6::jar" ) ); - dep = toDependency( "log4j:log4j:1.2.9::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "struts:struts:1.2.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "com.servlets:cos:05Nov2002::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "taglibs:standard:1.0.6::jar" ) ); - dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.springframework:spring-mock:1.2.6" ); - model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); - dep = toDependency( "org.springframework:spring-jdbc:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.springframework:spring-jdbc:1.2.6" ); - addModel( model ); - - model = toModel( "cglib:cglib:2.1" ); - model.addDependency( toDependency( "asm:asm:1.5.3::jar" ) ); - model.addDependency( toDependency( "asm:asm-util:1.3.4::jar" ) ); - model.addDependency( toDependency( "aspectwerkz:aspectwerkz-core:0.8.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "asm:asm:1.5.3" ); - addModel( model ); - - model = toModel( "asm:asm-util:1.3.4" ); - addModel( model ); - - model = toModel( "aspectwerkz:aspectwerkz-core:0.8.1" ); - addModel( model ); - - model = toModel( "easymock:easymockclassextension:1.1" ); - addModel( model ); - - model = toModel( "opensymphony:webwork:2.2.4" ); - model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); - dep = toDependency( "opensymphony:xwork-tiger:1.2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "freemarker:freemarker:2.3.4::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "commons-lang:commons-lang:2.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "dwr:dwr:1.1-beta-3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "velocity:velocity:1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "velocity-tools:velocity-tools:1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-fileupload:commons-fileupload:1.1.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "servlets.com:cos:05Nov2002::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "opensymphony:pell-multipart:2.1.5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "opensymphony:sitemesh:2.2.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jetty:org.mortbay.jetty:5.1.4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "eclipse:jdtcore:3.1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jasperreports:jasperreports:1.1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jfree:jfreechart:1.0.0::jar" ); - addExclusion( dep, "gnujaxp:gnujaxp" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "commons-digester:commons-digester:1.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "portlet-api:portlet-api:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.apache.pluto:pluto:1.0.1-rc4::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "picocontainer:picocontainer:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "picocontainer:picocontainer-gems:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "nanocontainer:nanocontainer:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "nanocontainer:nanocontainer-nanowar:1.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-beans:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-core:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-context:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-web:1.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "org.springframework:spring-mock:1.2::jar", "compile" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xpp3:xpp3:1.1.3.4-RC8::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "junit:junit:3.8.1::jar", "compile" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); - model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); - model.addDependency( toDependency( "jmock:jmock-cglib:1.0.1::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); - model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); - addModel( model ); - - model = toModel( "opensymphony:xwork-tiger:1.2.1" ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.0" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "dwr:dwr:1.1-beta-3" ); - addModel( model ); - - model = toModel( "velocity-tools:velocity-tools:1.1" ); - addModel( model ); - - model = toModel( "commons-fileupload:commons-fileupload:1.1.1" ); - addModel( model ); - - model = toModel( "servlets.com:cos:05Nov2002" ); - addModel( model ); - - model = toModel( "opensymphony:pell-multipart:2.1.5" ); - addModel( model ); - - model = toModel( "opensymphony:sitemesh:2.2.1" ); - addModel( model ); - - model = toModel( "jetty:org.mortbay.jetty:5.1.4" ); - addModel( model ); - - model = toModel( "eclipse:jdtcore:3.1.0" ); - addModel( model ); - - model = toModel( "jasperreports:jasperreports:1.1.0" ); - addModel( model ); - - model = toModel( "jfree:jfreechart:1.0.0" ); - addModel( model ); - - model = toModel( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT" ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.7" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "portlet-api:portlet-api:1.0" ); - addModel( model ); - - model = toModel( "org.apache.pluto:pluto:1.0.1-rc4" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "picocontainer:picocontainer:1.2" ); - addModel( model ); - - model = toModel( "picocontainer:picocontainer-gems:1.2" ); - addModel( model ); - - model = toModel( "nanocontainer:nanocontainer:1.0" ); - addModel( model ); - - model = toModel( "nanocontainer:nanocontainer-nanowar:1.0" ); - addModel( model ); - - model = toModel( "org.springframework:spring-beans:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-core:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-context:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-web:1.2" ); - addModel( model ); - - model = toModel( "org.springframework:spring-mock:1.2" ); - addModel( model ); - - model = toModel( "xpp3:xpp3:1.1.3.4-RC8" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-alt-jdk1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-1::jar", "test" ); - addExclusion( dep, "geronimo-spec:geronimo-spec-javamail" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.4" ); - model.addDependency( toDependency( "javax.activation:activation:1.1::jar" ) ); - addModel( model ); - - model = toModel( "javax.activation:activation:1.1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); - model.addDependency( toDependency( "dumbster:dumbster:1.5::jar" ) ); - addModel( model ); - - model = toModel( "dumbster:dumbster:1.5" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); - model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-core:0.8" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-java:0.8" ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "directory-naming:naming-factory:0.8" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); - model.addDependency( toDependency( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1::jar" ) ); - addModel( model ); - - model = toModel( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1" ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.1" ); - addModel( model ); - - model = toModel( "org.extremecomponents:extremecomponents:1.0.1" ); - dep = toDependency( "avalon-framework:avalon-framework:4.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "batik:batik:1.5-fop-0.20-5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.0::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - dep = toDependency( "fop:fop:0.20.5::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - dep = toDependency( "poi:poi:2.5.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "provided" ) ); - model.addDependency( toDependency( "taglibs:standard:1.0.2::jar" ) ); - dep = toDependency( "xalan:xalan:2.5.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xerces:xercesImpl:2.6.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:2.0.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "avalon-framework:avalon-framework:4.0" ); - addModel( model ); - - model = toModel( "batik:batik:1.5-fop-0.20-5" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "fop:fop:0.20.5" ); - addModel( model ); - - model = toModel( "poi:poi:2.5.1" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "poi" ); - model.getRelocation().setArtifactId( "poi" ); - model.getRelocation().setVersion( "2.5.1-final-20040804" ); - addModel( model ); - - model = toModel( "taglibs:standard:1.0.2" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.1" ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils-bean-collections:1.7.0" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.2" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar", "compile" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "velocity:velocity:1.4::jar", "compile" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.3.03" ); - model.setParentProject( toParent( "org.apache:apache:1" ) ); - addModel( model ); - - model = toModel( "org.apache.derby:derby:10.1.3.1" ); - addModel( model ); - - model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.1" ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - addModel( model ); - - model = toModel( "hsqldb:hsqldb:1.7.3.3" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "jpox:jpox-enhancer:1.1.7::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "jpox:jpox-enhancer:1.1.7" ); - model.setParentProject( toParent( "jpox:jpox-parent:1.1.7" ) ); - model.addDependency( toDependency( "jpox:jpox:1.1.7::jar" ) ); - model.addDependency( toDependency( "org.apache.bcel:bcel:5.2::jar" ) ); - model.addDependency( toDependency( "ant:ant:1.6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.bcel:bcel:5.2" ); - model.addDependency( toDependency( "jakarta-regexp:jakarta-regexp:1.4::jar" ) ); - addModel( model ); - - model = toModel( "jakarta-regexp:jakarta-regexp:1.4" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-mail-sender-simple:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); - model.addDependency( toDependency( "dumbster:dumbster:1.5::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-web:1.1-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-xmlrpc-api:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-xmlrpc:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.xmlrpc:xmlrpc-common:3.0::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-xmlrpc:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.xmlrpc:xmlrpc-common:3.0" ); - model.setParentProject( toParent( "org.apache.xmlrpc:xmlrpc:3.0" ) ); - model.addDependency( toDependency( "org.apache.ws.commons:ws-commons-util:1.0.1::jar" ) ); - model.addDependency( toDependency( "jaxme:jaxmeapi:0.5.1::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.apache.xmlrpc:xmlrpc:3.0" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - model.addDependencyManagement( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.ws.commons:ws-commons-util:1.0.1::jar" ) ); - model.addDependencyManagement( toDependency( "jaxme:jaxmeapi:0.5.1::jar", "provided" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.1" ); - model.addDependency( toDependency( "log4j:log4j:1.2.12::jar" ) ); - model.addDependency( toDependency( "logkit:logkit:1.0.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.12" ); - addModel( model ); - - model = toModel( "org.apache.ws.commons:ws-commons-util:1.0.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - addModel( model ); - - model = toModel( "jaxme:jaxmeapi:0.5.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-xmlrpc-client:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-xmlrpc:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-api:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.xmlrpc:xmlrpc-client:3.0::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.xmlrpc:xmlrpc-client:3.0" ); - model.setParentProject( toParent( "org.apache.xmlrpc:xmlrpc:3.0" ) ); - model.addDependency( toDependency( "org.apache.xmlrpc:xmlrpc-common:3.0::jar" ) ); - model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-xmlrpc-server:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-xmlrpc:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-api:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.apache.xmlrpc:xmlrpc-server:3.0::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.xmlrpc:xmlrpc-server:3.0" ); - model.setParentProject( toParent( "org.apache.xmlrpc:xmlrpc:3.0" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.xmlrpc:xmlrpc-common:3.0::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-plexus-application:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-webapp:1.1-SNAPSHOT::war" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-webapp:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-configuration:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-core:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - dep = toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ); - addExclusion( dep, "commons-collections:commons-collections" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "provided" ) ); - model.addDependency( toDependency( "commons-fileupload:commons-fileupload:1.1::jar" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-hg:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-local:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-synergy:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-vss:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-irc:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-jabber:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-msn:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-wagon:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-server:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-webdav:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1-SNAPSHOT::war", "runtime" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1-SNAPSHOT::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xerces:xmlParserAPIs" ); - model.addDependency( dep ); - model.addDependency( toDependency( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar", "provided" ) ); - dep = toDependency( "jpox:jpox:1.1.7::jar" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.activation:activation:1.1::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar", "test" ) ); - dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); - addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); - addExclusion( dep, "xerces:xerces" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xalan:xalan" ); - addExclusion( dep, "xml-apis:xml-apis" ); - addExclusion( dep, "servletapi:servletapi" ); - model.addDependency( dep ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration-model:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-shared-components:7" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-app-configuration-web:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon:1.0-alpha-6" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.24" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-settings:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "commons-fileupload:commons-fileupload:1.1" ); - model.addDependency( toDependency( "commons-io:commons-io:1.1::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "provided" ) ); - model.addDependency( toDependency( "javax.portlet:portlet-api:1.0::jar", "provided" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-io:commons-io:1.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "javax.portlet:portlet-api:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-notifier-irc:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ircbot:1.1-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-ircbot:1.1-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-notifier-jabber:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-jabber:1.0-alpha-4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-jabber:1.0-alpha-4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.5" ) ); - model.addDependency( toDependency( "jivesoftware:smackx:2.0.0::jar" ) ); - model.addDependency( toDependency( "jivesoftware:smack:2.0.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.5" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "jivesoftware:smackx:2.0.0" ); - addModel( model ); - - model = toModel( "jivesoftware:smack:2.0.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-notifier-msn:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-msn:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-msn:1.0-alpha-2" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - model.addDependency( toDependency( "jmsn:msnmlib:1.4-20050613::jar" ) ); - addModel( model ); - - model = toModel( "jmsn:msnmlib:1.4-20050613" ); - addModel( model ); - - model = toModel( "org.apache.maven.continuum:continuum-notifier-wagon:1.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-notification:1.0-alpha-5::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-core:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-webdav:1.0-beta-2::jar", "test" ) ); - model.addDependency( toDependency( "it.could:webdav:0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.mortbay.jetty:jetty:4.2.12::jar", "test" ) ); - addModel( model ); - - model = toModel( "jpox:jpox-dbcp:1.1.7" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-api:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-manager-plexus:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-hg:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-local:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-perforce:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-starteam:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-synergy:1.0" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-vss:1.0" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); - addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "xalan:xalan:2.7.0::jar" ) ); - model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.3.03::jar" ) ); - model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); - model.addProperty( "security.version", "1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); - addExclusion( dep, "xerces:xercesImpl" ); - addExclusion( dep, "xerces:xmlParserAPIs" ); - model.addDependency( dep ); - dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); - addExclusion( dep, "javax.sql:jdbc-stdext" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); - dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); - addExclusion( dep, "com.bea.xml:jsr173-ri" ); - model.addDependency( dep ); - model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); - dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); - addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ) ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "commons-logging:commons-logging-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); - model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); - model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); - model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); - model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - addModel( model ); - - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java deleted file mode 100644 index fa5b32f11..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.dependency.DependencyGraphFactory; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.ArrayList; -import java.util.List; - -/** - * DepManDeepVersionDependencyGraphTest - * - * DependencyGraphTest for testing net.example.depman.deepversion:A:1.0 - * - * @version $Id$ - */ -public class DepManDeepVersionDependencyGraphTest - extends AbstractDependencyGraphFactoryTestCase -{ - public void testResolvedDepsToNodes() - throws GraphTaskException - { - MemoryRepositoryDependencyGraphBuilder graphBuilder = new MemoryRepositoryDependencyGraphBuilder(); - MemoryRepository repository = new DepManDeepVersionMemoryRepository(); - graphBuilder.setMemoryRepository( repository ); - - // Create the factory, and add the test resolver. - DependencyGraphFactory factory = new DependencyGraphFactory(); - factory.setGraphBuilder( graphBuilder ); - factory.setDesiredScope( DependencyScope.TEST ); - - // Get the model to resolve from - VersionedReference rootRef = toVersionedReference( "net.example.depman.deepversion:A:1.0" ); - - // Perform the resolution. - DependencyGraph graph = factory.getGraph( rootRef ); - - // Test the results. - assertNotNull( "Graph shouldn't be null.", graph ); - - String expectedRootRef = "net.example.depman.deepversion:A:1.0"; - List expectedNodes = new ArrayList(); - - // Check for all nodes, regardless of scope. - expectedNodes.clear(); - expectedNodes.add( "net.example.depman.deepversion:B:1.0::jar" ); - expectedNodes.add( "net.example.depman.deepversion:C:1.0::jar" ); - expectedNodes.add( "net.example.depman.deepversion:D:2.0::jar" ); - expectedNodes.add( "net.example.depman.deepversion:E:3.0::jar" ); - expectedNodes.add( "net.example.depman.deepversion:F:1.0::jar" ); - - assertGraph( graph, expectedRootRef, expectedNodes ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java deleted file mode 100644 index 13f48a633..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArchivaProjectModel; - -/** - * DepManDeepVersionMemoryRepository - * - * MemoryRepository for testing net.example.depman.deepversion:A:1.0 - * - * @version $Id$ - */ -public class DepManDeepVersionMemoryRepository - extends AbstractMemoryRepository -{ - public void initialize() - { - ArchivaProjectModel model; - - model = toModel( "net.example.depman.deepversion:A:1.0" ); - model.addDependency( toDependency( "net.example.depman.deepversion:B:1.0::jar" ) ); - model.addDependency( toDependency( "net.example.depman.deepversion:C:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "net.example.depman.deepversion:D:2.0::jar" ) ); - addModel( model ); - - /* Having a depman in A for D:2.0 will cause an orphaned E:2.0 during the depman - * application phase. - * - * This is intentional, to test out the depman application and recovery. - */ - - model = toModel( "net.example.depman.deepversion:B:1.0" ); - model.addDependency( toDependency( "net.example.depman.deepversion:D:1.0::jar" ) ); - addModel( model ); - - model = toModel( "net.example.depman.deepversion:E:2.0" ); - addModel( model ); - - model = toModel( "net.example.depman.deepversion:E:3.0" ); - model.addDependency( toDependency( "net.example.depman.deepversion:F:1.0::jar" ) ); - addModel( model ); - - model = toModel( "net.example.depman.deepversion:F:1.0" ); - addModel( model ); - - model = toModel( "net.example.depman.deepversion:C:1.0" ); - model.addDependency( toDependency( "net.example.depman.deepversion:D:1.0::jar" ) ); - addModel( model ); - - model = toModel( "net.example.depman.deepversion:D:1.0" ); - model.addDependency( toDependency( "net.example.depman.deepversion:E:2.0::jar" ) ); - addModel( model ); - - model = toModel( "net.example.depman.deepversion:D:2.0" ); - model.addDependency( toDependency( "net.example.depman.deepversion:E:3.0::jar" ) ); - addModel( model ); - - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java deleted file mode 100644 index e33a867ea..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java +++ /dev/null @@ -1,347 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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 junit.framework.Assert; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.dependency.DependencyGraphFactory; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.VersionedReference; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.Iterator; -import java.util.List; - -/** - * GraphvizDotTool - testing utility to help understand the graph. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class GraphvizDotTool - implements GraphListener -{ - private int phaseNumber = 0; - - protected VersionedReference toVersionedReference( String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); - Assert.assertEquals( "Versioned Reference [" + key + "] part count.", 3, parts.length ); - - VersionedReference ref = new VersionedReference(); - ref.setGroupId( parts[0] ); - ref.setArtifactId( parts[1] ); - ref.setVersion( parts[2] ); - return ref; - } - - private DependencyGraph getDependencyGraph( MemoryRepository repository, String rootRefKey ) - throws GraphTaskException - { - MemoryRepositoryDependencyGraphBuilder graphBuilder = new MemoryRepositoryDependencyGraphBuilder(); - graphBuilder.setMemoryRepository( repository ); - - // Create the factory, and add the test resolver. - DependencyGraphFactory factory = new DependencyGraphFactory(); - factory.setGraphBuilder( graphBuilder ); - factory.setDesiredScope( DependencyScope.TEST ); - factory.addGraphListener( this ); - - // Get the model to resolve from - VersionedReference rootRef = toVersionedReference( rootRefKey ); - - // Perform the resolution. - phaseNumber = 0; - DependencyGraph graph = factory.getGraph( rootRef ); - - // Test the results. - Assert.assertNotNull( "Graph shouldn't be null.", graph ); - - return graph; - } - - public void testGenerateDots() - throws GraphTaskException - { - getDependencyGraph( new ArchivaWebappMemoryRepository(), - "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT" ); - - // getDependencyGraph( new ArchivaCommonMemoryRepository(), - // "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT" ); - // - // getDependencyGraph( new ArchivaXmlToolsMemoryRepository(), - // "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT" ); - // - // getDependencyGraph( new ContinuumStoreMemoryRepository(), - // "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT" ); - // - // getDependencyGraph( new MavenProjectInfoReportsPluginMemoryRepository(), - // "org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT" ); - // - // getDependencyGraph( new WagonManagerMemoryRepository(), "org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT" ); - - getDependencyGraph( new DepManDeepVersionMemoryRepository(), "net.example.depman.deepversion:A:1.0" ); - } - - public void dependencyResolutionEvent( DependencyResolutionEvent event ) - { - /* do nothing */ - } - - public void graphError( GraphTaskException e, DependencyGraph currentGraph ) - { - /* do nothing */ - } - - public void graphPhaseEvent( GraphPhaseEvent event ) - { - String graphId = event.getGraph().getRootNode().getArtifact().getArtifactId(); - String title = "Graph: " + graphId; - - switch ( event.getType() ) - { - case GraphPhaseEvent.GRAPH_TASK_POST: - phaseNumber++; - title += " - Phase: " + phaseNumber + " - Task: " + event.getTask().getTaskId(); - writeDot( "target/graph_" + graphId + "_" + phaseNumber + "_" + event.getTask().getTaskId() + ".dot", - event.getGraph(), title ); - break; - case GraphPhaseEvent.GRAPH_DONE: - title += " FINISHED"; - writeDot( "target/graph_" + graphId + ".dot", event.getGraph(), title ); - break; - } - } - - private void writeDot( String outputFilename, DependencyGraph graph, String title ) - { - System.out.println( "Writing Graphviz output: " + outputFilename ); - try - { - File outputFile = new File( outputFilename ); - FileWriter writer = new FileWriter( outputFile ); - PrintWriter dot = new PrintWriter( writer ); - - dot.println( "// Auto generated dot file from plexus-graph-visualizer-graphviz." ); - - dot.println( "digraph example {" ); - - dot.println( "" ); - - dot.println( " // Graph Defaults" ); - dot.println( " graph [" ); - dot.println( " bgcolor=\"#ffffff\"," ); - dot.println( " fontname=\"Helvetica\"," ); - dot.println( " fontsize=\"11\"," ); - dot.println( " label=\"" + title + "\"," ); - dot.println( " labeljust=\"l\"" ); - dot.println( " rankdir=\"LR\"" ); - dot.println( " ];" ); - - // Node Defaults. - - dot.println( "" ); - dot.println( " // Node Defaults." ); - dot.println( " node [" ); - dot.println( " fontname=\"Helvetica\"," ); - dot.println( " fontsize=\"11\"," ); - dot.println( " shape=\"box\"" ); - dot.println( " ];" ); - - // Edge Defaults. - - dot.println( "" ); - dot.println( " // Edge Defaults." ); - dot.println( " edge [" ); - dot.println( " arrowsize=\"0.8\"" ); - dot.println( " fontsize=\"11\"," ); - dot.println( " ];" ); - - Iterator it; - - it = graph.getNodes().iterator(); - while ( it.hasNext() ) - { - DependencyGraphNode node = (DependencyGraphNode) it.next(); - - writeNode( dot, graph, node ); - } - - it = graph.getEdges().iterator(); - while ( it.hasNext() ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); - - DependencyGraphNode from = graph.getNode( edge.getNodeFrom() ); - DependencyGraphNode to = graph.getNode( edge.getNodeTo() ); - - writeEdge( dot, edge, from, to ); - } - - dot.println( "}" ); - dot.flush(); - dot.close(); - } - catch ( IOException e ) - { - System.err.println( "Unable to write GraphViz file " + outputFilename + " : " + e.getMessage() ); - e.printStackTrace( System.err ); - } - } - - private String toLabel( DependencyGraphNode node ) - { - StringBuffer lbl = new StringBuffer(); - - lbl.append( node.getArtifact().getGroupId() ).append( "\n" ); - lbl.append( node.getArtifact().getArtifactId() ).append( "\n" ); - lbl.append( node.getArtifact().getVersion() ); - - return StringEscapeUtils.escapeJava( lbl.toString() ); - } - - private String toId( DependencyGraphNode node ) - { - StringBuffer id = new StringBuffer(); - - String raw = DependencyGraphKeys.toKey( node.getArtifact() ); - - for ( int i = 0; i < raw.length(); i++ ) - { - char c = raw.charAt( i ); - if ( Character.isLetterOrDigit( c ) ) - { - id.append( Character.toUpperCase( c ) ); - } - else if ( ( c == '-' ) || ( c == '_' ) ) - { - id.append( "_" ); - } - } - - return id.toString(); - } - - private void writeNode( PrintWriter dot, DependencyGraph graph, DependencyGraphNode node ) - { - dot.println( "" ); - dot.println( " // Node" ); - dot.println( " \"" + toId( node ) + "\" [" ); - dot.println( " label=\"" + toLabel( node ) + "\"," ); - - List edgesTo = graph.getEdgesTo( node ); - boolean orphan = CollectionUtils.isEmpty( edgesTo ); - - if ( node.isFromParent() ) - { - dot.println( " color=\"#FF0000\"," ); - dot.println( " shape=ellipse," ); - } - else - { - dot.println( " shape=box," ); - } - - if ( node.isConflicted() ) - { - // dot.println( " fontcolor=\"#FF88FF\"," ); - dot.println( " style=filled," ); - dot.println( " fillcolor=\"#88FF88\"," ); - } - else if ( orphan ) - { - dot.println( " style=filled," ); - dot.println( " fillcolor=\"#8888FF\"," ); - } - - dot.println( " ];" ); - } - - private void writeEdge( PrintWriter dot, DependencyGraphEdge edge, DependencyGraphNode from, DependencyGraphNode to ) - { - dot.println( "" ); - dot.println( " // Edge" ); - - dot.println( " \"" + toId( from ) + "\" -> \"" + toId( to ) + "\" [" ); - - if ( edge.isDisabled() ) - { - switch ( edge.getDisabledType() ) - { - case DependencyGraph.DISABLED_CYCLIC: - dot.println( " color=\"#FF0000\"," ); - break; - case DependencyGraph.DISABLED_OPTIONAL: - dot.println( " color=\"#FF00FF\"," ); - break; - case DependencyGraph.DISABLED_NEARER_DEP: - dot.println( " color=\"#00FF00\"," ); - break; - case DependencyGraph.DISABLED_NEARER_EDGE: - dot.println( " color=\"#88FF88\"," ); - break; - default: - case DependencyGraph.DISABLED_EXCLUDED: - dot.println( " color=\"#0000FF\"," ); - break; - } - - dot.println( " label=\"" + edge.getDisabledReason() + "\"," ); - dot.println( " fontsize=\"8\"," ); - } - else if ( DependencyScope.TEST.equals( edge.getScope() ) ) - { - dot.println( " style=\"dashed\"," ); - dot.println( " color=\"#DDDDDD\"," ); - } - else if ( DependencyScope.RUNTIME.equals( edge.getScope() ) ) - { - dot.println( " style=\"dashed\"," ); - dot.println( " color=\"#DDFFDD\"," ); - dot.println( " label=\"runtime\"," ); - dot.println( " fontsize=\"8\"," ); - } - else if ( DependencyScope.PROVIDED.equals( edge.getScope() ) ) - { - dot.println( " style=\"dashed\"," ); - dot.println( " color=\"#DDDDFF\"," ); - dot.println( " label=\"provided\"," ); - dot.println( " fontsize=\"8\"," ); - } - else if ( DependencyScope.SYSTEM.equals( edge.getScope() ) ) - { - dot.println( " style=\"dashed\"," ); - dot.println( " color=\"#FFDDDD\"," ); - dot.println( " label=\"system\"," ); - dot.println( " fontsize=\"8\"," ); - } - - dot.println( " arrowtail=none," ); - dot.println( " arrowhead=normal" ); - - dot.println( " ];" ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java deleted file mode 100644 index c1497604f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java +++ /dev/null @@ -1,135 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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. - */ - - -/** - * MavenProjectInfoReportsPluginDependencyGraphTest - * - * DependencyGraphTest for testing org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class MavenProjectInfoReportsPluginDependencyGraphTest - extends AbstractDependencyGraphFactoryTestCase -{ - public void testResolvedDepsToNodes() - throws GraphTaskException - { -/* TODO: Can't test a snapshot dependency from the repository - MemoryRepositoryDependencyGraphBuilder graphBuilder = - new MemoryRepositoryDependencyGraphBuilder(); - MemoryRepository repository = new MavenProjectInfoReportsPluginMemoryRepository(); - graphBuilder.setMemoryRepository( repository ); - - // Create the factory, and add the test resolver. - DependencyGraphFactory factory = new DependencyGraphFactory(); - factory.setGraphBuilder( graphBuilder ); - factory.setDesiredScope( DependencyScope.TEST ); - - // Get the model to resolve from - VersionedReference rootRef = toVersionedReference( "org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT"); - - // Perform the resolution. - DependencyGraph graph = factory.getGraph( rootRef ); - - // Test the results. - assertNotNull( "Graph shouldn't be null.", graph ); - - String expectedRootRef = "org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT"; - List expectedNodes = new ArrayList(); - - // Check for all nodes, regardless of scope. - expectedNodes.clear(); - expectedNodes.add( "classworlds:classworlds:1.1-alpha-2::jar" ); - expectedNodes.add( "com.jcraft:jsch:0.1.27::jar" ); - expectedNodes.add( "commons-beanutils:commons-beanutils:1.7.0::jar" ); - expectedNodes.add( "commons-cli:commons-cli:1.0::jar" ); - expectedNodes.add( "commons-collections:commons-collections:3.1::jar" ); - expectedNodes.add( "commons-digester:commons-digester:1.6::jar" ); - expectedNodes.add( "commons-logging:commons-logging:1.0.4::jar" ); - expectedNodes.add( "commons-validator:commons-validator:1.2.0::jar" ); - expectedNodes.add( "httpunit:httpunit:1.6::jar" ); - expectedNodes.add( "jakarta-regexp:jakarta-regexp:1.4::jar" ); - expectedNodes.add( "javax.servlet:servlet-api:2.3::jar" ); - expectedNodes.add( "jtidy:jtidy:4aug2000r7-dev::jar" ); - expectedNodes.add( "junit:junit:3.8.1::jar" ); - expectedNodes.add( "nekohtml:nekohtml:0.9.1::jar" ); - expectedNodes.add( "org.apache.bcel:bcel:5.2::jar" ); - expectedNodes.add( "org.apache.maven:maven-artifact:2.0.4::jar" ); - expectedNodes.add( "org.apache.maven:maven-artifact-manager:2.0.2::jar" ); - expectedNodes.add( "org.apache.maven:maven-core:2.0::jar" ); - expectedNodes.add( "org.apache.maven:maven-error-diagnostics:2.0::jar" ); - expectedNodes.add( "org.apache.maven:maven-model:2.0.4::jar" ); - expectedNodes.add( "org.apache.maven:maven-monitor:2.0::jar" ); - expectedNodes.add( "org.apache.maven:maven-plugin-api:2.0.4::jar" ); - expectedNodes.add( "org.apache.maven:maven-plugin-descriptor:2.0::jar" ); - expectedNodes.add( "org.apache.maven:maven-plugin-parameter-documenter:2.0::jar" ); - expectedNodes.add( "org.apache.maven:maven-plugin-registry:2.0::jar" ); - expectedNodes.add( "org.apache.maven:maven-profile:2.0::jar" ); - expectedNodes.add( "org.apache.maven:maven-project:2.0.4::jar" ); - expectedNodes.add( "org.apache.maven:maven-repository-metadata:2.0::jar" ); - expectedNodes.add( "org.apache.maven:maven-settings:2.0.4::jar" ); - expectedNodes.add( "org.apache.maven.doxia:doxia-core:1.0-alpha-8::jar" ); - expectedNodes.add( "org.apache.maven.doxia:doxia-decoration-model:1.0-alpha-8::jar" ); - expectedNodes.add( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-8::jar" ); - expectedNodes.add( "org.apache.maven.doxia:doxia-site-renderer:1.0-alpha-8::jar" ); - expectedNodes.add( "org.apache.maven.reporting:maven-reporting-api:2.0.4::jar" ); - expectedNodes.add( "org.apache.maven.reporting:maven-reporting-impl:2.0.4::jar" ); - expectedNodes.add( "org.apache.maven.scm:maven-scm-api:1.0-beta-4::jar" ); - expectedNodes.add( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-beta-4::jar" ); - expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-beta-4::jar" ); - expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-beta-4::jar" ); - expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-beta-4::jar" ); - expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-beta-4::jar" ); - expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-beta-4::jar" ); - expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-beta-4::jar" ); - expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-beta-4::jar" ); - expectedNodes.add( "org.apache.maven.shared:maven-dependency-tree:1.0-alpha-2::jar" ); - expectedNodes.add( "org.apache.maven.shared:maven-plugin-testing-harness:1.0::jar" ); - expectedNodes.add( "org.apache.maven.shared:maven-shared-jar:1.0-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-digest:1.0::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.1::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-velocity:1.1.3::jar" ); - expectedNodes.add( "oro:oro:2.0.7::jar" ); - expectedNodes.add( "plexus:plexus-utils:1.0.2::jar" ); - expectedNodes.add( "regexp:regexp:1.3::jar" ); - expectedNodes.add( "rhino:js:1.5R4.1::jar" ); - expectedNodes.add( "velocity:velocity:1.4::jar" ); - expectedNodes.add( "velocity:velocity-dep:1.4::jar" ); - expectedNodes.add( "xerces:xercesImpl:2.6.2::jar" ); - expectedNodes.add( "xerces:xmlParserAPIs:2.2.1::jar" ); - expectedNodes.add( "xml-apis:xml-apis:1.0.b2::jar" ); - - assertGraph( graph, expectedRootRef, expectedNodes ); -*/ - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginMemoryRepository.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginMemoryRepository.java deleted file mode 100644 index a61f1c5b3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginMemoryRepository.java +++ /dev/null @@ -1,1040 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.VersionedReference; - -/** - * MavenProjectInfoReportsPluginMemoryRepository - * - * MemoryRepository for testing org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class MavenProjectInfoReportsPluginMemoryRepository - extends AbstractMemoryRepository -{ - public void initialize() - { - ArchivaProjectModel model; - Dependency dep; - - model = toModel( "org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.plugins:maven-plugins:8" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); - model.addDependency( toDependency( "commons-validator:commons-validator:1.2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.reporting:maven-reporting-impl:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-shared-jar:1.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-dependency-tree:1.0-alpha-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-beta-4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-beta-4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-beta-4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-beta-4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-beta-4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-beta-4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-beta-4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-core:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-site-renderer:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "httpunit:httpunit:1.6::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.shared:maven-plugin-testing-harness:1.0::jar", "test" ) ); - model.addProperty( "wagon.version", "1.0-beta-2" ); - model.addProperty( "scm.version", "1.0-beta-4" ); - addModel( model ); - - model = toModel( "org.apache.maven.plugins:maven-plugins:8" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:5" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - addModel( model ); - - model = toModel( "org.apache:apache:3" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-api:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "junit:junit:3.8.1" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "classworlds:classworlds:1.1-alpha-2" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon:1.0-alpha-6" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.24" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); - model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-containers:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0.3" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-utils:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); - model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); - model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-components:1.0" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); - model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "jetty:jetty:4.2.10" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.3" ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.3" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.servlet" ); - model.getRelocation().setArtifactId( "servlet-api" ); - model.getRelocation().setVersion( "2.3" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-settings:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "commons-validator:commons-validator:1.2.0" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); - model.addDependency( toDependency( "commons-digester:commons-digester:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); - model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.7.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.3" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.6" ); - addModel( model ); - - model = toModel( "logkit:logkit:1.0.1" ); - addModel( model ); - - model = toModel( "junit:junit:3.7" ); - addModel( model ); - - model = toModel( "commons-digester:commons-digester:1.6" ); - model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-beanutils:commons-beanutils:1.6" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:2.0" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:2.1" ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.0.b2" ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.4" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "avalon-framework:avalon-framework:4.1.3" ); - addModel( model ); - - model = toModel( "oro:oro:2.0.8" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:2.0.2" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xml-apis" ); - model.getRelocation().setArtifactId( "xml-apis" ); - model.getRelocation().setVersion( "1.0.b2" ); - addModel( model ); - - model = toModel( "org.apache.maven.reporting:maven-reporting-impl:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven.reporting:maven-reporting:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); - model.addDependency( toDependency( "commons-validator:commons-validator:1.2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-core:1.0-alpha-7::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0.4::jar" ) ); - model.addDependency( toDependency( "oro:oro:2.0.7::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.reporting:maven-reporting-api:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-site-renderer:1.0-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.reporting:maven-reporting:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.4::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia-core:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-7" ) ); - model.addDependency( toDependency( "oro:oro:2.0.7::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-7::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia:1.0-alpha-7" ); - addModel( model ); - - model = toModel( "oro:oro:2.0.7" ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-7" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.reporting:maven-reporting-api:2.0.4" ); - model.setParentProject( toParent( "org.apache.maven.reporting:maven-reporting:2.0.4" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia-site-renderer:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-7" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-core:1.0-alpha-7::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-decoration-model:1.0-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-i18n:1.0-beta-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.2" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar", "compile" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "velocity:velocity:1.4::jar", "compile" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging-api:1.0.4" ); - addModel( model ); - - model = toModel( "velocity:velocity:1.4" ); - model.addDependency( toDependency( "velocity:velocity-dep:1.4::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "velocity:velocity-dep:1.4" ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia-decoration-model:1.0-alpha-7" ); - model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-7" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-shared-jar:1.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:3" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.2::jar", "compile" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); - model.addDependency( toDependency( "org.apache.bcel:bcel:5.2::jar", "compile" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-shared-components:3" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:4" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0.2" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0.2" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-6" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-6" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0.2" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.2" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-6::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0.2" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0.2" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0.2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.7" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.bcel:bcel:5.2" ); - model.addDependency( toDependency( "jakarta-regexp:jakarta-regexp:1.4::jar" ) ); - addModel( model ); - - model = toModel( "jakarta-regexp:jakarta-regexp:1.4" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-dependency-tree:1.0-alpha-2" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:5" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-shared-components:5" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.27" ); - dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "com.jcraft:jzlib:1.0.7" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ) ); - model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); - dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); - addModel( model ); - - model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-api:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-beta-4" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-managers:1.0-beta-4" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-managers:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-beta-4" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-beta-4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ) ); - model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-beta-4" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-beta-4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-test:1.0-beta-4::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-test:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-beta-4" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-beta-4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-beta-4::jar" ) ); - addModel( model ); - - model = toModel( "regexp:regexp:1.3" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-beta-4" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-beta-4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-beta-4::jar", "test" ) ); - model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-providers-svn:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-beta-4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-beta-4" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-beta-4" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-beta-4::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-beta-4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-beta-4" ); - addModel( model ); - - model = toModel( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-beta-4" ); - model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-beta-4" ) ); - model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-beta-4::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia-core:1.0-alpha-8" ); - model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-8" ) ); - model.addDependency( toDependency( "oro:oro:2.0.7::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia:1.0-alpha-8" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:1" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:1" ); - model.setParentProject( toParent( "org.apache:apache:1" ) ); - addModel( model ); - - model = toModel( "org.apache:apache:1" ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-8" ); - model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-8" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia-site-renderer:1.0-alpha-8" ); - model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-8" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-core:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-velocity:1.1.3::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.doxia:doxia-decoration-model:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.5" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); - model.addDependency( toDependency( "velocity:velocity:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.5" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.5" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.doxia:doxia-decoration-model:1.0-alpha-8" ); - model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-8" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "httpunit:httpunit:1.6" ); - model.addDependency( toDependency( "xerces:xmlParserAPIs:2.2.1::jar" ) ); - model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); - model.addDependency( toDependency( "nekohtml:nekohtml:0.9.1::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "rhino:js:1.5R4.1::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "test" ) ); - model.addDependency( toDependency( "javax.mail:mail:1.3.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "xerces:xmlParserAPIs:2.2.1" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.2" ); - addModel( model ); - - model = toModel( "nekohtml:nekohtml:0.9.1" ); - model.addDependency( toDependency( "xerces:xerces:2.4.0::jar" ) ); - addModel( model ); - - model = toModel( "xerces:xerces:2.4.0" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "xerces" ); - model.getRelocation().setArtifactId( "xercesImpl" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.4.0" ); - addModel( model ); - - model = toModel( "rhino:js:1.5R4.1" ); - addModel( model ); - - model = toModel( "javax.activation:activation:1.0.2" ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.3.1" ); - model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-plugin-testing-harness:1.0" ); - model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-core:2.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.shared:maven-shared-components:7" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5" ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.23::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "compile" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar", "compile" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.23" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-5" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "jetty:jetty:4.2.10::jar", "test" ) ); - model.addDependency( toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-core:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-parameter-documenter:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5::jar", "runtime" ) ); - model.addDependency( toDependency( "org.apache.maven.reporting:maven-reporting-api:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-error-diagnostics:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-registry:2.0::jar" ) ); - dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); - addExclusion( dep, "commons-lang:commons-lang" ); - addExclusion( dep, "commons-logging:commons-logging" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-descriptor:2.0::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-monitor:2.0::jar" ) ); - dep = toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5::jar", "runtime" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-settings:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-parameter-documenter:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.reporting:maven-reporting-api:2.0" ); - model.setParentProject( toParent( "org.apache.maven.reporting:maven-reporting:2.0" ) ); - dep = toDependency( "doxia:doxia-sink-api:1.0-alpha-4::jar" ); - addExclusion( dep, "plexus:plexus-container-default" ); - addExclusion( dep, "plexus:plexus-utils" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.apache.maven.reporting:maven-reporting:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - addModel( model ); - - model = toModel( "doxia:doxia-sink-api:1.0-alpha-4" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-error-diagnostics:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-registry:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "commons-cli:commons-cli:1.0" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:1.0::jar" ) ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:1.0" ); - model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-api:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-descriptor:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-monitor:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - addModel( model ); - - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepository.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepository.java deleted file mode 100644 index 1e3239b6a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepository.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArchivaProjectModel; - -/** - * MemoryRepository - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface MemoryRepository -{ - public abstract void addModel( ArchivaProjectModel model ); - - public abstract ArchivaProjectModel getProjectModel( String groupId, String artifactId, String version ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepositoryDependencyGraphBuilder.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepositoryDependencyGraphBuilder.java deleted file mode 100644 index 0f95757ae..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepositoryDependencyGraphBuilder.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.VersionedReference; - -/** - * MemoryRepositoryProjectResolver - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class MemoryRepositoryDependencyGraphBuilder - implements DependencyGraphBuilder -{ - private MemoryRepository memoryRepository; - - public ArchivaProjectModel resolveProjectModel( VersionedReference reference ) - { - ArtifactReference artifact = new ArtifactReference(); - artifact.setGroupId( reference.getGroupId() ); - artifact.setArtifactId( reference.getArtifactId() ); - artifact.setVersion( reference.getVersion() ); - artifact.setType( "pom" ); - - return resolveProjectModel( artifact ); - } - - public ArchivaProjectModel resolveProjectModel( ArtifactReference reference ) - { - ArchivaProjectModel model = memoryRepository - .getProjectModel( reference.getGroupId(), reference.getArtifactId(), reference.getVersion() ); - - if ( model == null ) - { - throw new NullPointerException( "Unable to find model for " + DependencyGraphKeys.toKey( reference ) ); - } - - if ( model.getParentProject() != null ) - { - ArchivaProjectModel parentModel = resolveProjectModel( model.getParentProject() ); - - model.getDependencies().addAll( parentModel.getDependencies() ); - model.getDependencyManagement().addAll( parentModel.getDependencyManagement() ); - } - - return model; - } - - public MemoryRepository getMemoryRepository() - { - return memoryRepository; - } - - public void setMemoryRepository( MemoryRepository memoryRepository ) - { - this.memoryRepository = memoryRepository; - } - - public DependencyGraph createGraph( VersionedReference versionedProjectReference ) - { - String groupId = versionedProjectReference.getGroupId(); - String artifactId = versionedProjectReference.getArtifactId(); - String version = versionedProjectReference.getVersion(); - - DependencyGraph graph = new DependencyGraph( groupId, artifactId, version ); - return graph; - } - - public void resolveNode( DependencyGraph graph, DependencyGraphNode fromNode, - VersionedReference versionedProjectReference ) - { - ArchivaProjectModel model = resolveProjectModel( fromNode.getArtifact() ); - - DependencyGraphUtils.addNodeFromModel( model, graph, fromNode ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleDependencyGraphTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleDependencyGraphTest.java deleted file mode 100644 index f6da54f19..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleDependencyGraphTest.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.dependency.DependencyGraphFactory; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.ArrayList; -import java.util.List; - -/** - * SimpleDependencyGraphTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class SimpleDependencyGraphTest - extends AbstractDependencyGraphFactoryTestCase -{ - public void testResolveDependenciesBasic() throws GraphTaskException - { - MemoryRepositoryDependencyGraphBuilder graphBuilder = new MemoryRepositoryDependencyGraphBuilder(); - MemoryRepository repository = new SimpleMemoryRepository(); - graphBuilder.setMemoryRepository( repository ); - - // Create the factory, and add the test resolver. - DependencyGraphFactory factory = new DependencyGraphFactory(); - factory.setGraphBuilder( graphBuilder ); - factory.setDesiredScope( DependencyScope.TEST ); - - // Get the model to resolve from - VersionedReference rootRef = toVersionedReference( "org.apache.maven.archiva:archiva-commons:1.0" ); - - // Perform the resolution. - DependencyGraph graph = factory.getGraph( rootRef ); - - // Test the results. - assertNotNull( "Graph shouldn't be null.", graph ); - - List expectedNodes = new ArrayList(); - expectedNodes.add( "org.apache.maven.archiva:archiva-commons:1.0::pom" ); - expectedNodes.add( "org.codehaus.plexus:plexus-digest:1.0::jar" ); - expectedNodes.add( "junit:junit:3.8.1::jar" ); - assertNodes( graph, expectedNodes ); - - List expectedEdges = new ArrayList(); - expectedEdges.add( new ExpectedEdge( "org.apache.maven.archiva:archiva-commons:1.0::pom", - "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); - expectedEdges.add( new ExpectedEdge( "org.codehaus.plexus:plexus-digest:1.0::jar", "junit:junit:3.8.1::jar" ) ); - - assertEdges( graph, expectedEdges ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleMemoryRepository.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleMemoryRepository.java deleted file mode 100644 index efb927ff1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleMemoryRepository.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArchivaProjectModel; - -/** - * SimpleMemoryRepository - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class SimpleMemoryRepository - extends AbstractMemoryRepository -{ - public void initialize() - { - ArchivaProjectModel model; - - model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "junit:junit:3.8.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.archiva:archiva-commons:1.0" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); - addModel( model ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerDependencyGraphTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerDependencyGraphTest.java deleted file mode 100644 index 3fcc04c4f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerDependencyGraphTest.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.dependency.DependencyGraphFactory; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.ArrayList; -import java.util.List; - -/** - * WagonManagerDependencyGraphTest - * - * DependencyGraphTest for testing org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class WagonManagerDependencyGraphTest - extends AbstractDependencyGraphFactoryTestCase -{ - public void testResolvedDepsToNodes() - throws GraphTaskException - { - MemoryRepositoryDependencyGraphBuilder graphBuilder = - new MemoryRepositoryDependencyGraphBuilder(); - MemoryRepository repository = new WagonManagerMemoryRepository(); - graphBuilder.setMemoryRepository( repository ); - - // Create the factory, and add the test resolver. - DependencyGraphFactory factory = new DependencyGraphFactory(); - factory.setGraphBuilder( graphBuilder ); - factory.setDesiredScope( DependencyScope.TEST ); - - // Get the model to resolve from - VersionedReference rootRef = toVersionedReference( "org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT"); - - // Perform the resolution. - DependencyGraph graph = factory.getGraph( rootRef ); - - // Test the results. - assertNotNull( "Graph shouldn't be null.", graph ); - - String expectedRootRef = "org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT"; - List expectedNodes = new ArrayList(); - - // Check for all nodes, regardless of scope. - expectedNodes.clear(); - expectedNodes.add( "classworlds:classworlds:1.1-alpha-2::jar" ); - expectedNodes.add( "com.jcraft:jsch:0.1.27::jar" ); - expectedNodes.add( "commons-httpclient:commons-httpclient:2.0.2::jar" ); - expectedNodes.add( "commons-lang:commons-lang:2.1::jar" ); - expectedNodes.add( "commons-logging:commons-logging:1.0.4::jar" ); - expectedNodes.add( "commons-net:commons-net:1.4.1::jar" ); - expectedNodes.add( "de.zeigermann.xml:xml-im-exporter:1.1::jar" ); - expectedNodes.add( "it.could:webdav:0.4::jar" ); - expectedNodes.add( "javax.servlet:servlet-api:2.3::jar" ); - expectedNodes.add( "jdom:jdom:1.0::jar" ); - expectedNodes.add( "jtidy:jtidy:4aug2000r7-dev::jar" ); - expectedNodes.add( "junit:junit:3.8.1::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-file:2.0-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-ftp:2.0-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-http-lightweight:2.0-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-http-shared:2.0-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-ssh:2.0-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-ssh-external:2.0-SNAPSHOT::jar" ); - expectedNodes.add( "org.apache.maven.wagon:wagon-webdav:2.0-SNAPSHOT::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ); - expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ); - expectedNodes.add( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-1::jar" ); - expectedNodes.add( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-1::jar" ); - expectedNodes.add( "org.mortbay.jetty:jetty:6.0.2::jar" ); - expectedNodes.add( "org.mortbay.jetty:jetty-util:6.0.2::jar" ); - expectedNodes.add( "org.mortbay.jetty:servlet-api-2.5:6.0.2::jar" ); - expectedNodes.add( "oro:oro:2.0.8::jar" ); - expectedNodes.add( "slide:slide-webdavlib:2.1::jar" ); - - assertGraph( graph, expectedRootRef, expectedNodes ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerMemoryRepository.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerMemoryRepository.java deleted file mode 100644 index ca3e7ffe6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerMemoryRepository.java +++ /dev/null @@ -1,772 +0,0 @@ -package org.apache.maven.archiva.dependency.graph; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.VersionedReference; - -/** - * WagonManagerMemoryRepository - * - * MemoryRepository for testing org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT - * - * Generated by archivadev:generate-dependency-tests plugin - * @version $Id$ - */ -public class WagonManagerMemoryRepository - extends AbstractMemoryRepository -{ - public void initialize() - { - ArchivaProjectModel model; - Dependency dep; - - model = toModel( "org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:2.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:2.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ftp:2.0-SNAPSHOT::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:2.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh:2.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-external:2.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-webdav:2.0-SNAPSHOT::jar", "test" ) ); - dep = toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-1::jar", "test" ); - addExclusion( dep, "org.codehaus.plexus:plexus-component-api" ); - model.addDependency( dep ); - model.addDependency( toDependency( "org.mortbay.jetty:jetty:6.0.2::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:2.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:2.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); - addExclusion( dep, "classworlds:classworlds" ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:2.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:2.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ); - addExclusion( dep, "plexus:plexus-utils" ); - addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); - addExclusion( dep, "classworlds:classworlds" ); - model.addDependencyManagement( dep ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-parent:5" ); - model.setParentProject( toParent( "org.apache:apache:3" ) ); - addModel( model ); - - model = toModel( "org.apache:apache:3" ); - addModel( model ); - - model = toModel( "junit:junit:3.8.1" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:2.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.11" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:2.0-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:2.0-SNAPSHOT" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon:2.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:2.0-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-interactivity:1.0-alpha-6" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-interactivity:1.0-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.9" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.10" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.9" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jmock:jmock:1.0.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.4" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "classworlds:classworlds:1.1-alpha-2" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ftp:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "commons-net:commons-net:1.4.1::jar" ) ); - dep = toDependency( "org.codehaus.plexus:plexus-ftpd:1.0-alpha-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "commons-net:commons-net:1.4.1" ); - model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); - addModel( model ); - - model = toModel( "oro:oro:2.0.8" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-ftpd:1.0-alpha-1" ); - model.addDependency( toDependency( "concurrent:concurrent:1.3.4::jar", "compile" ) ); - model.addDependency( toDependency( "cornerstone-threads:cornerstone-threads-api:1.0::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "cornerstone-sockets:cornerstone-sockets-api:1.0::jar", "compile" ) ); - model.addDependency( toDependency( "cornerstone-connection:cornerstone-connection-impl:1.0::jar", "compile" ) ); - model.addDependency( toDependency( "excalibur-pool:excalibur-pool-impl:2.0::jar", "compile" ) ); - model.addDependency( toDependency( "excalibur-thread:excalibur-thread:1.1.1::jar", "compile" ) ); - model.addDependency( toDependency( "cornerstone-sockets:cornerstone-sockets-impl:1.0::jar", "compile" ) ); - model.addDependency( toDependency( "cornerstone-connection:cornerstone-connection-api:1.0::jar", "compile" ) ); - model.addDependency( toDependency( "commons-collections:commons-collections:3.0::jar", "compile" ) ); - model.addDependency( toDependency( "avalon:avalon-framework:4.1.4::jar", "compile" ) ); - model.addDependency( toDependency( "cornerstone-threads:cornerstone-threads-impl:1.0::jar", "compile" ) ); - model.addDependency( toDependency( "excalibur-pool:excalibur-pool-api:2.0::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-avalon-personality:0.13::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "concurrent:concurrent:1.3.4" ); - addModel( model ); - - model = toModel( "cornerstone-threads:cornerstone-threads-api:1.0" ); - addModel( model ); - - model = toModel( "cornerstone-sockets:cornerstone-sockets-api:1.0" ); - addModel( model ); - - model = toModel( "cornerstone-connection:cornerstone-connection-impl:1.0" ); - addModel( model ); - - model = toModel( "excalibur-pool:excalibur-pool-impl:2.0" ); - addModel( model ); - - model = toModel( "excalibur-thread:excalibur-thread:1.1.1" ); - addModel( model ); - - model = toModel( "cornerstone-sockets:cornerstone-sockets-impl:1.0" ); - addModel( model ); - - model = toModel( "cornerstone-connection:cornerstone-connection-api:1.0" ); - addModel( model ); - - model = toModel( "commons-collections:commons-collections:3.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "avalon:avalon-framework:4.1.4" ); - addModel( model ); - - model = toModel( "cornerstone-threads:cornerstone-threads-impl:1.0" ); - addModel( model ); - - model = toModel( "excalibur-pool:excalibur-pool-api:2.0" ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-avalon-personality:0.13" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "avalon:avalon-framework:4.1.4::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:2.0-SNAPSHOT::jar" ) ); - dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); - addExclusion( dep, "plexus:plexus-container-default" ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-shared:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); - addModel( model ); - - model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); - addModel( model ); - - model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); - model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); - model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-components:1.0" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); - model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "jetty:jetty:4.2.10" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "javax.servlet:servlet-api:2.3" ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.3" ); - model.setRelocation( new VersionedReference() ); - model.getRelocation().setGroupId( "javax.servlet" ); - model.getRelocation().setArtifactId( "servlet-api" ); - model.getRelocation().setVersion( "2.3" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:2.0-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.27" ); - dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "com.jcraft:jzlib:1.0.7" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh-external:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:2.0-SNAPSHOT::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-webdav:2.0-SNAPSHOT" ); - model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); - model.addDependency( toDependency( "slide:slide-webdavlib:2.1::jar" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "runtime" ) ); - model.addDependency( toDependency( "it.could:webdav:0.4::jar", "test" ) ); - addModel( model ); - - model = toModel( "slide:slide-webdavlib:2.1" ); - model.addDependency( toDependency( "commons-httpclient:commons-httpclient:2.0.2::jar" ) ); - model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); - model.addDependency( toDependency( "de.zeigermann.xml:xml-im-exporter:1.1::jar" ) ); - addModel( model ); - - model = toModel( "commons-httpclient:commons-httpclient:2.0.2" ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.3" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - addModel( model ); - - model = toModel( "log4j:log4j:1.2.6" ); - addModel( model ); - - model = toModel( "logkit:logkit:1.0.1" ); - addModel( model ); - - model = toModel( "junit:junit:3.7" ); - addModel( model ); - - model = toModel( "jdom:jdom:1.0" ); - dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "jaxen:jaxen:1.0-FCS::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "saxpath:saxpath:1.0-FCS::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xalan:xalan:2.5.0::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:2.6.0" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:1.0.b2" ); - addModel( model ); - - model = toModel( "jaxen:jaxen:1.0-FCS" ); - addModel( model ); - - model = toModel( "saxpath:saxpath:1.0-FCS" ); - addModel( model ); - - model = toModel( "xalan:xalan:2.5.0" ); - addModel( model ); - - model = toModel( "de.zeigermann.xml:xml-im-exporter:1.1" ); - addModel( model ); - - model = toModel( "commons-logging:commons-logging:1.0.4" ); - dep = toDependency( "log4j:log4j:1.2.6::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "logkit:logkit:1.0.1::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); - dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "avalon-framework:avalon-framework:4.1.3" ); - addModel( model ); - - model = toModel( "it.could:webdav:0.4" ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-1" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - model.addDependency( toDependency( "it.could:webdav:0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-1::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.8" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-components:1.1.8" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-15::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-15" ); - model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); - model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-1" ); - model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-1" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); - model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); - model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); - addModel( model ); - - model = toModel( "commons-lang:commons-lang:2.1" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-1" ); - addModel( model ); - - model = toModel( "org.mortbay.jetty:jetty:6.0.2" ); - model.setParentProject( toParent( "org.mortbay.jetty:project:6.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.mortbay.jetty:jetty-util:6.0.2::jar" ) ); - model.addDependency( toDependency( "org.mortbay.jetty:servlet-api-2.5:6.0.2::jar" ) ); - addModel( model ); - - model = toModel( "org.mortbay.jetty:project:6.0.2" ); - model.addDependencyManagement( toDependency( "org.apache.maven:maven-plugin-tools-api:2.0::jar" ) ); - model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.slf4j:jcl104-over-slf4j:1.0.1::jar" ) ); - model.addDependencyManagement( toDependency( "org.slf4j:slf4j-simple:1.0.1::jar" ) ); - model.addDependencyManagement( toDependency( "mx4j:mx4j:3.0.1::jar" ) ); - model.addDependencyManagement( toDependency( "mx4j:mx4j-tools:3.0.1::jar" ) ); - model.addDependencyManagement( toDependency( "xerces:xercesImpl:${xerces-version}::jar" ) ); - model.addDependencyManagement( toDependency( "commons-el:commons-el:1.0::jar" ) ); - model.addDependencyManagement( toDependency( "ant:ant:1.6.5::jar" ) ); - model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); - model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); - model.addProperty( "jasper-version", "5.5.15" ); - model.addProperty( "junit-version", "3.8.1" ); - model.addProperty( "ant-version", "1.6.5" ); - model.addProperty( "mail-version", "1.4" ); - model.addProperty( "commons-el-version", "1.0" ); - model.addProperty( "slf4j-version", "1.0.1" ); - model.addProperty( "eclipse-compiler-version", "3.1.1" ); - model.addProperty( "mx4j-version", "3.0.1" ); - model.addProperty( "jta-spec-version", "1.0.1B-rc4" ); - model.addProperty( "activation-version", "1.1" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-tools-api:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven-plugin-tools:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-descriptor:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-tools:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven:2.0" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar" ) ); - model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5::jar" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5" ); - model.addDependency( toDependency( "com.jcraft:jsch:0.1.23::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "compile" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar", "compile" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); - addModel( model ); - - model = toModel( "com.jcraft:jsch:0.1.23" ); - addModel( model ); - - model = toModel( "plexus:plexus-utils:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-root:1.0.3" ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); - addModel( model ); - - model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); - model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); - model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); - addModel( model ); - - model = toModel( "plexus:plexus-containers:1.0.2" ); - model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5" ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-5" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5" ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); - model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "test" ) ); - model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); - model.addDependency( toDependency( "jetty:jetty:4.2.10::jar", "test" ) ); - model.addDependency( toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-project:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0::jar", "test" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-test:2.0" ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-profile:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-model:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact-manager:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar", "test" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-repository-metadata:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-artifact:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-descriptor:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0::jar" ) ); - model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); - model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); - addModel( model ); - - model = toModel( "org.apache.maven:maven-plugin-api:2.0" ); - model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - addModel( model ); - - model = toModel( "org.slf4j:jcl104-over-slf4j:1.0.1" ); - addModel( model ); - - model = toModel( "org.slf4j:slf4j-simple:1.0.1" ); - addModel( model ); - - model = toModel( "mx4j:mx4j:3.0.1" ); - addModel( model ); - - model = toModel( "mx4j:mx4j-tools:3.0.1" ); - addModel( model ); - - model = toModel( "xerces:xercesImpl:${xerces-version}" ); - addModel( model ); - - model = toModel( "commons-el:commons-el:1.0" ); - model.addDependency( toDependency( "servletapi:servletapi:2.4-20040521::jar", "provided" ) ); - model.addDependency( toDependency( "jspapi:jsp-api:2.0-20040521::jar", "provided" ) ); - model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); - addModel( model ); - - model = toModel( "servletapi:servletapi:2.4-20040521" ); - addModel( model ); - - model = toModel( "jspapi:jsp-api:2.0-20040521" ); - addModel( model ); - - model = toModel( "ant:ant:1.6.5" ); - dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); - dep.setOptional( true ); - model.addDependency( dep ); - addModel( model ); - - model = toModel( "xerces:xerces-impl:2.6.2" ); - addModel( model ); - - model = toModel( "xml-apis:xml-apis:2.6.2" ); - addModel( model ); - - model = toModel( "javax.mail:mail:1.4" ); - model.addDependency( toDependency( "javax.activation:activation:1.1::jar" ) ); - addModel( model ); - - model = toModel( "javax.activation:activation:1.1" ); - addModel( model ); - - model = toModel( "org.mortbay.jetty:jetty-util:6.0.2" ); - model.setParentProject( toParent( "org.mortbay.jetty:project:6.0.2" ) ); - model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); - model.addDependency( toDependency( "org.mortbay.jetty:servlet-api-2.5:6.0.2::jar", "provided" ) ); - addModel( model ); - - model = toModel( "org.mortbay.jetty:servlet-api-2.5:6.0.2" ); - model.setParentProject( toParent( "org.mortbay.jetty:project:6.0.2" ) ); - addModel( model ); - - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/functors/ToKeyTransformer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/functors/ToKeyTransformer.java deleted file mode 100644 index 26e476ea0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/functors/ToKeyTransformer.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.functors; - -/* - * 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.collections.Transformer; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.Keys; - -/** - * ToKeyTransformer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ToKeyTransformer - implements Transformer -{ - - public Object transform( Object input ) - { - if ( input instanceof ArchivaProjectModel ) - { - return Keys.toKey( (ArchivaProjectModel) input ); - } - - if ( input instanceof DependencyGraphNode ) - { - return DependencyGraphKeys.toKey( ((DependencyGraphNode) input).getArtifact() ); - } - - if ( input instanceof DependencyGraphEdge ) - { - DependencyGraphEdge edge = (DependencyGraphEdge) input; - // Potentially Confusing, but this is called "To"KeyTransformer after all. - return DependencyGraphKeys.toKey( edge.getNodeTo() ); - } - - if ( input instanceof ArtifactReference ) - { - return DependencyGraphKeys.toKey( ((ArtifactReference) input) ); - } - - return input; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStackTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStackTest.java deleted file mode 100644 index 51664be04..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStackTest.java +++ /dev/null @@ -1,226 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.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 org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.tasks.DependencyManagementStack.Rules; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.Dependency; - -import junit.framework.TestCase; - -/** - * DependencyManagementStackTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyManagementStackTest - extends TestCase -{ - public DependencyGraphNode toNode( String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ":" ); - assertEquals( "toNode(" + key + ") requires 5 parts", 5, parts.length ); - - ArtifactReference ref = new ArtifactReference(); - ref.setGroupId( parts[0] ); - ref.setArtifactId( parts[1] ); - ref.setVersion( parts[2] ); - ref.setClassifier( parts[3] ); - ref.setType( parts[4] ); - - return new DependencyGraphNode( ref ); - } - - protected Dependency toDependency( String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); - - assertEquals( "Dependency key [" + key + "] should be 5 parts.", 5, parts.length ); - - Dependency dep = new Dependency(); - - dep.setGroupId( parts[0] ); - dep.setArtifactId( parts[1] ); - dep.setVersion( parts[2] ); - dep.setClassifier( parts[3] ); - dep.setType( parts[4] ); - - return dep; - } - - public void testPushPopSimple() - { - DependencyGraphNode node = toNode( "org.apache.maven.archiva:depmanstack-testcase:1.0::jar" ); - Dependency dep = toDependency( "junit:junit:3.8.1::jar" ); - dep.setScope( "test" ); - node.addDependencyManagement( dep ); - - DependencyManagementStack stack = new DependencyManagementStack(); - stack.push( node ); - DependencyGraphNode oldnode = stack.pop(); - assertEquals( "added node to old node", node, oldnode ); - } - - public void testPushPopTwoDeep() - { - DependencyManagementStack stack = new DependencyManagementStack(); - Dependency dep; - - // top node. - DependencyGraphNode projectNode = toNode( "org.apache.maven.archiva:depmanstack-testcase:1.0::jar" ); - dep = toDependency( "junit:junit:3.8.1::jar" ); - dep.setScope( "test" ); - projectNode.addDependencyManagement( dep ); - stack.push( projectNode ); - - // direct node. - DependencyGraphNode directNode = toNode( "org.apache.maven.archiva:depmanstack-common:1.0::jar" ); - dep = toDependency( "junit:junit:3.7::jar" ); - dep.setScope( "test" ); - directNode.addDependencyManagement( dep ); - stack.push( directNode ); - - // transitive node. - DependencyGraphNode transNode = toNode( "org.apache.maven.archiva:depmanstack-model:1.0::jar" ); - dep = toDependency( "junit:junit:3.7::jar" ); - transNode.addDependencyManagement( dep ); - stack.push( transNode ); - - // Test it - assertEquals( "popped node is trans node", transNode, stack.pop() ); - assertEquals( "popped node is direct node", directNode, stack.pop() ); - assertEquals( "popped node is project node", projectNode, stack.pop() ); - } - - public void testApplyNodeVersionParentWins() - { - DependencyManagementStack stack = new DependencyManagementStack(); - Dependency dep; - - // top node. - DependencyGraphNode projectNode = toNode( "org.apache.maven.archiva:depmanstack-testcase:1.0::jar" ); - dep = toDependency( "junit:junit:3.8.1::jar" ); - dep.setScope( "test" ); - projectNode.addDependencyManagement( dep ); - stack.push( projectNode ); - - // direct node. - DependencyGraphNode directNode = toNode( "org.apache.maven.archiva:depmanstack-common:1.0::jar" ); - dep = toDependency( "junit:junit:3.7::jar" ); - dep.setScope( "test" ); - directNode.addDependencyManagement( dep ); - stack.push( directNode ); - - // transitive node. - DependencyGraphNode transNode = toNode( "org.apache.maven.archiva:depmanstack-model:1.0::jar" ); - dep = toDependency( "junit:junit:3.7.1::jar" ); - transNode.addDependencyManagement( dep ); - stack.push( transNode ); - - // Test it - DependencyGraphNode junitNode = toNode( "junit:junit:1.0::jar" ); - - assertRules( "junit (lvl:trans)", stack, junitNode, "3.8.1", "test", null ); - stack.pop(); - assertRules( "junit (lvl:direct)", stack, junitNode, "3.8.1", "test", null ); - stack.pop(); - assertRules( "junit (lvl:project)", stack, junitNode, "3.8.1", "test", null ); - } - - /** - * This test is based off of Carlos Sanchez's depman example use case. - * - * In a simple project chain of A:1.0 -> B:1.0 -> C:1.0 -> D:1.0 - * If B:1.0 has a dependency management section stating dep D should be version 2.0 - * Then the dep D when viewed from A should be version 2.0 - */ - public void testApplyNodeVersionCarlosABCD() - { - DependencyManagementStack stack = new DependencyManagementStack(); - Dependency dep; - - // project node, A - DependencyGraphNode nodeA = toNode( "org.apache.maven.archiva:carlos-A:1.0::jar" ); - stack.push( nodeA ); - - // sub node, B - DependencyGraphNode nodeB = toNode( "org.apache.maven.archiva:carlos-B:1.0::jar" ); - dep = toDependency( "org.apache.maven.archiva:carlos-D:2.0::jar" ); - nodeB.addDependencyManagement( dep ); - stack.push( nodeB ); - - // sub node, C - DependencyGraphNode nodeC = toNode( "org.apache.maven.archiva:carlos-C:1.0::jar" ); - stack.push( nodeC ); - - // sub node, D - // Not added to the stack, as this is the node that is having the rules applied to it. - DependencyGraphNode nodeD = toNode( "org.apache.maven.archiva:carlos-D:1.0::jar" ); - - // Test it - assertRules( "node D (lvl:C)", stack, nodeD, "2.0", null, null ); - stack.pop(); - assertRules( "node D (lvl:B)", stack, nodeD, "2.0", null, null ); - stack.pop(); - assertNoRules( "node D (lvl:A)", stack, nodeD, "2.0", null, null ); - } - - /** - * Test for expected rules, that should be enforced for the provided node. - * NOTE: This test will update the node.artifact.version to whatever is stated in the rules. - */ - private void assertRules( String msg, DependencyManagementStack stack, DependencyGraphNode node, - String expectedVersion, String expectedScope, String expectedExclusions[] ) - { - Rules rules = stack.getRules( node ); - assertNotNull( msg + " rules should not be null.", rules ); - - node.getArtifact().setVersion( rules.artifact.getVersion() ); - - assertEquals( msg + ": version", expectedVersion, rules.artifact.getVersion() ); - assertEquals( msg + ": scope", expectedScope, rules.scope ); - - if ( expectedExclusions != null ) - { - // TODO: test for exclusion settings. - } - } - - /** - * Test for when there are no rules being enforced for the provided node. - * Similar to assertRules() above. - */ - private void assertNoRules( String msg, DependencyManagementStack stack, DependencyGraphNode node, - String expectedVersion, String expectedScope, String expectedExclusions[] ) - { - Rules rules = stack.getRules( node ); - assertNull( msg + " rules should be null.", rules ); - - assertEquals( msg + ": version", expectedVersion, node.getArtifact().getVersion() ); - - if ( expectedExclusions != null ) - { - // TODO: test for exclusion settings. - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalkerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalkerTest.java deleted file mode 100644 index 24db70b25..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalkerTest.java +++ /dev/null @@ -1,229 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.walk; - -/* - * 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.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.tasks.FlagCyclicEdgesTask; -import org.apache.maven.archiva.model.ArtifactReference; - -import java.util.List; - -import junit.framework.TestCase; - -/** - * DependencyGraphWalkerTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyGraphWalkerTest - extends TestCase -{ - /** - *

-     *  [foo-util] ---> [foo-common]
-     *      \
-     *       ---------> [foo-xml] ---> [xercesImpl] ---> [xmlParserAPIs]
-     *                        \  \
-     *                         \  ---> [jdom] ----+
-     *                          \                 |
-     *                           ----> [jaxen] <--+
-     * 
- */ - public void testModerateWalk() - { - DependencyGraph graph = new DependencyGraph( "org.foo", "foo-util", "1.0" ); - String rootKey = DependencyGraphKeys.toKey( graph.getRootNode().getArtifact() ); - addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-common:1.0::jar" ) ); - addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-xml:1.0::jar" ) ); - - addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "xerces:xercesImpl:2.2.1::jar" ) ); - addEdgeAndNodes( graph, toEdge( "xerces:xercesImpl:2.2.1::jar", "xerces:xmlParserAPIs:2.2.1::jar" ) ); - addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "jdom:jdom:1.0::jar" ) ); - addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "jaxen:jaxen:1.0::jar" ) ); - addEdgeAndNodes( graph, toEdge( "jdom:jdom:1.0::jar", "jaxen:jaxen:1.0::jar" ) ); - - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - WalkCollector walkCollector = new WalkCollector(); - walker.visit( graph, walkCollector ); - - String expectedPath[] = new String[] { - rootKey, - "org.foo:foo-common:1.0::jar", - "org.foo:foo-xml:1.0::jar", - "jaxen:jaxen:1.0::jar", - "xerces:xercesImpl:2.2.1::jar", - "xerces:xmlParserAPIs:2.2.1::jar", - "jdom:jdom:1.0::jar" }; - - assertVisitor( walkCollector, 1, 7, 7 ); - assertPath( expectedPath, walkCollector.getCollectedPath() ); - } - - /** - *
-     *  [foo-util] ---> [foo-common]
-     *      \
-     *       ---------> [foo-xml] ---> [xercesImpl] ---> [xmlParserAPIs]
-     * 
- */ - public void testSimpleWalk() - { - DependencyGraph graph = new DependencyGraph( "org.foo", "foo-util", "1.0" ); - String rootKey = DependencyGraphKeys.toKey( graph.getRootNode().getArtifact() ); - addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-common:1.0::jar" ) ); - addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-xml:1.0::jar" ) ); - addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "xerces:xercesImpl:2.2.1::jar" ) ); - addEdgeAndNodes( graph, toEdge( "xerces:xercesImpl:2.2.1::jar", "xerces:xmlParserAPIs:2.2.1::jar" ) ); - - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - WalkCollector walkCollector = new WalkCollector(); - walker.visit( graph, walkCollector ); - - String expectedPath[] = new String[] { - rootKey, - "org.foo:foo-common:1.0::jar", - "org.foo:foo-xml:1.0::jar", - "xerces:xercesImpl:2.2.1::jar", - "xerces:xmlParserAPIs:2.2.1::jar" }; - - assertVisitor( walkCollector, 1, 5, 4 ); - assertPath( expectedPath, walkCollector.getCollectedPath() ); - } - - /** - *
-     *  [foo-util] ---> [foo-common]
-     *      \
-     *       \              +----------------------------------------+
-     *        \             v                                        |
-     *         -------> [foo-xml] ---> [xercesImpl] ---> [xmlParserAPIs]
-     *                        \  \
-     *                         \  ---> [jdom] ----+
-     *                          \                 |
-     *                           ----> [jaxen] <--+
-     * 
- */ - public void testDeepNodeWalk() - { - DependencyGraph graph = new DependencyGraph( "org.foo", "foo-util", "1.0" ); - String rootKey = DependencyGraphKeys.toKey( graph.getRootNode().getArtifact() ); - addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-common:1.0::jar" ) ); - addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-xml:1.0::jar" ) ); - - addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "xerces:xercesImpl:2.2.1::jar" ) ); - addEdgeAndNodes( graph, toEdge( "xerces:xercesImpl:2.2.1::jar", "xerces:xmlParserAPIs:2.2.1::jar" ) ); - addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "jdom:jdom:1.0::jar" ) ); - addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "jaxen:jaxen:1.0::jar" ) ); - addEdgeAndNodes( graph, toEdge( "jdom:jdom:1.0::jar", "jaxen:jaxen:1.0::jar" ) ); - // introduce cyclic dep. intentional. should only result in walking to foo-xml once. - addEdgeAndNodes( graph, toEdge( "xerces:xmlParserAPIs:2.2.1::jar", "org.foo:foo-xml:1.0::jar" ) ); - - new FlagCyclicEdgesTask().executeTask( graph ); - - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - WalkCollector walkCollector = new WalkCollector(); - ArtifactReference startRef = toArtifactReference( "org.foo:foo-xml:1.0::jar" ); - DependencyGraphNode startNode = new DependencyGraphNode( startRef ); - walker.visit( graph, startNode, walkCollector ); - - String expectedPath[] = new String[] { - "org.foo:foo-xml:1.0::jar", - "jaxen:jaxen:1.0::jar", - "xerces:xercesImpl:2.2.1::jar", - "xerces:xmlParserAPIs:2.2.1::jar", - "jdom:jdom:1.0::jar" }; - - assertVisitor( walkCollector, 1, 5, 6 ); - assertPath( expectedPath, walkCollector.getCollectedPath() ); - } - - private void addEdgeAndNodes( DependencyGraph graph, DependencyGraphEdge edge ) - { - ensureNodeExists( graph, edge.getNodeFrom() ); - ensureNodeExists( graph, edge.getNodeTo() ); - graph.addEdge( edge ); - } - - private void ensureNodeExists( DependencyGraph graph, ArtifactReference artifact ) - { - DependencyGraphNode node = graph.getNode( artifact ); - if ( node == null ) - { - node = new DependencyGraphNode( artifact ); - graph.addNode( node ); - } - } - - private void assertPath( String[] expectedPath, List collectedPath ) - { - assertEquals( "Path.length", expectedPath.length, collectedPath.size() ); - - for ( int i = 0; i < expectedPath.length; i++ ) - { - assertEquals( "Walk path[" + i + "]", expectedPath[i], (String) collectedPath.get( i ) ); - } - } - - private void assertVisitor( WalkCollector walkCollector, int countGraphs, int countNodes, int countEdges ) - { - assertEquals( "Count of graph discovery.", countGraphs, walkCollector.getCountDiscoverGraph() ); - assertEquals( "Count of graph finished.", countGraphs, walkCollector.getCountFinishGraph() ); - assertEquals( "Discover - Finish = 0 (on graph counts)", 0, - ( walkCollector.getCountDiscoverGraph() - walkCollector.getCountFinishGraph() ) ); - - assertEquals( "Count of node discovery.", countNodes, walkCollector.getCountDiscoverNode() ); - assertEquals( "Count of node finished.", countNodes, walkCollector.getCountFinishNode() ); - assertEquals( "Discover - Finish = 0 (on node counts)", 0, - ( walkCollector.getCountDiscoverNode() - walkCollector.getCountFinishNode() ) ); - - assertEquals( "Count of edge discovery.", countEdges, walkCollector.getCountDiscoverEdge() ); - assertEquals( "Count of edge finished.", countEdges, walkCollector.getCountFinishEdge() ); - assertEquals( "Discover - Finish = 0 (on edge counts)", 0, - ( walkCollector.getCountDiscoverEdge() - walkCollector.getCountFinishEdge() ) ); - } - - private DependencyGraphEdge toEdge( String fromKey, String toKey ) - { - ArtifactReference nodeFrom = toArtifactReference( fromKey ); - ArtifactReference nodeTo = toArtifactReference( toKey ); - - return new DependencyGraphEdge( nodeFrom, nodeTo ); - } - - private ArtifactReference toArtifactReference( String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); - assertEquals( "ArtifactReference [" + key + "] parts should equal 5", 5, parts.length ); - - ArtifactReference artifact = new ArtifactReference(); - artifact.setGroupId( parts[0] ); - artifact.setArtifactId( parts[1] ); - artifact.setVersion( parts[2] ); - artifact.setClassifier( parts[3] ); - artifact.setType( parts[4] ); - - return artifact; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/WalkCollector.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/WalkCollector.java deleted file mode 100644 index c07f1a7cb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/WalkCollector.java +++ /dev/null @@ -1,113 +0,0 @@ -package org.apache.maven.archiva.dependency.graph.walk; - -/* - * 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.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.model.ArtifactReference; - -import java.util.ArrayList; -import java.util.List; - -class WalkCollector - implements DependencyGraphVisitor -{ - private List walkPath = new ArrayList(); - - private int countDiscoverGraph = 0; - - private int countFinishGraph = 0; - - private int countDiscoverNode = 0; - - private int countFinishNode = 0; - - private int countDiscoverEdge = 0; - - private int countFinishEdge = 0; - - public void discoverEdge( DependencyGraphEdge edge ) - { - countDiscoverEdge++; - } - - public void discoverGraph( DependencyGraph graph ) - { - countDiscoverGraph++; - } - - public void discoverNode( DependencyGraphNode node ) - { - countDiscoverNode++; - walkPath.add( ArtifactReference.toKey( node.getArtifact() ) ); - } - - public void finishEdge( DependencyGraphEdge edge ) - { - countFinishEdge++; - } - - public void finishGraph( DependencyGraph graph ) - { - countFinishGraph++; - } - - public void finishNode( DependencyGraphNode node ) - { - countFinishNode++; - } - - public List getCollectedPath() - { - return walkPath; - } - - public int getCountDiscoverEdge() - { - return countDiscoverEdge; - } - - public int getCountDiscoverGraph() - { - return countDiscoverGraph; - } - - public int getCountDiscoverNode() - { - return countDiscoverNode; - } - - public int getCountFinishEdge() - { - return countFinishEdge; - } - - public int getCountFinishGraph() - { - return countFinishGraph; - } - - public int getCountFinishNode() - { - return countFinishNode; - } - -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/pom.xml deleted file mode 100644 index 31f88e679..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/pom.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - 4.0.0 - archiva-indexer - Archiva Base :: Indexer - - - org.apache.archiva - archiva-repository-layer - - - org.apache.archiva - archiva-model - - - org.apache.lucene - lucene-core - - - org.codehaus.plexus - plexus-spring - test - - - org.codehaus.plexus - plexus-utils - - - org.codehaus.plexus - plexus-digest - - - commons-lang - commons-lang - - - commons-io - commons-io - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - 80 - 80 - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/ArtifactKeys.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/ArtifactKeys.java deleted file mode 100644 index b470fca81..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/ArtifactKeys.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.apache.maven.archiva.indexer; - -/* - * 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. - */ - -/** - * ArtifactKeys - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArtifactKeys -{ - public static final String GROUPID = "groupId"; - - public static final String GROUPID_EXACT = GROUPID + "_u"; - - public static final String ARTIFACTID = "artifactId"; - - public static final String ARTIFACTID_EXACT = ARTIFACTID + "_u"; - - public static final String VERSION = "version"; - - public static final String VERSION_EXACT = VERSION + "_u"; - - public static final String TYPE = "type"; - - public static final String CLASSIFIER = "classifier"; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndex.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndex.java deleted file mode 100644 index be089107e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndex.java +++ /dev/null @@ -1,152 +0,0 @@ -package org.apache.maven.archiva.indexer; - -/* - * 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.lucene.analysis.Analyzer; -import org.apache.lucene.queryParser.QueryParser; -import org.apache.lucene.search.Searchable; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; - -import java.io.File; -import java.util.Collection; - -/** - * Common access methods for a Repository Content index. - * - * @author Brett Porter - */ -public interface RepositoryContentIndex -{ - /** - * Indexes the records. - * - * @param records list of {@link LuceneRepositoryContentRecord} objects. - * @throws RepositoryIndexException if there is a problem indexing the records. - */ - void indexRecords( Collection records ) - throws RepositoryIndexException; - - /** - * Modify (potentially) existing records in the index. - * - * @param records the collection of {@link LuceneRepositoryContentRecord} objects to modify in the index. - * @throws RepositoryIndexException if there is a problem modifying the records. - */ - public void modifyRecords( Collection records ) - throws RepositoryIndexException; - - /** - * Modify an existing (potential) record in the index. - * - * @param record the record to modify. - * @throws RepositoryIndexException if there is a problem modifying the record. - */ - public void modifyRecord( LuceneRepositoryContentRecord record ) - throws RepositoryIndexException; - - /** - * Check if the index already exists. - * - * @return true if the index already exists - * @throws RepositoryIndexException if the index location is not valid - */ - boolean exists() - throws RepositoryIndexException; - - /** - * Delete records from the index. Simply ignore the request any did not exist. - * - * @param records the records to delete - * @throws RepositoryIndexException if there is a problem removing the record - */ - void deleteRecords( Collection records ) - throws RepositoryIndexException; - - /** - * Delete a record from the index. Simply ignore the request any did not exist. - * - * @param record the record to be deleted - * @throws RepositoryIndexException if there is a problem removing the record - */ - void deleteRecord( LuceneRepositoryContentRecord record ) - throws RepositoryIndexException; - - /** - * Retrieve all primary keys of records in the index. - * - * @return the keys - * @throws RepositoryIndexException if there was an error searching the index - */ - Collection getAllRecordKeys() - throws RepositoryIndexException; - - /** - * Get the index directory. - * - * @return the index directory. - */ - File getIndexDirectory(); - - /** - * Get the {@link QueryParser} appropriate for searches within this index. - * - * @return the query parser; - */ - QueryParser getQueryParser(); - - /** - * Get the id of index. - * - * @return the id of index. - */ - String getId(); - - /** - * Get the repository that this index belongs to. - * - * @return the repository that this index belongs to. - */ - ManagedRepositoryConfiguration getRepository(); - - /** - * Get the analyzer in use for this index. - * - * @return the analyzer in use. - */ - Analyzer getAnalyzer(); - - /** - * Get the document to record (and back again) converter. - * - * @return the converter in use. - */ - LuceneEntryConverter getEntryConverter(); - - /** - * Create a Searchable for this index. - * - * @return the Searchable. - * @throws RepositoryIndexSearchException if there was a problem creating the searchable. - */ - Searchable getSearchable() - throws RepositoryIndexSearchException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListener.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListener.java deleted file mode 100644 index 80aaf14d2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListener.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.apache.maven.archiva.indexer; - -/* - * 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.indexer.bytecode.BytecodeRecord; -import org.apache.maven.archiva.indexer.filecontent.FileContentRecord; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.events.RepositoryListener; - -/** - * Process repository management events and respond appropriately. - * - * @todo creating index instances every time is inefficient, the plugin needs to have a repository context to operate in - * @plexus.component role="org.apache.maven.archiva.repository.events.RepositoryListener" role-hint="indexer" - */ -public class RepositoryContentIndexEventListener - implements RepositoryListener -{ - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory indexFactory; - - public void deleteArtifact( ManagedRepositoryContent repository, ArchivaArtifact artifact ) - { - try - { - RepositoryContentIndex index = indexFactory.createFileContentIndex( repository.getRepository() ); - FileContentRecord fileContentRecord = new FileContentRecord(); - fileContentRecord.setRepositoryId( repository.getRepository().getId() ); - fileContentRecord.setFilename( repository.toPath( artifact ) ); - index.deleteRecord( fileContentRecord ); - - index = indexFactory.createHashcodeIndex( repository.getRepository() ); - HashcodesRecord hashcodesRecord = new HashcodesRecord(); - fileContentRecord.setRepositoryId( repository.getRepository().getId() ); - hashcodesRecord.setArtifact( artifact ); - index.deleteRecord( hashcodesRecord ); - - index = indexFactory.createBytecodeIndex( repository.getRepository() ); - BytecodeRecord bytecodeRecord = new BytecodeRecord(); - fileContentRecord.setRepositoryId( repository.getRepository().getId() ); - bytecodeRecord.setArtifact( artifact ); - index.deleteRecord( bytecodeRecord ); - } - catch ( RepositoryIndexException e ) - { - // Ignore - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndexFactory.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndexFactory.java deleted file mode 100644 index 2eb796eed..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryContentIndexFactory.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.apache.maven.archiva.indexer; - -/* - * 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.configuration.ManagedRepositoryConfiguration; - -/** - * Obtain an index instance. - * - * @author Brett Porter - */ -public interface RepositoryContentIndexFactory -{ - /** - * Method to create an instance of the bytecode index. - * - * @param repository the repository to create the content index from. - * @return the index instance - */ - RepositoryContentIndex createBytecodeIndex( ManagedRepositoryConfiguration repository ); - - /** - * Method to create an instance of the file content index. - * - * @param repository the repository to create the file content index from. - * @return the index instance - */ - RepositoryContentIndex createFileContentIndex( ManagedRepositoryConfiguration repository ); - - /** - * Method to create an instance of the hashcode index. - * - * @param repository the repository to create the content index from. - * @return the index instance - */ - RepositoryContentIndex createHashcodeIndex( ManagedRepositoryConfiguration repository ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryIndexException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryIndexException.java deleted file mode 100644 index bca043991..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryIndexException.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.apache.maven.archiva.indexer; - -/* - * 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. - */ - -/** - * @author Edwin Punzalan - */ -public class RepositoryIndexException - extends Exception -{ - public RepositoryIndexException( String message, Throwable cause ) - { - super( message, cause ); - } - - public RepositoryIndexException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryIndexSearchException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryIndexSearchException.java deleted file mode 100644 index c8be03b9c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/RepositoryIndexSearchException.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.apache.maven.archiva.indexer; - -/* - * 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. - */ - -/** - * @author Brett Porter - */ -public class RepositoryIndexSearchException - extends Exception -{ - public RepositoryIndexSearchException( String message, Throwable cause ) - { - super( message, cause ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeAnalyzer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeAnalyzer.java deleted file mode 100644 index e9a16f04e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeAnalyzer.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.apache.maven.archiva.indexer.bytecode; - -/* - * 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.lucene.analysis.Analyzer; -import org.apache.lucene.analysis.LowerCaseFilter; -import org.apache.lucene.analysis.StopAnalyzer; -import org.apache.lucene.analysis.StopFilter; -import org.apache.lucene.analysis.TokenStream; -import org.apache.lucene.analysis.standard.StandardAnalyzer; -import org.apache.maven.archiva.indexer.ArtifactKeys; -import org.apache.maven.archiva.indexer.lucene.analyzers.ClassnameTokenizer; -import org.apache.maven.archiva.indexer.lucene.analyzers.FilenamesTokenizer; -import org.apache.maven.archiva.indexer.lucene.analyzers.GroupIdTokenizer; -import org.apache.maven.archiva.indexer.lucene.analyzers.VersionTokenizer; - -import java.io.Reader; - -/** - * BytecodeAnalyzer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BytecodeAnalyzer extends Analyzer -{ - private static final Analyzer STANDARD = new StandardAnalyzer(); - - public TokenStream tokenStream( String field, Reader reader ) - { - TokenStream tokenStream = null; - - if ( BytecodeKeys.CLASSES.equals( field ) ) - { - tokenStream = new ClassnameTokenizer( reader ); - } - else if ( BytecodeKeys.FILES.equals( field ) ) - { - tokenStream = new FilenamesTokenizer( reader ); - } - else if ( ArtifactKeys.GROUPID.equals( field ) ) - { - tokenStream = new GroupIdTokenizer( reader ); - } - else if ( ArtifactKeys.VERSION.equals( field ) ) - { - tokenStream = new VersionTokenizer( reader ); - } - else - { - tokenStream = STANDARD.tokenStream( field, reader ); - } - - return new LowerCaseFilter( new StopFilter( tokenStream, StopAnalyzer.ENGLISH_STOP_WORDS ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeEntryConverter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeEntryConverter.java deleted file mode 100644 index a800b2251..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeEntryConverter.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.apache.maven.archiva.indexer.bytecode; - -/* - * 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.lucene.document.Document; -import org.apache.maven.archiva.indexer.ArtifactKeys; -import org.apache.maven.archiva.indexer.lucene.LuceneDocumentMaker; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.platform.JavaArtifactHelper; - -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * Converter for Bytecode records and documents. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BytecodeEntryConverter implements LuceneEntryConverter -{ - - public Document convert( LuceneRepositoryContentRecord record ) - { - if ( !( record instanceof BytecodeRecord ) ) - { - throw new ClassCastException( "Unable to convert type " + record.getClass().getName() + " to " - + BytecodeRecord.class.getName() + "." ); - } - - BytecodeRecord bytecode = (BytecodeRecord) record; - - LuceneDocumentMaker doc = new LuceneDocumentMaker( bytecode ); - - // Artifact Reference - doc.addFieldTokenized( ArtifactKeys.GROUPID, bytecode.getArtifact().getGroupId() ); - doc.addFieldExact( ArtifactKeys.GROUPID_EXACT, bytecode.getArtifact().getGroupId() ); - doc.addFieldTokenized( ArtifactKeys.ARTIFACTID, bytecode.getArtifact().getArtifactId() ); - doc.addFieldExact( ArtifactKeys.ARTIFACTID_EXACT, bytecode.getArtifact().getArtifactId() ); - doc.addFieldTokenized( ArtifactKeys.VERSION, bytecode.getArtifact().getVersion() ); - doc.addFieldExact( ArtifactKeys.VERSION_EXACT, bytecode.getArtifact().getVersion() ); - doc.addFieldTokenized( ArtifactKeys.TYPE, bytecode.getArtifact().getType() ); - doc.addFieldUntokenized( ArtifactKeys.CLASSIFIER, bytecode.getArtifact().getClassifier() ); - - // Bytecode Specifics - doc.addFieldExact( BytecodeKeys.JDK, JavaArtifactHelper.getJavaDetails( bytecode.getArtifact() ).getJdk() ); - doc.addFieldTokenized( BytecodeKeys.CLASSES, bytecode.getClasses() ); - doc.addFieldTokenized( BytecodeKeys.METHODS, bytecode.getMethods() ); - doc.addFieldTokenized( BytecodeKeys.FILES, bytecode.getFiles() ); - - return doc.getDocument(); - } - - public LuceneRepositoryContentRecord convert( Document document ) throws ParseException - { - BytecodeRecord record = new BytecodeRecord(); - - record.setRepositoryId( document.get( LuceneDocumentMaker.REPOSITORY_ID ) ); - - // Artifact Reference - String groupId = document.get( ArtifactKeys.GROUPID ); - String artifactId = document.get( ArtifactKeys.ARTIFACTID ); - String version = document.get( ArtifactKeys.VERSION ); - String classifier = document.get( ArtifactKeys.CLASSIFIER ); - String type = document.get( ArtifactKeys.TYPE ); - - ArchivaArtifact artifact = new ArchivaArtifact( groupId, artifactId, version, classifier, type ); - record.setArtifact( artifact ); - - // Bytecode Specifics - JavaArtifactHelper.getJavaDetails( record.getArtifact() ).setJdk( document.get( BytecodeKeys.JDK ) ); - record.setClasses( getList( document, BytecodeKeys.CLASSES ) ); - record.setMethods( getList( document, BytecodeKeys.METHODS ) ); - record.setFiles( getList( document, BytecodeKeys.FILES ) ); - - return record; - } - - public List getList( Document document, String key ) - { - String rawlist = document.get( key ); - - if ( rawlist == null ) - { - return null; - } - - List ret = new ArrayList(); - ret.addAll( Arrays.asList( rawlist.split( "\n" ) ) ); - - return ret; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeHandlers.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeHandlers.java deleted file mode 100644 index 3027345d5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeHandlers.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.apache.maven.archiva.indexer.bytecode; - -/* - * 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.lucene.analysis.Analyzer; -import org.apache.lucene.queryParser.MultiFieldQueryParser; -import org.apache.lucene.queryParser.QueryParser; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneIndexHandlers; - -/** - * BytecodeHandlers - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BytecodeHandlers - implements LuceneIndexHandlers -{ - private BytecodeAnalyzer analyzer; - - private BytecodeEntryConverter converter; - - private QueryParser queryParser; - - public BytecodeHandlers() - { - converter = new BytecodeEntryConverter(); - analyzer = new BytecodeAnalyzer(); - queryParser = new MultiFieldQueryParser( new String[] { - BytecodeKeys.GROUPID, - BytecodeKeys.ARTIFACTID, - BytecodeKeys.VERSION, - BytecodeKeys.CLASSIFIER, - BytecodeKeys.TYPE, - BytecodeKeys.CLASSES, - BytecodeKeys.FILES, - BytecodeKeys.METHODS }, analyzer ); - } - - public String getId() - { - return BytecodeKeys.ID; - } - - public Analyzer getAnalyzer() - { - return analyzer; - } - - public LuceneEntryConverter getConverter() - { - return converter; - } - - public QueryParser getQueryParser() - { - return queryParser; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeKeys.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeKeys.java deleted file mode 100644 index 487e35488..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeKeys.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.indexer.bytecode; - -/* - * 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.indexer.ArtifactKeys; - -/** - * BytecodeKeys - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BytecodeKeys - extends ArtifactKeys -{ - public static final String ID = "bytecode"; - - public static final String CLASSES = "classes"; - - public static final String METHODS = "methods"; - - public static final String FILES = "files"; - - public static final String JDK = "jdk"; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeRecord.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeRecord.java deleted file mode 100644 index 888067da5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/bytecode/BytecodeRecord.java +++ /dev/null @@ -1,178 +0,0 @@ -package org.apache.maven.archiva.indexer.bytecode; - -/* - * 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.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.List; - -/** - * Lucene Record for Bytecode information. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BytecodeRecord - implements LuceneRepositoryContentRecord -{ - private String repositoryId; - - private ArchivaArtifact artifact; - - private String filename; - - private List classes; - - private List methods; - - private List files; - - public ArchivaArtifact getArtifact() - { - return artifact; - } - - public List getClasses() - { - return classes; - } - - public List getFiles() - { - return files; - } - - public List getMethods() - { - return methods; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public String getPrimaryKey() - { - StringBuffer id = new StringBuffer(); - id.append( artifact.getGroupId() ).append( ":" ); - id.append( artifact.getArtifactId() ).append( ":" ); - id.append( artifact.getVersion() ); - - if ( artifact.getClassifier() != null ) - { - id.append( ":" ).append( artifact.getClassifier() ); - } - - id.append( ":" ).append( artifact.getType() ); - - return id.toString(); - } - - public void setArtifact( ArchivaArtifact artifact ) - { - this.artifact = artifact; - } - - public void setClasses( List classes ) - { - this.classes = classes; - } - - public void setFiles( List files ) - { - this.files = files; - } - - public void setMethods( List methods ) - { - this.methods = methods; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public int hashCode() - { - final int PRIME = 31; - int result = 1; - result = PRIME * result + ( ( artifact == null ) ? 0 : artifact.hashCode() ); - return result; - } - - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - - if ( obj == null ) - { - return false; - } - - if ( getClass() != obj.getClass() ) - { - return false; - } - - final BytecodeRecord other = (BytecodeRecord) obj; - - if ( artifact == null ) - { - if ( other.artifact != null ) - { - return false; - } - } - else if ( !artifact.equals( other.artifact ) ) - { - return false; - } - - return true; - } - - public String getFilename() - { - return filename; - } - - public void setFilename( String filename ) - { - this.filename = filename; - } - - public String toString() - { - StringBuffer sb = new StringBuffer(); - - sb.append( "BytecodeRecord[" ); - sb.append( "artifact=" ).append( artifact ); - sb.append( ",filename=" ).append( filename ); - sb.append( "]" ); - return sb.toString(); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentAnalyzer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentAnalyzer.java deleted file mode 100644 index 02955d518..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentAnalyzer.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.indexer.filecontent; - -/* - * 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.lucene.analysis.Analyzer; -import org.apache.lucene.analysis.TokenStream; -import org.apache.lucene.analysis.standard.StandardAnalyzer; -import org.apache.maven.archiva.indexer.lucene.analyzers.FilenamesTokenizer; - -import java.io.Reader; - -/** - * FileContentAnalyzer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FileContentAnalyzer extends Analyzer -{ - private static final Analyzer STANDARD = new StandardAnalyzer(); - - public TokenStream tokenStream( String field, Reader reader ) - { - if ( FileContentKeys.FILENAME.equals( field ) ) - { - return new FilenamesTokenizer( reader ); - } - - return STANDARD.tokenStream( field, reader ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentConverter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentConverter.java deleted file mode 100644 index efe71f562..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentConverter.java +++ /dev/null @@ -1,100 +0,0 @@ -package org.apache.maven.archiva.indexer.filecontent; - -/* - * 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.lucene.document.Document; -import org.apache.maven.archiva.indexer.ArtifactKeys; -import org.apache.maven.archiva.indexer.lucene.LuceneDocumentMaker; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.text.ParseException; - -/** - * FileContentConverter - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FileContentConverter - implements LuceneEntryConverter -{ - - public Document convert( LuceneRepositoryContentRecord record ) - { - if ( !( record instanceof FileContentRecord ) ) - { - throw new ClassCastException( "Unable to convert type " + record.getClass().getName() + " to " - + FileContentRecord.class.getName() + "." ); - } - - FileContentRecord filecontent = (FileContentRecord) record; - - LuceneDocumentMaker doc = new LuceneDocumentMaker( filecontent ); - - if( filecontent.getArtifact() != null ) - { - // Artifact Reference - doc.addFieldTokenized( ArtifactKeys.GROUPID, filecontent.getArtifact().getGroupId() ); - doc.addFieldExact( ArtifactKeys.GROUPID_EXACT, filecontent.getArtifact().getGroupId() ); - doc.addFieldTokenized( ArtifactKeys.ARTIFACTID, filecontent.getArtifact().getArtifactId() ); - doc.addFieldExact( ArtifactKeys.ARTIFACTID_EXACT, filecontent.getArtifact().getArtifactId() ); - doc.addFieldTokenized( ArtifactKeys.VERSION, filecontent.getArtifact().getVersion() ); - doc.addFieldExact( ArtifactKeys.VERSION_EXACT, filecontent.getArtifact().getVersion() ); - doc.addFieldTokenized( ArtifactKeys.TYPE, filecontent.getArtifact().getType() ); - doc.addFieldUntokenized( ArtifactKeys.CLASSIFIER, filecontent.getArtifact().getClassifier() ); - } - - doc.addFieldTokenized( FileContentKeys.FILENAME, filecontent.getFilename() ); - doc.addFieldTokenized( FileContentKeys.CONTENT, filecontent.getContents() ); - - return doc.getDocument(); - } - - public LuceneRepositoryContentRecord convert( Document document ) - throws ParseException - { - FileContentRecord record = new FileContentRecord(); - - record.setRepositoryId( document.get( LuceneDocumentMaker.REPOSITORY_ID ) ); - - // Artifact Reference - String groupId = document.get( ArtifactKeys.GROUPID ); - String artifactId = document.get( ArtifactKeys.ARTIFACTID ); - String version = document.get( ArtifactKeys.VERSION ); - String classifier = document.get( ArtifactKeys.CLASSIFIER ); - String type = document.get( ArtifactKeys.TYPE ); - - if( StringUtils.isNotBlank( groupId ) && StringUtils.isNotBlank( artifactId ) ) - { - ArchivaArtifact artifact = new ArchivaArtifact( groupId, artifactId, version, classifier, type ); - record.setArtifact( artifact ); - } - - // Filecontent Specifics - record.setFilename( document.get( FileContentKeys.FILENAME ) ); - record.setContents( document.get( FileContentKeys.CONTENT ) ); - - return record; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentHandlers.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentHandlers.java deleted file mode 100644 index 23246e3fa..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentHandlers.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.apache.maven.archiva.indexer.filecontent; - -/* - * 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.lucene.analysis.Analyzer; -import org.apache.lucene.queryParser.MultiFieldQueryParser; -import org.apache.lucene.queryParser.QueryParser; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneIndexHandlers; - -/** - * FileContentHandlers - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FileContentHandlers - implements LuceneIndexHandlers -{ - private FileContentAnalyzer analyzer; - - private FileContentConverter converter; - - private QueryParser queryParser; - - public FileContentHandlers() - { - analyzer = new FileContentAnalyzer(); - converter = new FileContentConverter(); - queryParser = new MultiFieldQueryParser( new String[] { FileContentKeys.FILENAME, FileContentKeys.CONTENT }, - analyzer ); - } - - public String getId() - { - return FileContentKeys.ID; - } - - public Analyzer getAnalyzer() - { - return analyzer; - } - - public LuceneEntryConverter getConverter() - { - return converter; - } - - public QueryParser getQueryParser() - { - return queryParser; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentKeys.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentKeys.java deleted file mode 100644 index b13e4846f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentKeys.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.apache.maven.archiva.indexer.filecontent; - -/* - * 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.indexer.ArtifactKeys; - -/** - * Lucene Index Keys for the various fields in the FileContent index. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FileContentKeys - extends ArtifactKeys -{ - public static final String ID = "filecontent"; - - public static final String FILENAME = "filename"; - - public static final String CONTENT = "content"; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentRecord.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentRecord.java deleted file mode 100644 index af039c8c7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentRecord.java +++ /dev/null @@ -1,130 +0,0 @@ -package org.apache.maven.archiva.indexer.filecontent; - -/* - * 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.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; - -/** - * Lucene record for {@link File} contents. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FileContentRecord - implements LuceneRepositoryContentRecord -{ - private String repositoryId; - - private String filename; - - /** - * Optional artifact reference for the file content. - */ - private ArchivaArtifact artifact; - - private String contents; - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public String getContents() - { - return contents; - } - - public void setContents( String contents ) - { - this.contents = contents; - } - - public String getPrimaryKey() - { - return repositoryId + ":" + filename; - } - - public int hashCode() - { - final int PRIME = 31; - int result = 1; - result = PRIME * result + ( ( filename == null ) ? 0 : filename.hashCode() ); - return result; - } - - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - - if ( obj == null ) - { - return false; - } - - if ( getClass() != obj.getClass() ) - { - return false; - } - - final FileContentRecord other = (FileContentRecord) obj; - - if ( filename == null ) - { - if ( other.filename != null ) - { - return false; - } - } - else if ( !filename.equals( other.filename ) ) - { - return false; - } - return true; - } - - public String getFilename() - { - return filename; - } - - public void setFilename( String filename ) - { - this.filename = filename; - } - - public ArchivaArtifact getArtifact() - { - return artifact; - } - - public void setArtifact( ArchivaArtifact artifact ) - { - this.artifact = artifact; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/BytecodeIndexTransformer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/BytecodeIndexTransformer.java deleted file mode 100644 index 5d232aef5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/BytecodeIndexTransformer.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.maven.archiva.indexer.functors; - -/* - * 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.collections.Transformer; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; - -/** - * BytecodeIndexTransformer - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.commons.collections.Transformer" role-hint="bytecode" - */ -public class BytecodeIndexTransformer - implements Transformer -{ - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory indexFactory; - - public Object transform( Object input ) - { - if ( input instanceof ManagedRepositoryConfiguration ) - { - return indexFactory.createBytecodeIndex( (ManagedRepositoryConfiguration) input ); - } - - return input; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/FileContentIndexTransformer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/FileContentIndexTransformer.java deleted file mode 100644 index 2b20cbf2e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/FileContentIndexTransformer.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.maven.archiva.indexer.functors; - -/* - * 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.collections.Transformer; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; - -/** - * FileContentIndexTransformer - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.commons.collections.Transformer" role-hint="filecontent" - */ -public class FileContentIndexTransformer - implements Transformer -{ - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory indexFactory; - - public Object transform( Object input ) - { - if ( input instanceof ManagedRepositoryConfiguration ) - { - return indexFactory.createFileContentIndex( (ManagedRepositoryConfiguration) input ); - } - - return input; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/HashcodesIndexTransformer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/HashcodesIndexTransformer.java deleted file mode 100644 index 6101e8891..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/HashcodesIndexTransformer.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.maven.archiva.indexer.functors; - -/* - * 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.collections.Transformer; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; - -/** - * HashcodesIndexTransformer - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.commons.collections.Transformer" role-hint="hashcodes" - */ -public class HashcodesIndexTransformer - implements Transformer -{ - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory indexFactory; - - public Object transform( Object input ) - { - if ( input instanceof ManagedRepositoryConfiguration ) - { - return indexFactory.createHashcodeIndex( (ManagedRepositoryConfiguration) input ); - } - - return input; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/IndexExistsPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/IndexExistsPredicate.java deleted file mode 100644 index 11848fbd3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/IndexExistsPredicate.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.apache.maven.archiva.indexer.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Test the {@link RepositoryContentIndex} object for the existance of an index. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class IndexExistsPredicate - implements Predicate -{ - private Logger log = LoggerFactory.getLogger( IndexExistsPredicate.class ); - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof RepositoryContentIndex ) - { - RepositoryContentIndex index = (RepositoryContentIndex) object; - try - { - satisfies = index.exists(); - } - catch ( RepositoryIndexException e ) - { - log.info( - "Repository Content Index [" + index.getId() + "] for repository [" - + index.getRepository().getId() + "] does not exist yet in [" - + index.getIndexDirectory().getAbsolutePath() + "]." ); - } - } - - return satisfies; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/SearchableTransformer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/SearchableTransformer.java deleted file mode 100644 index 0bee20a43..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/SearchableTransformer.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.apache.maven.archiva.indexer.functors; - -/* - * 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.collections.Transformer; -import org.apache.maven.archiva.indexer.RepositoryIndexSearchException; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndex; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * SearchableTransformer - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.commons.collections.Transformer" role-hint="searchable" - */ -public class SearchableTransformer - implements Transformer -{ - private Logger log = LoggerFactory.getLogger( SearchableTransformer.class ); - - public Object transform( Object input ) - { - if ( input instanceof LuceneRepositoryContentIndex ) - { - try - { - LuceneRepositoryContentIndex index = (LuceneRepositoryContentIndex) input; - return index.getSearchable(); - } - catch ( RepositoryIndexSearchException e ) - { - log.warn("Unable to get searchable for index:" + e.getMessage(), e); - } - } - - return input; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/UserAllowedToSearchRepositoryPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/UserAllowedToSearchRepositoryPredicate.java deleted file mode 100644 index 528de940d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/functors/UserAllowedToSearchRepositoryPredicate.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.apache.maven.archiva.indexer.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; - -/** - * UserAllowedToSearchRepositoryPredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UserAllowedToSearchRepositoryPredicate - implements Predicate -{ - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof ManagedRepositoryConfiguration ) - { - // TODO: perform check here. - satisfies = true; // Everyone is allowed! (for now) - } - - return satisfies; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesAnalyzer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesAnalyzer.java deleted file mode 100644 index 08efa2858..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesAnalyzer.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.indexer.hashcodes; - -/* - * 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.lucene.analysis.Analyzer; -import org.apache.lucene.analysis.LowerCaseFilter; -import org.apache.lucene.analysis.StopAnalyzer; -import org.apache.lucene.analysis.StopFilter; -import org.apache.lucene.analysis.TokenStream; -import org.apache.lucene.analysis.standard.StandardAnalyzer; -import org.apache.maven.archiva.indexer.ArtifactKeys; -import org.apache.maven.archiva.indexer.lucene.analyzers.GroupIdTokenizer; -import org.apache.maven.archiva.indexer.lucene.analyzers.VersionTokenizer; - -import java.io.Reader; - -/** - * HashcodesAnalyzer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class HashcodesAnalyzer extends Analyzer -{ - private static final Analyzer STANDARD = new StandardAnalyzer(); - - public TokenStream tokenStream( String field, Reader reader ) - { - TokenStream tokenStream = null; - - if ( ArtifactKeys.GROUPID.equals( field ) ) - { - tokenStream = new GroupIdTokenizer( reader ); - } - else if ( ArtifactKeys.VERSION.equals( field ) ) - { - tokenStream = new VersionTokenizer( reader ); - } - else - { - tokenStream = STANDARD.tokenStream( field, reader ); - } - - return new LowerCaseFilter( new StopFilter( tokenStream, StopAnalyzer.ENGLISH_STOP_WORDS ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesEntryConverter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesEntryConverter.java deleted file mode 100644 index 6f5b2810b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesEntryConverter.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.apache.maven.archiva.indexer.hashcodes; - -/* - * 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.lucene.document.Document; -import org.apache.maven.archiva.indexer.ArtifactKeys; -import org.apache.maven.archiva.indexer.lucene.LuceneDocumentMaker; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.text.ParseException; - -/** - * Converter for Hashcode records and documents. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class HashcodesEntryConverter implements LuceneEntryConverter -{ - - public Document convert( LuceneRepositoryContentRecord record ) - { - if ( !( record instanceof HashcodesRecord ) ) - { - throw new ClassCastException( "Unable to convert type " + record.getClass().getName() + " to " - + HashcodesRecord.class.getName() + "." ); - } - - HashcodesRecord hashcodes = (HashcodesRecord) record; - - LuceneDocumentMaker doc = new LuceneDocumentMaker( hashcodes ); - - // Artifact Reference - doc.addFieldTokenized( ArtifactKeys.GROUPID, hashcodes.getArtifact().getGroupId() ); - doc.addFieldExact( ArtifactKeys.GROUPID_EXACT, hashcodes.getArtifact().getGroupId() ); - doc.addFieldTokenized( ArtifactKeys.ARTIFACTID, hashcodes.getArtifact().getArtifactId() ); - doc.addFieldExact( ArtifactKeys.ARTIFACTID_EXACT, hashcodes.getArtifact().getArtifactId() ); - doc.addFieldTokenized( ArtifactKeys.VERSION, hashcodes.getArtifact().getVersion() ); - doc.addFieldExact( ArtifactKeys.VERSION_EXACT, hashcodes.getArtifact().getVersion() ); - doc.addFieldTokenized( ArtifactKeys.TYPE, hashcodes.getArtifact().getType() ); - doc.addFieldUntokenized( ArtifactKeys.CLASSIFIER, hashcodes.getArtifact().getClassifier() ); - - // Hashcode Specifics - doc.addFieldUntokenized( HashcodesKeys.MD5, hashcodes.getArtifact().getModel().getChecksumMD5() ); - doc.addFieldUntokenized( HashcodesKeys.SHA1, hashcodes.getArtifact().getModel().getChecksumSHA1() ); - - return doc.getDocument(); - } - - public LuceneRepositoryContentRecord convert( Document document ) throws ParseException - { - HashcodesRecord record = new HashcodesRecord(); - - record.setRepositoryId( document.get( LuceneDocumentMaker.REPOSITORY_ID ) ); - - // Artifact Reference - String groupId = document.get( ArtifactKeys.GROUPID ); - String artifactId = document.get( ArtifactKeys.ARTIFACTID ); - String version = document.get( ArtifactKeys.VERSION ); - String classifier = document.get( ArtifactKeys.CLASSIFIER ); - String type = document.get( ArtifactKeys.TYPE ); - - ArchivaArtifact artifact = new ArchivaArtifact( groupId, artifactId, version, classifier, type ); - record.setArtifact( artifact ); - - // Hashcode Specifics - record.getArtifact().getModel().setChecksumMD5( document.get( HashcodesKeys.MD5 ) ); - record.getArtifact().getModel().setChecksumSHA1( document.get( HashcodesKeys.SHA1 ) ); - - return record; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesHandlers.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesHandlers.java deleted file mode 100644 index 15ed13a3c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesHandlers.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.apache.maven.archiva.indexer.hashcodes; - -/* - * 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.lucene.analysis.Analyzer; -import org.apache.lucene.queryParser.MultiFieldQueryParser; -import org.apache.lucene.queryParser.QueryParser; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneIndexHandlers; - -/** - * HashcodesHandlers - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class HashcodesHandlers - implements LuceneIndexHandlers -{ - private HashcodesAnalyzer analyzer; - - private HashcodesEntryConverter converter; - - private QueryParser queryParser; - - public HashcodesHandlers() - { - converter = new HashcodesEntryConverter(); - analyzer = new HashcodesAnalyzer(); - queryParser = new MultiFieldQueryParser( new String[] { - HashcodesKeys.GROUPID, - HashcodesKeys.ARTIFACTID, - HashcodesKeys.VERSION, - HashcodesKeys.CLASSIFIER, - HashcodesKeys.TYPE, - HashcodesKeys.MD5, - HashcodesKeys.SHA1 }, analyzer ); - } - - public String getId() - { - return HashcodesKeys.ID; - } - - public Analyzer getAnalyzer() - { - return analyzer; - } - - public LuceneEntryConverter getConverter() - { - return converter; - } - - public QueryParser getQueryParser() - { - return queryParser; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesKeys.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesKeys.java deleted file mode 100644 index ede5b6a64..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesKeys.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.apache.maven.archiva.indexer.hashcodes; - -/* - * 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.indexer.ArtifactKeys; - -/** - * Lucene Index Keys for the various fields in the Hashcodes Index. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class HashcodesKeys extends ArtifactKeys -{ - public static final String ID = "hashcodes"; - - public static final String MD5 = "md5"; - - public static final String SHA1 = "sha1"; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesRecord.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesRecord.java deleted file mode 100644 index 01f56b190..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesRecord.java +++ /dev/null @@ -1,139 +0,0 @@ -package org.apache.maven.archiva.indexer.hashcodes; - -/* - * 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.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; - -/** - * Lucene record for {@link ArchivaArtifact} hashcodes information. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class HashcodesRecord - implements LuceneRepositoryContentRecord -{ - private String repositoryId; - - private ArchivaArtifact artifact; - - private String filename; - - public ArchivaArtifact getArtifact() - { - return artifact; - } - - public void setArtifact( ArchivaArtifact artifact ) - { - this.artifact = artifact; - } - - public String getPrimaryKey() - { - StringBuffer id = new StringBuffer(); - id.append( artifact.getGroupId() ).append( ":" ); - id.append( artifact.getArtifactId() ).append( ":" ); - id.append( artifact.getVersion() ); - - if ( artifact.getClassifier() != null ) - { - id.append( ":" ).append( artifact.getClassifier() ); - } - - id.append( ":" ).append( artifact.getType() ); - - return id.toString(); - } - - public int hashCode() - { - final int PRIME = 31; - int result = 1; - result = PRIME * result + ( ( artifact == null ) ? 0 : artifact.hashCode() ); - return result; - } - - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - - if ( obj == null ) - { - return false; - } - - if ( getClass() != obj.getClass() ) - { - return false; - } - - final HashcodesRecord other = (HashcodesRecord) obj; - - if ( artifact == null ) - { - if ( other.artifact != null ) - { - return false; - } - } - else if ( !artifact.equals( other.artifact ) ) - { - return false; - } - - return true; - } - - public String getRepositoryId() - { - return this.repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public String getFilename() - { - return filename; - } - - public void setFilename( String filename ) - { - this.filename = filename; - } - - public String toString() - { - StringBuffer sb = new StringBuffer(); - - sb.append( "HashcodesRecord[" ); - sb.append( "artifact=" ).append( artifact ); - sb.append( ",filename=" ).append( filename ); - sb.append( "]" ); - return sb.toString(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneDocumentMaker.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneDocumentMaker.java deleted file mode 100644 index 90db51a1d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneDocumentMaker.java +++ /dev/null @@ -1,119 +0,0 @@ -package org.apache.maven.archiva.indexer.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 org.apache.commons.lang.StringUtils; -import org.apache.lucene.document.Document; -import org.apache.lucene.document.Field; - -import java.util.List; - -/** - * LuceneDocumentMaker - a utility class for making lucene documents. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class LuceneDocumentMaker -{ - public static final String PRIMARY_KEY = "pk"; - - public static final String REPOSITORY_ID = "repoId"; - - private Document document; - - /** - * Construct a LuceneDocumentMaker based on the record provider. - * - * @param record the record. - * @throws IllegalArgumentException if the primary key is invalid. - */ - public LuceneDocumentMaker( LuceneRepositoryContentRecord record ) throws IllegalArgumentException - { - if ( record == null ) - { - throw new IllegalArgumentException( "Not allowed to have a null record provider." ); - } - - String primaryKey = record.getPrimaryKey(); - - if ( StringUtils.isBlank( primaryKey ) ) - { - throw new IllegalArgumentException( "Not allowed to have a blank primary key." ); - } - - String repositoryId = record.getRepositoryId(); - - if ( StringUtils.isBlank( repositoryId ) ) - { - throw new IllegalArgumentException( "Not allowed to have a blank repository id." ); - } - - document = new Document(); - - document.add( new Field( PRIMARY_KEY, primaryKey, Field.Store.NO, Field.Index.UN_TOKENIZED ) ); - document.add( new Field( REPOSITORY_ID, repositoryId, Field.Store.YES, Field.Index.UN_TOKENIZED ) ); - } - - public LuceneDocumentMaker addFieldTokenized( String key, String value ) - { - if ( value != null ) - { - document.add( new Field( key, value, Field.Store.YES, Field.Index.TOKENIZED ) ); - } - - return this; - } - - public LuceneDocumentMaker addFieldTokenized( String key, List list ) - { - if ( ( list != null ) && ( !list.isEmpty() ) ) - { - return addFieldTokenized( key, StringUtils.join( list.iterator(), "\n" ) ); - } - - return this; - } - - public LuceneDocumentMaker addFieldUntokenized( String name, String value ) - { - if ( value != null ) - { - document.add( new Field( name, value, Field.Store.YES, Field.Index.UN_TOKENIZED ) ); - } - - return this; - } - - public LuceneDocumentMaker addFieldExact( String name, String value ) - { - if ( value != null ) - { - document.add( new Field( name, value, Field.Store.NO, Field.Index.UN_TOKENIZED ) ); - } - - return this; - } - - public Document getDocument() - { - return this.document; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneEntryConverter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneEntryConverter.java deleted file mode 100644 index 6b6437063..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneEntryConverter.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.apache.maven.archiva.indexer.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 org.apache.lucene.document.Document; - -import java.text.ParseException; - -/** - * A converter for {@link LuceneRepositoryContentRecord} to Lucene {@link Document} objects and back. - * - * @author Brett Porter - */ -public interface LuceneEntryConverter -{ - /** - * Convert an index record to a Lucene document. - * - * @param record the record - * @return the document - */ - Document convert( LuceneRepositoryContentRecord record ); - - /** - * Convert a Lucene document to an index record. - * - * @param document the document - * @return the record - * @throws java.text.ParseException if there is a problem parsing a field (specifically, dates) - */ - LuceneRepositoryContentRecord convert( Document document ) - throws ParseException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneIndexHandlers.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneIndexHandlers.java deleted file mode 100644 index 85378482d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneIndexHandlers.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.apache.maven.archiva.indexer.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 org.apache.lucene.analysis.Analyzer; -import org.apache.lucene.queryParser.QueryParser; - -/** - * The important bits and pieces for handling a specific lucene index - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface LuceneIndexHandlers -{ - /** - * Get the converter to use with this index. - * - * @return the converter to use. - */ - public LuceneEntryConverter getConverter(); - - /** - * Get the analyzer to user with this index. - * - * @return the analzer to use. - */ - public Analyzer getAnalyzer(); - - /** - * Get the {@link QueryParser} appropriate for searches within this index. - * - * @return the query parser. - */ - public QueryParser getQueryParser(); - - /** - * Get the id of the index handler. - * - * @return the id of the index handler. - */ - public String getId(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneQuery.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneQuery.java deleted file mode 100644 index c476c059d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneQuery.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.apache.maven.archiva.indexer.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 org.apache.maven.archiva.indexer.query.Query; - -/** - * A holder for a lucene query to pass to the indexer API. - * - * @author Brett Porter - */ -public class LuceneQuery - implements Query -{ - private final org.apache.lucene.search.Query query; - - public LuceneQuery( org.apache.lucene.search.Query query ) - { - this.query = query; - } - - public org.apache.lucene.search.Query getLuceneQuery() - { - return query; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndex.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndex.java deleted file mode 100644 index 8e79138e8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndex.java +++ /dev/null @@ -1,448 +0,0 @@ -package org.apache.maven.archiva.indexer.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 org.apache.lucene.analysis.Analyzer; -import org.apache.lucene.document.Document; -import org.apache.lucene.index.IndexReader; -import org.apache.lucene.index.IndexWriter; -import org.apache.lucene.index.Term; -import org.apache.lucene.index.TermEnum; -import org.apache.lucene.queryParser.QueryParser; -import org.apache.lucene.search.IndexSearcher; -import org.apache.lucene.search.Searchable; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.RepositoryIndexSearchException; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -/** - * Lucene implementation of a repository index. - * - * @author Brett Porter - */ -public class LuceneRepositoryContentIndex - implements RepositoryContentIndex -{ - /** - * The max field length for a field in a document. - */ - private static final int MAX_FIELD_LENGTH = 40000; - - /** - * The location of the index on the file system. - */ - private File indexLocation; - - /** - * The Lucene Index Handlers - */ - private LuceneIndexHandlers indexHandlers; - - private ManagedRepositoryConfiguration repository; - - public LuceneRepositoryContentIndex( ManagedRepositoryConfiguration repository, File indexDir, LuceneIndexHandlers handlers ) - { - this.repository = repository; - this.indexLocation = indexDir; - this.indexHandlers = handlers; - } - - public void indexRecords( Collection records ) - throws RepositoryIndexException - { - deleteRecords( records ); - - addRecords( records ); - } - - public void modifyRecords( Collection records ) - throws RepositoryIndexException - { - synchronized( repository ) - { - IndexWriter indexWriter = null; - try - { - indexWriter = new IndexWriter( indexLocation, indexHandlers.getAnalyzer(), !exists() ); - indexWriter.setMaxFieldLength( MAX_FIELD_LENGTH ); - - for ( Iterator i = records.iterator(); i.hasNext(); ) - { - LuceneRepositoryContentRecord record = (LuceneRepositoryContentRecord) i.next(); - - if ( record != null ) - { - Term term = new Term( LuceneDocumentMaker.PRIMARY_KEY, record.getPrimaryKey() ); - - indexWriter.deleteDocuments( term ); - - Document document = indexHandlers.getConverter().convert( record ); - - indexWriter.addDocument( document ); - } - } - indexWriter.optimize(); - } - catch ( IOException e ) - { - throw new RepositoryIndexException( "Error updating index: " + e.getMessage(), e ); - } - finally - { - closeQuietly( indexWriter ); - } - } - } - - public void modifyRecord( LuceneRepositoryContentRecord record ) - throws RepositoryIndexException - { - synchronized( repository ) - { - IndexWriter indexWriter = null; - try - { - indexWriter = new IndexWriter( indexLocation, indexHandlers.getAnalyzer(), !exists() ); - indexWriter.setMaxFieldLength( MAX_FIELD_LENGTH ); - - if ( record != null ) - { - Term term = new Term( LuceneDocumentMaker.PRIMARY_KEY, record.getPrimaryKey() ); - - indexWriter.deleteDocuments( term ); - - Document document = indexHandlers.getConverter().convert( record ); - - indexWriter.addDocument( document ); - } - indexWriter.optimize(); - } - catch ( IOException e ) - { - throw new RepositoryIndexException( "Error updating index: " + e.getMessage(), e ); - } - finally - { - closeQuietly( indexWriter ); - } - } - } - - - private void addRecords( Collection records ) - throws RepositoryIndexException - { - synchronized( repository ) - { - IndexWriter indexWriter; - try - { - indexWriter = new IndexWriter( indexLocation, indexHandlers.getAnalyzer(), !exists() ); - indexWriter.setMaxFieldLength( MAX_FIELD_LENGTH ); - } - catch ( IOException e ) - { - throw new RepositoryIndexException( "Unable to open index", e ); - } - - try - { - for ( Iterator i = records.iterator(); i.hasNext(); ) - { - LuceneRepositoryContentRecord record = (LuceneRepositoryContentRecord) i.next(); - - if ( record != null ) - { - Document document = indexHandlers.getConverter().convert( record ); - - indexWriter.addDocument( document ); - } - } - - indexWriter.optimize(); - } - catch ( IOException e ) - { - throw new RepositoryIndexException( "Failed to add an index document", e ); - } - finally - { - closeQuietly( indexWriter ); - } - } - } - - public void deleteRecords( Collection records ) - throws RepositoryIndexException - { - synchronized( repository ) - { - if ( exists() ) - { - IndexReader indexReader = null; - try - { - indexReader = IndexReader.open( indexLocation ); - - for ( Iterator i = records.iterator(); i.hasNext(); ) - { - LuceneRepositoryContentRecord record = (LuceneRepositoryContentRecord) i.next(); - - if ( record != null ) - { - Term term = new Term( LuceneDocumentMaker.PRIMARY_KEY, record.getPrimaryKey() ); - - indexReader.deleteDocuments( term ); - } - } - } - catch ( IOException e ) - { - throw new RepositoryIndexException( "Error deleting document: " + e.getMessage(), e ); - } - finally - { - closeQuietly( indexReader ); - } - } - } - } - - public void deleteRecord( LuceneRepositoryContentRecord record ) - throws RepositoryIndexException - { - synchronized( repository ) - { - if ( exists() ) - { - IndexReader indexReader = null; - try - { - indexReader = IndexReader.open( indexLocation ); - - if ( record != null ) - { - Term term = new Term( LuceneDocumentMaker.PRIMARY_KEY, record.getPrimaryKey() ); - - indexReader.deleteDocuments( term ); - } - } - catch ( IOException e ) - { - throw new RepositoryIndexException( "Error deleting document: " + e.getMessage(), e ); - } - finally - { - closeQuietly( indexReader ); - } - } - } - } - - - public Collection getAllRecordKeys() - throws RepositoryIndexException - { - return getAllFieldValues( LuceneDocumentMaker.PRIMARY_KEY ); - } - - private List getAllFieldValues( String fieldName ) - throws RepositoryIndexException - { - synchronized( repository ) - { - List keys = new ArrayList(); - - if ( exists() ) - { - IndexReader indexReader = null; - TermEnum terms = null; - try - { - indexReader = IndexReader.open( indexLocation ); - - terms = indexReader.terms( new Term( fieldName, "" ) ); - while ( fieldName.equals( terms.term().field() ) ) - { - keys.add( terms.term().text() ); - - if ( !terms.next() ) - { - break; - } - } - } - catch ( IOException e ) - { - throw new RepositoryIndexException( "Error deleting document: " + e.getMessage(), e ); - } - finally - { - closeQuietly( indexReader ); - closeQuietly( terms ); - } - } - return keys; - } - } - - public Searchable getSearchable() - throws RepositoryIndexSearchException - { - try - { - IndexSearcher searcher = new IndexSearcher( indexLocation.getAbsolutePath() ); - return searcher; - } - catch ( IOException e ) - { - throw new RepositoryIndexSearchException( "Unable to open index: " + e.getMessage(), e ); - } - } - - public boolean exists() - throws RepositoryIndexException - { - if ( IndexReader.indexExists( indexLocation ) ) - { - return true; - } - else if ( !indexLocation.exists() ) - { - return false; - } - else if ( indexLocation.isDirectory() ) - { - if ( indexLocation.listFiles().length > 1 ) - { - throw new RepositoryIndexException( indexLocation + " is not a valid index directory." ); - } - else - { - return false; - } - } - else - { - throw new RepositoryIndexException( indexLocation + " is not a directory." ); - } - } - - public QueryParser getQueryParser() - { - return this.indexHandlers.getQueryParser(); - } - - public static void closeSearchable( Searchable searchable ) - { - if( searchable != null ) - { - try - { - searchable.close(); - } - catch ( IOException e ) - { - // Ignore - } - } - } - - private static void closeQuietly( TermEnum terms ) - throws RepositoryIndexException - { - if ( terms != null ) - { - try - { - terms.close(); - } - catch ( IOException e ) - { - // ignore - } - } - } - - private static void closeQuietly( IndexWriter indexWriter ) - throws RepositoryIndexException - { - try - { - if ( indexWriter != null ) - { - indexWriter.close(); - } - } - catch ( IOException e ) - { - // write should compain if it can't be closed, data probably not persisted - throw new RepositoryIndexException( e.getMessage(), e ); - } - } - - private static void closeQuietly( IndexReader reader ) - { - try - { - if ( reader != null ) - { - reader.close(); - } - } - catch ( IOException e ) - { - // ignore - } - } - - public File getIndexDirectory() - { - return this.indexLocation; - } - - public String getId() - { - return this.indexHandlers.getId(); - } - - public ManagedRepositoryConfiguration getRepository() - { - return repository; - } - - public Analyzer getAnalyzer() - { - return this.indexHandlers.getAnalyzer(); - } - - public LuceneEntryConverter getEntryConverter() - { - return this.indexHandlers.getConverter(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java deleted file mode 100644 index 8564bd74a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.apache.maven.archiva.indexer.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 org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.bytecode.BytecodeHandlers; -import org.apache.maven.archiva.indexer.filecontent.FileContentHandlers; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesHandlers; - -import java.io.File; - -/** - * Factory for Lucene repository content index instances. - * - * @author Brett Porter - * @author Joakim Erdfelt - * @plexus.component role="org.apache.maven.archiva.indexer.RepositoryContentIndexFactory" role-hint="lucene" - */ -public class LuceneRepositoryContentIndexFactory - implements RepositoryContentIndexFactory -{ - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - public RepositoryContentIndex createBytecodeIndex( ManagedRepositoryConfiguration repository ) - { - File indexDir = toIndexDir( repository, "bytecode" ); - return new LuceneRepositoryContentIndex( repository, indexDir, new BytecodeHandlers() ); - } - - public RepositoryContentIndex createFileContentIndex( ManagedRepositoryConfiguration repository ) - { - File indexDir = toIndexDir( repository, "filecontent" ); - return new LuceneRepositoryContentIndex( repository, indexDir, new FileContentHandlers() ); - } - - public RepositoryContentIndex createHashcodeIndex( ManagedRepositoryConfiguration repository ) - { - File indexDir = toIndexDir( repository, "hashcodes" ); - return new LuceneRepositoryContentIndex( repository, indexDir, new HashcodesHandlers() ); - } - - /** - * Obtain the index directory for the provided repository. - * - * @param repository the repository to obtain the index directory from. - * @param indexId the id of the index - * @return the directory to put the index into. - */ - private File toIndexDir( ManagedRepositoryConfiguration repository, String indexId ) - { - // Attempt to get the specified indexDir in the configuration first. - ManagedRepositoryConfiguration repoConfig = - configuration.getConfiguration().findManagedRepositoryById( repository.getId() ); - File indexDir; - - if ( repoConfig == null ) - { - // No configured index dir, use the repository path instead. - String repoPath = repository.getLocation(); - indexDir = new File( repoPath, ".index/" + indexId + "/" ); - } - else - { - // Use configured index dir. - String repoPath = repoConfig.getIndexDir(); - if ( StringUtils.isBlank( repoPath ) ) - { - repoPath = repository.getLocation(); - if ( !repoPath.endsWith( "/" ) ) - { - repoPath += "/"; - } - repoPath += ".index"; - } - indexDir = new File( repoPath, "/" + indexId + "/" ); - } - - return indexDir; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentRecord.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentRecord.java deleted file mode 100644 index f3ec7b540..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentRecord.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.indexer.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. - */ - -/** - * A repository content index record. - * - * @author Brett Porter - */ -public interface LuceneRepositoryContentRecord -{ - /** - * Get the primary key used to identify the record uniquely in the index. - * - * @return the primary key - */ - public String getPrimaryKey(); - - /** - * Get the repository that this record belongs to. - * - * @return the repository id for this record. - */ - public String getRepositoryId(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/ClassnameTokenizer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/ClassnameTokenizer.java deleted file mode 100644 index 5e2044c65..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/ClassnameTokenizer.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.apache.maven.archiva.indexer.lucene.analyzers; - -/* - * 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.lucene.analysis.CharTokenizer; - -import java.io.Reader; - -/** - * Lucene Tokenizer for {@link BytecodeKeys#CLASSES} fields. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ClassnameTokenizer extends CharTokenizer -{ - public ClassnameTokenizer( Reader reader ) - { - super( reader ); - } - - /** - * Determine Token Character. - * - * The field is a list of full classnames "com.foo.Object" seperated by - * newline characters. "\n". - * - * Identify newline "\n" and "." as the token delimiters. - */ - protected boolean isTokenChar( char c ) - { - return ( ( c != '\n' ) && ( c != '.' ) ); - } - - /* - protected char normalize( char c ) - { - return Character.toLowerCase( c ); - } - */ -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/FilenamesTokenizer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/FilenamesTokenizer.java deleted file mode 100644 index 5094d7529..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/FilenamesTokenizer.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.maven.archiva.indexer.lucene.analyzers; - -/* - * 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.lucene.analysis.CharTokenizer; - -import java.io.Reader; - -/** - * Lucene Tokenizer for {@link BytecodeKeys#FILES} fields. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FilenamesTokenizer extends CharTokenizer -{ - public FilenamesTokenizer( Reader reader ) - { - super( reader ); - } - - /** - * Determine Token Character. - * - * The field is a list of full filenames "/home/archiva/foo/readme.txt" seperated by - * newline characters. "\n". - * - * Identify newline "\n" and "/" as the token delimiters. - */ - protected boolean isTokenChar( char c ) - { - return ( ( c != '\n' ) && ( c != '/' ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/GroupIdTokenizer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/GroupIdTokenizer.java deleted file mode 100644 index b6134e8ab..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/GroupIdTokenizer.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.maven.archiva.indexer.lucene.analyzers; - -/* - * 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.lucene.analysis.CharTokenizer; - -import java.io.Reader; - -/** - * Lucene Tokenizer for {@link ArtifactKeys#GROUPID} fields. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class GroupIdTokenizer extends CharTokenizer -{ - public GroupIdTokenizer( Reader reader ) - { - super( reader ); - } - - /** - * Determine Token Character. - * - * The field is a groupId "com.foo.project". - * - * Identify "." as the token delimiter. - */ - protected boolean isTokenChar( char c ) - { - return ( c != '.' ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/VersionTokenizer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/VersionTokenizer.java deleted file mode 100644 index f4e79804b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/VersionTokenizer.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.apache.maven.archiva.indexer.lucene.analyzers; - -/* - * 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.lucene.analysis.CharTokenizer; - -import java.io.Reader; - -/** - * Lucene Tokenizer for {@link ArtifactKeys#VERSION} fields. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class VersionTokenizer extends CharTokenizer -{ - public VersionTokenizer( Reader reader ) - { - super( reader ); - } - - /** - * Determine Token Character. - * - * The field is a version id in the form "1.0-alpha-4-SNAPSHOT". - * - * Identify "-" as the token delimiter. - */ - protected boolean isTokenChar( char c ) - { - return ( c != '.' ) && ( c != '-' ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/CompoundQuery.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/CompoundQuery.java deleted file mode 100644 index b3fb6ce1a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/CompoundQuery.java +++ /dev/null @@ -1,108 +0,0 @@ -package org.apache.maven.archiva.indexer.query; - -/* - * 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; - -/** - * Class to hold multiple SinglePhraseQueries and/or other CompoundQueries. - * - * @author Edwin Punzalan - */ -public class CompoundQuery - implements Query -{ - /** - * The query terms. - */ - private final List compoundQueryTerms = new ArrayList(); - - /** - * Appends a required term to this query. - * - * @param term the term to be appended to this query - */ - public void and( QueryTerm term ) - { - compoundQueryTerms.add( CompoundQueryTerm.and( new SingleTermQuery( term ) ) ); - } - - /** - * Appends an optional term to this query. - * - * @param term the term to be appended to this query - */ - public void or( QueryTerm term ) - { - compoundQueryTerms.add( CompoundQueryTerm.or( new SingleTermQuery( term ) ) ); - } - - /** - * Appends a prohibited term to this query. - * - * @param term the term to be appended to this query - */ - public void not( QueryTerm term ) - { - compoundQueryTerms.add( CompoundQueryTerm.not( new SingleTermQuery( term ) ) ); - } - - /** - * Appends a required subquery to this query. - * - * @param query the subquery to be appended to this query - */ - public void and( Query query ) - { - compoundQueryTerms.add( CompoundQueryTerm.and( query ) ); - } - - /** - * Appends an optional subquery to this query. - * - * @param query the subquery to be appended to this query - */ - public void or( Query query ) - { - compoundQueryTerms.add( CompoundQueryTerm.or( query ) ); - } - - /** - * Appends a prohibited subquery to this query. - * - * @param query the subquery to be appended to this query - */ - public void not( Query query ) - { - compoundQueryTerms.add( CompoundQueryTerm.not( query ) ); - } - - /** - * Method to get the List of Queries appended into this - * - * @return List of all Queries added to this Query - */ - public List getCompoundQueryTerms() - { - return compoundQueryTerms; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/CompoundQueryTerm.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/CompoundQueryTerm.java deleted file mode 100644 index 434e487a2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/CompoundQueryTerm.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.apache.maven.archiva.indexer.query; - -/* - * 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. - */ - -/** - * Base of all query terms. - * - * @author Brett Porter - */ -public class CompoundQueryTerm -{ - /** - * The query to add to the compound query. - */ - private final Query query; - - /** - * Whether the term is required (an AND). - */ - private final boolean required; - - /** - * Whether the term is prohibited (a NOT). - */ - private final boolean prohibited; - - /** - * Class constructor - * - * @param query the subquery to add - * @param required whether the term is required (an AND) - * @param prohibited whether the term is prohibited (a NOT) - */ - private CompoundQueryTerm( Query query, boolean required, boolean prohibited ) - { - this.query = query; - this.prohibited = prohibited; - this.required = required; - } - - /** - * Method to test if the Query is a search requirement - * - * @return true if this Query is a search requirement, otherwise returns false - */ - public boolean isRequired() - { - return required; - } - - /** - * Method to test if the Query is prohibited in the search result - * - * @return true if this Query is prohibited in the search result - */ - public boolean isProhibited() - { - return prohibited; - } - - - /** - * The subquery to execute. - * - * @return the query - */ - public Query getQuery() - { - return query; - } - - static CompoundQueryTerm and( Query query ) - { - return new CompoundQueryTerm( query, true, false ); - } - - static CompoundQueryTerm or( Query query ) - { - return new CompoundQueryTerm( query, false, false ); - } - - static CompoundQueryTerm not( Query query ) - { - return new CompoundQueryTerm( query, false, true ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/Query.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/Query.java deleted file mode 100644 index 9c0c608dd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/Query.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.apache.maven.archiva.indexer.query; - -/* - * 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. - */ - -/** - * Interface to label the query classes - * - * @author Edwin Punzalan - */ -public interface Query -{ -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/QueryTerm.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/QueryTerm.java deleted file mode 100644 index 259729e87..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/QueryTerm.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.apache.maven.archiva.indexer.query; - -/* - * 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. - */ - -/** - * Class to hold a single field search condition - * - * @author Edwin Punzalan - */ -public class QueryTerm -{ - private String field; - - private String value; - - /** - * Class constructor - * - * @param field the index field to search - * @param value the index value requirement - */ - public QueryTerm( String field, String value ) - { - this.field = field; - this.value = value; - } - - /** - * Method to retrieve the name of the index field searched - * - * @return the name of the index field - */ - public String getField() - { - return field; - } - - /** - * Method to retrieve the value used in searching the index field - * - * @return the value to corresspond the index field - */ - public String getValue() - { - return value; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/RangeQuery.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/RangeQuery.java deleted file mode 100644 index 1e455d5f0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/RangeQuery.java +++ /dev/null @@ -1,153 +0,0 @@ -package org.apache.maven.archiva.indexer.query; - -/* - * 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. - */ - -/** - * Query object that handles range queries (presently used for dates). - * - * @author Maria Odea Ching - * @author Brett Porter - */ -public class RangeQuery - implements Query -{ - /** - * Whether values equal to the boundaries are included in the query results. - */ - private final boolean inclusive; - - /** - * The lower bound. - */ - private final QueryTerm begin; - - /** - * The upper bound. - */ - private final QueryTerm end; - - /** - * Constructor. - * - * @param begin the lower bound - * @param end the upper bound - * @param inclusive whether to include the boundaries in the query - */ - private RangeQuery( QueryTerm begin, QueryTerm end, boolean inclusive ) - { - this.begin = begin; - this.end = end; - this.inclusive = inclusive; - } - - /** - * Create an open range, including all results. - * - * @return the query object - */ - public static RangeQuery createOpenRange() - { - return new RangeQuery( null, null, false ); - } - - /** - * Create a bounded range, excluding the endpoints. - * - * @param begin the lower bound value to compare to - * @param end the upper bound value to compare to - * @return the query object - */ - public static RangeQuery createExclusiveRange( QueryTerm begin, QueryTerm end ) - { - return new RangeQuery( begin, end, false ); - } - - /** - * Create a bounded range, including the endpoints. - * - * @param begin the lower bound value to compare to - * @param end the upper bound value to compare to - * @return the query object - */ - public static RangeQuery createInclusiveRange( QueryTerm begin, QueryTerm end ) - { - return new RangeQuery( begin, end, true ); - } - - /** - * Create a range that is greater than or equal to a given term. - * - * @param begin the value to compare to - * @return the query object - */ - public static RangeQuery createGreaterThanOrEqualToRange( QueryTerm begin ) - { - return new RangeQuery( begin, null, true ); - } - - /** - * Create a range that is greater than a given term. - * - * @param begin the value to compare to - * @return the query object - */ - public static RangeQuery createGreaterThanRange( QueryTerm begin ) - { - return new RangeQuery( begin, null, false ); - } - - /** - * Create a range that is less than or equal to a given term. - * - * @param end the value to compare to - * @return the query object - */ - public static RangeQuery createLessThanOrEqualToRange( QueryTerm end ) - { - return new RangeQuery( null, end, true ); - } - - /** - * Create a range that is less than a given term. - * - * @param end the value to compare to - * @return the query object - */ - public static RangeQuery createLessThanRange( QueryTerm end ) - { - return new RangeQuery( null, end, false ); - } - - public QueryTerm getBegin() - { - return begin; - } - - public QueryTerm getEnd() - { - return end; - } - - public boolean isInclusive() - { - return inclusive; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/SingleTermQuery.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/SingleTermQuery.java deleted file mode 100644 index 587fcf5c0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/query/SingleTermQuery.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.apache.maven.archiva.indexer.query; - -/* - * 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. - */ - -/** - * Query for a single term. - * - * @author Brett Porter - */ -public class SingleTermQuery - implements Query -{ - /** - * The term to query for. - */ - private final QueryTerm term; - - /** - * Constructor. - * - * @param term the term to query - */ - public SingleTermQuery( QueryTerm term ) - { - this.term = term; - } - - /** - * Shorthand constructor - create a single term query from a field and value - * - * @param field the field name - * @param value the value to check for - */ - public SingleTermQuery( String field, String value ) - { - this.term = new QueryTerm( field, value ); - } - - public String getField() - { - return term.getField(); - } - - public String getValue() - { - return term.getValue(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/CrossRepositorySearch.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/CrossRepositorySearch.java deleted file mode 100644 index 52596ff9f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/CrossRepositorySearch.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.apache.maven.archiva.indexer.search; - -/* - * 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; - -/** - * Search across repositories in lucene indexes. - * - * @author Joakim Erdfelt - * @version $Id$ - * @todo add security to not perform search in repositories you don't have access to. - */ -public interface CrossRepositorySearch -{ - /** - * Search for the specific term across all repositories. - * - * @param term the term to search for. - * @param limits the limits to apply to the search results. - * @return the results. - */ - public SearchResults searchForTerm( String principal, List selectedRepos, String term, SearchResultLimits limits ); - - /** - * Search for a specific term from the previous search results. - * - * @param principal the user doing the search. - * @param selectedRepos the repositories to search from. - * @param term the term to search for. - * @param limits the limits to apply to the search results. - * @param previousSearchTerms the list of the previous search terms. - * @return the results - */ - public SearchResults searchForTerm( String principal, List selectedRepos, String term, - SearchResultLimits limits, List previousSearchTerms ); - - /** - * Search for the specific bytecode across all repositories. - * - * @param term the term to search for. - * @param limits the limits to apply to the search results. - * @return the results. - */ - public SearchResults searchForBytecode( String principal, List selectedRepos, String term, SearchResultLimits limits ); - - /** - * Search for the specific checksum string across all repositories. - * - * @param checksum the checksum string to search for. - * @param limits the limits to apply to the search results. - * @return the results. - */ - public SearchResults searchForChecksum( String principal, List selectedRepos, String checksum, SearchResultLimits limits ); - - /** - * Search for a specific artifact matching the given field values. The search is performed on the bytecode - * index/indices. - * - * @param principal - * @param selectedRepos repository to be searched - * @param groupId groupId to be matched - * @param artifactId artifactId to be matched - * @param version version to be matched - * @param className Java class or package name to be matched - * @param limits the limits to apply to the search results - * @return - */ - public SearchResults executeFilteredSearch( String principal, List selectedRepos, String groupId, - String artifactId, String version, String className, - SearchResultLimits limits ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java deleted file mode 100644 index a21c4fa6b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java +++ /dev/null @@ -1,482 +0,0 @@ -package org.apache.maven.archiva.indexer.search; - -/* - * 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.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.apache.lucene.document.Document; -import org.apache.lucene.index.Term; -import org.apache.lucene.queryParser.MultiFieldQueryParser; -import org.apache.lucene.queryParser.ParseException; -import org.apache.lucene.queryParser.QueryParser; -import org.apache.lucene.search.BooleanClause; -import org.apache.lucene.search.BooleanQuery; -import org.apache.lucene.search.Filter; -import org.apache.lucene.search.Hits; -import org.apache.lucene.search.MultiSearcher; -import org.apache.lucene.search.Query; -import org.apache.lucene.search.QueryWrapperFilter; -import org.apache.lucene.search.Searchable; -import org.apache.lucene.search.TermQuery; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationNames; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.ArtifactKeys; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.RepositoryIndexSearchException; -import org.apache.maven.archiva.indexer.bytecode.BytecodeHandlers; -import org.apache.maven.archiva.indexer.bytecode.BytecodeKeys; -import org.apache.maven.archiva.indexer.filecontent.FileContentHandlers; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesHandlers; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesKeys; -import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter; -import org.apache.maven.archiva.indexer.lucene.LuceneQuery; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; -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; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * DefaultCrossRepositorySearch - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.indexer.search.CrossRepositorySearch" role-hint="default" - */ -public class DefaultCrossRepositorySearch - implements CrossRepositorySearch, RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( DefaultCrossRepositorySearch.class ); - - /** - * @plexus.requirement role-hint="lucene" - */ - private RepositoryContentIndexFactory indexFactory; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - private List localIndexedRepositories = new ArrayList(); - - public SearchResults executeFilteredSearch( String principal, List selectedRepos, String groupId, - String artifactId, String version, String className, - SearchResultLimits limits ) - { - List indexes = getBytecodeIndexes( principal, selectedRepos ); - SearchResults results = new SearchResults(); - BooleanQuery booleanQuery = new BooleanQuery(); - - if ( groupId != null && groupId.length() > 0 ) - { - parseAndAdd( booleanQuery, ArtifactKeys.GROUPID, groupId, "\\.|-" ); - } - - if ( artifactId != null && artifactId.length() > 0 ) - { - parseAndAdd( booleanQuery, ArtifactKeys.ARTIFACTID, artifactId, "\\.|-" ); - } - - if ( version != null && version.length() > 0 ) - { - parseAndAdd( booleanQuery, ArtifactKeys.VERSION, version, "\\.|-" ); - } - - if ( className != null && className.length() > 0 ) - { - - try - { - QueryParser parser = - new MultiFieldQueryParser( new String[] { BytecodeKeys.CLASSES, BytecodeKeys.FILES, - BytecodeKeys.METHODS }, new BytecodeHandlers().getAnalyzer() ); - booleanQuery.add( parser.parse( className ), BooleanClause.Occur.MUST ); - } - catch ( ParseException e ) - { - - } - } - - LuceneQuery query = new LuceneQuery( booleanQuery ); - results = searchAll( query, limits, indexes, null ); - results.getRepositories().add( this.localIndexedRepositories ); - - return results; - } - - public SearchResults searchForChecksum( String principal, List selectedRepos, String checksum, - SearchResultLimits limits ) - { - List indexes = getHashcodeIndexes( principal, selectedRepos ); - - try - { - QueryParser parser = new MultiFieldQueryParser( new String[]{HashcodesKeys.MD5, HashcodesKeys.SHA1}, - new HashcodesHandlers().getAnalyzer() ); - LuceneQuery query = new LuceneQuery( parser.parse( checksum ) ); - SearchResults results = searchAll( query, limits, indexes, null ); - results.getRepositories().addAll( this.localIndexedRepositories ); - - return results; - } - catch ( ParseException e ) - { - log.warn( "Unable to parse query [" + checksum + "]: " + e.getMessage(), e ); - } - - // empty results. - return new SearchResults(); - } - - public SearchResults searchForBytecode( String principal, List selectedRepos, String term, SearchResultLimits limits ) - { - List indexes = getBytecodeIndexes( principal, selectedRepos ); - - try - { - QueryParser parser = new BytecodeHandlers().getQueryParser(); - LuceneQuery query = new LuceneQuery( parser.parse( term ) ); - SearchResults results = searchAll( query, limits, indexes, null ); - results.getRepositories().addAll( this.localIndexedRepositories ); - - return results; - } - catch ( ParseException e ) - { - log.warn( "Unable to parse query [" + term + "]: " + e.getMessage(), e ); - } - - // empty results. - return new SearchResults(); - } - - public SearchResults searchForTerm( String principal, List selectedRepos, String term, SearchResultLimits limits ) - { - return searchForTerm( principal, selectedRepos, term, limits, null ); - } - - public SearchResults searchForTerm( String principal, List selectedRepos, String term, - SearchResultLimits limits, List previousSearchTerms ) - { - List indexes = getFileContentIndexes( principal, selectedRepos ); - - try - { - QueryParser parser = new FileContentHandlers().getQueryParser(); - LuceneQuery query = null; - SearchResults results = null; - if ( previousSearchTerms == null || previousSearchTerms.isEmpty() ) - { - query = new LuceneQuery( parser.parse( term ) ); - results = searchAll( query, limits, indexes, null ); - } - else - { - // AND the previous search terms - BooleanQuery booleanQuery = new BooleanQuery(); - for ( String previousSearchTerm : previousSearchTerms ) - { - booleanQuery.add( parser.parse( previousSearchTerm ), BooleanClause.Occur.MUST ); - } - - query = new LuceneQuery( booleanQuery ); - Filter filter = new QueryWrapperFilter( parser.parse( term ) ); - results = searchAll( query, limits, indexes, filter ); - } - results.getRepositories().addAll( this.localIndexedRepositories ); - - return results; - } - catch ( ParseException e ) - { - log.warn( "Unable to parse query [" + term + "]: " + e.getMessage(), e ); - } - - // empty results. - return new SearchResults(); - } - - private SearchResults searchAll( LuceneQuery luceneQuery, SearchResultLimits limits, List indexes, Filter filter ) - { - org.apache.lucene.search.Query specificQuery = luceneQuery.getLuceneQuery(); - - SearchResults results = new SearchResults(); - - if ( indexes.isEmpty() ) - { - // No point going any further. - return results; - } - - // Setup the converter - LuceneEntryConverter converter = null; - RepositoryContentIndex index = indexes.get( 0 ); - converter = index.getEntryConverter(); - - // Process indexes into an array of Searchables. - List searchableList = toSearchables( indexes ); - - Searchable searchables[] = new Searchable[searchableList.size()]; - searchableList.toArray( searchables ); - - MultiSearcher searcher = null; - - try - { - // Create a multi-searcher for looking up the information. - searcher = new MultiSearcher( searchables ); - - // Perform the search. - Hits hits = null; - if ( filter != null ) - { - hits = searcher.search( specificQuery, filter ); - } - else - { - hits = searcher.search( specificQuery ); - } - - int hitCount = hits.length(); - - // Now process the limits. - results.setLimits( limits ); - results.setTotalHits( hitCount ); - - int fetchCount = limits.getPageSize(); - int offset = ( limits.getSelectedPage() * limits.getPageSize() ); - - if ( limits.getSelectedPage() == SearchResultLimits.ALL_PAGES ) - { - fetchCount = hitCount; - offset = 0; - } - - // Goto offset. - if ( offset < hitCount ) - { - // only process if the offset is within the hit count. - for ( int i = 0; i < fetchCount; i++ ) - { - // Stop fetching if we are past the total # of available hits. - if ( offset + i >= hitCount ) - { - break; - } - - try - { - Document doc = hits.doc( offset + i ); - LuceneRepositoryContentRecord record = converter.convert( doc ); - results.addHit( record ); - } - catch ( java.text.ParseException e ) - { - log.warn( "Unable to parse document into record: " + e.getMessage(), e ); - } - } - } - - } - catch ( IOException e ) - { - log.error( "Unable to setup multi-search: " + e.getMessage(), e ); - } - finally - { - try - { - if ( searcher != null ) - { - searcher.close(); - } - } - catch ( IOException ie ) - { - log.error( "Unable to close index searcher: " + ie.getMessage(), ie ); - } - } - - return results; - } - - private List toSearchables( List indexes ) - { - List searchableList = new ArrayList(); - for ( RepositoryContentIndex contentIndex : indexes ) - { - try - { - searchableList.add( contentIndex.getSearchable() ); - } - catch ( RepositoryIndexSearchException e ) - { - log.warn( "Unable to get searchable for index [" + contentIndex.getId() + "] :" - + e.getMessage(), e ); - } - } - return searchableList; - } - - public List getBytecodeIndexes( String principal, List selectedRepos ) - { - List ret = new ArrayList(); - - for ( ManagedRepositoryConfiguration repoConfig : localIndexedRepositories ) - { - // Only used selected repo - if ( selectedRepos.contains( repoConfig.getId() ) ) - { - RepositoryContentIndex index = indexFactory.createBytecodeIndex( repoConfig ); - // If they exist. - if ( indexExists( index ) ) - { - ret.add( index ); - } - } - } - - return ret; - } - - public List getFileContentIndexes( String principal, List selectedRepos ) - { - List ret = new ArrayList(); - - for ( ManagedRepositoryConfiguration repoConfig : localIndexedRepositories ) - { - // Only used selected repo - if ( selectedRepos.contains( repoConfig.getId() ) ) - { - RepositoryContentIndex index = indexFactory.createFileContentIndex( repoConfig ); - // If they exist. - if ( indexExists( index ) ) - { - ret.add( index ); - } - } - } - - return ret; - } - - public List getHashcodeIndexes( String principal, List selectedRepos ) - { - List ret = new ArrayList(); - - for ( ManagedRepositoryConfiguration repoConfig : localIndexedRepositories ) - { - // Only used selected repo - if ( selectedRepos.contains( repoConfig.getId() ) ) - { - RepositoryContentIndex index = indexFactory.createHashcodeIndex( repoConfig ); - // If they exist. - if ( indexExists( index ) ) - { - ret.add( index ); - } - } - } - - return ret; - } - - private boolean indexExists( RepositoryContentIndex index ) - { - try - { - return index.exists(); - } - catch ( RepositoryIndexException e ) - { - log.info( - "Repository Content Index [" + index.getId() + "] for repository [" - + index.getRepository().getId() + "] does not exist yet in [" - + index.getIndexDirectory().getAbsolutePath() + "]." ); - return false; - } - } - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isManagedRepositories( propertyName ) ) - { - initRepositories(); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* Nothing to do here */ - } - - private void initRepositories() - { - synchronized ( this.localIndexedRepositories ) - { - this.localIndexedRepositories.clear(); - - List repos = configuration.getConfiguration().getManagedRepositories(); - for ( ManagedRepositoryConfiguration repo : repos ) - { - if ( repo.isScanned() ) - { - localIndexedRepositories.add( repo ); - } - } - } - } - - private void parseAndAdd( BooleanQuery query, String key, String value, String delimiter ) - { - if ( value != null && value.length() > 0 ) - { - String[] terms = value.split( delimiter ); - for ( int i = 0; i < terms.length; i++ ) - { - Term valueTerm = new Term( key, terms[i] ); - Query valueQuery = new TermQuery( valueTerm ); - query.add( valueQuery, BooleanClause.Occur.MUST ); - } - } - else - { - Term valueTerm = new Term( key, value ); - Query valueQuery = new TermQuery( valueTerm ); - query.add( valueQuery, BooleanClause.Occur.MUST ); - } - } - - public void initialize() - throws InitializationException - { - initRepositories(); - configuration.addChangeListener( this ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultHit.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultHit.java deleted file mode 100644 index 2933fae8e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultHit.java +++ /dev/null @@ -1,153 +0,0 @@ -package org.apache.maven.archiva.indexer.search; - -/* - * 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.model.ArchivaArtifact; - -import java.util.ArrayList; -import java.util.List; - -/** - * SearchResultHit - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class SearchResultHit -{ - // The (optional) context for this result. - private String context; - - // Basic hit, direct to non-artifact resource. - private String url; - - // Advanced hit, reference to groupId. - private String groupId; - - // Advanced hit, reference to artifactId. - private String artifactId; - - private String version = ""; - - private String repositoryId = ""; - - // Advanced hit, if artifact, all versions of artifact - private List artifacts = new ArrayList(); - - private List versions = new ArrayList(); - - public String getContext() - { - return context; - } - - public void setContext( String context ) - { - this.context = context; - } - - public String getUrl() - { - return url; - } - - public void setUrl( String url ) - { - this.url = url; - } - - public String getUrlFilename() - { - return this.url.substring( this.url.lastIndexOf( '/' ) ); - } - - public String getArtifactId() - { - return artifactId; - } - - public void setArtifactId( String artifactId ) - { - this.artifactId = artifactId; - } - - public void addArtifact( ArchivaArtifact artifact ) - { - this.artifacts.add( artifact ); - - String ver = artifact.getVersion(); - - if ( !this.versions.contains( ver ) ) - { - this.versions.add( ver ); - } - - if ( StringUtils.isBlank( this.groupId ) ) - { - this.groupId = artifact.getGroupId(); - } - - if ( StringUtils.isBlank( this.artifactId ) ) - { - this.artifactId = artifact.getArtifactId(); - } - - if ( StringUtils.isBlank( this.version ) ) - { - this.version = ver; - } - } - - public List getArtifacts() - { - return artifacts; - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public String getVersion() - { - return version; - } - - public List getVersions() - { - return versions; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultLimits.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultLimits.java deleted file mode 100644 index 83979aaec..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultLimits.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.apache.maven.archiva.indexer.search; - -/* - * 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. - */ - -/** - * SearchResultLimits - used to provide the search some limits on how the results are returned. - * This can provide paging for the - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class SearchResultLimits -{ - /** - * Constant to use for {@link #setSelectedPage(int)} to indicate a desire to get ALL PAGES. - * USE WITH CAUTION!! - */ - public static final int ALL_PAGES = ( -1 ); - - private int pageSize = 30; - - private int selectedPage = 0; - - public SearchResultLimits( int selectedPage ) - { - this.selectedPage = selectedPage; - } - - public int getPageSize() - { - return pageSize; - } - - /** - * Set page size for maximum # of hits to return per page. - * - * @param pageSize size of page by # of hits. (maximum value is 200) - */ - public void setPageSize( int pageSize ) - { - this.pageSize = Math.min( 200, pageSize ); - } - - public int getSelectedPage() - { - return selectedPage; - } - - public void setSelectedPage( int selectedPage ) - { - this.selectedPage = selectedPage; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResults.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResults.java deleted file mode 100644 index 4f0a420a8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResults.java +++ /dev/null @@ -1,190 +0,0 @@ -package org.apache.maven.archiva.indexer.search; - -/* - * 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.indexer.bytecode.BytecodeRecord; -import org.apache.maven.archiva.indexer.filecontent.FileContentRecord; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesRecord; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * SearchResults - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class SearchResults -{ - private List repositories = new ArrayList(); - - private Map hits = new HashMap(); - - private int totalHits; - - private SearchResultLimits limits; - - public SearchResults() - { - /* do nothing */ - } - - public void addHit( LuceneRepositoryContentRecord record ) - { - if ( record instanceof FileContentRecord ) - { - FileContentRecord filecontent = (FileContentRecord) record; - addFileContentHit( filecontent ); - } - else if ( record instanceof HashcodesRecord ) - { - HashcodesRecord hashcodes = (HashcodesRecord) record; - addHashcodeHit( hashcodes ); - } - else if ( record instanceof BytecodeRecord ) - { - BytecodeRecord bytecode = (BytecodeRecord) record; - addBytecodeHit( bytecode ); - } - } - - private void addBytecodeHit( BytecodeRecord bytecode ) - { - String key = toKey( bytecode.getArtifact() ); - - SearchResultHit hit = (SearchResultHit) this.hits.get( key ); - - if ( hit == null ) - { - hit = new SearchResultHit(); - } - - hit.setRepositoryId( bytecode.getRepositoryId() ); - hit.addArtifact( bytecode.getArtifact() ); - hit.setContext( null ); // TODO: provide context on why this is a valuable hit. - - this.hits.put( key, hit ); - } - - private String toKey( ArchivaArtifact artifact ) - { - StringBuffer key = new StringBuffer(); - - key.append( StringUtils.defaultString( artifact.getModel().getRepositoryId() ) ).append( ":" ); - key.append( StringUtils.defaultString( artifact.getGroupId() ) ).append( ":" ); - key.append( StringUtils.defaultString( artifact.getArtifactId() ) ).append( ":" ); - key.append( StringUtils.defaultString( artifact.getVersion() ) ); - - return key.toString(); - } - - private void addHashcodeHit( HashcodesRecord hashcodes ) - { - String key = toKey( hashcodes.getArtifact() ); - - SearchResultHit hit = (SearchResultHit) this.hits.get( key ); - - if ( hit == null ) - { - hit = new SearchResultHit(); - } - - hit.addArtifact( hashcodes.getArtifact() ); - hit.setContext( null ); // TODO: provide context on why this is a valuable hit. - - this.hits.put( key, hit ); - } - - public void addFileContentHit( FileContentRecord filecontent ) - { - String key = filecontent.getPrimaryKey(); - - SearchResultHit hit = (SearchResultHit) this.hits.get( key ); - - if ( hit == null ) - { - // Only need to worry about this hit if it is truely new. - hit = new SearchResultHit(); - - hit.setRepositoryId( filecontent.getRepositoryId() ); - hit.setUrl( filecontent.getRepositoryId() + "/" + filecontent.getFilename() ); - hit.setContext( null ); // TODO: handle context + highlight later. - - // Test for possible artifact reference ... - if( filecontent.getArtifact() != null ) - { - hit.addArtifact( filecontent.getArtifact() ); - } - - this.hits.put( key, hit ); - } - } - - /** - * Get the list of {@link SearchResultHit} objects. - * - * @return the list of {@link SearchResultHit} objects. - */ - public List getHits() - { - return new ArrayList( hits.values() ); - } - - public List getRepositories() - { - return repositories; - } - - public boolean isEmpty() - { - return hits.isEmpty(); - } - - public void setRepositories( List repositories ) - { - this.repositories = repositories; - } - - public SearchResultLimits getLimits() - { - return limits; - } - - public void setLimits( SearchResultLimits limits ) - { - this.limits = limits; - } - - public int getTotalHits() - { - return totalHits; - } - - public void setTotalHits( int totalHits ) - { - this.totalHits = totalHits; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/site/site.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/site/site.xml deleted file mode 100644 index 7b39b50d6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/site/site.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/archiva-common-1.0.jar.txt b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/archiva-common-1.0.jar.txt deleted file mode 100644 index 1897823ee..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/archiva-common-1.0.jar.txt +++ /dev/null @@ -1,56 +0,0 @@ -FILENAME|archiva-common-1.0-SNAPSHOT.jar -SIZE|8516 -HASH_MD5|a5d0d280ce83133432d8fed8f2ce3474 -HASH_SHA1|c2635a1b38bd4520a6604664c04b2b3c32330864 -HASH_BYTECODE|2868f6661c55afda5a3b62859fbc8b1beb021b6e -JDK|1.4 -CLASS|org.apache.maven.archiva.common.ArchivaException -CLASS|org.apache.maven.archiva.common.utils.BaseFile -CLASS|org.apache.maven.archiva.common.utils.DateUtil -CLASS|org.apache.maven.archiva.common.utils.PathUtil -CLASS|org.apache.maven.archiva.common.utils.VersionUtil -METHOD|org.apache.maven.archiva.common.ArchivaException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.apache.maven.archiva.common.ArchivaException.(Ljava/lang/String;)V -METHOD|org.apache.maven.archiva.common.utils.BaseFile.(Ljava/io/File;)V -METHOD|org.apache.maven.archiva.common.utils.BaseFile.(Ljava/io/File;Ljava/io/File;)V -METHOD|org.apache.maven.archiva.common.utils.BaseFile.(Ljava/io/File;Ljava/lang/String;)V -METHOD|org.apache.maven.archiva.common.utils.BaseFile.(Ljava/lang/String;)V -METHOD|org.apache.maven.archiva.common.utils.BaseFile.(Ljava/lang/String;Ljava/io/File;)V -METHOD|org.apache.maven.archiva.common.utils.BaseFile.(Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.apache.maven.archiva.common.utils.BaseFile.(Ljava/net/URI;)V -METHOD|org.apache.maven.archiva.common.utils.BaseFile.getBaseDir()Ljava/io/File; -METHOD|org.apache.maven.archiva.common.utils.BaseFile.getRelativePath()Ljava/lang/String; -METHOD|org.apache.maven.archiva.common.utils.BaseFile.setBaseDir(Ljava/io/File;)V -METHOD|org.apache.maven.archiva.common.utils.BaseFile.setBaseDir(Ljava/lang/String;)V -METHOD|org.apache.maven.archiva.common.utils.BaseFile.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|org.apache.maven.archiva.common.utils.DateUtil.()V -METHOD|org.apache.maven.archiva.common.utils.DateUtil.getDuration(J)Ljava/lang/String; -METHOD|org.apache.maven.archiva.common.utils.DateUtil.getDuration(JJ)Ljava/lang/String; -METHOD|org.apache.maven.archiva.common.utils.DateUtil.getDuration(Ljava/util/Date;Ljava/util/Date;)Ljava/lang/String; -METHOD|org.apache.maven.archiva.common.utils.DateUtil.getDuration(Ljava/util/Calendar;Ljava/util/Calendar;)Ljava/lang/String; -METHOD|org.apache.maven.archiva.common.utils.DateUtil.appendInterval(Ljava/lang/StringBuffer;ILjava/lang/String;)V -METHOD|org.apache.maven.archiva.common.utils.PathUtil.()V -METHOD|org.apache.maven.archiva.common.utils.PathUtil.getRelative(Ljava/lang/String;Ljava/io/File;)Ljava/lang/String; -METHOD|org.apache.maven.archiva.common.utils.PathUtil.getRelative(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.archiva.common.utils.VersionUtil.()V -METHOD|org.apache.maven.archiva.common.utils.VersionUtil.isSnapshot(Ljava/lang/String;)Z -METHOD|org.apache.maven.archiva.common.utils.VersionUtil.getBaseVersion(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.archiva.common.utils.VersionUtil.()V -FILE|META-INF/ -FILE|META-INF/MANIFEST.MF -FILE|META-INF/maven/ -FILE|META-INF/maven/org.apache.maven.archiva/ -FILE|META-INF/maven/org.apache.maven.archiva/archiva-common/ -FILE|META-INF/maven/org.apache.maven.archiva/archiva-common/pom.properties -FILE|META-INF/maven/org.apache.maven.archiva/archiva-common/pom.xml -FILE|org/ -FILE|org/apache/ -FILE|org/apache/maven/ -FILE|org/apache/maven/archiva/ -FILE|org/apache/maven/archiva/common/ -FILE|org/apache/maven/archiva/common/ArchivaException.class -FILE|org/apache/maven/archiva/common/utils/ -FILE|org/apache/maven/archiva/common/utils/BaseFile.class -FILE|org/apache/maven/archiva/common/utils/DateUtil.class -FILE|org/apache/maven/archiva/common/utils/PathUtil.class -FILE|org/apache/maven/archiva/common/utils/VersionUtil.class diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/continuum-webapp-1.0.3-SNAPSHOT.war.txt b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/continuum-webapp-1.0.3-SNAPSHOT.war.txt deleted file mode 100644 index c27604795..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/continuum-webapp-1.0.3-SNAPSHOT.war.txt +++ /dev/null @@ -1,1492 +0,0 @@ -FILENAME|continuum-webapp-1.0.3-SNAPSHOT.war -SIZE|12014375 -HASH_MD5|72bd7b7c170a8a6404b1d28c5244837a -HASH_SHA1|1b8e405f706abd47a324e68f0962ade82809ec02 -HASH_BYTECODE|5339229350071bf5d84e6520308515af3220eb2c -JDK|1.1 -CLASS|org.apache.maven.continuum.web.action.AboutAction -CLASS|org.apache.maven.continuum.web.action.AddMavenOneProjectAction -CLASS|org.apache.maven.continuum.web.action.AddMavenProjectAction -CLASS|org.apache.maven.continuum.web.action.AddMavenTwoProjectAction -CLASS|org.apache.maven.continuum.web.action.AddProjectAction -CLASS|org.apache.maven.continuum.web.action.BuildDefinitionAction -CLASS|org.apache.maven.continuum.web.action.BuildProjectAction -CLASS|org.apache.maven.continuum.web.action.BuildResultAction -CLASS|org.apache.maven.continuum.web.action.BuildResultsListAction -CLASS|org.apache.maven.continuum.web.action.CancelBuildAction -CLASS|org.apache.maven.continuum.web.action.CheckConfigurationAction -CLASS|org.apache.maven.continuum.web.action.ContinuumActionSupport -CLASS|org.apache.maven.continuum.web.action.ContinuumConfirmAction -CLASS|org.apache.maven.continuum.web.action.DeleteProjectAction -CLASS|org.apache.maven.continuum.web.action.GroupSummaryAction -CLASS|org.apache.maven.continuum.web.action.ProjectEditAction -CLASS|org.apache.maven.continuum.web.action.ProjectGroupAction -CLASS|org.apache.maven.continuum.web.action.ProjectViewAction -CLASS|org.apache.maven.continuum.web.action.ReleaseCleanupAction -CLASS|org.apache.maven.continuum.web.action.ReleaseInProgressAction -CLASS|org.apache.maven.continuum.web.action.ReleasePerformAction -CLASS|org.apache.maven.continuum.web.action.ReleasePrepareAction -CLASS|org.apache.maven.continuum.web.action.ReleaseProjectAction -CLASS|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction -CLASS|org.apache.maven.continuum.web.action.ScheduleAction -CLASS|org.apache.maven.continuum.web.action.SummaryAction -CLASS|org.apache.maven.continuum.web.action.SurefireReportAction$1 -CLASS|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest -CLASS|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase -CLASS|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite -CLASS|org.apache.maven.continuum.web.action.SurefireReportAction -CLASS|org.apache.maven.continuum.web.action.UserGroupManagementAction -CLASS|org.apache.maven.continuum.web.action.UserManagementAction -CLASS|org.apache.maven.continuum.web.action.WorkingCopyAction -CLASS|org.apache.maven.continuum.web.action.admin.ConfigurationAction -CLASS|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction -CLASS|org.apache.maven.continuum.web.action.component.ContinuumTabAction -CLASS|org.apache.maven.continuum.web.action.component.NotifierSummaryAction -CLASS|org.apache.maven.continuum.web.action.notifier.AbstractGroupNotifierEditAction -CLASS|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport -CLASS|org.apache.maven.continuum.web.action.notifier.AbstractProjectNotifierEditAction -CLASS|org.apache.maven.continuum.web.action.notifier.AddGroupNotifierAction -CLASS|org.apache.maven.continuum.web.action.notifier.AddProjectNotifierAction -CLASS|org.apache.maven.continuum.web.action.notifier.DeleteGroupNotifierAction -CLASS|org.apache.maven.continuum.web.action.notifier.DeleteProjectNotifierAction -CLASS|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction -CLASS|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction -CLASS|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction -CLASS|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction -CLASS|org.apache.maven.continuum.web.action.notifier.MailGroupNotifierEditAction -CLASS|org.apache.maven.continuum.web.action.notifier.MailProjectNotifierEditAction -CLASS|org.apache.maven.continuum.web.action.notifier.MsnGroupNotifierEditAction -CLASS|org.apache.maven.continuum.web.action.notifier.MsnProjectNotifierEditAction -CLASS|org.apache.maven.continuum.web.checks.security.RoleProfileEnvironmentCheck -CLASS|org.apache.maven.continuum.web.components.Data -CLASS|org.apache.maven.continuum.web.components.SubmitCancel -CLASS|org.apache.maven.continuum.web.exception.ContinuumActionException -CLASS|org.apache.maven.continuum.web.filter.FilterToComponentProxy -CLASS|org.apache.maven.continuum.web.interceptor.ForceContinuumConfigurationInterceptor -CLASS|org.apache.maven.continuum.web.model.BuildDefinitionSummary -CLASS|org.apache.maven.continuum.web.model.ContinuumViewModels -CLASS|org.apache.maven.continuum.web.model.GroupSummary -CLASS|org.apache.maven.continuum.web.model.NotifierSummary -CLASS|org.apache.maven.continuum.web.model.ProjectSummary -CLASS|org.apache.maven.continuum.web.model.Session -CLASS|org.apache.maven.continuum.web.model.SessionUser -CLASS|org.apache.maven.continuum.web.util.StateGenerator -CLASS|org.apache.maven.continuum.web.util.WorkingCopyContentGenerator -CLASS|org.apache.maven.continuum.web.view.BuildCell -CLASS|org.apache.maven.continuum.web.view.BuildNowCell -CLASS|org.apache.maven.continuum.web.view.BuildStatusCell -CLASS|org.apache.maven.continuum.web.view.StateCell -CLASS|org.apache.maven.continuum.web.view.buildresults.StateCell -CLASS|org.apache.maven.continuum.web.view.commons.DateCell -CLASS|org.apache.maven.continuum.web.view.jsp.ui.DataTag -CLASS|org.apache.maven.continuum.web.view.jsp.ui.DateTag -CLASS|org.apache.maven.continuum.web.view.jsp.ui.SubmitCancelTag -CLASS|org.apache.maven.continuum.web.view.projectview.NotifierEventCell -CLASS|org.apache.maven.continuum.web.view.projectview.NotifierFromCell -CLASS|org.apache.maven.continuum.web.view.projectview.NotifierRecipientCell -CLASS|org.apache.maven.continuum.web.xmlrpc.DefaultXmlRpcService -CLASS|org.apache.maven.continuum.web.xmlrpc.XmlRpcService$1 -CLASS|org.apache.maven.continuum.web.xmlrpc.XmlRpcService -METHOD|org.apache.maven.continuum.web.action.AboutAction.()V -METHOD|org.apache.maven.continuum.web.action.AboutAction.doDefault()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddMavenOneProjectAction.()V -METHOD|org.apache.maven.continuum.web.action.AddMavenOneProjectAction.doExecute(Ljava/lang/String;)Lorg/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult; -METHOD|org.apache.maven.continuum.web.action.AddMavenOneProjectAction.getM1Pom()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddMavenOneProjectAction.setM1Pom(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.AddMavenOneProjectAction.getM1PomFile()Ljava/io/File; -METHOD|org.apache.maven.continuum.web.action.AddMavenOneProjectAction.setM1PomFile(Ljava/io/File;)V -METHOD|org.apache.maven.continuum.web.action.AddMavenOneProjectAction.getM1PomUrl()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddMavenOneProjectAction.setM1PomUrl(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.AddMavenProjectAction.()V -METHOD|org.apache.maven.continuum.web.action.AddMavenProjectAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddMavenProjectAction.doExecute(Ljava/lang/String;)Lorg/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult; -METHOD|org.apache.maven.continuum.web.action.AddMavenProjectAction.doDefault()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddMavenProjectAction.getPom()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddMavenProjectAction.setPom(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.AddMavenProjectAction.getPomFile()Ljava/io/File; -METHOD|org.apache.maven.continuum.web.action.AddMavenProjectAction.setPomFile(Ljava/io/File;)V -METHOD|org.apache.maven.continuum.web.action.AddMavenProjectAction.getPomUrl()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddMavenProjectAction.setPomUrl(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.AddMavenTwoProjectAction.()V -METHOD|org.apache.maven.continuum.web.action.AddMavenTwoProjectAction.doExecute(Ljava/lang/String;)Lorg/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult; -METHOD|org.apache.maven.continuum.web.action.AddMavenTwoProjectAction.doDefault()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddMavenTwoProjectAction.getM2PomFile()Ljava/io/File; -METHOD|org.apache.maven.continuum.web.action.AddMavenTwoProjectAction.setM2PomFile(Ljava/io/File;)V -METHOD|org.apache.maven.continuum.web.action.AddMavenTwoProjectAction.getM2PomUrl()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddMavenTwoProjectAction.setM2PomUrl(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.()V -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.validate()V -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.add()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.input()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.getProjectName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.setProjectName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.getProjectScmPassword()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.setProjectScmPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.getProjectScmTag()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.setProjectScmTag(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.getProjectScmUrl()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.setProjectScmUrl(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.getProjectScmUsername()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.setProjectScmUsername(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.getProjectType()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.setProjectType(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.getProjectVersion()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.AddProjectAction.setProjectVersion(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.()V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.prepare()V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.input()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.saveToProject()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.saveToGroup()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.removeFromProject()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.removeFromProjectGroup()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.getBuildDefinitionFromInput()Lorg/apache/maven/continuum/model/project/BuildDefinition; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.getBuildDefinitionId()I -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setBuildDefinitionId(I)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.getScheduleId()I -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setScheduleId(I)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.isDefaultBuildDefinition()Z -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setDefaultBuildDefinition(Z)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.isConfirmed()Z -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setConfirmed(Z)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.getExecutor()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setExecutor(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.getGoals()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setGoals(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.getArguments()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setArguments(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.getBuildFile()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setBuildFile(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.isBuildFresh()Z -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setBuildFresh(Z)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.getSchedules()Ljava/util/Map; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setSchedules(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.getProfiles()Ljava/util/Map; -METHOD|org.apache.maven.continuum.web.action.BuildDefinitionAction.setProfiles(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.BuildProjectAction.()V -METHOD|org.apache.maven.continuum.web.action.BuildProjectAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildProjectAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.BuildProjectAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.()V -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.getBuildId()I -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.setBuildId(I)V -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.getProjectName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.setProjectName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.getBuildResult()Lorg/apache/maven/continuum/model/project/BuildResult; -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.getChangesSinceLastSuccess()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.isHasSurefireResults()Z -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.setHasSurefireResults(Z)V -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.getBuildOutput()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildResultAction.getState()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildResultsListAction.()V -METHOD|org.apache.maven.continuum.web.action.BuildResultsListAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildResultsListAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.BuildResultsListAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.BuildResultsListAction.getBuildResults()Ljava/util/Collection; -METHOD|org.apache.maven.continuum.web.action.BuildResultsListAction.getProjectName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.BuildResultsListAction.setProjectName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.CancelBuildAction.()V -METHOD|org.apache.maven.continuum.web.action.CancelBuildAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.CancelBuildAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.CheckConfigurationAction.()V -METHOD|org.apache.maven.continuum.web.action.CheckConfigurationAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ContinuumActionSupport.()V -METHOD|org.apache.maven.continuum.web.action.ContinuumActionSupport.prepare()V -METHOD|org.apache.maven.continuum.web.action.ContinuumActionSupport.getContinuum()Lorg/apache/maven/continuum/Continuum; -METHOD|org.apache.maven.continuum.web.action.ContinuumActionSupport.setContinuum(Lorg/apache/maven/continuum/Continuum;)V -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.()V -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.setConfirmationInfo(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.setConfirmedName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.getConfirmedName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.setConfirmedValue(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.getConfirmedValue()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.setConfirmationTitle(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.getConfirmationTitle()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.setConfirmedDisplay(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.getConfirmedDisplay()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.setConfirmed(Z)V -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.getConfirmed()Z -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.setAction(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ContinuumConfirmAction.getAction()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.DeleteProjectAction.()V -METHOD|org.apache.maven.continuum.web.action.DeleteProjectAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.DeleteProjectAction.doDefault()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.DeleteProjectAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.DeleteProjectAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.DeleteProjectAction.setProjectName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.DeleteProjectAction.getProjectName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.GroupSummaryAction.()V -METHOD|org.apache.maven.continuum.web.action.GroupSummaryAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.GroupSummaryAction.getGroups()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.GroupSummaryAction.getInfoMessage()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.GroupSummaryAction.setInfoMessage(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.()V -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.save()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.edit()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.getProject(I)Lorg/apache/maven/continuum/model/project/Project; -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.getName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.getVersion()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.setVersion(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.getScmUrl()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.setScmUrl(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.getScmUsername()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.setScmUsername(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.getScmPassword()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.setScmPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.getScmTag()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.setScmTag(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ProjectEditAction.getProject()Lorg/apache/maven/continuum/model/project/Project; -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.()V -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.summary()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.members()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.buildDefinitions()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.notifiers()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.remove()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.build()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.getProjectGroup()Lorg/apache/maven/continuum/model/project/ProjectGroup; -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.setProjectGroup(Lorg/apache/maven/continuum/model/project/ProjectGroup;)V -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.isConfirmed()Z -METHOD|org.apache.maven.continuum.web.action.ProjectGroupAction.setConfirmed(Z)V -METHOD|org.apache.maven.continuum.web.action.ProjectViewAction.()V -METHOD|org.apache.maven.continuum.web.action.ProjectViewAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ProjectViewAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.ProjectViewAction.getProject()Lorg/apache/maven/continuum/model/project/Project; -METHOD|org.apache.maven.continuum.web.action.ProjectViewAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.ProjectViewAction.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.action.ProjectViewAction.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.ProjectViewAction.getProjectGroup()Lorg/apache/maven/continuum/model/project/ProjectGroup; -METHOD|org.apache.maven.continuum.web.action.ReleaseCleanupAction.()V -METHOD|org.apache.maven.continuum.web.action.ReleaseCleanupAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseCleanupAction.getReleaseId()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseCleanupAction.setReleaseId(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseCleanupAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.ReleaseCleanupAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.ReleaseInProgressAction.()V -METHOD|org.apache.maven.continuum.web.action.ReleaseInProgressAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseInProgressAction.viewResult()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseInProgressAction.getReleaseId()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseInProgressAction.setReleaseId(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseInProgressAction.getListener()Lorg/apache/maven/continuum/release/ContinuumReleaseManagerListener; -METHOD|org.apache.maven.continuum.web.action.ReleaseInProgressAction.setListener(Lorg/apache/maven/continuum/release/ContinuumReleaseManagerListener;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseInProgressAction.getResult()Lorg/apache/maven/shared/release/ReleaseResult; -METHOD|org.apache.maven.continuum.web.action.ReleaseInProgressAction.setResult(Lorg/apache/maven/shared/release/ReleaseResult;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseInProgressAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.ReleaseInProgressAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.()V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.inputFromScm()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.input()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.executeFromScm()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.populateFromProject()V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.getReleaseId()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.setReleaseId(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.getScmUrl()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.setScmUrl(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.getScmUsername()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.setScmUsername(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.getScmPassword()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.setScmPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.getScmTag()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.setScmTag(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.getScmTagBase()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.setScmTagBase(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.getGoals()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.setGoals(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.isUseReleaseProfile()Z -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.setUseReleaseProfile(Z)V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.getListener()Lorg/apache/maven/continuum/release/ContinuumReleaseManagerListener; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.setListener(Lorg/apache/maven/continuum/release/ContinuumReleaseManagerListener;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.getResult()Lorg/apache/maven/shared/release/ReleaseResult; -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.setResult(Lorg/apache/maven/shared/release/ReleaseResult;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.ReleasePerformAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.()V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.input()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getReleasePluginParameters(Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.viewResult()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.checkProgress()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.processProject(Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setProperties(Lorg/apache/maven/model/Model;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getDevVersionMap()Ljava/util/Map; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getRelVersionMap()Ljava/util/Map; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getVersionMap(Ljava/util/List;Ljava/util/List;)Ljava/util/Map; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getReleaseProperties()Ljava/util/Properties; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getProjectKeys()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setProjectKeys(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getDevVersions()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setDevVersions(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getRelVersions()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setRelVersions(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getScmUsername()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setScmUsername(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getScmPassword()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setScmPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getScmTag()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setScmTag(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getScmTagBase()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setScmTagBase(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getProjects()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setProjects(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getListener()Lorg/apache/maven/continuum/release/ContinuumReleaseManagerListener; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setListener(Lorg/apache/maven/continuum/release/DefaultReleaseManagerListener;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getReleaseId()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setReleaseId(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getResult()Lorg/apache/maven/shared/release/ReleaseResult; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setResult(Lorg/apache/maven/shared/release/ReleaseResult;)V -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.getPrepareGoals()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleasePrepareAction.setPrepareGoals(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.()V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.promptReleaseGoal()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.getPreparedReleaseName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.setPreparedReleaseName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.getGoal()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.setGoal(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.getProject()Lorg/apache/maven/continuum/model/project/Project; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.setProject(Lorg/apache/maven/continuum/model/project/Project;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.getScmUrl()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.setScmUrl(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.getReleaseList()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.setReleaseList(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.getPreparedReleaseId()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.setPreparedReleaseId(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.getProjectName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectAction.setProjectName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.()V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.getProjectName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.setProjectName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.getPreparedReleaseName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.setPreparedReleaseName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.getPreparedReleaseId()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ReleaseProjectGoalAction.setPreparedReleaseId(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.()V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.summary()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.input()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.save()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setFields(Lorg/apache/maven/continuum/model/project/Schedule;)Lorg/apache/maven/continuum/model/project/Schedule; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.confirm()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.remove()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getSchedules()Ljava/util/Collection; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getId()I -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setId(I)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.isActive()Z -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setActive(Z)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getDelay()I -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setDelay(I)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getDescription()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setDescription(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getSchedule()Lorg/apache/maven/continuum/model/project/Schedule; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setSchedule(Lorg/apache/maven/continuum/model/project/Schedule;)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.isConfirmed()Z -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setConfirmed(Z)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getMaxJobExecutionTime()I -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setMaxJobExecutionTime(I)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getSecond()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setSecond(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getMinute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setMinute(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getHour()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setHour(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getDayOfMonth()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setDayOfMonth(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getYear()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setYear(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getMonth()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setMonth(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getDayOfWeek()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.setDayOfWeek(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.ScheduleAction.getCronExpression()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SummaryAction.()V -METHOD|org.apache.maven.continuum.web.action.SummaryAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SummaryAction.getNbSuccesses()I -METHOD|org.apache.maven.continuum.web.action.SummaryAction.getNbFailures()I -METHOD|org.apache.maven.continuum.web.action.SummaryAction.getNbErrors()I -METHOD|org.apache.maven.continuum.web.action.SummaryAction.getProjects()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.SummaryAction.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.action.SummaryAction.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.SummaryAction.getProjectGroupName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SummaryAction.setProjectGroupName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.(Lorg/apache/maven/continuum/web/action/SurefireReportAction;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.getName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.getTests()I -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.setTests(I)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.getErrors()I -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.setErrors(I)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.getFailures()I -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.setFailures(I)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.getSuccessRate()F -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.getElapsedTime()F -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.setElapsedTime(F)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.getChildren()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.setChildren(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.getId()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTest.setId(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.(Lorg/apache/maven/continuum/web/action/SurefireReportAction;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.getName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.getFullClassName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.setFullClassName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.getClassName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.setClassName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.getTime()F -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.setTime(F)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.getFullName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.setFullName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.getFailureType()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.setFailureType(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.getFailureMessage()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.setFailureMessage(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.getFailureDetails()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestCase.setFailureDetails(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.(Lorg/apache/maven/continuum/web/action/SurefireReportAction;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.parse(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.characters([CII)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.getTestCases()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.getNumberOfErrors()I -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.setNumberOfErrors(I)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.getNumberOfFailures()I -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.setNumberOfFailures(I)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.getNumberOfTests()I -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.setNumberOfTests(I)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.getName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.getFName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.setFName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.getPackageName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.setPackageName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.getTimeElapsed()F -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.setTimeElapsed(F)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.parseCause(Ljava/lang/String;)Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.parseCause(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.setTestCases(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction$ReportTestSuite.(Lorg/apache/maven/continuum/web/action/SurefireReportAction;Lorg/apache/maven/continuum/web/action/SurefireReportAction$1;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.()V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.parseReports(Ljava/io/File;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.getSummary(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.getDetails(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.getBuildId()I -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.setBuildId(I)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.getIncludedFiles(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.getTestSuites()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.setTestSuites(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.getProjectName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.setProjectName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.getTestSummaryList()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.setTestSummaryList(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.getTestPackageList()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.SurefireReportAction.setTestPackageList(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.()V -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.summary()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.input()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.save()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.remove()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.getUserGroupId()I -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.setUserGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.getDescription()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.setDescription(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.getName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.getUserGroups()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.UserGroupManagementAction.setUserGroups(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.()V -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.prepare()V -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.summary()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.input()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.save()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.remove()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.getUserId()I -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.setUserId(I)V -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.getUsername()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.setUsername(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.getFullName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.setFullName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.getEmail()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.setEmail(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.getPassword()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.setPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.getPasswordTwo()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.setPasswordTwo(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.getUsers()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.setUsers(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.getUserGroupId()I -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.setUserGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.getUserGroups()Ljava/util/Map; -METHOD|org.apache.maven.continuum.web.action.UserManagementAction.setUserGroups(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.()V -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.getProjectName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.getUserDirectory()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.setUserDirectory(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.setFile(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.getFiles()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.getOutput()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.getFileContent()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.getInputStream()Ljava/io/InputStream; -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.getFileLength()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.getDownloadFilename()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.getMimeType()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.WorkingCopyAction.()V -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.()V -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.prepare()V -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.save()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.resolveGuestAccountLockingStatus()V -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.getGuestAccountLockingStatus()Z -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.isGuestAccountEnabled()Z -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.setGuestAccountEnabled(Z)V -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.getWorkingDirectory()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.setWorkingDirectory(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.getDeploymentRepositoryDirectory()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.setDeploymentRepositoryDirectory(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.getBuildOutputDirectory()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.setBuildOutputDirectory(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.getBaseUrl()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.setBaseUrl(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.admin.ConfigurationAction.getSecureActionBundle()Lorg/codehaus/plexus/security/ui/web/interceptor/SecureActionBundle; -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.()V -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.summarizeForProject()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.summarizeForGroup()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.gatherProjectBuildDefinitionSummaries(I)Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.gatherGroupBuildDefinitionSummaries(I)Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.generateBuildDefinitionSummary(Lorg/apache/maven/continuum/model/project/BuildDefinition;)Lorg/apache/maven/continuum/web/model/BuildDefinitionSummary; -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.getProjectGroupName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.setProjectGroupName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.getProjectBuildDefinitionSummaries()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.setProjectBuildDefinitionSummaries(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.getGroupBuildDefinitionSummaries()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.setGroupBuildDefinitionSummaries(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.getAllBuildDefinitionSummaries()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.setAllBuildDefinitionSummaries(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.getProjectGroup()Lorg/apache/maven/continuum/model/project/ProjectGroup; -METHOD|org.apache.maven.continuum.web.action.component.BuildDefinitionSummaryAction.setProjectGroup(Lorg/apache/maven/continuum/model/project/ProjectGroup;)V -METHOD|org.apache.maven.continuum.web.action.component.ContinuumTabAction.()V -METHOD|org.apache.maven.continuum.web.action.component.ContinuumTabAction.getTabName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.component.ContinuumTabAction.setTabName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.()V -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.summarizeForProject()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.summarizeForProjectGroup()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.gatherGroupNotifierSummaries(I)Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.generateNotifierSummary(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)Lorg/apache/maven/continuum/web/model/NotifierSummary; -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.getProjectGroupName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.setProjectGroupName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.getProjectGroup()Lorg/apache/maven/continuum/model/project/ProjectGroup; -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.setProjectGroup(Lorg/apache/maven/continuum/model/project/ProjectGroup;)V -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.getProjectGroupNotifierSummaries()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.action.component.NotifierSummaryAction.setProjectGroupNotifierSummaries(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractGroupNotifierEditAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractGroupNotifierEditAction.saveNotifier(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractGroupNotifierEditAction.getNotifier()Lorg/apache/maven/continuum/model/project/ProjectNotifier; -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractGroupNotifierEditAction.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractGroupNotifierEditAction.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.()V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.getNotifier()Lorg/apache/maven/continuum/model/project/ProjectNotifier; -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.saveNotifier(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.save()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.edit()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.getNotifierId()I -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.getNotifierType()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.setNotifierType(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.isSendOnSuccess()Z -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.setSendOnSuccess(Z)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.isSendOnFailure()Z -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.setSendOnFailure(Z)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.isSendOnError()Z -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.setSendOnError(Z)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.isSendOnWarning()Z -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.setSendOnWarning(Z)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.setNotifierId(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.initConfiguration(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractNotifierEditActionSupport.setNotifierConfiguration(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractProjectNotifierEditAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractProjectNotifierEditAction.saveNotifier(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractProjectNotifierEditAction.getNotifier()Lorg/apache/maven/continuum/model/project/ProjectNotifier; -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractProjectNotifierEditAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.notifier.AbstractProjectNotifierEditAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.AddGroupNotifierAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.AddGroupNotifierAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.AddGroupNotifierAction.doDefault()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.AddGroupNotifierAction.getNotifierType()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.AddGroupNotifierAction.setNotifierType(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.AddGroupNotifierAction.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.action.notifier.AddGroupNotifierAction.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.AddProjectNotifierAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.AddProjectNotifierAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.AddProjectNotifierAction.doDefault()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.AddProjectNotifierAction.getNotifierType()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.AddProjectNotifierAction.setNotifierType(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.AddProjectNotifierAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.notifier.AddProjectNotifierAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteGroupNotifierAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteGroupNotifierAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteGroupNotifierAction.doDefault()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteGroupNotifierAction.setNotifierId(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteGroupNotifierAction.getNotifierId()I -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteGroupNotifierAction.setNotifierType(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteGroupNotifierAction.getNotifierType()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteGroupNotifierAction.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteGroupNotifierAction.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteProjectNotifierAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteProjectNotifierAction.execute()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteProjectNotifierAction.doDefault()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteProjectNotifierAction.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteProjectNotifierAction.getProjectId()I -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteProjectNotifierAction.setNotifierId(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteProjectNotifierAction.getNotifierId()I -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteProjectNotifierAction.setNotifierType(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.DeleteProjectNotifierAction.getNotifierType()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.initConfiguration(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.setNotifierConfiguration(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.getHost()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.setHost(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.getPort()I -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.setPort(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.getChannel()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.setChannel(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.getNick()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.setNick(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.getFullName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.setFullName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.getPassword()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.IrcGroupNotifierEditAction.setPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.initConfiguration(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.setNotifierConfiguration(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.getHost()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.setHost(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.getPort()I -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.setPort(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.getChannel()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.setChannel(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.getNick()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.setNick(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.getFullName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.setFullName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.getPassword()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.IrcProjectNotifierEditAction.setPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.initConfiguration(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.setNotifierConfiguration(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.getHost()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.setHost(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.getPort()I -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.setPort(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.getLogin()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.setLogin(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.getPassword()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.setPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.getDomainName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.setDomainName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.getAddress()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.setAddress(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.isSslConnection()Z -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.setSslConnection(Z)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.isGroup()Z -METHOD|org.apache.maven.continuum.web.action.notifier.JabberGroupNotifierEditAction.setGroup(Z)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.initConfiguration(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.setNotifierConfiguration(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.getHost()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.setHost(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.getPort()I -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.setPort(I)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.getLogin()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.setLogin(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.getPassword()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.setPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.getDomainName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.setDomainName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.getAddress()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.setAddress(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.isSslConnection()Z -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.setSslConnection(Z)V -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.isGroup()Z -METHOD|org.apache.maven.continuum.web.action.notifier.JabberProjectNotifierEditAction.setGroup(Z)V -METHOD|org.apache.maven.continuum.web.action.notifier.MailGroupNotifierEditAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.MailGroupNotifierEditAction.initConfiguration(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MailGroupNotifierEditAction.setNotifierConfiguration(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MailGroupNotifierEditAction.getAddress()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.MailGroupNotifierEditAction.setAddress(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MailProjectNotifierEditAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.MailProjectNotifierEditAction.initConfiguration(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MailProjectNotifierEditAction.setNotifierConfiguration(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MailProjectNotifierEditAction.getAddress()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.MailProjectNotifierEditAction.setAddress(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnGroupNotifierEditAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnGroupNotifierEditAction.initConfiguration(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnGroupNotifierEditAction.setNotifierConfiguration(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnGroupNotifierEditAction.getLogin()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.MsnGroupNotifierEditAction.setLogin(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnGroupNotifierEditAction.getPassword()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.MsnGroupNotifierEditAction.setPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnGroupNotifierEditAction.getAddress()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.MsnGroupNotifierEditAction.setAddress(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnProjectNotifierEditAction.()V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnProjectNotifierEditAction.initConfiguration(Ljava/util/Map;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnProjectNotifierEditAction.setNotifierConfiguration(Lorg/apache/maven/continuum/model/project/ProjectNotifier;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnProjectNotifierEditAction.getLogin()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.MsnProjectNotifierEditAction.setLogin(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnProjectNotifierEditAction.getPassword()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.MsnProjectNotifierEditAction.setPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.action.notifier.MsnProjectNotifierEditAction.getAddress()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.action.notifier.MsnProjectNotifierEditAction.setAddress(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.checks.security.RoleProfileEnvironmentCheck.()V -METHOD|org.apache.maven.continuum.web.checks.security.RoleProfileEnvironmentCheck.validateEnvironment(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.components.Data.(Lcom/opensymphony/xwork/util/OgnlValueStack;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V -METHOD|org.apache.maven.continuum.web.components.Data.getDefaultTemplate()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.components.Data.setValueLink(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.components.Data.getValueLink()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.components.Data.evaluateExtraParams()V -METHOD|org.apache.maven.continuum.web.components.SubmitCancel.(Lcom/opensymphony/xwork/util/OgnlValueStack;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V -METHOD|org.apache.maven.continuum.web.components.SubmitCancel.getDefaultTemplate()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.components.SubmitCancel.evaluateParams()V -METHOD|org.apache.maven.continuum.web.components.SubmitCancel.setCancel(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.exception.ContinuumActionException.(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.exception.ContinuumActionException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.apache.maven.continuum.web.filter.FilterToComponentProxy.()V -METHOD|org.apache.maven.continuum.web.interceptor.ForceContinuumConfigurationInterceptor.()V -METHOD|org.apache.maven.continuum.web.interceptor.ForceContinuumConfigurationInterceptor.destroy()V -METHOD|org.apache.maven.continuum.web.interceptor.ForceContinuumConfigurationInterceptor.init()V -METHOD|org.apache.maven.continuum.web.interceptor.ForceContinuumConfigurationInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.interceptor.ForceContinuumConfigurationInterceptor.()V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.()V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.getArguments()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.getBuildFile()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.getFrom()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.getGoals()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.getId()I -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.getProfileName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.getProjectId()I -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.getProjectName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.getScheduleName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.isIsDefault()Z -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setArguments(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setBuildFile(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setFrom(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setGoals(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setId(I)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setIsDefault(Z)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setProfileName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setProjectName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setScheduleName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.setModelEncoding(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.BuildDefinitionSummary.getModelEncoding()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.()V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.addBuildDefinitionSummary(Lorg/apache/maven/continuum/web/model/BuildDefinitionSummary;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.addGroupSummary(Lorg/apache/maven/continuum/web/model/GroupSummary;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.addNotifierSummary(Lorg/apache/maven/continuum/web/model/NotifierSummary;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.addProjectSummary(Lorg/apache/maven/continuum/web/model/ProjectSummary;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.getBuildDefinitionSummarys()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.getGroupSummarys()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.getNotifierSummarys()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.getProjectSummarys()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.removeBuildDefinitionSummary(Lorg/apache/maven/continuum/web/model/BuildDefinitionSummary;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.removeGroupSummary(Lorg/apache/maven/continuum/web/model/GroupSummary;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.removeNotifierSummary(Lorg/apache/maven/continuum/web/model/NotifierSummary;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.removeProjectSummary(Lorg/apache/maven/continuum/web/model/ProjectSummary;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.setBuildDefinitionSummarys(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.setGroupSummarys(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.setNotifierSummarys(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.setProjectSummarys(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.setModelEncoding(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.getModelEncoding()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.ContinuumViewModels.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|org.apache.maven.continuum.web.model.GroupSummary.()V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.addProject(Lorg/apache/maven/continuum/web/model/ProjectSummary;)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getDescription()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getGroupId()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getId()I -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getNextScheduledBuild()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getNumErrors()I -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getNumFailures()I -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getNumProjects()I -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getNumSuccesses()I -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getProjectType()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getProjects()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getStatusMessage()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.GroupSummary.removeProject(Lorg/apache/maven/continuum/web/model/ProjectSummary;)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setDescription(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setGroupId(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setId(I)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setNextScheduledBuild(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setNumErrors(I)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setNumFailures(I)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setNumProjects(I)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setNumSuccesses(I)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setProjectType(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setProjects(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setStatusMessage(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.setModelEncoding(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.GroupSummary.getModelEncoding()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.GroupSummary.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.()V -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.getEvents()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.getId()I -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.getProjectGroupId()I -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.getProjectId()I -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.getRecipient()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.getSender()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.getType()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.isEnabled()Z -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.setEnabled(Z)V -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.setEvents(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.setId(I)V -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.setProjectGroupId(I)V -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.setProjectId(I)V -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.setRecipient(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.setSender(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.setType(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.setModelEncoding(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.NotifierSummary.getModelEncoding()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.()V -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.getBuildInSuccessId()I -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.getBuildNumber()I -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.getId()I -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.getLatestBuildId()I -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.getName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.getProjectGroupName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.getState()I -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.getVersion()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.isInQueue()Z -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.setBuildInSuccessId(I)V -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.setBuildNumber(I)V -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.setId(I)V -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.setInQueue(Z)V -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.setLatestBuildId(I)V -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.setProjectGroupName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.setState(I)V -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.setVersion(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.setModelEncoding(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.ProjectSummary.getModelEncoding()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.Session.()V -METHOD|org.apache.maven.continuum.web.model.Session.addSessionUser(Lorg/apache/maven/continuum/web/model/SessionUser;)V -METHOD|org.apache.maven.continuum.web.model.Session.getSessionUsers()Ljava/util/List; -METHOD|org.apache.maven.continuum.web.model.Session.removeSessionUser(Lorg/apache/maven/continuum/web/model/SessionUser;)V -METHOD|org.apache.maven.continuum.web.model.Session.setSessionUsers(Ljava/util/List;)V -METHOD|org.apache.maven.continuum.web.model.Session.setModelEncoding(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.Session.getModelEncoding()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.Session.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|org.apache.maven.continuum.web.model.SessionUser.()V -METHOD|org.apache.maven.continuum.web.model.SessionUser.getEmail()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.SessionUser.getFullName()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.SessionUser.getId()I -METHOD|org.apache.maven.continuum.web.model.SessionUser.getUserGroupId()I -METHOD|org.apache.maven.continuum.web.model.SessionUser.getUsername()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.model.SessionUser.isLoggedIn()Z -METHOD|org.apache.maven.continuum.web.model.SessionUser.setEmail(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.SessionUser.setFullName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.SessionUser.setId(I)V -METHOD|org.apache.maven.continuum.web.model.SessionUser.setLoggedIn(Z)V -METHOD|org.apache.maven.continuum.web.model.SessionUser.setUserGroupId(I)V -METHOD|org.apache.maven.continuum.web.model.SessionUser.setUsername(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.SessionUser.setModelEncoding(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.model.SessionUser.getModelEncoding()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.util.StateGenerator.()V -METHOD|org.apache.maven.continuum.web.util.StateGenerator.generate(ILjava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.util.WorkingCopyContentGenerator.()V -METHOD|org.apache.maven.continuum.web.util.WorkingCopyContentGenerator.generate(Ljava/lang/Object;Ljava/lang/String;Ljava/io/File;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.util.WorkingCopyContentGenerator.print(Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.continuum.web.util.WorkingCopyContentGenerator.print(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.continuum.web.view.BuildCell.()V -METHOD|org.apache.maven.continuum.web.view.BuildCell.getCellValue(Lorg/extremecomponents/table/core/TableModel;Lorg/extremecomponents/table/bean/Column;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.BuildCell.isAuthorized(Lorg/apache/maven/continuum/web/model/ProjectSummary;)Z -METHOD|org.apache.maven.continuum.web.view.BuildNowCell.()V -METHOD|org.apache.maven.continuum.web.view.BuildNowCell.getCellValue(Lorg/extremecomponents/table/core/TableModel;Lorg/extremecomponents/table/bean/Column;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.BuildNowCell.createActionLink(Ljava/lang/String;Lorg/apache/maven/continuum/web/model/ProjectSummary;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.BuildNowCell.image(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.BuildStatusCell.()V -METHOD|org.apache.maven.continuum.web.view.BuildStatusCell.getCellValue(Lorg/extremecomponents/table/core/TableModel;Lorg/extremecomponents/table/bean/Column;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.StateCell.()V -METHOD|org.apache.maven.continuum.web.view.StateCell.getCellValue(Lorg/extremecomponents/table/core/TableModel;Lorg/extremecomponents/table/bean/Column;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.StateCell.createActionLink(Ljava/lang/String;Lorg/apache/maven/continuum/web/model/ProjectSummary;Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.buildresults.StateCell.()V -METHOD|org.apache.maven.continuum.web.view.buildresults.StateCell.getCellValue(Lorg/extremecomponents/table/core/TableModel;Lorg/extremecomponents/table/bean/Column;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.commons.DateCell.()V -METHOD|org.apache.maven.continuum.web.view.commons.DateCell.getCellValue(Lorg/extremecomponents/table/core/TableModel;Lorg/extremecomponents/table/bean/Column;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DataTag.()V -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DataTag.getBean(Lcom/opensymphony/xwork/util/OgnlValueStack;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lcom/opensymphony/webwork/components/Component; -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DataTag.setValueLink(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DataTag.populateParams()V -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DateTag.()V -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DateTag.doEndTag()I -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DateTag.findProviderInStack()Lcom/opensymphony/xwork/TextProvider; -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DateTag.formatTime(Ljava/util/Date;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DateTag.doStartTag()I -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DateTag.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DateTag.getFormat()Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DateTag.setFormat(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DateTag.isNice()Z -METHOD|org.apache.maven.continuum.web.view.jsp.ui.DateTag.setNice(Z)V -METHOD|org.apache.maven.continuum.web.view.jsp.ui.SubmitCancelTag.()V -METHOD|org.apache.maven.continuum.web.view.jsp.ui.SubmitCancelTag.getBean(Lcom/opensymphony/xwork/util/OgnlValueStack;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lcom/opensymphony/webwork/components/Component; -METHOD|org.apache.maven.continuum.web.view.jsp.ui.SubmitCancelTag.populateParams()V -METHOD|org.apache.maven.continuum.web.view.jsp.ui.SubmitCancelTag.setCancel(Ljava/lang/String;)V -METHOD|org.apache.maven.continuum.web.view.projectview.NotifierEventCell.()V -METHOD|org.apache.maven.continuum.web.view.projectview.NotifierEventCell.getCellValue(Lorg/extremecomponents/table/core/TableModel;Lorg/extremecomponents/table/bean/Column;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.projectview.NotifierFromCell.()V -METHOD|org.apache.maven.continuum.web.view.projectview.NotifierFromCell.getCellValue(Lorg/extremecomponents/table/core/TableModel;Lorg/extremecomponents/table/bean/Column;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.view.projectview.NotifierRecipientCell.()V -METHOD|org.apache.maven.continuum.web.view.projectview.NotifierRecipientCell.getCellValue(Lorg/extremecomponents/table/core/TableModel;Lorg/extremecomponents/table/bean/Column;)Ljava/lang/String; -METHOD|org.apache.maven.continuum.web.xmlrpc.DefaultXmlRpcService.()V -METHOD|org.apache.maven.continuum.web.xmlrpc.DefaultXmlRpcService.start()V -METHOD|org.apache.maven.continuum.web.xmlrpc.DefaultXmlRpcService.stop()V -METHOD|org.apache.maven.continuum.web.xmlrpc.XmlRpcService$1.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|org.apache.maven.continuum.web.xmlrpc.XmlRpcService.()V -FILE|META-INF/ -FILE|META-INF/MANIFEST.MF -FILE|META-INF/maven/ -FILE|META-INF/maven/org.apache.maven.continuum/ -FILE|META-INF/maven/org.apache.maven.continuum/continuum-webapp/ -FILE|META-INF/maven/org.apache.maven.continuum/continuum-webapp/pom.properties -FILE|META-INF/maven/org.apache.maven.continuum/continuum-webapp/pom.xml -FILE|WEB-INF/ -FILE|WEB-INF/classes/ -FILE|WEB-INF/classes/META-INF/ -FILE|WEB-INF/classes/META-INF/plexus/ -FILE|WEB-INF/classes/META-INF/plexus/application.xml -FILE|WEB-INF/classes/META-INF/plexus/components.xml -FILE|WEB-INF/classes/extremecomponents.properties -FILE|WEB-INF/classes/localization/ -FILE|WEB-INF/classes/localization/Continuum.properties -FILE|WEB-INF/classes/org/ -FILE|WEB-INF/classes/org/apache/ -FILE|WEB-INF/classes/org/apache/maven/ -FILE|WEB-INF/classes/org/apache/maven/continuum/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/AboutAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/AddMavenOneProjectAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/AddMavenProjectAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/AddProjectAction-addProject-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/AddProjectAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/AddProjectAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/BuildDefinitionAction-saveGroupBuildDefinition-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/BuildDefinitionAction-saveProjectBuildDefinition-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/BuildDefinitionAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/BuildDefinitionAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/BuildDefinitionEditAction-buildDefinitionSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/BuildDefinitionEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/BuildProjectAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/BuildResultAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/BuildResultsListAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/CancelBuildAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/CheckConfigurationAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ContinuumActionSupport.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ContinuumConfirmAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/DeleteProjectAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/GroupSummaryAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/IrcNotifierEditAction-ircNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/IrcNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/JabberNotifierEditAction-jabberNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/JabberNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/LoginAction-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/LoginAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/MailNotifierEditAction-mailNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/MailNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/MsnNotifierEditAction-msnNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/MsnNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ProjectEditAction-projectSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ProjectEditAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ProjectEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ProjectGroupAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ProjectViewAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ReleaseCleanupAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ReleaseInProgressAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerform-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerformFromScm-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ReleasePerformAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ReleasePerformAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ReleasePrepareAction-releasePrepare-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ReleasePrepareAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ReleasePrepareAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ReleaseProjectAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ReleaseProjectGoalAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ScheduleAction-saveSchedule-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/ScheduleAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/SummaryAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/SurefireReportAction$1.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/SurefireReportAction$ReportTest.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/SurefireReportAction$ReportTestCase.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/SurefireReportAction$ReportTestSuite.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/SurefireReportAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/UserGroupManagementAction-saveUserGroup-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/UserGroupManagementAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/UserGroupManagementAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/UserManagementAction-saveUser-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/UserManagementAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/UserManagementAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/WorkingCopyAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/admin/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/admin/ConfigurationAction-configuration-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/admin/ConfigurationAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/admin/ConfigurationAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/component/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/component/BuildDefinitionSummaryAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/component/ContinuumTabAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/component/NotifierSummaryAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/AbstractGroupNotifierEditAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/AbstractNotifierEditActionSupport.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/AbstractProjectNotifierEditAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/AddGroupNotifierAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/AddProjectNotifierAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/DeleteGroupNotifierAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/DeleteProjectNotifierAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/IrcGroupNotifierEditAction-ircProjectGroupNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/IrcGroupNotifierEditAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/IrcGroupNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/IrcProjectNotifierEditAction-ircProjectNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/IrcProjectNotifierEditAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/IrcProjectNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/JabberGroupNotifierEditAction-jabberProjectGroupNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/JabberGroupNotifierEditAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/JabberGroupNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/JabberProjectNotifierEditAction-jabberProjectNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/JabberProjectNotifierEditAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/JabberProjectNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction-mailProjectGroupNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction-mailProjectNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MsnGroupNotifierEditAction-msnProjectGroupNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MsnGroupNotifierEditAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MsnGroupNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MsnProjectNotifierEditAction-msnProjectNotifierSave-validation.xml -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MsnProjectNotifierEditAction.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/notifier/MsnProjectNotifierEditAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/action/scheduleAction.properties -FILE|WEB-INF/classes/org/apache/maven/continuum/web/checks/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/checks/security/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/checks/security/RoleProfileEnvironmentCheck.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/components/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/components/Data.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/components/SubmitCancel.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/exception/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/exception/ContinuumActionException.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/filter/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/filter/FilterToComponentProxy.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/interceptor/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/interceptor/ForceContinuumConfigurationInterceptor.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/model/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/model/BuildDefinitionSummary.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/model/ContinuumViewModels.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/model/GroupSummary.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/model/NotifierSummary.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/model/ProjectSummary.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/model/Session.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/model/SessionUser.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/util/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/util/StateGenerator.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/util/WorkingCopyContentGenerator.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/BuildCell.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/BuildNowCell.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/BuildStatusCell.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/StateCell.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/buildresults/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/buildresults/StateCell.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/commons/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/commons/DateCell.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/jsp/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/jsp/ui/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/jsp/ui/DataTag.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/jsp/ui/DateTag.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/jsp/ui/SubmitCancelTag.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/projectview/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/projectview/NotifierEventCell.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/projectview/NotifierFromCell.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/view/projectview/NotifierRecipientCell.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/xmlrpc/ -FILE|WEB-INF/classes/org/apache/maven/continuum/web/xmlrpc/DefaultXmlRpcService.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/xmlrpc/XmlRpcService$1.class -FILE|WEB-INF/classes/org/apache/maven/continuum/web/xmlrpc/XmlRpcService.class -FILE|WEB-INF/classes/osuser.xml -FILE|WEB-INF/classes/template/ -FILE|WEB-INF/classes/template/default/ -FILE|WEB-INF/classes/template/default/checkbox.ftl -FILE|WEB-INF/classes/template/default/checkboxlist.ftl -FILE|WEB-INF/classes/template/default/combobox.ftl -FILE|WEB-INF/classes/template/default/controlfooter.ftl -FILE|WEB-INF/classes/template/default/controlheader-core.ftl -FILE|WEB-INF/classes/template/default/controlheader.ftl -FILE|WEB-INF/classes/template/default/data.ftl -FILE|WEB-INF/classes/template/default/datepicker.ftl -FILE|WEB-INF/classes/template/default/debug.ftl -FILE|WEB-INF/classes/template/default/doubleselect.ftl -FILE|WEB-INF/classes/template/default/empty.ftl -FILE|WEB-INF/classes/template/default/file.ftl -FILE|WEB-INF/classes/template/default/form-close-validate.ftl -FILE|WEB-INF/classes/template/default/form-close.ftl -FILE|WEB-INF/classes/template/default/form-validate.ftl -FILE|WEB-INF/classes/template/default/form.ftl -FILE|WEB-INF/classes/template/default/head.ftl -FILE|WEB-INF/classes/template/default/hidde.ftl -FILE|WEB-INF/classes/template/default/label.ftl -FILE|WEB-INF/classes/template/default/optiontransferselect.ftl -FILE|WEB-INF/classes/template/default/password.ftl -FILE|WEB-INF/classes/template/default/radiomap.ftl -FILE|WEB-INF/classes/template/default/reset.ftl -FILE|WEB-INF/classes/template/default/richtexteditor.ftl -FILE|WEB-INF/classes/template/default/select.ftl -FILE|WEB-INF/classes/template/default/styles.css -FILE|WEB-INF/classes/template/default/submit.ftl -FILE|WEB-INF/classes/template/default/submitCancel.ftl -FILE|WEB-INF/classes/template/default/text.ftl -FILE|WEB-INF/classes/template/default/textarea.ftl -FILE|WEB-INF/classes/template/default/theme.properties -FILE|WEB-INF/classes/template/default/tooltip.ftl -FILE|WEB-INF/classes/template/default/updownselect.ftl -FILE|WEB-INF/classes/template/default/validation.js -FILE|WEB-INF/classes/validators.xml -FILE|WEB-INF/classes/webwork.properties -FILE|WEB-INF/classes/xwork-security.xml -FILE|WEB-INF/classes/xwork.xml -FILE|WEB-INF/continuum.tld -FILE|WEB-INF/decorators.xml -FILE|WEB-INF/jsp/ -FILE|WEB-INF/jsp/about.jsp -FILE|WEB-INF/jsp/addMavenOneProject.jsp -FILE|WEB-INF/jsp/addMavenTwoProject.jsp -FILE|WEB-INF/jsp/addProject.jsp -FILE|WEB-INF/jsp/admin/ -FILE|WEB-INF/jsp/admin/configuration.jsp -FILE|WEB-INF/jsp/admin/configurationEdit.jsp -FILE|WEB-INF/jsp/buildDefinitionEdit.jsp -FILE|WEB-INF/jsp/buildResult.jsp -FILE|WEB-INF/jsp/buildResults.jsp -FILE|WEB-INF/jsp/components/ -FILE|WEB-INF/jsp/components/buildDefinitionGroupSummaryComponent.jsp -FILE|WEB-INF/jsp/components/buildDefinitionSummaryComponent.jsp -FILE|WEB-INF/jsp/components/buildNowCell.jsp -FILE|WEB-INF/jsp/components/companyLogo.jsp -FILE|WEB-INF/jsp/components/failureComponent.jsp -FILE|WEB-INF/jsp/components/projectGroupNotifierSummaryComponent.jsp -FILE|WEB-INF/jsp/components/projectGroupTabComponent.jsp -FILE|WEB-INF/jsp/components/projectNotifierSummaryComponent.jsp -FILE|WEB-INF/jsp/components/projectSummaryComponent.jsp -FILE|WEB-INF/jsp/confirmBuildDefinitionRemoval.jsp -FILE|WEB-INF/jsp/confirmGroupRemoval.jsp -FILE|WEB-INF/jsp/confirmScheduleRemoval.jsp -FILE|WEB-INF/jsp/confirmation.jsp -FILE|WEB-INF/jsp/decorators/ -FILE|WEB-INF/jsp/decorators/default.jsp -FILE|WEB-INF/jsp/decorators/none.jsp -FILE|WEB-INF/jsp/deleteBuildDefinition.jsp -FILE|WEB-INF/jsp/deleteNotifier.jsp -FILE|WEB-INF/jsp/deleteProject.jsp -FILE|WEB-INF/jsp/editSchedule.jsp -FILE|WEB-INF/jsp/error/ -FILE|WEB-INF/jsp/error/error.jsp -FILE|WEB-INF/jsp/groupSummary.jsp -FILE|WEB-INF/jsp/navigations/ -FILE|WEB-INF/jsp/navigations/DefaultBottom.jsp -FILE|WEB-INF/jsp/navigations/DefaultTop.jsp -FILE|WEB-INF/jsp/navigations/Menu.jsp -FILE|WEB-INF/jsp/navigations/ProjectGroupMenu.jsp -FILE|WEB-INF/jsp/navigations/ProjectMenu.jsp -FILE|WEB-INF/jsp/notifierIrc.jsp -FILE|WEB-INF/jsp/notifierJabber.jsp -FILE|WEB-INF/jsp/notifierMail.jsp -FILE|WEB-INF/jsp/notifierMsn.jsp -FILE|WEB-INF/jsp/notifierSelectType.jsp -FILE|WEB-INF/jsp/projectEdit.jsp -FILE|WEB-INF/jsp/projectGroupBuildDefinition.jsp -FILE|WEB-INF/jsp/projectGroupMembers.jsp -FILE|WEB-INF/jsp/projectGroupNotifier.jsp -FILE|WEB-INF/jsp/projectGroupSummary.jsp -FILE|WEB-INF/jsp/projectView.jsp -FILE|WEB-INF/jsp/pss/ -FILE|WEB-INF/jsp/pss/accessDenied.jsp -FILE|WEB-INF/jsp/pss/account.jsp -FILE|WEB-INF/jsp/pss/admin/ -FILE|WEB-INF/jsp/pss/admin/adminConsole.jsp -FILE|WEB-INF/jsp/pss/admin/console.jsp -FILE|WEB-INF/jsp/pss/admin/createAdmin.jsp -FILE|WEB-INF/jsp/pss/admin/operationList.jsp -FILE|WEB-INF/jsp/pss/admin/permissionList.jsp -FILE|WEB-INF/jsp/pss/admin/resourceList.jsp -FILE|WEB-INF/jsp/pss/admin/role.jsp -FILE|WEB-INF/jsp/pss/admin/roleCreate.jsp -FILE|WEB-INF/jsp/pss/admin/roleList.jsp -FILE|WEB-INF/jsp/pss/admin/roleSummary.jsp -FILE|WEB-INF/jsp/pss/admin/systemInformation.jsp -FILE|WEB-INF/jsp/pss/admin/userCreate.jsp -FILE|WEB-INF/jsp/pss/admin/userDelete.jsp -FILE|WEB-INF/jsp/pss/admin/userEdit.jsp -FILE|WEB-INF/jsp/pss/admin/userFind.jsp -FILE|WEB-INF/jsp/pss/admin/userList.jsp -FILE|WEB-INF/jsp/pss/alert.jsp -FILE|WEB-INF/jsp/pss/generalError.jsp -FILE|WEB-INF/jsp/pss/include/ -FILE|WEB-INF/jsp/pss/include/assignments.jsp -FILE|WEB-INF/jsp/pss/include/error.jsp -FILE|WEB-INF/jsp/pss/include/formValidationResults.jsp -FILE|WEB-INF/jsp/pss/include/grantRoles.jsp -FILE|WEB-INF/jsp/pss/include/rbacListNavigation.jsp -FILE|WEB-INF/jsp/pss/include/removeRoles.jsp -FILE|WEB-INF/jsp/pss/include/roleRow.jsp -FILE|WEB-INF/jsp/pss/include/securityLinks.jsp -FILE|WEB-INF/jsp/pss/include/userCredentials.jsp -FILE|WEB-INF/jsp/pss/login.jsp -FILE|WEB-INF/jsp/pss/password.jsp -FILE|WEB-INF/jsp/pss/register.jsp -FILE|WEB-INF/jsp/pss/requestPasswordReset.jsp -FILE|WEB-INF/jsp/pss/requiresAuthentication.jsp -FILE|WEB-INF/jsp/pss/statusline.jsp -FILE|WEB-INF/jsp/pss/validate.jsp -FILE|WEB-INF/jsp/pss/validationNotification.jsp -FILE|WEB-INF/jsp/releaseFinished.jsp -FILE|WEB-INF/jsp/releaseInProgress.jsp -FILE|WEB-INF/jsp/releaseInitialized.jsp -FILE|WEB-INF/jsp/releasePerform.jsp -FILE|WEB-INF/jsp/releasePerformFromScm.jsp -FILE|WEB-INF/jsp/releasePrepare.jsp -FILE|WEB-INF/jsp/releaseProject.jsp -FILE|WEB-INF/jsp/releaseViewResult.jsp -FILE|WEB-INF/jsp/schedules.jsp -FILE|WEB-INF/jsp/summary.jsp -FILE|WEB-INF/jsp/surefireReport.jsp -FILE|WEB-INF/jsp/workingCopy.jsp -FILE|WEB-INF/lib/ -FILE|WEB-INF/lib/backport-util-concurrent-2.2.jar -FILE|WEB-INF/lib/commons-beanutils-1.7.0.jar -FILE|WEB-INF/lib/commons-cli-1.0.jar -FILE|WEB-INF/lib/commons-codec-1.3.jar -FILE|WEB-INF/lib/commons-collections-2.0.jar -FILE|WEB-INF/lib/commons-collections-3.0.jar -FILE|WEB-INF/lib/commons-fileupload-1.1.jar -FILE|WEB-INF/lib/commons-httpclient-2.0.2.jar -FILE|WEB-INF/lib/commons-io-1.1.jar -FILE|WEB-INF/lib/commons-lang-2.0.jar -FILE|WEB-INF/lib/commons-logging-1.0.4.jar -FILE|WEB-INF/lib/commons-logging-api-1.0.4.jar -FILE|WEB-INF/lib/continuum-api-1.0.3-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/continuum-core-1.0.3-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/continuum-model-1.0.3-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/continuum-notifier-api-1.0.3-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/continuum-notifier-irc-1.0.3-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/continuum-notifier-jabber-1.0.3-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/continuum-notifier-msn-1.0.3-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/continuum-release-1.0.3-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/continuum-security-1.0.3-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/continuum-store-1.0.3-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/continuum-xmlrpc-1.0.3-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/derby-10.1.3.1.jar -FILE|WEB-INF/lib/doxia-sink-api-1.0-alpha-7.jar -FILE|WEB-INF/lib/extremecomponents-1.0.1.jar -FILE|WEB-INF/lib/freemarker-2.3.4.jar -FILE|WEB-INF/lib/geronimo-spec-jta-1.0.1B-rc2.jar -FILE|WEB-INF/lib/jaxen-1.1-beta-8.jar -FILE|WEB-INF/lib/jdom-1.0.jar -FILE|WEB-INF/lib/jsch-0.1.24.jar -FILE|WEB-INF/lib/jstl-1.1.2.jar -FILE|WEB-INF/lib/maestro-projectserver-store-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-artifact-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-artifact-manager-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-core-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-error-diagnostics-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-model-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-monitor-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-plugin-api-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-plugin-descriptor-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-plugin-parameter-documenter-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-plugin-registry-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-profile-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-project-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-release-manager-1.0-20061027.091829-1.jar -FILE|WEB-INF/lib/maven-reporting-api-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-repository-metadata-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-scm-api-1.0-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-scm-manager-plexus-1.0-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-scm-provider-bazaar-1.0-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-scm-provider-clearcase-1.0-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-scm-provider-cvs-commons-1.0-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-scm-provider-cvsexe-1.0-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-scm-provider-local-1.0-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-scm-provider-perforce-1.0-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-scm-provider-starteam-1.0-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-scm-provider-svn-commons-1.0-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-scm-provider-svnexe-1.0-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/maven-settings-2.0.4-maestro-1.2-SNAPSHOT.jar -FILE|WEB-INF/lib/msnmlib-1.4-20050613.jar -FILE|WEB-INF/lib/ognl-2.6.7.jar -FILE|WEB-INF/lib/oro-2.0.6.jar -FILE|WEB-INF/lib/oscore-2.2.4.jar -FILE|WEB-INF/lib/plexus-action-1.0-alpha-6.jar -FILE|WEB-INF/lib/plexus-command-line-1.0-alpha-2.jar -FILE|WEB-INF/lib/plexus-formica-1.0-beta-11.jar -FILE|WEB-INF/lib/plexus-i18n-1.0-beta-6.jar -FILE|WEB-INF/lib/plexus-interactivity-api-1.0-alpha-4.jar -FILE|WEB-INF/lib/plexus-ircbot-1.1-alpha-6.jar -FILE|WEB-INF/lib/plexus-jabber-1.0-alpha-4.jar -FILE|WEB-INF/lib/plexus-jdo2-1.0-alpha-7.jar -FILE|WEB-INF/lib/plexus-log4j-logging-1.1-alpha-2.jar -FILE|WEB-INF/lib/plexus-mail-sender-api-1.0-alpha-3.jar -FILE|WEB-INF/lib/plexus-mail-sender-javamail-1.0-alpha-3.jar -FILE|WEB-INF/lib/plexus-msn-1.0-alpha-2.jar -FILE|WEB-INF/lib/plexus-notification-1.0-alpha-5.jar -FILE|WEB-INF/lib/plexus-quartz-1.0-alpha-3.jar -FILE|WEB-INF/lib/plexus-security-authentication-api-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-security-authentication-api-1.0-alpha-6-SNAPSHOT.jar -FILE|WEB-INF/lib/plexus-security-authentication-provider-keystore-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-security-authentication-provider-user-manager-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-security-authorization-api-1.0-alpha-6-SNAPSHOT.jar -FILE|WEB-INF/lib/plexus-security-authorization-rbac-authorizer-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-security-authorization-rbac-model-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-security-authorization-rbac-model-1.0-alpha-6-SNAPSHOT.jar -FILE|WEB-INF/lib/plexus-security-authorization-rbac-store-jdo-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-security-keys-api-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-security-keys-api-1.0-alpha-6-SNAPSHOT.jar -FILE|WEB-INF/lib/plexus-security-keys-jdo-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-security-policy-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-security-policy-1.0-alpha-6-SNAPSHOT.jar -FILE|WEB-INF/lib/plexus-security-rbac-profile-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-security-rbac-profile-1.0-alpha-6-SNAPSHOT.jar -FILE|WEB-INF/lib/plexus-security-system-1.0-alpha-6-SNAPSHOT.jar -FILE|WEB-INF/lib/plexus-security-ui-web-integration-1.0-alpha-6-SNAPSHOT.jar -FILE|WEB-INF/lib/plexus-security-ui-web-taglib-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-security-ui-web-taglib-1.0-alpha-6-SNAPSHOT.jar -FILE|WEB-INF/lib/plexus-security-user-management-api-1.0-alpha-6-SNAPSHOT.jar -FILE|WEB-INF/lib/plexus-security-user-management-provider-jdo-1.0-alpha-6-20061027.200547-2.jar -FILE|WEB-INF/lib/plexus-taskqueue-1.0-alpha-4.jar -FILE|WEB-INF/lib/plexus-utils-1.2.jar -FILE|WEB-INF/lib/plexus-utils-1.3.jar -FILE|WEB-INF/lib/plexus-velocity-1.1.2.jar -FILE|WEB-INF/lib/plexus-xmlrpc-1.0-beta-4.jar -FILE|WEB-INF/lib/plexus-xwork-integration-1.0-alpha-2.jar -FILE|WEB-INF/lib/quartz-1.4.5.jar -FILE|WEB-INF/lib/regexp-1.3.jar -FILE|WEB-INF/lib/rife-continuations-0.0.2.jar -FILE|WEB-INF/lib/sitemesh-2.2.1.jar -FILE|WEB-INF/lib/smack-2.0.0.jar -FILE|WEB-INF/lib/smackx-2.0.0.jar -FILE|WEB-INF/lib/standard-1.1.2.jar -FILE|WEB-INF/lib/velocity-1.4.jar -FILE|WEB-INF/lib/wagon-file-1.0-alpha-7.jar -FILE|WEB-INF/lib/wagon-http-lightweight-1.0-alpha-6.jar -FILE|WEB-INF/lib/wagon-provider-api-1.0-alpha-6.jar -FILE|WEB-INF/lib/wagon-ssh-1.0-alpha-7.jar -FILE|WEB-INF/lib/wagon-ssh-external-1.0-alpha-6.jar -FILE|WEB-INF/lib/webwork-2.2.4.jar -FILE|WEB-INF/lib/xmlrpc-1.2.jar -FILE|WEB-INF/lib/xwork-1.2.1.jar -FILE|WEB-INF/sitemesh.xml -FILE|WEB-INF/web.xml -FILE|css/ -FILE|css/extremecomponents.css -FILE|css/print.css -FILE|css/tigris.css -FILE|favicon.ico -FILE|images/ -FILE|images/arrow.gif -FILE|images/asf_logo_wide.gif -FILE|images/bg_warning.gif -FILE|images/buildhistory.gif -FILE|images/buildhistory_disabled.gif -FILE|images/building.gif -FILE|images/buildnow.gif -FILE|images/buildnow_disabled.gif -FILE|images/cancelbuild.gif -FILE|images/checkingout.gif -FILE|images/continuum_logo_75.gif -FILE|images/delete.gif -FILE|images/delete_disabled.gif -FILE|images/edit.gif -FILE|images/edit_disabled.gif -FILE|images/file.gif -FILE|images/folder-closed.gif -FILE|images/folder-open.gif -FILE|images/footerborder.gif -FILE|images/icon_arrowfolder1_sml.gif -FILE|images/icon_arrowfolder2_sml.gif -FILE|images/icon_arrowfolderclosed1_sml.gif -FILE|images/icon_arrowfolderopen2_sml.gif -FILE|images/icon_error_lrg.gif -FILE|images/icon_error_sml.gif -FILE|images/icon_sortdown.gif -FILE|images/icon_sortleft.gif -FILE|images/icon_sortright.gif -FILE|images/icon_sortup.gif -FILE|images/icon_success_sml.gif -FILE|images/icon_warning_sml.gif -FILE|images/inqueue.gif -FILE|images/legendbg.gif -FILE|images/legendbg2.gif -FILE|images/link.gif -FILE|images/linkover.gif -FILE|images/maestro_logo.gif -FILE|images/mergere-small.gif -FILE|images/nw_maj.gif -FILE|images/nw_maj_hi.gif -FILE|images/nw_maj_rond.gif -FILE|images/nw_med.gif -FILE|images/nw_med_hi.gif -FILE|images/nw_med_rond.gif -FILE|images/nw_min.gif -FILE|images/nw_min_036.gif -FILE|images/nw_min_hi.gif -FILE|images/releaseproject.gif -FILE|images/releaseproject_disabled.gif -FILE|images/se_maj_rond.gif -FILE|images/strich.gif -FILE|images/super.gif -FILE|images/sw_maj_rond.gif -FILE|images/sw_med_rond.gif -FILE|images/sw_min.gif -FILE|images/workingcopy.gif -FILE|images/workingcopy_disabled.gif -FILE|index.jsp -FILE|scripts/ -FILE|scripts/tigris.js -FILE|template/ -FILE|template/pss/ -FILE|template/pss/checkboxlist.ftl diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/daytrader-ear-1.1.ear.txt b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/daytrader-ear-1.1.ear.txt deleted file mode 100644 index 875ffdf51..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/daytrader-ear-1.1.ear.txt +++ /dev/null @@ -1,18 +0,0 @@ -FILENAME|daytrader-ear-1.1.ear -SIZE|1005420 -HASH_MD5|4d677e8e95fb342512e3d05ea68a501d -HASH_SHA1|58f1e8ae41f12747947c947437e262d9f3bd3ce7 -HASH_BYTECODE| -JDK|1.0 -FILE|META-INF/ -FILE|META-INF/MANIFEST.MF -FILE|META-INF/application.xml -FILE|META-INF/maven/ -FILE|META-INF/maven/geronimo/ -FILE|META-INF/maven/geronimo/daytrader-ear/ -FILE|META-INF/maven/geronimo/daytrader-ear/pom.properties -FILE|META-INF/maven/geronimo/daytrader-ear/pom.xml -FILE|dt-ejb.jar -FILE|streamer.jar -FILE|web.war -FILE|wsappclient.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/maven-archetype-simple-1.0-alpha-4.jar.txt b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/maven-archetype-simple-1.0-alpha-4.jar.txt deleted file mode 100644 index 7b7cbd491..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/maven-archetype-simple-1.0-alpha-4.jar.txt +++ /dev/null @@ -1,19 +0,0 @@ -FILENAME|maven-archetype-simple-1.0-alpha-4.jar -SIZE|4451 -HASH_MD5|446c23f1e3f88f2dd2d490f8492f65dc -HASH_SHA1|a9a5b26651836425dacd77fa3646701dff648e14 -HASH_BYTECODE|734edd1419ea3e792e7c15b22b1d823947c43e5a -JDK|1.1 -CLASS|archetype.App -METHOD|archetype.App.()V -METHOD|archetype.App.main([Ljava/lang/String;)V -FILE|META-INF/ -FILE|META-INF/MANIFEST.MF -FILE|META-INF/maven/ -FILE|META-INF/maven/org.apache.maven.archetypes/ -FILE|META-INF/maven/org.apache.maven.archetypes/maven-archetype-simple/ -FILE|META-INF/maven/org.apache.maven.archetypes/maven-archetype-simple/pom.properties -FILE|META-INF/maven/org.apache.maven.archetypes/maven-archetype-simple/pom.xml -FILE|app.properties -FILE|archetype/ -FILE|archetype/App.class diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/maven-help-plugin-2.0.2-20070119.121239-2.jar.txt b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/maven-help-plugin-2.0.2-20070119.121239-2.jar.txt deleted file mode 100644 index e8572febd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/maven-help-plugin-2.0.2-20070119.121239-2.jar.txt +++ /dev/null @@ -1,88 +0,0 @@ -FILENAME|maven-help-plugin-2.0.2-20070119.121239-2.jar -SIZE|20741 -HASH_MD5|16b9374e2f36e42978880b62dce34a0a -HASH_SHA1|dc87f75ac4ba9c63066372ffae9830e42648f829 -HASH_BYTECODE|c4495d02a84259a458b13023d935efd8c33fcf33 -JDK|1.1 -CLASS|org.apache.maven.plugins.help.ActiveProfilesMojo -CLASS|org.apache.maven.plugins.help.DependenciesMojo -CLASS|org.apache.maven.plugins.help.DescribeMojo$1 -CLASS|org.apache.maven.plugins.help.DescribeMojo$PluginInfo -CLASS|org.apache.maven.plugins.help.DescribeMojo -CLASS|org.apache.maven.plugins.help.EffectivePomMojo -CLASS|org.apache.maven.plugins.help.EffectiveSettingsMojo -METHOD|org.apache.maven.plugins.help.ActiveProfilesMojo.()V -METHOD|org.apache.maven.plugins.help.ActiveProfilesMojo.execute()V -METHOD|org.apache.maven.plugins.help.ActiveProfilesMojo.writeFile(Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.plugins.help.ActiveProfilesMojo.getActiveProfileStatement(Lorg/apache/maven/project/MavenProject;Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.plugins.help.ActiveProfilesMojo.setProjects(Ljava/util/List;)V -METHOD|org.apache.maven.plugins.help.DependenciesMojo.()V -METHOD|org.apache.maven.plugins.help.DependenciesMojo.execute()V -METHOD|org.apache.maven.plugins.help.DependenciesMojo.serialiseDependencyTree(Lorg/apache/maven/shared/dependency/tree/DependencyTree;)Ljava/lang/String; -METHOD|org.apache.maven.plugins.help.DependenciesMojo.serialiseDependencyNode(Lorg/apache/maven/shared/dependency/tree/DependencyNode;Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.plugins.help.DependenciesMojo.write(Ljava/lang/String;Ljava/io/File;)V -METHOD|org.apache.maven.plugins.help.DependenciesMojo.log(Ljava/lang/String;)V -METHOD|org.apache.maven.plugins.help.DependenciesMojo.()V -METHOD|org.apache.maven.plugins.help.DescribeMojo$PluginInfo.()V -METHOD|org.apache.maven.plugins.help.DescribeMojo$PluginInfo.(Lorg/apache/maven/plugins/help/DescribeMojo$1;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.()V -METHOD|org.apache.maven.plugins.help.DescribeMojo.execute()V -METHOD|org.apache.maven.plugins.help.DescribeMojo.writeDescription(Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.lookupPluginDescriptor(Lorg/apache/maven/plugins/help/DescribeMojo$PluginInfo;)Lorg/apache/maven/plugin/descriptor/PluginDescriptor; -METHOD|org.apache.maven.plugins.help.DescribeMojo.parsePluginLookupInfo(Lorg/apache/maven/plugins/help/DescribeMojo$PluginInfo;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.describePlugin(Lorg/apache/maven/plugin/descriptor/PluginDescriptor;Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.formatDescription(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.plugins.help.DescribeMojo.prettyAppend(Ljava/lang/String;Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.describeMojo(Lorg/apache/maven/plugin/descriptor/MojoDescriptor;Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.describeMojoGuts(Lorg/apache/maven/plugin/descriptor/MojoDescriptor;Ljava/lang/StringBuffer;Z)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.describeMojoRequirements(Lorg/apache/maven/plugin/descriptor/MojoDescriptor;Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.describeMojoParameters(Lorg/apache/maven/plugin/descriptor/MojoDescriptor;Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.getPlugin()Ljava/lang/String; -METHOD|org.apache.maven.plugins.help.DescribeMojo.setPlugin(Ljava/lang/String;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.getPluginManager()Lorg/apache/maven/plugin/PluginManager; -METHOD|org.apache.maven.plugins.help.DescribeMojo.setPluginManager(Lorg/apache/maven/plugin/PluginManager;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.getArtifactId()Ljava/lang/String; -METHOD|org.apache.maven.plugins.help.DescribeMojo.setArtifactId(Ljava/lang/String;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.getGroupId()Ljava/lang/String; -METHOD|org.apache.maven.plugins.help.DescribeMojo.setGroupId(Ljava/lang/String;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.getLocalRepository()Lorg/apache/maven/artifact/repository/ArtifactRepository; -METHOD|org.apache.maven.plugins.help.DescribeMojo.setLocalRepository(Lorg/apache/maven/artifact/repository/ArtifactRepository;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.getMojo()Ljava/lang/String; -METHOD|org.apache.maven.plugins.help.DescribeMojo.setMojo(Ljava/lang/String;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.getOutput()Ljava/io/File; -METHOD|org.apache.maven.plugins.help.DescribeMojo.setOutput(Ljava/io/File;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.getProject()Lorg/apache/maven/project/MavenProject; -METHOD|org.apache.maven.plugins.help.DescribeMojo.setProject(Lorg/apache/maven/project/MavenProject;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.getSettings()Lorg/apache/maven/settings/Settings; -METHOD|org.apache.maven.plugins.help.DescribeMojo.setSettings(Lorg/apache/maven/settings/Settings;)V -METHOD|org.apache.maven.plugins.help.DescribeMojo.getVersion()Ljava/lang/String; -METHOD|org.apache.maven.plugins.help.DescribeMojo.setVersion(Ljava/lang/String;)V -METHOD|org.apache.maven.plugins.help.EffectivePomMojo.()V -METHOD|org.apache.maven.plugins.help.EffectivePomMojo.execute()V -METHOD|org.apache.maven.plugins.help.EffectivePomMojo.getEffectivePom(Lorg/apache/maven/project/MavenProject;Ljava/lang/StringBuffer;)V -METHOD|org.apache.maven.plugins.help.EffectivePomMojo.setOutput(Ljava/io/File;)V -METHOD|org.apache.maven.plugins.help.EffectivePomMojo.setProjects(Ljava/util/List;)V -METHOD|org.apache.maven.plugins.help.EffectiveSettingsMojo.()V -METHOD|org.apache.maven.plugins.help.EffectiveSettingsMojo.execute()V -METHOD|org.apache.maven.plugins.help.EffectiveSettingsMojo.setOutput(Ljava/lang/String;)V -METHOD|org.apache.maven.plugins.help.EffectiveSettingsMojo.setSettings(Lorg/apache/maven/settings/Settings;)V -FILE|META-INF/ -FILE|META-INF/MANIFEST.MF -FILE|META-INF/maven/ -FILE|META-INF/maven/org.apache.maven.plugins/ -FILE|META-INF/maven/org.apache.maven.plugins/maven-help-plugin/ -FILE|META-INF/maven/org.apache.maven.plugins/maven-help-plugin/pom.properties -FILE|META-INF/maven/org.apache.maven.plugins/maven-help-plugin/pom.xml -FILE|META-INF/maven/plugin.xml -FILE|org/ -FILE|org/apache/ -FILE|org/apache/maven/ -FILE|org/apache/maven/plugins/ -FILE|org/apache/maven/plugins/help/ -FILE|org/apache/maven/plugins/help/ActiveProfilesMojo.class -FILE|org/apache/maven/plugins/help/DependenciesMojo.class -FILE|org/apache/maven/plugins/help/DescribeMojo$1.class -FILE|org/apache/maven/plugins/help/DescribeMojo$PluginInfo.class -FILE|org/apache/maven/plugins/help/DescribeMojo.class -FILE|org/apache/maven/plugins/help/EffectivePomMojo.class -FILE|org/apache/maven/plugins/help/EffectiveSettingsMojo.class diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/redback-authorization-open-1.0-alpha-1-SNAPSHOT.jar.txt b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/redback-authorization-open-1.0-alpha-1-SNAPSHOT.jar.txt deleted file mode 100644 index bbad7a8a2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/redback-authorization-open-1.0-alpha-1-SNAPSHOT.jar.txt +++ /dev/null @@ -1,26 +0,0 @@ -FILENAME|redback-authorization-open-1.0-alpha-1-SNAPSHOT.jar -SIZE|4080 -HASH_MD5|f42047fe2e177ac04d0df7aa44d408be -HASH_SHA1|2bb14b388973351b0a4dfe11d171965f59cc61a1 -HASH_BYTECODE|817c08abe3d48d67a5c49c13e7c5497da7bd5e8e -JDK|1.4 -CLASS|org.codehaus.plexus.redback.authorization.open.OpenAuthorizer -METHOD|org.codehaus.plexus.redback.authorization.open.OpenAuthorizer.()V -METHOD|org.codehaus.plexus.redback.authorization.open.OpenAuthorizer.getId()Ljava/lang/String; -METHOD|org.codehaus.plexus.redback.authorization.open.OpenAuthorizer.isAuthorized(Lorg/codehaus/plexus/redback/authorization/AuthorizationDataSource;)Lorg/codehaus/plexus/redback/authorization/AuthorizationResult; -FILE|META-INF/ -FILE|META-INF/MANIFEST.MF -FILE|META-INF/maven/ -FILE|META-INF/maven/org.codehaus.plexus.redback/ -FILE|META-INF/maven/org.codehaus.plexus.redback/redback-authorization-open/ -FILE|META-INF/maven/org.codehaus.plexus.redback/redback-authorization-open/pom.properties -FILE|META-INF/maven/org.codehaus.plexus.redback/redback-authorization-open/pom.xml -FILE|META-INF/plexus/ -FILE|META-INF/plexus/components.xml -FILE|org/ -FILE|org/codehaus/ -FILE|org/codehaus/plexus/ -FILE|org/codehaus/plexus/redback/ -FILE|org/codehaus/plexus/redback/authorization/ -FILE|org/codehaus/plexus/redback/authorization/open/ -FILE|org/codehaus/plexus/redback/authorization/open/OpenAuthorizer.class diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/testng-5.1-jdk15.jar.txt b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/testng-5.1-jdk15.jar.txt deleted file mode 100644 index 2e5f53abc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/testng-5.1-jdk15.jar.txt +++ /dev/null @@ -1,4789 +0,0 @@ -FILENAME|testng-5.1-jdk15.jar -SIZE|692505 -HASH_MD5|3345656c1bf32a45e9546d69e35a21d4 -HASH_SHA1|7a0d2b8239517c561aefe2fa2971db522a3e3a47 -HASH_BYTECODE|0ea3f1aa7fc9725958af443f2e4ca13bd7d60968 -JDK|1.5 -CLASS|bsh.BSHAllocationExpression -CLASS|bsh.BSHAmbiguousName -CLASS|bsh.BSHArguments -CLASS|bsh.BSHArrayDimensions -CLASS|bsh.BSHArrayInitializer -CLASS|bsh.BSHAssignment -CLASS|bsh.BSHBinaryExpression -CLASS|bsh.BSHBlock$NodeFilter -CLASS|bsh.BSHBlock -CLASS|bsh.BSHCastExpression -CLASS|bsh.BSHClassDeclaration -CLASS|bsh.BSHEnhancedForStatement -CLASS|bsh.BSHForStatement -CLASS|bsh.BSHFormalComment -CLASS|bsh.BSHFormalParameter -CLASS|bsh.BSHFormalParameters -CLASS|bsh.BSHIfStatement -CLASS|bsh.BSHImportDeclaration -CLASS|bsh.BSHLiteral -CLASS|bsh.BSHMethodDeclaration -CLASS|bsh.BSHMethodInvocation -CLASS|bsh.BSHPackageDeclaration -CLASS|bsh.BSHPrimaryExpression -CLASS|bsh.BSHPrimarySuffix -CLASS|bsh.BSHPrimitiveType -CLASS|bsh.BSHReturnStatement -CLASS|bsh.BSHReturnType -CLASS|bsh.BSHStatementExpressionList -CLASS|bsh.BSHSwitchLabel -CLASS|bsh.BSHSwitchStatement -CLASS|bsh.BSHTernaryExpression -CLASS|bsh.BSHThrowStatement -CLASS|bsh.BSHTryStatement -CLASS|bsh.BSHType -CLASS|bsh.BSHTypedVariableDeclaration -CLASS|bsh.BSHUnaryExpression -CLASS|bsh.BSHVariableDeclarator -CLASS|bsh.BSHWhileStatement -CLASS|bsh.BlockNameSpace -CLASS|bsh.BshClassManager$Listener -CLASS|bsh.BshClassManager$SignatureKey -CLASS|bsh.BshClassManager -CLASS|bsh.BshIterator -CLASS|bsh.BshMethod -CLASS|bsh.CallStack -CLASS|bsh.Capabilities$Unavailable -CLASS|bsh.Capabilities -CLASS|bsh.ClassGenerator -CLASS|bsh.ClassGeneratorImpl$ClassNodeFilter -CLASS|bsh.ClassGeneratorImpl -CLASS|bsh.ClassGeneratorUtil$ConstructorArgs -CLASS|bsh.ClassGeneratorUtil -CLASS|bsh.ClassIdentifier -CLASS|bsh.ClassPathException -CLASS|bsh.CollectionManager$1 -CLASS|bsh.CollectionManager$BasicBshIterator -CLASS|bsh.CollectionManager -CLASS|bsh.CommandLineReader -CLASS|bsh.Console -CLASS|bsh.ConsoleInterface -CLASS|bsh.DelayedEvalBshMethod -CLASS|bsh.EvalError -CLASS|bsh.ExternalNameSpace -CLASS|bsh.Interpreter$1 -CLASS|bsh.Interpreter -CLASS|bsh.InterpreterError -CLASS|bsh.JJTParserState -CLASS|bsh.JavaCharStream -CLASS|bsh.LHS -CLASS|bsh.Modifiers -CLASS|bsh.Name -CLASS|bsh.NameSource$Listener -CLASS|bsh.NameSource -CLASS|bsh.NameSpace -CLASS|bsh.Node -CLASS|bsh.ParseException -CLASS|bsh.Parser$1 -CLASS|bsh.Parser$LookaheadSuccess -CLASS|bsh.Parser -CLASS|bsh.ParserConstants -CLASS|bsh.ParserTokenManager -CLASS|bsh.ParserTreeConstants -CLASS|bsh.Primitive$Special -CLASS|bsh.Primitive -CLASS|bsh.Reflect -CLASS|bsh.ReflectError -CLASS|bsh.ReflectManager -CLASS|bsh.Remote -CLASS|bsh.ReturnControl -CLASS|bsh.SimpleNode$1 -CLASS|bsh.SimpleNode -CLASS|bsh.StringUtil -CLASS|bsh.TargetError -CLASS|bsh.This -CLASS|bsh.Token -CLASS|bsh.TokenMgrError -CLASS|bsh.Types -CLASS|bsh.UtilEvalError -CLASS|bsh.UtilTargetError -CLASS|bsh.Variable -CLASS|bsh.XThis$Handler -CLASS|bsh.XThis -CLASS|bsh.classpath.BshClassLoader -CLASS|bsh.classpath.BshClassPath$AmbiguousName -CLASS|bsh.classpath.BshClassPath$ClassSource -CLASS|bsh.classpath.BshClassPath$DirClassSource -CLASS|bsh.classpath.BshClassPath$GeneratedClassSource -CLASS|bsh.classpath.BshClassPath$JarClassSource -CLASS|bsh.classpath.BshClassPath$MappingFeedback -CLASS|bsh.classpath.BshClassPath$UnqualifiedNameTable -CLASS|bsh.classpath.BshClassPath -CLASS|bsh.classpath.ClassManagerImpl -CLASS|bsh.classpath.ClassPathListener -CLASS|bsh.classpath.DiscreteFilesClassLoader$ClassSourceMap -CLASS|bsh.classpath.DiscreteFilesClassLoader -CLASS|bsh.collection.CollectionIterator -CLASS|bsh.collection.CollectionManagerImpl -CLASS|bsh.commands.dir -CLASS|bsh.org.objectweb.asm.ByteVector -CLASS|bsh.org.objectweb.asm.ClassVisitor -CLASS|bsh.org.objectweb.asm.ClassWriter -CLASS|bsh.org.objectweb.asm.CodeVisitor -CLASS|bsh.org.objectweb.asm.CodeWriter -CLASS|bsh.org.objectweb.asm.Constants -CLASS|bsh.org.objectweb.asm.Edge -CLASS|bsh.org.objectweb.asm.Item -CLASS|bsh.org.objectweb.asm.Label -CLASS|bsh.org.objectweb.asm.Type -CLASS|bsh.reflect.ReflectManagerImpl -CLASS|bsh.servlet.BshServlet -CLASS|bsh.servlet.SimpleTemplate -CLASS|bsh.util.AWTConsole$1 -CLASS|bsh.util.AWTConsole -CLASS|bsh.util.AWTDemoApplet -CLASS|bsh.util.AWTRemoteApplet -CLASS|bsh.util.BeanShellBSFEngine -CLASS|bsh.util.BshCanvas -CLASS|bsh.util.ClassBrowser$1 -CLASS|bsh.util.ClassBrowser$2 -CLASS|bsh.util.ClassBrowser$PackageTree -CLASS|bsh.util.ClassBrowser -CLASS|bsh.util.GUIConsoleInterface -CLASS|bsh.util.Httpd -CLASS|bsh.util.HttpdConnection -CLASS|bsh.util.JConsole$1 -CLASS|bsh.util.JConsole$2 -CLASS|bsh.util.JConsole$3 -CLASS|bsh.util.JConsole$4 -CLASS|bsh.util.JConsole$5 -CLASS|bsh.util.JConsole$BlockingPipedInputStream -CLASS|bsh.util.JConsole -CLASS|bsh.util.JDemoApplet -CLASS|bsh.util.JRemoteApplet -CLASS|bsh.util.NameCompletion -CLASS|bsh.util.NameCompletionTable -CLASS|bsh.util.Sessiond -CLASS|bsh.util.SessiondConnection -CLASS|bsh.util.Util -CLASS|com.beust.testng.TestNG -CLASS|com.beust.testng.TestNGAntTask -CLASS|com.thoughtworks.qdox.JavaDocBuilder$1 -CLASS|com.thoughtworks.qdox.JavaDocBuilder -CLASS|com.thoughtworks.qdox.Searcher -CLASS|com.thoughtworks.qdox.ant.AbstractQdoxTask -CLASS|com.thoughtworks.qdox.directorywalker.DirectoryScanner$1 -CLASS|com.thoughtworks.qdox.directorywalker.DirectoryScanner -CLASS|com.thoughtworks.qdox.directorywalker.FileVisitor -CLASS|com.thoughtworks.qdox.directorywalker.Filter -CLASS|com.thoughtworks.qdox.directorywalker.SuffixFilter -CLASS|com.thoughtworks.qdox.junit.APITestCase$1 -CLASS|com.thoughtworks.qdox.junit.APITestCase -CLASS|com.thoughtworks.qdox.model.AbstractInheritableJavaEntity -CLASS|com.thoughtworks.qdox.model.AbstractJavaEntity -CLASS|com.thoughtworks.qdox.model.BeanProperty -CLASS|com.thoughtworks.qdox.model.ClassLibrary -CLASS|com.thoughtworks.qdox.model.DefaultDocletTag -CLASS|com.thoughtworks.qdox.model.DefaultDocletTagFactory -CLASS|com.thoughtworks.qdox.model.DocletTag -CLASS|com.thoughtworks.qdox.model.DocletTagFactory -CLASS|com.thoughtworks.qdox.model.IndentBuffer -CLASS|com.thoughtworks.qdox.model.JavaClass -CLASS|com.thoughtworks.qdox.model.JavaClassCache -CLASS|com.thoughtworks.qdox.model.JavaClassParent -CLASS|com.thoughtworks.qdox.model.JavaField -CLASS|com.thoughtworks.qdox.model.JavaMethod -CLASS|com.thoughtworks.qdox.model.JavaParameter -CLASS|com.thoughtworks.qdox.model.JavaSource -CLASS|com.thoughtworks.qdox.model.Member -CLASS|com.thoughtworks.qdox.model.ModelBuilder -CLASS|com.thoughtworks.qdox.model.Type -CLASS|com.thoughtworks.qdox.model.util.TagParser -CLASS|com.thoughtworks.qdox.parser.Builder -CLASS|com.thoughtworks.qdox.parser.Lexer -CLASS|com.thoughtworks.qdox.parser.ParseException -CLASS|com.thoughtworks.qdox.parser.impl.JFlexLexer -CLASS|com.thoughtworks.qdox.parser.impl.Parser$1 -CLASS|com.thoughtworks.qdox.parser.impl.Parser$Value -CLASS|com.thoughtworks.qdox.parser.impl.Parser -CLASS|com.thoughtworks.qdox.parser.structs.ClassDef -CLASS|com.thoughtworks.qdox.parser.structs.FieldDef -CLASS|com.thoughtworks.qdox.parser.structs.LocatedDef -CLASS|com.thoughtworks.qdox.parser.structs.MethodDef -CLASS|com.thoughtworks.qdox.parser.structs.TagDef -CLASS|com.thoughtworks.qdox.parser.structs.TypeDef -CLASS|org.testng.Assert -CLASS|org.testng.AssertJUnit -CLASS|org.testng.ClassMethodMap -CLASS|org.testng.IClass -CLASS|org.testng.IExtraOutput -CLASS|org.testng.IHookCallBack -CLASS|org.testng.IHookable -CLASS|org.testng.IInstanceInfo -CLASS|org.testng.IMethodSelector -CLASS|org.testng.IReporter -CLASS|org.testng.IResultMap -CLASS|org.testng.ISuite -CLASS|org.testng.ISuiteListener -CLASS|org.testng.ISuiteResult -CLASS|org.testng.ITest -CLASS|org.testng.ITestClass -CLASS|org.testng.ITestClassFinder -CLASS|org.testng.ITestContext -CLASS|org.testng.ITestListener -CLASS|org.testng.ITestMethodFinder -CLASS|org.testng.ITestNGMethod -CLASS|org.testng.ITestResult -CLASS|org.testng.ITestRunnerFactory -CLASS|org.testng.JUnitConverter -CLASS|org.testng.JUnitConverterTask -CLASS|org.testng.Reporter -CLASS|org.testng.SuiteResult$1 -CLASS|org.testng.SuiteResult -CLASS|org.testng.SuiteRunner$DefaultTestRunnerFactory -CLASS|org.testng.SuiteRunner$ProxyTestRunnerFactory -CLASS|org.testng.SuiteRunner -CLASS|org.testng.TestClass -CLASS|org.testng.TestException -CLASS|org.testng.TestListenerAdapter -CLASS|org.testng.TestNG -CLASS|org.testng.TestNGAntTask -CLASS|org.testng.TestNGCommandLineArgs -CLASS|org.testng.TestNGException -CLASS|org.testng.TestRunner -CLASS|org.testng.annotations.AfterClass -CLASS|org.testng.annotations.AfterGroups -CLASS|org.testng.annotations.AfterMethod -CLASS|org.testng.annotations.AfterSuite -CLASS|org.testng.annotations.AfterTest -CLASS|org.testng.annotations.BeforeClass -CLASS|org.testng.annotations.BeforeGroups -CLASS|org.testng.annotations.BeforeMethod -CLASS|org.testng.annotations.BeforeSuite -CLASS|org.testng.annotations.BeforeTest -CLASS|org.testng.annotations.Configuration -CLASS|org.testng.annotations.DataProvider -CLASS|org.testng.annotations.ExpectedExceptions -CLASS|org.testng.annotations.Factory -CLASS|org.testng.annotations.Parameters -CLASS|org.testng.annotations.Test -CLASS|org.testng.internal.ArrayIterator -CLASS|org.testng.internal.BaseClassFinder -CLASS|org.testng.internal.BaseTestMethod$1 -CLASS|org.testng.internal.BaseTestMethod -CLASS|org.testng.internal.ClassHelper -CLASS|org.testng.internal.ClassImpl -CLASS|org.testng.internal.ConfigurationGroupMethods -CLASS|org.testng.internal.ConfigurationMethod -CLASS|org.testng.internal.Constants -CLASS|org.testng.internal.ExtraOutput -CLASS|org.testng.internal.FactoryMethod -CLASS|org.testng.internal.Graph$Node -CLASS|org.testng.internal.Graph -CLASS|org.testng.internal.HostFile -CLASS|org.testng.internal.IInvoker -CLASS|org.testng.internal.ITestResultNotifier -CLASS|org.testng.internal.InstanceInfo -CLASS|org.testng.internal.InvokeMethodRunnable$TestNGRuntimeException -CLASS|org.testng.internal.InvokeMethodRunnable -CLASS|org.testng.internal.InvokedMethod -CLASS|org.testng.internal.Invoker$1 -CLASS|org.testng.internal.Invoker -CLASS|org.testng.internal.JUnitUtils -CLASS|org.testng.internal.MethodHelper -CLASS|org.testng.internal.MethodInheritance -CLASS|org.testng.internal.MethodSelectorDescriptor -CLASS|org.testng.internal.PackageUtils$1 -CLASS|org.testng.internal.PackageUtils -CLASS|org.testng.internal.Parameters -CLASS|org.testng.internal.ResultMap -CLASS|org.testng.internal.RunInfo -CLASS|org.testng.internal.TestMethodWorker -CLASS|org.testng.internal.TestNGClassFinder -CLASS|org.testng.internal.TestNGMethod$1 -CLASS|org.testng.internal.TestNGMethod -CLASS|org.testng.internal.TestNGMethodFinder -CLASS|org.testng.internal.TestNGProperty -CLASS|org.testng.internal.TestResult -CLASS|org.testng.internal.Utils -CLASS|org.testng.internal.XmlMethodSelector -CLASS|org.testng.internal.annotations.AfterSuiteAnnotation -CLASS|org.testng.internal.annotations.AnnotationConfiguration -CLASS|org.testng.internal.annotations.AnnotationHelper -CLASS|org.testng.internal.annotations.BaseBeforeAfter -CLASS|org.testng.internal.annotations.BeforeSuiteAnnotation -CLASS|org.testng.internal.annotations.ConfigurationAnnotation -CLASS|org.testng.internal.annotations.Converter -CLASS|org.testng.internal.annotations.DataProviderAnnotation -CLASS|org.testng.internal.annotations.ExpectedExceptionsAnnotation -CLASS|org.testng.internal.annotations.FactoryAnnotation -CLASS|org.testng.internal.annotations.IAfterClass -CLASS|org.testng.internal.annotations.IAfterGroups -CLASS|org.testng.internal.annotations.IAfterMethod -CLASS|org.testng.internal.annotations.IAfterSuite -CLASS|org.testng.internal.annotations.IAfterTest -CLASS|org.testng.internal.annotations.IAfterTests -CLASS|org.testng.internal.annotations.IAnnotation -CLASS|org.testng.internal.annotations.IAnnotationFinder -CLASS|org.testng.internal.annotations.IBaseBeforeAfter -CLASS|org.testng.internal.annotations.IBeforeClass -CLASS|org.testng.internal.annotations.IBeforeGroups -CLASS|org.testng.internal.annotations.IBeforeMethod -CLASS|org.testng.internal.annotations.IBeforeSuite -CLASS|org.testng.internal.annotations.IBeforeTest -CLASS|org.testng.internal.annotations.IConfiguration -CLASS|org.testng.internal.annotations.IDataProvider -CLASS|org.testng.internal.annotations.IExpectedExceptions -CLASS|org.testng.internal.annotations.IFactory -CLASS|org.testng.internal.annotations.IParameterizable -CLASS|org.testng.internal.annotations.IParameters -CLASS|org.testng.internal.annotations.ITest -CLASS|org.testng.internal.annotations.ITestOrConfiguration -CLASS|org.testng.internal.annotations.JDK14AnnotationFinder$1 -CLASS|org.testng.internal.annotations.JDK14AnnotationFinder -CLASS|org.testng.internal.annotations.JDK14TagFactory -CLASS|org.testng.internal.annotations.JDK15AnnotationFinder -CLASS|org.testng.internal.annotations.JDK15TagFactory -CLASS|org.testng.internal.annotations.ParametersAnnotation -CLASS|org.testng.internal.annotations.TestAnnotation -CLASS|org.testng.internal.annotations.TestOrConfiguration -CLASS|org.testng.internal.remote.SlavePool -CLASS|org.testng.internal.thread.CountDownAdapter -CLASS|org.testng.internal.thread.ExecutorAdapter -CLASS|org.testng.internal.thread.FutureResultAdapter -CLASS|org.testng.internal.thread.ICountDown -CLASS|org.testng.internal.thread.IExecutor -CLASS|org.testng.internal.thread.IFutureResult -CLASS|org.testng.internal.thread.IPooledExecutor -CLASS|org.testng.internal.thread.IThreadFactory -CLASS|org.testng.internal.thread.PooledExecutorAdapter -CLASS|org.testng.internal.thread.TestNGThread -CLASS|org.testng.internal.thread.ThreadExecutionException -CLASS|org.testng.internal.thread.ThreadTimeoutException -CLASS|org.testng.internal.thread.ThreadUtil$ThreadFactoryImpl -CLASS|org.testng.internal.thread.ThreadUtil -CLASS|org.testng.junit.INameFilter -CLASS|org.testng.junit.JUnitClassFinder -CLASS|org.testng.junit.JUnitDirectoryConverter -CLASS|org.testng.junit.JUnitMethodFinder$1 -CLASS|org.testng.junit.JUnitMethodFinder$2 -CLASS|org.testng.junit.JUnitMethodFinder$3 -CLASS|org.testng.junit.JUnitMethodFinder -CLASS|org.testng.junit.JUnitTestConverter -CLASS|org.testng.log.TextFormatter -CLASS|org.testng.log4testng.Logger -CLASS|org.testng.remote.ConnectionInfo -CLASS|org.testng.remote.RemoteSuiteWorker -CLASS|org.testng.remote.RemoteTestWorker -CLASS|org.testng.remote.RemoteWorker -CLASS|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient$ServerConnection -CLASS|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient -CLASS|org.testng.remote.strprotocol.GenericMessage -CLASS|org.testng.remote.strprotocol.IMessage -CLASS|org.testng.remote.strprotocol.IRemoteSuiteListener -CLASS|org.testng.remote.strprotocol.IRemoteTestListener -CLASS|org.testng.remote.strprotocol.IStringMessage -CLASS|org.testng.remote.strprotocol.MessageHelper -CLASS|org.testng.remote.strprotocol.RemoteMessageSenderTestListener -CLASS|org.testng.remote.strprotocol.StringMessageSenderHelper$ReaderThread -CLASS|org.testng.remote.strprotocol.StringMessageSenderHelper -CLASS|org.testng.remote.strprotocol.SuiteMessage -CLASS|org.testng.remote.strprotocol.TestMessage -CLASS|org.testng.remote.strprotocol.TestResultMessage -CLASS|org.testng.reporters.DotTestListener -CLASS|org.testng.reporters.ExitCodeListener -CLASS|org.testng.reporters.FailedReporter -CLASS|org.testng.reporters.HtmlHelper -CLASS|org.testng.reporters.JUnitXMLReporter -CLASS|org.testng.reporters.SuiteHTMLReporter$1 -CLASS|org.testng.reporters.SuiteHTMLReporter -CLASS|org.testng.reporters.Tag -CLASS|org.testng.reporters.TestHTMLReporter$1 -CLASS|org.testng.reporters.TestHTMLReporter -CLASS|org.testng.reporters.TextReporter -CLASS|org.testng.reporters.XMLConstants -CLASS|org.testng.reporters.XMLReporter -CLASS|org.testng.reporters.XMLStringBuffer -CLASS|org.testng.reporters.XMLUtils -CLASS|org.testng.xml.ClassSuite -CLASS|org.testng.xml.LaunchSuite$1 -CLASS|org.testng.xml.LaunchSuite$ClassListSuite -CLASS|org.testng.xml.LaunchSuite$CustomizedSuite -CLASS|org.testng.xml.LaunchSuite$ExistingSuite -CLASS|org.testng.xml.LaunchSuite$MethodsSuite -CLASS|org.testng.xml.LaunchSuite -CLASS|org.testng.xml.Parser -CLASS|org.testng.xml.SuiteGenerator -CLASS|org.testng.xml.TestNGContentHandler -CLASS|org.testng.xml.XmlClass -CLASS|org.testng.xml.XmlMethodSelector -CLASS|org.testng.xml.XmlPackage -CLASS|org.testng.xml.XmlSuite -CLASS|org.testng.xml.XmlTest -METHOD|bsh.BSHAllocationExpression.(I)V -METHOD|bsh.BSHAllocationExpression.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHAllocationExpression.objectAllocation(Lbsh/BSHAmbiguousName;Lbsh/BSHArguments;Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHAllocationExpression.constructObject(Ljava/lang/Class;[Ljava/lang/Object;Lbsh/CallStack;)Ljava/lang/Object; -METHOD|bsh.BSHAllocationExpression.constructWithClassBody(Ljava/lang/Class;[Ljava/lang/Object;Lbsh/BSHBlock;Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHAllocationExpression.constructWithInterfaceBody(Ljava/lang/Class;[Ljava/lang/Object;Lbsh/BSHBlock;Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHAllocationExpression.objectArrayAllocation(Lbsh/BSHAmbiguousName;Lbsh/BSHArrayDimensions;Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHAllocationExpression.primitiveArrayAllocation(Lbsh/BSHPrimitiveType;Lbsh/BSHArrayDimensions;Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHAllocationExpression.arrayAllocation(Lbsh/BSHArrayDimensions;Ljava/lang/Class;Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHAllocationExpression.arrayNewInstance(Ljava/lang/Class;Lbsh/BSHArrayDimensions;Lbsh/CallStack;)Ljava/lang/Object; -METHOD|bsh.BSHAllocationExpression.()V -METHOD|bsh.BSHAmbiguousName.(I)V -METHOD|bsh.BSHAmbiguousName.getName(Lbsh/NameSpace;)Lbsh/Name; -METHOD|bsh.BSHAmbiguousName.toObject(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHAmbiguousName.toObject(Lbsh/CallStack;Lbsh/Interpreter;Z)Ljava/lang/Object; -METHOD|bsh.BSHAmbiguousName.toClass(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Class; -METHOD|bsh.BSHAmbiguousName.toLHS(Lbsh/CallStack;Lbsh/Interpreter;)Lbsh/LHS; -METHOD|bsh.BSHAmbiguousName.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHAmbiguousName.toString()Ljava/lang/String; -METHOD|bsh.BSHArguments.(I)V -METHOD|bsh.BSHArguments.getArguments(Lbsh/CallStack;Lbsh/Interpreter;)[Ljava/lang/Object; -METHOD|bsh.BSHArrayDimensions.(I)V -METHOD|bsh.BSHArrayDimensions.addDefinedDimension()V -METHOD|bsh.BSHArrayDimensions.addUndefinedDimension()V -METHOD|bsh.BSHArrayDimensions.eval(Ljava/lang/Class;Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHArrayDimensions.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHArrayInitializer.(I)V -METHOD|bsh.BSHArrayInitializer.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHArrayInitializer.eval(Ljava/lang/Class;ILbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHArrayInitializer.throwTypeError(Ljava/lang/Class;Ljava/lang/Object;ILbsh/CallStack;)V -METHOD|bsh.BSHAssignment.(I)V -METHOD|bsh.BSHAssignment.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHAssignment.operation(Ljava/lang/Object;Ljava/lang/Object;I)Ljava/lang/Object; -METHOD|bsh.BSHBinaryExpression.(I)V -METHOD|bsh.BSHBinaryExpression.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHBinaryExpression.isPrimitiveValue(Ljava/lang/Object;)Z -METHOD|bsh.BSHBinaryExpression.isWrapper(Ljava/lang/Object;)Z -METHOD|bsh.BSHBinaryExpression.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.BSHBlock$NodeFilter.isVisible(Lbsh/SimpleNode;)Z -METHOD|bsh.BSHBlock.(I)V -METHOD|bsh.BSHBlock.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHBlock.eval(Lbsh/CallStack;Lbsh/Interpreter;Z)Ljava/lang/Object; -METHOD|bsh.BSHBlock.evalBlock(Lbsh/CallStack;Lbsh/Interpreter;ZLbsh/BSHBlock$NodeFilter;)Ljava/lang/Object; -METHOD|bsh.BSHCastExpression.(I)V -METHOD|bsh.BSHCastExpression.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHClassDeclaration.(I)V -METHOD|bsh.BSHClassDeclaration.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHClassDeclaration.toString()Ljava/lang/String; -METHOD|bsh.BSHEnhancedForStatement.(I)V -METHOD|bsh.BSHEnhancedForStatement.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHForStatement.(I)V -METHOD|bsh.BSHForStatement.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHFormalComment.(I)V -METHOD|bsh.BSHFormalParameter.(I)V -METHOD|bsh.BSHFormalParameter.getTypeDescriptor(Lbsh/CallStack;Lbsh/Interpreter;Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.BSHFormalParameter.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHFormalParameter.()V -METHOD|bsh.BSHFormalParameters.(I)V -METHOD|bsh.BSHFormalParameters.insureParsed()V -METHOD|bsh.BSHFormalParameters.getParamNames()[Ljava/lang/String; -METHOD|bsh.BSHFormalParameters.getTypeDescriptors(Lbsh/CallStack;Lbsh/Interpreter;Ljava/lang/String;)[Ljava/lang/String; -METHOD|bsh.BSHFormalParameters.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHIfStatement.(I)V -METHOD|bsh.BSHIfStatement.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHIfStatement.evaluateCondition(Lbsh/SimpleNode;Lbsh/CallStack;Lbsh/Interpreter;)Z -METHOD|bsh.BSHImportDeclaration.(I)V -METHOD|bsh.BSHImportDeclaration.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHLiteral.(I)V -METHOD|bsh.BSHLiteral.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHLiteral.getEscapeChar(C)C -METHOD|bsh.BSHLiteral.charSetup(Ljava/lang/String;)V -METHOD|bsh.BSHLiteral.stringSetup(Ljava/lang/String;)V -METHOD|bsh.BSHMethodDeclaration.(I)V -METHOD|bsh.BSHMethodDeclaration.insureNodesParsed()V -METHOD|bsh.BSHMethodDeclaration.evalReturnType(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Class; -METHOD|bsh.BSHMethodDeclaration.getReturnTypeDescriptor(Lbsh/CallStack;Lbsh/Interpreter;Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.BSHMethodDeclaration.getReturnTypeNode()Lbsh/BSHReturnType; -METHOD|bsh.BSHMethodDeclaration.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHMethodDeclaration.evalNodes(Lbsh/CallStack;Lbsh/Interpreter;)V -METHOD|bsh.BSHMethodDeclaration.toString()Ljava/lang/String; -METHOD|bsh.BSHMethodInvocation.(I)V -METHOD|bsh.BSHMethodInvocation.getNameNode()Lbsh/BSHAmbiguousName; -METHOD|bsh.BSHMethodInvocation.getArgsNode()Lbsh/BSHArguments; -METHOD|bsh.BSHMethodInvocation.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHPackageDeclaration.(I)V -METHOD|bsh.BSHPackageDeclaration.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHPrimaryExpression.(I)V -METHOD|bsh.BSHPrimaryExpression.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHPrimaryExpression.toLHS(Lbsh/CallStack;Lbsh/Interpreter;)Lbsh/LHS; -METHOD|bsh.BSHPrimaryExpression.eval(ZLbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHPrimarySuffix.(I)V -METHOD|bsh.BSHPrimarySuffix.doSuffix(Ljava/lang/Object;ZLbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHPrimarySuffix.doName(Ljava/lang/Object;ZLbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHPrimarySuffix.getIndexAux(Ljava/lang/Object;Lbsh/CallStack;Lbsh/Interpreter;Lbsh/SimpleNode;)I -METHOD|bsh.BSHPrimarySuffix.doIndex(Ljava/lang/Object;ZLbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHPrimarySuffix.doProperty(ZLjava/lang/Object;Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHPrimitiveType.(I)V -METHOD|bsh.BSHPrimitiveType.getType()Ljava/lang/Class; -METHOD|bsh.BSHReturnStatement.(I)V -METHOD|bsh.BSHReturnStatement.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHReturnType.(I)V -METHOD|bsh.BSHReturnType.getTypeNode()Lbsh/BSHType; -METHOD|bsh.BSHReturnType.getTypeDescriptor(Lbsh/CallStack;Lbsh/Interpreter;Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.BSHReturnType.evalReturnType(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Class; -METHOD|bsh.BSHStatementExpressionList.(I)V -METHOD|bsh.BSHStatementExpressionList.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHSwitchLabel.(I)V -METHOD|bsh.BSHSwitchLabel.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHSwitchStatement.(I)V -METHOD|bsh.BSHSwitchStatement.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHSwitchStatement.primitiveEquals(Ljava/lang/Object;Ljava/lang/Object;Lbsh/CallStack;Lbsh/SimpleNode;)Z -METHOD|bsh.BSHTernaryExpression.(I)V -METHOD|bsh.BSHTernaryExpression.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHThrowStatement.(I)V -METHOD|bsh.BSHThrowStatement.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHTryStatement.(I)V -METHOD|bsh.BSHTryStatement.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHType.(I)V -METHOD|bsh.BSHType.addArrayDimension()V -METHOD|bsh.BSHType.getTypeNode()Lbsh/SimpleNode; -METHOD|bsh.BSHType.getTypeDescriptor(Lbsh/CallStack;Lbsh/Interpreter;Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.BSHType.getType(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Class; -METHOD|bsh.BSHType.getBaseType()Ljava/lang/Class; -METHOD|bsh.BSHType.getArrayDims()I -METHOD|bsh.BSHType.classLoaderChanged()V -METHOD|bsh.BSHType.getTypeDescriptor(Ljava/lang/Class;)Ljava/lang/String; -METHOD|bsh.BSHTypedVariableDeclaration.(I)V -METHOD|bsh.BSHTypedVariableDeclaration.getTypeNode()Lbsh/BSHType; -METHOD|bsh.BSHTypedVariableDeclaration.evalType(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Class; -METHOD|bsh.BSHTypedVariableDeclaration.getDeclarators()[Lbsh/BSHVariableDeclarator; -METHOD|bsh.BSHTypedVariableDeclaration.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHTypedVariableDeclaration.getTypeDescriptor(Lbsh/CallStack;Lbsh/Interpreter;Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.BSHUnaryExpression.(I)V -METHOD|bsh.BSHUnaryExpression.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHUnaryExpression.lhsUnaryOperation(Lbsh/LHS;Z)Ljava/lang/Object; -METHOD|bsh.BSHUnaryExpression.unaryOperation(Ljava/lang/Object;I)Ljava/lang/Object; -METHOD|bsh.BSHUnaryExpression.primitiveWrapperUnaryOperation(Ljava/lang/Object;I)Ljava/lang/Object; -METHOD|bsh.BSHVariableDeclarator.(I)V -METHOD|bsh.BSHVariableDeclarator.eval(Lbsh/BSHType;Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BSHVariableDeclarator.toString()Ljava/lang/String; -METHOD|bsh.BSHWhileStatement.(I)V -METHOD|bsh.BSHWhileStatement.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BlockNameSpace.(Lbsh/NameSpace;)V -METHOD|bsh.BlockNameSpace.setVariable(Ljava/lang/String;Ljava/lang/Object;ZZ)V -METHOD|bsh.BlockNameSpace.setBlockVariable(Ljava/lang/String;Ljava/lang/Object;)V -METHOD|bsh.BlockNameSpace.weHaveVar(Ljava/lang/String;)Z -METHOD|bsh.BlockNameSpace.getNonBlockParent()Lbsh/NameSpace; -METHOD|bsh.BlockNameSpace.getThis(Lbsh/Interpreter;)Lbsh/This; -METHOD|bsh.BlockNameSpace.getSuper(Lbsh/Interpreter;)Lbsh/This; -METHOD|bsh.BlockNameSpace.importClass(Ljava/lang/String;)V -METHOD|bsh.BlockNameSpace.importPackage(Ljava/lang/String;)V -METHOD|bsh.BlockNameSpace.setMethod(Ljava/lang/String;Lbsh/BshMethod;)V -METHOD|bsh.BshClassManager$Listener.classLoaderChanged()V -METHOD|bsh.BshClassManager$SignatureKey.(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V -METHOD|bsh.BshClassManager$SignatureKey.hashCode()I -METHOD|bsh.BshClassManager$SignatureKey.equals(Ljava/lang/Object;)Z -METHOD|bsh.BshClassManager.()V -METHOD|bsh.BshClassManager.createClassManager(Lbsh/Interpreter;)Lbsh/BshClassManager; -METHOD|bsh.BshClassManager.classExists(Ljava/lang/String;)Z -METHOD|bsh.BshClassManager.classForName(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.BshClassManager.loadSourceClass(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.BshClassManager.plainClassForName(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.BshClassManager.getResource(Ljava/lang/String;)Ljava/net/URL; -METHOD|bsh.BshClassManager.getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream; -METHOD|bsh.BshClassManager.cacheClassInfo(Ljava/lang/String;Ljava/lang/Class;)V -METHOD|bsh.BshClassManager.cacheResolvedMethod(Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/reflect/Method;)V -METHOD|bsh.BshClassManager.getResolvedMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Z)Ljava/lang/reflect/Method; -METHOD|bsh.BshClassManager.clearCaches()V -METHOD|bsh.BshClassManager.setClassLoader(Ljava/lang/ClassLoader;)V -METHOD|bsh.BshClassManager.addClassPath(Ljava/net/URL;)V -METHOD|bsh.BshClassManager.reset()V -METHOD|bsh.BshClassManager.setClassPath([Ljava/net/URL;)V -METHOD|bsh.BshClassManager.reloadAllClasses()V -METHOD|bsh.BshClassManager.reloadClasses([Ljava/lang/String;)V -METHOD|bsh.BshClassManager.reloadPackage(Ljava/lang/String;)V -METHOD|bsh.BshClassManager.doSuperImport()V -METHOD|bsh.BshClassManager.hasSuperImport()Z -METHOD|bsh.BshClassManager.getClassNameByUnqName(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.BshClassManager.addListener(Lbsh/BshClassManager$Listener;)V -METHOD|bsh.BshClassManager.removeListener(Lbsh/BshClassManager$Listener;)V -METHOD|bsh.BshClassManager.dump(Ljava/io/PrintWriter;)V -METHOD|bsh.BshClassManager.definingClass(Ljava/lang/String;)V -METHOD|bsh.BshClassManager.isClassBeingDefined(Ljava/lang/String;)Z -METHOD|bsh.BshClassManager.getClassBeingDefined(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.BshClassManager.doneDefiningClass(Ljava/lang/String;)V -METHOD|bsh.BshClassManager.defineClass(Ljava/lang/String;[B)Ljava/lang/Class; -METHOD|bsh.BshClassManager.classLoaderChanged()V -METHOD|bsh.BshClassManager.noClassDefFound(Ljava/lang/String;Ljava/lang/Error;)Ljava/lang/Error; -METHOD|bsh.BshClassManager.cmUnavailable()Lbsh/UtilEvalError; -METHOD|bsh.BshClassManager.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.BshClassManager.()V -METHOD|bsh.BshIterator.next()Ljava/lang/Object; -METHOD|bsh.BshIterator.hasNext()Z -METHOD|bsh.BshMethod.(Lbsh/BSHMethodDeclaration;Lbsh/NameSpace;Lbsh/Modifiers;)V -METHOD|bsh.BshMethod.(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/String;[Ljava/lang/Class;Lbsh/BSHBlock;Lbsh/NameSpace;Lbsh/Modifiers;)V -METHOD|bsh.BshMethod.(Ljava/lang/reflect/Method;Ljava/lang/Object;)V -METHOD|bsh.BshMethod.getParameterTypes()[Ljava/lang/Class; -METHOD|bsh.BshMethod.getParameterNames()[Ljava/lang/String; -METHOD|bsh.BshMethod.getReturnType()Ljava/lang/Class; -METHOD|bsh.BshMethod.getModifiers()Lbsh/Modifiers; -METHOD|bsh.BshMethod.getName()Ljava/lang/String; -METHOD|bsh.BshMethod.invoke([Ljava/lang/Object;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.BshMethod.invoke([Ljava/lang/Object;Lbsh/Interpreter;Lbsh/CallStack;Lbsh/SimpleNode;)Ljava/lang/Object; -METHOD|bsh.BshMethod.invoke([Ljava/lang/Object;Lbsh/Interpreter;Lbsh/CallStack;Lbsh/SimpleNode;Z)Ljava/lang/Object; -METHOD|bsh.BshMethod.invokeImpl([Ljava/lang/Object;Lbsh/Interpreter;Lbsh/CallStack;Lbsh/SimpleNode;Z)Ljava/lang/Object; -METHOD|bsh.BshMethod.hasModifier(Ljava/lang/String;)Z -METHOD|bsh.BshMethod.toString()Ljava/lang/String; -METHOD|bsh.CallStack.()V -METHOD|bsh.CallStack.(Lbsh/NameSpace;)V -METHOD|bsh.CallStack.clear()V -METHOD|bsh.CallStack.push(Lbsh/NameSpace;)V -METHOD|bsh.CallStack.top()Lbsh/NameSpace; -METHOD|bsh.CallStack.get(I)Lbsh/NameSpace; -METHOD|bsh.CallStack.set(ILbsh/NameSpace;)V -METHOD|bsh.CallStack.pop()Lbsh/NameSpace; -METHOD|bsh.CallStack.swap(Lbsh/NameSpace;)Lbsh/NameSpace; -METHOD|bsh.CallStack.depth()I -METHOD|bsh.CallStack.toArray()[Lbsh/NameSpace; -METHOD|bsh.CallStack.toString()Ljava/lang/String; -METHOD|bsh.CallStack.copy()Lbsh/CallStack; -METHOD|bsh.Capabilities$Unavailable.(Ljava/lang/String;)V -METHOD|bsh.Capabilities.()V -METHOD|bsh.Capabilities.haveSwing()Z -METHOD|bsh.Capabilities.canGenerateInterfaces()Z -METHOD|bsh.Capabilities.haveAccessibility()Z -METHOD|bsh.Capabilities.setAccessibility(Z)V -METHOD|bsh.Capabilities.classExists(Ljava/lang/String;)Z -METHOD|bsh.Capabilities.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.Capabilities.()V -METHOD|bsh.ClassGenerator.()V -METHOD|bsh.ClassGenerator.getClassGenerator()Lbsh/ClassGenerator; -METHOD|bsh.ClassGenerator.generateClass(Ljava/lang/String;Lbsh/Modifiers;[Ljava/lang/Class;Ljava/lang/Class;Lbsh/BSHBlock;ZLbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Class; -METHOD|bsh.ClassGenerator.invokeSuperclassMethod(Lbsh/BshClassManager;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.ClassGenerator.setInstanceNameSpaceParent(Ljava/lang/Object;Ljava/lang/String;Lbsh/NameSpace;)V -METHOD|bsh.ClassGeneratorImpl$ClassNodeFilter.(I)V -METHOD|bsh.ClassGeneratorImpl$ClassNodeFilter.isVisible(Lbsh/SimpleNode;)Z -METHOD|bsh.ClassGeneratorImpl$ClassNodeFilter.isStatic(Lbsh/SimpleNode;)Z -METHOD|bsh.ClassGeneratorImpl$ClassNodeFilter.()V -METHOD|bsh.ClassGeneratorImpl.()V -METHOD|bsh.ClassGeneratorImpl.generateClass(Ljava/lang/String;Lbsh/Modifiers;[Ljava/lang/Class;Ljava/lang/Class;Lbsh/BSHBlock;ZLbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Class; -METHOD|bsh.ClassGeneratorImpl.invokeSuperclassMethod(Lbsh/BshClassManager;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.ClassGeneratorImpl.setInstanceNameSpaceParent(Ljava/lang/Object;Ljava/lang/String;Lbsh/NameSpace;)V -METHOD|bsh.ClassGeneratorImpl.generateClassImpl(Ljava/lang/String;Lbsh/Modifiers;[Ljava/lang/Class;Ljava/lang/Class;Lbsh/BSHBlock;ZLbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Class; -METHOD|bsh.ClassGeneratorImpl.getDeclaredVariables(Lbsh/BSHBlock;Lbsh/CallStack;Lbsh/Interpreter;Ljava/lang/String;)[Lbsh/Variable; -METHOD|bsh.ClassGeneratorImpl.getDeclaredMethods(Lbsh/BSHBlock;Lbsh/CallStack;Lbsh/Interpreter;Ljava/lang/String;)[Lbsh/DelayedEvalBshMethod; -METHOD|bsh.ClassGeneratorImpl.invokeSuperclassMethodImpl(Lbsh/BshClassManager;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.()V -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.(I[Ljava/lang/Object;)V -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.next()Ljava/lang/Object; -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.getBoolean()Z -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.getByte()B -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.getChar()C -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.getShort()S -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.getInt()I -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.getLong()J -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.getDouble()D -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.getFloat()F -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.getObject()Ljava/lang/Object; -METHOD|bsh.ClassGeneratorUtil$ConstructorArgs.()V -METHOD|bsh.ClassGeneratorUtil.(Lbsh/Modifiers;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;[Lbsh/Variable;[Lbsh/DelayedEvalBshMethod;Lbsh/NameSpace;Z)V -METHOD|bsh.ClassGeneratorUtil.generateClass()[B -METHOD|bsh.ClassGeneratorUtil.getASMModifiers(Lbsh/Modifiers;)I -METHOD|bsh.ClassGeneratorUtil.generateField(Ljava/lang/String;Ljava/lang/String;ILbsh/org/objectweb/asm/ClassWriter;)V -METHOD|bsh.ClassGeneratorUtil.generateMethod(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ILbsh/org/objectweb/asm/ClassWriter;)V -METHOD|bsh.ClassGeneratorUtil.generateConstructor(I[Ljava/lang/String;ILbsh/org/objectweb/asm/ClassWriter;)V -METHOD|bsh.ClassGeneratorUtil.generateConstructorSwitch(IIILbsh/org/objectweb/asm/CodeVisitor;)V -METHOD|bsh.ClassGeneratorUtil.doSwitchBranch(ILjava/lang/String;[Ljava/lang/String;Lbsh/org/objectweb/asm/Label;[Lbsh/org/objectweb/asm/Label;ILbsh/org/objectweb/asm/CodeVisitor;)V -METHOD|bsh.ClassGeneratorUtil.getMethodDescriptor(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.ClassGeneratorUtil.generateSuperDelegateMethod(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ILbsh/org/objectweb/asm/ClassWriter;)V -METHOD|bsh.ClassGeneratorUtil.classContainsMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/String;)Z -METHOD|bsh.ClassGeneratorUtil.generatePlainReturnCode(Ljava/lang/String;Lbsh/org/objectweb/asm/CodeVisitor;)V -METHOD|bsh.ClassGeneratorUtil.generateParameterReifierCode([Ljava/lang/String;ZLbsh/org/objectweb/asm/CodeVisitor;)V -METHOD|bsh.ClassGeneratorUtil.generateReturnCode(Ljava/lang/String;Lbsh/org/objectweb/asm/CodeVisitor;)V -METHOD|bsh.ClassGeneratorUtil.getConstructorArgs(Ljava/lang/String;Lbsh/This;[Ljava/lang/Object;I)Lbsh/ClassGeneratorUtil$ConstructorArgs; -METHOD|bsh.ClassGeneratorUtil.initInstance(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V -METHOD|bsh.ClassGeneratorUtil.getClassStaticThis(Ljava/lang/Class;Ljava/lang/String;)Lbsh/This; -METHOD|bsh.ClassGeneratorUtil.getClassInstanceThis(Ljava/lang/Object;Ljava/lang/String;)Lbsh/This; -METHOD|bsh.ClassGeneratorUtil.isPrimitive(Ljava/lang/String;)Z -METHOD|bsh.ClassGeneratorUtil.getTypeDescriptors([Ljava/lang/Class;)[Ljava/lang/String; -METHOD|bsh.ClassGeneratorUtil.descriptorToClassName(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.ClassGeneratorUtil.getBaseName(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.ClassGeneratorUtil.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.ClassIdentifier.(Ljava/lang/Class;)V -METHOD|bsh.ClassIdentifier.getTargetClass()Ljava/lang/Class; -METHOD|bsh.ClassIdentifier.toString()Ljava/lang/String; -METHOD|bsh.ClassPathException.(Ljava/lang/String;)V -METHOD|bsh.CollectionManager$1.(Lbsh/CollectionManager$BasicBshIterator;Ljava/lang/Object;)V -METHOD|bsh.CollectionManager$1.nextElement()Ljava/lang/Object; -METHOD|bsh.CollectionManager$1.hasMoreElements()Z -METHOD|bsh.CollectionManager$BasicBshIterator.(Ljava/lang/Object;)V -METHOD|bsh.CollectionManager$BasicBshIterator.createEnumeration(Ljava/lang/Object;)Ljava/util/Enumeration; -METHOD|bsh.CollectionManager$BasicBshIterator.next()Ljava/lang/Object; -METHOD|bsh.CollectionManager$BasicBshIterator.hasNext()Z -METHOD|bsh.CollectionManager.()V -METHOD|bsh.CollectionManager.getCollectionManager()Lbsh/CollectionManager; -METHOD|bsh.CollectionManager.isBshIterable(Ljava/lang/Object;)Z -METHOD|bsh.CollectionManager.getBshIterator(Ljava/lang/Object;)Lbsh/BshIterator; -METHOD|bsh.CollectionManager.isMap(Ljava/lang/Object;)Z -METHOD|bsh.CollectionManager.getFromMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.CollectionManager.putInMap(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.CommandLineReader.(Ljava/io/Reader;)V -METHOD|bsh.CommandLineReader.read()I -METHOD|bsh.CommandLineReader.read([CII)I -METHOD|bsh.CommandLineReader.main([Ljava/lang/String;)V -METHOD|bsh.Console.()V -METHOD|bsh.Console.main([Ljava/lang/String;)V -METHOD|bsh.ConsoleInterface.getIn()Ljava/io/Reader; -METHOD|bsh.ConsoleInterface.getOut()Ljava/io/PrintStream; -METHOD|bsh.ConsoleInterface.getErr()Ljava/io/PrintStream; -METHOD|bsh.ConsoleInterface.println(Ljava/lang/Object;)V -METHOD|bsh.ConsoleInterface.print(Ljava/lang/Object;)V -METHOD|bsh.ConsoleInterface.error(Ljava/lang/Object;)V -METHOD|bsh.DelayedEvalBshMethod.(Ljava/lang/String;Ljava/lang/String;Lbsh/BSHReturnType;[Ljava/lang/String;[Ljava/lang/String;Lbsh/BSHFormalParameters;Lbsh/BSHBlock;Lbsh/NameSpace;Lbsh/Modifiers;Lbsh/CallStack;Lbsh/Interpreter;)V -METHOD|bsh.DelayedEvalBshMethod.getReturnTypeDescriptor()Ljava/lang/String; -METHOD|bsh.DelayedEvalBshMethod.getReturnType()Ljava/lang/Class; -METHOD|bsh.DelayedEvalBshMethod.getParamTypeDescriptors()[Ljava/lang/String; -METHOD|bsh.DelayedEvalBshMethod.getParameterTypes()[Ljava/lang/Class; -METHOD|bsh.EvalError.(Ljava/lang/String;Lbsh/SimpleNode;Lbsh/CallStack;)V -METHOD|bsh.EvalError.toString()Ljava/lang/String; -METHOD|bsh.EvalError.reThrow(Ljava/lang/String;)V -METHOD|bsh.EvalError.getNode()Lbsh/SimpleNode; -METHOD|bsh.EvalError.setNode(Lbsh/SimpleNode;)V -METHOD|bsh.EvalError.getErrorText()Ljava/lang/String; -METHOD|bsh.EvalError.getErrorLineNumber()I -METHOD|bsh.EvalError.getErrorSourceFile()Ljava/lang/String; -METHOD|bsh.EvalError.getScriptStackTrace()Ljava/lang/String; -METHOD|bsh.EvalError.getMessage()Ljava/lang/String; -METHOD|bsh.EvalError.setMessage(Ljava/lang/String;)V -METHOD|bsh.EvalError.prependMessage(Ljava/lang/String;)V -METHOD|bsh.ExternalNameSpace.()V -METHOD|bsh.ExternalNameSpace.(Lbsh/NameSpace;Ljava/lang/String;Ljava/util/Map;)V -METHOD|bsh.ExternalNameSpace.getMap()Ljava/util/Map; -METHOD|bsh.ExternalNameSpace.setMap(Ljava/util/Map;)V -METHOD|bsh.ExternalNameSpace.setVariable(Ljava/lang/String;Ljava/lang/Object;ZZ)V -METHOD|bsh.ExternalNameSpace.unsetVariable(Ljava/lang/String;)V -METHOD|bsh.ExternalNameSpace.getVariableNames()[Ljava/lang/String; -METHOD|bsh.ExternalNameSpace.getVariableImpl(Ljava/lang/String;Z)Lbsh/Variable; -METHOD|bsh.ExternalNameSpace.getDeclaredVariables()[Lbsh/Variable; -METHOD|bsh.ExternalNameSpace.setTypedVariable(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Lbsh/Modifiers;)V -METHOD|bsh.ExternalNameSpace.setMethod(Ljava/lang/String;Lbsh/BshMethod;)V -METHOD|bsh.ExternalNameSpace.getMethod(Ljava/lang/String;[Ljava/lang/Class;Z)Lbsh/BshMethod; -METHOD|bsh.ExternalNameSpace.getAllNamesAux(Ljava/util/Vector;)V -METHOD|bsh.ExternalNameSpace.clear()V -METHOD|bsh.ExternalNameSpace.putExternalMap(Ljava/lang/String;Ljava/lang/Object;)V -METHOD|bsh.Interpreter$1.(Ljava/io/InputStream;)V -METHOD|bsh.Interpreter$1.available()I -METHOD|bsh.Interpreter.(Ljava/io/Reader;Ljava/io/PrintStream;Ljava/io/PrintStream;ZLbsh/NameSpace;Lbsh/Interpreter;Ljava/lang/String;)V -METHOD|bsh.Interpreter.(Ljava/io/Reader;Ljava/io/PrintStream;Ljava/io/PrintStream;ZLbsh/NameSpace;)V -METHOD|bsh.Interpreter.(Ljava/io/Reader;Ljava/io/PrintStream;Ljava/io/PrintStream;Z)V -METHOD|bsh.Interpreter.(Lbsh/ConsoleInterface;Lbsh/NameSpace;)V -METHOD|bsh.Interpreter.(Lbsh/ConsoleInterface;)V -METHOD|bsh.Interpreter.()V -METHOD|bsh.Interpreter.setConsole(Lbsh/ConsoleInterface;)V -METHOD|bsh.Interpreter.initRootSystemObject()V -METHOD|bsh.Interpreter.setNameSpace(Lbsh/NameSpace;)V -METHOD|bsh.Interpreter.getNameSpace()Lbsh/NameSpace; -METHOD|bsh.Interpreter.main([Ljava/lang/String;)V -METHOD|bsh.Interpreter.invokeMain(Ljava/lang/Class;[Ljava/lang/String;)V -METHOD|bsh.Interpreter.run()V -METHOD|bsh.Interpreter.source(Ljava/lang/String;Lbsh/NameSpace;)Ljava/lang/Object; -METHOD|bsh.Interpreter.source(Ljava/lang/String;)Ljava/lang/Object; -METHOD|bsh.Interpreter.eval(Ljava/io/Reader;Lbsh/NameSpace;Ljava/lang/String;)Ljava/lang/Object; -METHOD|bsh.Interpreter.eval(Ljava/io/Reader;)Ljava/lang/Object; -METHOD|bsh.Interpreter.eval(Ljava/lang/String;)Ljava/lang/Object; -METHOD|bsh.Interpreter.eval(Ljava/lang/String;Lbsh/NameSpace;)Ljava/lang/Object; -METHOD|bsh.Interpreter.showEvalString(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.Interpreter.error(Ljava/lang/Object;)V -METHOD|bsh.Interpreter.getIn()Ljava/io/Reader; -METHOD|bsh.Interpreter.getOut()Ljava/io/PrintStream; -METHOD|bsh.Interpreter.getErr()Ljava/io/PrintStream; -METHOD|bsh.Interpreter.println(Ljava/lang/Object;)V -METHOD|bsh.Interpreter.print(Ljava/lang/Object;)V -METHOD|bsh.Interpreter.debug(Ljava/lang/String;)V -METHOD|bsh.Interpreter.get(Ljava/lang/String;)Ljava/lang/Object; -METHOD|bsh.Interpreter.getu(Ljava/lang/String;)Ljava/lang/Object; -METHOD|bsh.Interpreter.set(Ljava/lang/String;Ljava/lang/Object;)V -METHOD|bsh.Interpreter.setu(Ljava/lang/String;Ljava/lang/Object;)V -METHOD|bsh.Interpreter.set(Ljava/lang/String;J)V -METHOD|bsh.Interpreter.set(Ljava/lang/String;I)V -METHOD|bsh.Interpreter.set(Ljava/lang/String;D)V -METHOD|bsh.Interpreter.set(Ljava/lang/String;F)V -METHOD|bsh.Interpreter.set(Ljava/lang/String;Z)V -METHOD|bsh.Interpreter.unset(Ljava/lang/String;)V -METHOD|bsh.Interpreter.getInterface(Ljava/lang/Class;)Ljava/lang/Object; -METHOD|bsh.Interpreter.get_jjtree()Lbsh/JJTParserState; -METHOD|bsh.Interpreter.get_jj_input_stream()Lbsh/JavaCharStream; -METHOD|bsh.Interpreter.Line()Z -METHOD|bsh.Interpreter.loadRCFiles()V -METHOD|bsh.Interpreter.pathToFile(Ljava/lang/String;)Ljava/io/File; -METHOD|bsh.Interpreter.redirectOutputToFile(Ljava/lang/String;)V -METHOD|bsh.Interpreter.setClassLoader(Ljava/lang/ClassLoader;)V -METHOD|bsh.Interpreter.getClassManager()Lbsh/BshClassManager; -METHOD|bsh.Interpreter.setStrictJava(Z)V -METHOD|bsh.Interpreter.getStrictJava()Z -METHOD|bsh.Interpreter.staticInit()V -METHOD|bsh.Interpreter.getSourceFileInfo()Ljava/lang/String; -METHOD|bsh.Interpreter.getParent()Lbsh/Interpreter; -METHOD|bsh.Interpreter.setOut(Ljava/io/PrintStream;)V -METHOD|bsh.Interpreter.setErr(Ljava/io/PrintStream;)V -METHOD|bsh.Interpreter.readObject(Ljava/io/ObjectInputStream;)V -METHOD|bsh.Interpreter.getBshPrompt()Ljava/lang/String; -METHOD|bsh.Interpreter.setExitOnEOF(Z)V -METHOD|bsh.Interpreter.setShowResults(Z)V -METHOD|bsh.Interpreter.getShowResults()Z -METHOD|bsh.Interpreter.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.Interpreter.()V -METHOD|bsh.InterpreterError.(Ljava/lang/String;)V -METHOD|bsh.JJTParserState.()V -METHOD|bsh.JJTParserState.nodeCreated()Z -METHOD|bsh.JJTParserState.reset()V -METHOD|bsh.JJTParserState.rootNode()Lbsh/Node; -METHOD|bsh.JJTParserState.pushNode(Lbsh/Node;)V -METHOD|bsh.JJTParserState.popNode()Lbsh/Node; -METHOD|bsh.JJTParserState.peekNode()Lbsh/Node; -METHOD|bsh.JJTParserState.nodeArity()I -METHOD|bsh.JJTParserState.clearNodeScope(Lbsh/Node;)V -METHOD|bsh.JJTParserState.openNodeScope(Lbsh/Node;)V -METHOD|bsh.JJTParserState.closeNodeScope(Lbsh/Node;I)V -METHOD|bsh.JJTParserState.closeNodeScope(Lbsh/Node;Z)V -METHOD|bsh.JavaCharStream.hexval(C)I -METHOD|bsh.JavaCharStream.ExpandBuff(Z)V -METHOD|bsh.JavaCharStream.FillBuff()V -METHOD|bsh.JavaCharStream.ReadByte()C -METHOD|bsh.JavaCharStream.BeginToken()C -METHOD|bsh.JavaCharStream.AdjustBuffSize()V -METHOD|bsh.JavaCharStream.UpdateLineColumn(C)V -METHOD|bsh.JavaCharStream.readChar()C -METHOD|bsh.JavaCharStream.getColumn()I -METHOD|bsh.JavaCharStream.getLine()I -METHOD|bsh.JavaCharStream.getEndColumn()I -METHOD|bsh.JavaCharStream.getEndLine()I -METHOD|bsh.JavaCharStream.getBeginColumn()I -METHOD|bsh.JavaCharStream.getBeginLine()I -METHOD|bsh.JavaCharStream.backup(I)V -METHOD|bsh.JavaCharStream.(Ljava/io/Reader;III)V -METHOD|bsh.JavaCharStream.(Ljava/io/Reader;II)V -METHOD|bsh.JavaCharStream.(Ljava/io/Reader;)V -METHOD|bsh.JavaCharStream.ReInit(Ljava/io/Reader;III)V -METHOD|bsh.JavaCharStream.ReInit(Ljava/io/Reader;II)V -METHOD|bsh.JavaCharStream.ReInit(Ljava/io/Reader;)V -METHOD|bsh.JavaCharStream.(Ljava/io/InputStream;III)V -METHOD|bsh.JavaCharStream.(Ljava/io/InputStream;II)V -METHOD|bsh.JavaCharStream.(Ljava/io/InputStream;)V -METHOD|bsh.JavaCharStream.ReInit(Ljava/io/InputStream;III)V -METHOD|bsh.JavaCharStream.ReInit(Ljava/io/InputStream;II)V -METHOD|bsh.JavaCharStream.ReInit(Ljava/io/InputStream;)V -METHOD|bsh.JavaCharStream.GetImage()Ljava/lang/String; -METHOD|bsh.JavaCharStream.GetSuffix(I)[C -METHOD|bsh.JavaCharStream.Done()V -METHOD|bsh.JavaCharStream.adjustBeginLineColumn(II)V -METHOD|bsh.LHS.(Lbsh/NameSpace;Ljava/lang/String;)V -METHOD|bsh.LHS.(Lbsh/NameSpace;Ljava/lang/String;Z)V -METHOD|bsh.LHS.(Ljava/lang/reflect/Field;)V -METHOD|bsh.LHS.(Ljava/lang/Object;Ljava/lang/reflect/Field;)V -METHOD|bsh.LHS.(Ljava/lang/Object;Ljava/lang/String;)V -METHOD|bsh.LHS.(Ljava/lang/Object;I)V -METHOD|bsh.LHS.getValue()Ljava/lang/Object; -METHOD|bsh.LHS.assign(Ljava/lang/Object;Z)Ljava/lang/Object; -METHOD|bsh.LHS.toString()Ljava/lang/String; -METHOD|bsh.Modifiers.()V -METHOD|bsh.Modifiers.addModifier(ILjava/lang/String;)V -METHOD|bsh.Modifiers.hasModifier(Ljava/lang/String;)Z -METHOD|bsh.Modifiers.validateForMethod()V -METHOD|bsh.Modifiers.validateForField()V -METHOD|bsh.Modifiers.validateForClass()V -METHOD|bsh.Modifiers.insureNo(Ljava/lang/String;Ljava/lang/String;)V -METHOD|bsh.Modifiers.toString()Ljava/lang/String; -METHOD|bsh.Name.reset()V -METHOD|bsh.Name.(Lbsh/NameSpace;Ljava/lang/String;)V -METHOD|bsh.Name.toObject(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.Name.toObject(Lbsh/CallStack;Lbsh/Interpreter;Z)Ljava/lang/Object; -METHOD|bsh.Name.completeRound(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.Name.consumeNextObjectField(Lbsh/CallStack;Lbsh/Interpreter;ZZ)Ljava/lang/Object; -METHOD|bsh.Name.resolveThisFieldReference(Lbsh/CallStack;Lbsh/NameSpace;Lbsh/Interpreter;Ljava/lang/String;Z)Ljava/lang/Object; -METHOD|bsh.Name.getClassNameSpace(Lbsh/NameSpace;)Lbsh/NameSpace; -METHOD|bsh.Name.toClass()Ljava/lang/Class; -METHOD|bsh.Name.toLHS(Lbsh/CallStack;Lbsh/Interpreter;)Lbsh/LHS; -METHOD|bsh.Name.invokeMethod(Lbsh/Interpreter;[Ljava/lang/Object;Lbsh/CallStack;Lbsh/SimpleNode;)Ljava/lang/Object; -METHOD|bsh.Name.invokeLocalMethod(Lbsh/Interpreter;[Ljava/lang/Object;Lbsh/CallStack;Lbsh/SimpleNode;)Ljava/lang/Object; -METHOD|bsh.Name.isCompound(Ljava/lang/String;)Z -METHOD|bsh.Name.countParts(Ljava/lang/String;)I -METHOD|bsh.Name.prefix(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.Name.prefix(Ljava/lang/String;I)Ljava/lang/String; -METHOD|bsh.Name.suffix(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.Name.suffix(Ljava/lang/String;I)Ljava/lang/String; -METHOD|bsh.Name.toString()Ljava/lang/String; -METHOD|bsh.Name.()V -METHOD|bsh.NameSource$Listener.nameSourceChanged(Lbsh/NameSource;)V -METHOD|bsh.NameSource.getAllNames()[Ljava/lang/String; -METHOD|bsh.NameSource.addNameSourceListener(Lbsh/NameSource$Listener;)V -METHOD|bsh.NameSpace.setClassStatic(Ljava/lang/Class;)V -METHOD|bsh.NameSpace.setClassInstance(Ljava/lang/Object;)V -METHOD|bsh.NameSpace.getClassInstance()Ljava/lang/Object; -METHOD|bsh.NameSpace.(Lbsh/NameSpace;Ljava/lang/String;)V -METHOD|bsh.NameSpace.(Lbsh/BshClassManager;Ljava/lang/String;)V -METHOD|bsh.NameSpace.(Lbsh/NameSpace;Lbsh/BshClassManager;Ljava/lang/String;)V -METHOD|bsh.NameSpace.setName(Ljava/lang/String;)V -METHOD|bsh.NameSpace.getName()Ljava/lang/String; -METHOD|bsh.NameSpace.setNode(Lbsh/SimpleNode;)V -METHOD|bsh.NameSpace.getNode()Lbsh/SimpleNode; -METHOD|bsh.NameSpace.get(Ljava/lang/String;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.NameSpace.setVariable(Ljava/lang/String;Ljava/lang/Object;Z)V -METHOD|bsh.NameSpace.setLocalVariable(Ljava/lang/String;Ljava/lang/Object;Z)V -METHOD|bsh.NameSpace.setVariable(Ljava/lang/String;Ljava/lang/Object;ZZ)V -METHOD|bsh.NameSpace.unsetVariable(Ljava/lang/String;)V -METHOD|bsh.NameSpace.getVariableNames()[Ljava/lang/String; -METHOD|bsh.NameSpace.getMethodNames()[Ljava/lang/String; -METHOD|bsh.NameSpace.getMethods()[Lbsh/BshMethod; -METHOD|bsh.NameSpace.enumerationToStringArray(Ljava/util/Enumeration;)[Ljava/lang/String; -METHOD|bsh.NameSpace.flattenMethodCollection(Ljava/util/Enumeration;)[Lbsh/BshMethod; -METHOD|bsh.NameSpace.getParent()Lbsh/NameSpace; -METHOD|bsh.NameSpace.getSuper(Lbsh/Interpreter;)Lbsh/This; -METHOD|bsh.NameSpace.getGlobal(Lbsh/Interpreter;)Lbsh/This; -METHOD|bsh.NameSpace.getThis(Lbsh/Interpreter;)Lbsh/This; -METHOD|bsh.NameSpace.getClassManager()Lbsh/BshClassManager; -METHOD|bsh.NameSpace.setClassManager(Lbsh/BshClassManager;)V -METHOD|bsh.NameSpace.prune()V -METHOD|bsh.NameSpace.setParent(Lbsh/NameSpace;)V -METHOD|bsh.NameSpace.getVariable(Ljava/lang/String;)Ljava/lang/Object; -METHOD|bsh.NameSpace.getVariable(Ljava/lang/String;Z)Ljava/lang/Object; -METHOD|bsh.NameSpace.getVariableImpl(Ljava/lang/String;Z)Lbsh/Variable; -METHOD|bsh.NameSpace.getDeclaredVariables()[Lbsh/Variable; -METHOD|bsh.NameSpace.unwrapVariable(Lbsh/Variable;)Ljava/lang/Object; -METHOD|bsh.NameSpace.setTypedVariable(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Z)V -METHOD|bsh.NameSpace.setTypedVariable(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Lbsh/Modifiers;)V -METHOD|bsh.NameSpace.setMethod(Ljava/lang/String;Lbsh/BshMethod;)V -METHOD|bsh.NameSpace.getMethod(Ljava/lang/String;[Ljava/lang/Class;)Lbsh/BshMethod; -METHOD|bsh.NameSpace.getMethod(Ljava/lang/String;[Ljava/lang/Class;Z)Lbsh/BshMethod; -METHOD|bsh.NameSpace.importClass(Ljava/lang/String;)V -METHOD|bsh.NameSpace.importPackage(Ljava/lang/String;)V -METHOD|bsh.NameSpace.importCommands(Ljava/lang/String;)V -METHOD|bsh.NameSpace.getCommand(Ljava/lang/String;[Ljava/lang/Class;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.NameSpace.getImportedMethod(Ljava/lang/String;[Ljava/lang/Class;)Lbsh/BshMethod; -METHOD|bsh.NameSpace.getImportedVar(Ljava/lang/String;)Lbsh/Variable; -METHOD|bsh.NameSpace.loadScriptedCommand(Ljava/io/InputStream;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/String;Lbsh/Interpreter;)Lbsh/BshMethod; -METHOD|bsh.NameSpace.cacheClass(Ljava/lang/String;Ljava/lang/Class;)V -METHOD|bsh.NameSpace.getClass(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.NameSpace.getClassImpl(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.NameSpace.getImportedClassImpl(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.NameSpace.classForName(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.NameSpace.getAllNames()[Ljava/lang/String; -METHOD|bsh.NameSpace.getAllNamesAux(Ljava/util/Vector;)V -METHOD|bsh.NameSpace.addNameSourceListener(Lbsh/NameSource$Listener;)V -METHOD|bsh.NameSpace.doSuperImport()V -METHOD|bsh.NameSpace.toString()Ljava/lang/String; -METHOD|bsh.NameSpace.writeObject(Ljava/io/ObjectOutputStream;)V -METHOD|bsh.NameSpace.invokeMethod(Ljava/lang/String;[Ljava/lang/Object;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.NameSpace.invokeMethod(Ljava/lang/String;[Ljava/lang/Object;Lbsh/Interpreter;Lbsh/CallStack;Lbsh/SimpleNode;)Ljava/lang/Object; -METHOD|bsh.NameSpace.classLoaderChanged()V -METHOD|bsh.NameSpace.nameSpaceChanged()V -METHOD|bsh.NameSpace.loadDefaultImports()V -METHOD|bsh.NameSpace.getNameResolver(Ljava/lang/String;)Lbsh/Name; -METHOD|bsh.NameSpace.getInvocationLine()I -METHOD|bsh.NameSpace.getInvocationText()Ljava/lang/String; -METHOD|bsh.NameSpace.identifierToClass(Lbsh/ClassIdentifier;)Ljava/lang/Class; -METHOD|bsh.NameSpace.clear()V -METHOD|bsh.NameSpace.importObject(Ljava/lang/Object;)V -METHOD|bsh.NameSpace.importStatic(Ljava/lang/Class;)V -METHOD|bsh.NameSpace.setPackage(Ljava/lang/String;)V -METHOD|bsh.NameSpace.getPackage()Ljava/lang/String; -METHOD|bsh.NameSpace.()V -METHOD|bsh.Node.jjtOpen()V -METHOD|bsh.Node.jjtClose()V -METHOD|bsh.Node.jjtSetParent(Lbsh/Node;)V -METHOD|bsh.Node.jjtGetParent()Lbsh/Node; -METHOD|bsh.Node.jjtAddChild(Lbsh/Node;I)V -METHOD|bsh.Node.jjtGetChild(I)Lbsh/Node; -METHOD|bsh.Node.jjtGetNumChildren()I -METHOD|bsh.ParseException.setErrorSourceFile(Ljava/lang/String;)V -METHOD|bsh.ParseException.getErrorSourceFile()Ljava/lang/String; -METHOD|bsh.ParseException.(Lbsh/Token;[[I[Ljava/lang/String;)V -METHOD|bsh.ParseException.()V -METHOD|bsh.ParseException.(Ljava/lang/String;)V -METHOD|bsh.ParseException.getMessage()Ljava/lang/String; -METHOD|bsh.ParseException.getMessage(Z)Ljava/lang/String; -METHOD|bsh.ParseException.add_escapes(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.ParseException.getErrorLineNumber()I -METHOD|bsh.ParseException.getErrorText()Ljava/lang/String; -METHOD|bsh.ParseException.toString()Ljava/lang/String; -METHOD|bsh.Parser$LookaheadSuccess.()V -METHOD|bsh.Parser$LookaheadSuccess.(Lbsh/Parser$1;)V -METHOD|bsh.Parser.setRetainComments(Z)V -METHOD|bsh.Parser.jjtreeOpenNodeScope(Lbsh/Node;)V -METHOD|bsh.Parser.jjtreeCloseNodeScope(Lbsh/Node;)V -METHOD|bsh.Parser.reInitInput(Ljava/io/Reader;)V -METHOD|bsh.Parser.popNode()Lbsh/SimpleNode; -METHOD|bsh.Parser.reInitTokenInput(Ljava/io/Reader;)V -METHOD|bsh.Parser.main([Ljava/lang/String;)V -METHOD|bsh.Parser.isRegularForStatement()Z -METHOD|bsh.Parser.createParseException(Ljava/lang/String;)Lbsh/ParseException; -METHOD|bsh.Parser.Line()Z -METHOD|bsh.Parser.Modifiers(IZ)Lbsh/Modifiers; -METHOD|bsh.Parser.ClassDeclaration()V -METHOD|bsh.Parser.MethodDeclaration()V -METHOD|bsh.Parser.PackageDeclaration()V -METHOD|bsh.Parser.ImportDeclaration()V -METHOD|bsh.Parser.VariableDeclarator()V -METHOD|bsh.Parser.VariableInitializer()V -METHOD|bsh.Parser.ArrayInitializer()V -METHOD|bsh.Parser.FormalParameters()V -METHOD|bsh.Parser.FormalParameter()V -METHOD|bsh.Parser.Type()V -METHOD|bsh.Parser.ReturnType()V -METHOD|bsh.Parser.PrimitiveType()V -METHOD|bsh.Parser.AmbiguousName()V -METHOD|bsh.Parser.NameList()I -METHOD|bsh.Parser.Expression()V -METHOD|bsh.Parser.Assignment()V -METHOD|bsh.Parser.AssignmentOperator()I -METHOD|bsh.Parser.ConditionalExpression()V -METHOD|bsh.Parser.ConditionalOrExpression()V -METHOD|bsh.Parser.ConditionalAndExpression()V -METHOD|bsh.Parser.InclusiveOrExpression()V -METHOD|bsh.Parser.ExclusiveOrExpression()V -METHOD|bsh.Parser.AndExpression()V -METHOD|bsh.Parser.EqualityExpression()V -METHOD|bsh.Parser.InstanceOfExpression()V -METHOD|bsh.Parser.RelationalExpression()V -METHOD|bsh.Parser.ShiftExpression()V -METHOD|bsh.Parser.AdditiveExpression()V -METHOD|bsh.Parser.MultiplicativeExpression()V -METHOD|bsh.Parser.UnaryExpression()V -METHOD|bsh.Parser.PreIncrementExpression()V -METHOD|bsh.Parser.PreDecrementExpression()V -METHOD|bsh.Parser.UnaryExpressionNotPlusMinus()V -METHOD|bsh.Parser.CastLookahead()V -METHOD|bsh.Parser.PostfixExpression()V -METHOD|bsh.Parser.CastExpression()V -METHOD|bsh.Parser.PrimaryExpression()V -METHOD|bsh.Parser.MethodInvocation()V -METHOD|bsh.Parser.PrimaryPrefix()V -METHOD|bsh.Parser.PrimarySuffix()V -METHOD|bsh.Parser.Literal()V -METHOD|bsh.Parser.BooleanLiteral()Z -METHOD|bsh.Parser.NullLiteral()V -METHOD|bsh.Parser.VoidLiteral()V -METHOD|bsh.Parser.Arguments()V -METHOD|bsh.Parser.ArgumentList()V -METHOD|bsh.Parser.AllocationExpression()V -METHOD|bsh.Parser.ArrayDimensions()V -METHOD|bsh.Parser.Statement()V -METHOD|bsh.Parser.LabeledStatement()V -METHOD|bsh.Parser.Block()V -METHOD|bsh.Parser.BlockStatement()V -METHOD|bsh.Parser.FormalComment()V -METHOD|bsh.Parser.EmptyStatement()V -METHOD|bsh.Parser.StatementExpression()V -METHOD|bsh.Parser.SwitchStatement()V -METHOD|bsh.Parser.SwitchLabel()V -METHOD|bsh.Parser.IfStatement()V -METHOD|bsh.Parser.WhileStatement()V -METHOD|bsh.Parser.DoStatement()V -METHOD|bsh.Parser.ForStatement()V -METHOD|bsh.Parser.EnhancedForStatement()V -METHOD|bsh.Parser.ForInit()V -METHOD|bsh.Parser.TypedVariableDeclaration()V -METHOD|bsh.Parser.StatementExpressionList()V -METHOD|bsh.Parser.ForUpdate()V -METHOD|bsh.Parser.BreakStatement()V -METHOD|bsh.Parser.ContinueStatement()V -METHOD|bsh.Parser.ReturnStatement()V -METHOD|bsh.Parser.SynchronizedStatement()V -METHOD|bsh.Parser.ThrowStatement()V -METHOD|bsh.Parser.TryStatement()V -METHOD|bsh.Parser.jj_2_1(I)Z -METHOD|bsh.Parser.jj_2_2(I)Z -METHOD|bsh.Parser.jj_2_3(I)Z -METHOD|bsh.Parser.jj_2_4(I)Z -METHOD|bsh.Parser.jj_2_5(I)Z -METHOD|bsh.Parser.jj_2_6(I)Z -METHOD|bsh.Parser.jj_2_7(I)Z -METHOD|bsh.Parser.jj_2_8(I)Z -METHOD|bsh.Parser.jj_2_9(I)Z -METHOD|bsh.Parser.jj_2_10(I)Z -METHOD|bsh.Parser.jj_2_11(I)Z -METHOD|bsh.Parser.jj_2_12(I)Z -METHOD|bsh.Parser.jj_2_13(I)Z -METHOD|bsh.Parser.jj_2_14(I)Z -METHOD|bsh.Parser.jj_2_15(I)Z -METHOD|bsh.Parser.jj_2_16(I)Z -METHOD|bsh.Parser.jj_2_17(I)Z -METHOD|bsh.Parser.jj_2_18(I)Z -METHOD|bsh.Parser.jj_2_19(I)Z -METHOD|bsh.Parser.jj_2_20(I)Z -METHOD|bsh.Parser.jj_2_21(I)Z -METHOD|bsh.Parser.jj_2_22(I)Z -METHOD|bsh.Parser.jj_2_23(I)Z -METHOD|bsh.Parser.jj_2_24(I)Z -METHOD|bsh.Parser.jj_2_25(I)Z -METHOD|bsh.Parser.jj_2_26(I)Z -METHOD|bsh.Parser.jj_2_27(I)Z -METHOD|bsh.Parser.jj_2_28(I)Z -METHOD|bsh.Parser.jj_2_29(I)Z -METHOD|bsh.Parser.jj_2_30(I)Z -METHOD|bsh.Parser.jj_2_31(I)Z -METHOD|bsh.Parser.jj_3R_46()Z -METHOD|bsh.Parser.jj_3R_28()Z -METHOD|bsh.Parser.jj_3_23()Z -METHOD|bsh.Parser.jj_3R_161()Z -METHOD|bsh.Parser.jj_3R_38()Z -METHOD|bsh.Parser.jj_3R_158()Z -METHOD|bsh.Parser.jj_3R_40()Z -METHOD|bsh.Parser.jj_3R_156()Z -METHOD|bsh.Parser.jj_3R_165()Z -METHOD|bsh.Parser.jj_3R_153()Z -METHOD|bsh.Parser.jj_3R_90()Z -METHOD|bsh.Parser.jj_3R_89()Z -METHOD|bsh.Parser.jj_3R_88()Z -METHOD|bsh.Parser.jj_3R_162()Z -METHOD|bsh.Parser.jj_3R_87()Z -METHOD|bsh.Parser.jj_3R_148()Z -METHOD|bsh.Parser.jj_3R_86()Z -METHOD|bsh.Parser.jj_3R_85()Z -METHOD|bsh.Parser.jj_3R_84()Z -METHOD|bsh.Parser.jj_3R_159()Z -METHOD|bsh.Parser.jj_3R_83()Z -METHOD|bsh.Parser.jj_3R_135()Z -METHOD|bsh.Parser.jj_3R_82()Z -METHOD|bsh.Parser.jj_3R_81()Z -METHOD|bsh.Parser.jj_3R_80()Z -METHOD|bsh.Parser.jj_3R_108()Z -METHOD|bsh.Parser.jj_3R_79()Z -METHOD|bsh.Parser.jj_3R_78()Z -METHOD|bsh.Parser.jj_3_17()Z -METHOD|bsh.Parser.jj_3R_77()Z -METHOD|bsh.Parser.jj_3R_45()Z -METHOD|bsh.Parser.jj_3_22()Z -METHOD|bsh.Parser.jj_3R_34()Z -METHOD|bsh.Parser.jj_3R_111()Z -METHOD|bsh.Parser.jj_3R_160()Z -METHOD|bsh.Parser.jj_3R_152()Z -METHOD|bsh.Parser.jj_3R_157()Z -METHOD|bsh.Parser.jj_3_8()Z -METHOD|bsh.Parser.jj_3_20()Z -METHOD|bsh.Parser.jj_3R_151()Z -METHOD|bsh.Parser.jj_3_19()Z -METHOD|bsh.Parser.jj_3R_107()Z -METHOD|bsh.Parser.jj_3_21()Z -METHOD|bsh.Parser.jj_3R_150()Z -METHOD|bsh.Parser.jj_3R_71()Z -METHOD|bsh.Parser.jj_3R_39()Z -METHOD|bsh.Parser.jj_3R_70()Z -METHOD|bsh.Parser.jj_3R_145()Z -METHOD|bsh.Parser.jj_3_18()Z -METHOD|bsh.Parser.jj_3R_130()Z -METHOD|bsh.Parser.jj_3R_147()Z -METHOD|bsh.Parser.jj_3R_76()Z -METHOD|bsh.Parser.jj_3R_134()Z -METHOD|bsh.Parser.jj_3R_106()Z -METHOD|bsh.Parser.jj_3_7()Z -METHOD|bsh.Parser.jj_3R_69()Z -METHOD|bsh.Parser.jj_3R_29()Z -METHOD|bsh.Parser.jj_3R_68()Z -METHOD|bsh.Parser.jj_3R_67()Z -METHOD|bsh.Parser.jj_3R_155()Z -METHOD|bsh.Parser.jj_3R_66()Z -METHOD|bsh.Parser.jj_3R_65()Z -METHOD|bsh.Parser.jj_3R_154()Z -METHOD|bsh.Parser.jj_3R_149()Z -METHOD|bsh.Parser.jj_3R_64()Z -METHOD|bsh.Parser.jj_3R_56()Z -METHOD|bsh.Parser.jj_3R_63()Z -METHOD|bsh.Parser.jj_3R_62()Z -METHOD|bsh.Parser.jj_3R_61()Z -METHOD|bsh.Parser.jj_3R_36()Z -METHOD|bsh.Parser.jj_3R_144()Z -METHOD|bsh.Parser.jj_3R_74()Z -METHOD|bsh.Parser.jj_3R_42()Z -METHOD|bsh.Parser.jj_3R_73()Z -METHOD|bsh.Parser.jj_3R_143()Z -METHOD|bsh.Parser.jj_3_6()Z -METHOD|bsh.Parser.jj_3R_142()Z -METHOD|bsh.Parser.jj_3R_55()Z -METHOD|bsh.Parser.jj_3R_110()Z -METHOD|bsh.Parser.jj_3R_141()Z -METHOD|bsh.Parser.jj_3R_32()Z -METHOD|bsh.Parser.jj_3R_140()Z -METHOD|bsh.Parser.jj_3R_190()Z -METHOD|bsh.Parser.jj_3_4()Z -METHOD|bsh.Parser.jj_3R_189()Z -METHOD|bsh.Parser.jj_3R_136()Z -METHOD|bsh.Parser.jj_3_5()Z -METHOD|bsh.Parser.jj_3R_75()Z -METHOD|bsh.Parser.jj_3R_109()Z -METHOD|bsh.Parser.jj_3R_124()Z -METHOD|bsh.Parser.jj_3R_43()Z -METHOD|bsh.Parser.jj_3R_163()Z -METHOD|bsh.Parser.jj_3R_139()Z -METHOD|bsh.Parser.jj_3R_97()Z -METHOD|bsh.Parser.jj_3R_30()Z -METHOD|bsh.Parser.jj_3R_123()Z -METHOD|bsh.Parser.jj_3R_180()Z -METHOD|bsh.Parser.jj_3R_54()Z -METHOD|bsh.Parser.jj_3R_188()Z -METHOD|bsh.Parser.jj_3R_53()Z -METHOD|bsh.Parser.jj_3R_31()Z -METHOD|bsh.Parser.jj_3R_122()Z -METHOD|bsh.Parser.jj_3R_177()Z -METHOD|bsh.Parser.jj_3R_210()Z -METHOD|bsh.Parser.jj_3R_121()Z -METHOD|bsh.Parser.jj_3R_129()Z -METHOD|bsh.Parser.jj_3R_138()Z -METHOD|bsh.Parser.jj_3R_146()Z -METHOD|bsh.Parser.jj_3R_176()Z -METHOD|bsh.Parser.jj_3R_105()Z -METHOD|bsh.Parser.jj_3R_120()Z -METHOD|bsh.Parser.jj_3R_119()Z -METHOD|bsh.Parser.jj_3R_195()Z -METHOD|bsh.Parser.jj_3R_128()Z -METHOD|bsh.Parser.jj_3R_133()Z -METHOD|bsh.Parser.jj_3R_205()Z -METHOD|bsh.Parser.jj_3R_132()Z -METHOD|bsh.Parser.jj_3_3()Z -METHOD|bsh.Parser.jj_3R_94()Z -METHOD|bsh.Parser.jj_3R_93()Z -METHOD|bsh.Parser.jj_3R_131()Z -METHOD|bsh.Parser.jj_3R_95()Z -METHOD|bsh.Parser.jj_3_2()Z -METHOD|bsh.Parser.jj_3R_175()Z -METHOD|bsh.Parser.jj_3_16()Z -METHOD|bsh.Parser.jj_3R_104()Z -METHOD|bsh.Parser.jj_3R_174()Z -METHOD|bsh.Parser.jj_3_15()Z -METHOD|bsh.Parser.jj_3_31()Z -METHOD|bsh.Parser.jj_3_14()Z -METHOD|bsh.Parser.jj_3R_126()Z -METHOD|bsh.Parser.jj_3R_127()Z -METHOD|bsh.Parser.jj_3R_92()Z -METHOD|bsh.Parser.jj_3R_204()Z -METHOD|bsh.Parser.jj_3R_103()Z -METHOD|bsh.Parser.jj_3R_203()Z -METHOD|bsh.Parser.jj_3R_194()Z -METHOD|bsh.Parser.jj_3R_102()Z -METHOD|bsh.Parser.jj_3R_58()Z -METHOD|bsh.Parser.jj_3R_125()Z -METHOD|bsh.Parser.jj_3R_101()Z -METHOD|bsh.Parser.jj_3R_100()Z -METHOD|bsh.Parser.jj_3R_99()Z -METHOD|bsh.Parser.jj_3R_137()Z -METHOD|bsh.Parser.jj_3R_184()Z -METHOD|bsh.Parser.jj_3R_173()Z -METHOD|bsh.Parser.jj_3R_57()Z -METHOD|bsh.Parser.jj_3R_98()Z -METHOD|bsh.Parser.jj_3R_172()Z -METHOD|bsh.Parser.jj_3_30()Z -METHOD|bsh.Parser.jj_3R_118()Z -METHOD|bsh.Parser.jj_3R_37()Z -METHOD|bsh.Parser.jj_3R_185()Z -METHOD|bsh.Parser.jj_3R_91()Z -METHOD|bsh.Parser.jj_3_13()Z -METHOD|bsh.Parser.jj_3R_187()Z -METHOD|bsh.Parser.jj_3R_186()Z -METHOD|bsh.Parser.jj_3R_33()Z -METHOD|bsh.Parser.jj_3R_217()Z -METHOD|bsh.Parser.jj_3R_216()Z -METHOD|bsh.Parser.jj_3R_117()Z -METHOD|bsh.Parser.jj_3R_214()Z -METHOD|bsh.Parser.jj_3_12()Z -METHOD|bsh.Parser.jj_3R_219()Z -METHOD|bsh.Parser.jj_3R_116()Z -METHOD|bsh.Parser.jj_3_11()Z -METHOD|bsh.Parser.jj_3R_218()Z -METHOD|bsh.Parser.jj_3R_215()Z -METHOD|bsh.Parser.jj_3R_72()Z -METHOD|bsh.Parser.jj_3R_115()Z -METHOD|bsh.Parser.jj_3R_60()Z -METHOD|bsh.Parser.jj_3R_59()Z -METHOD|bsh.Parser.jj_3_9()Z -METHOD|bsh.Parser.jj_3_29()Z -METHOD|bsh.Parser.jj_3R_114()Z -METHOD|bsh.Parser.jj_3R_41()Z -METHOD|bsh.Parser.jj_3R_35()Z -METHOD|bsh.Parser.jj_3_10()Z -METHOD|bsh.Parser.jj_3R_213()Z -METHOD|bsh.Parser.jj_3R_212()Z -METHOD|bsh.Parser.jj_3R_202()Z -METHOD|bsh.Parser.jj_3R_211()Z -METHOD|bsh.Parser.jj_3R_208()Z -METHOD|bsh.Parser.jj_3R_201()Z -METHOD|bsh.Parser.jj_3R_193()Z -METHOD|bsh.Parser.jj_3R_183()Z -METHOD|bsh.Parser.jj_3R_207()Z -METHOD|bsh.Parser.jj_3_1()Z -METHOD|bsh.Parser.jj_3R_113()Z -METHOD|bsh.Parser.jj_3R_209()Z -METHOD|bsh.Parser.jj_3R_206()Z -METHOD|bsh.Parser.jj_3R_199()Z -METHOD|bsh.Parser.jj_3R_198()Z -METHOD|bsh.Parser.jj_3R_197()Z -METHOD|bsh.Parser.jj_3R_196()Z -METHOD|bsh.Parser.jj_3R_191()Z -METHOD|bsh.Parser.jj_3R_44()Z -METHOD|bsh.Parser.jj_3R_112()Z -METHOD|bsh.Parser.jj_3R_181()Z -METHOD|bsh.Parser.jj_3R_200()Z -METHOD|bsh.Parser.jj_3R_178()Z -METHOD|bsh.Parser.jj_3R_96()Z -METHOD|bsh.Parser.jj_3R_192()Z -METHOD|bsh.Parser.jj_3R_171()Z -METHOD|bsh.Parser.jj_3R_170()Z -METHOD|bsh.Parser.jj_3R_52()Z -METHOD|bsh.Parser.jj_3R_182()Z -METHOD|bsh.Parser.jj_3_27()Z -METHOD|bsh.Parser.jj_3R_51()Z -METHOD|bsh.Parser.jj_3R_168()Z -METHOD|bsh.Parser.jj_3R_50()Z -METHOD|bsh.Parser.jj_3_26()Z -METHOD|bsh.Parser.jj_3R_179()Z -METHOD|bsh.Parser.jj_3_28()Z -METHOD|bsh.Parser.jj_3R_166()Z -METHOD|bsh.Parser.jj_3_25()Z -METHOD|bsh.Parser.jj_3R_49()Z -METHOD|bsh.Parser.jj_3_24()Z -METHOD|bsh.Parser.jj_3R_167()Z -METHOD|bsh.Parser.jj_3R_48()Z -METHOD|bsh.Parser.jj_3R_164()Z -METHOD|bsh.Parser.jj_3R_47()Z -METHOD|bsh.Parser.jj_3R_169()Z -METHOD|bsh.Parser.(Ljava/io/InputStream;)V -METHOD|bsh.Parser.ReInit(Ljava/io/InputStream;)V -METHOD|bsh.Parser.(Ljava/io/Reader;)V -METHOD|bsh.Parser.ReInit(Ljava/io/Reader;)V -METHOD|bsh.Parser.(Lbsh/ParserTokenManager;)V -METHOD|bsh.Parser.ReInit(Lbsh/ParserTokenManager;)V -METHOD|bsh.Parser.jj_consume_token(I)Lbsh/Token; -METHOD|bsh.Parser.jj_scan_token(I)Z -METHOD|bsh.Parser.getNextToken()Lbsh/Token; -METHOD|bsh.Parser.getToken(I)Lbsh/Token; -METHOD|bsh.Parser.jj_ntk()I -METHOD|bsh.Parser.generateParseException()Lbsh/ParseException; -METHOD|bsh.Parser.enable_tracing()V -METHOD|bsh.Parser.disable_tracing()V -METHOD|bsh.ParserConstants.()V -METHOD|bsh.ParserTokenManager.setDebugStream(Ljava/io/PrintStream;)V -METHOD|bsh.ParserTokenManager.jjStopStringLiteralDfa_0(IJJJ)I -METHOD|bsh.ParserTokenManager.jjStartNfa_0(IJJJ)I -METHOD|bsh.ParserTokenManager.jjStopAtPos(II)I -METHOD|bsh.ParserTokenManager.jjStartNfaWithStates_0(III)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa0_0()I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa1_0(JJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa2_0(JJJJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa3_0(JJJJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa4_0(JJJJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa5_0(JJJJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa6_0(JJJJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa7_0(JJJJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa8_0(JJJJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa9_0(JJJJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa10_0(JJJJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa11_0(JJJJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa12_0(JJJJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa13_0(JJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa14_0(JJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa15_0(JJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa16_0(JJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa17_0(JJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa18_0(JJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa19_0(JJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa20_0(JJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa21_0(JJJJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa22_0(JJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa23_0(JJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa24_0(JJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa25_0(JJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa26_0(JJ)I -METHOD|bsh.ParserTokenManager.jjMoveStringLiteralDfa27_0(JJ)I -METHOD|bsh.ParserTokenManager.jjCheckNAdd(I)V -METHOD|bsh.ParserTokenManager.jjAddStates(II)V -METHOD|bsh.ParserTokenManager.jjCheckNAddTwoStates(II)V -METHOD|bsh.ParserTokenManager.jjCheckNAddStates(II)V -METHOD|bsh.ParserTokenManager.jjCheckNAddStates(I)V -METHOD|bsh.ParserTokenManager.jjMoveNfa_0(II)I -METHOD|bsh.ParserTokenManager.jjCanMove_0(IIIJJ)Z -METHOD|bsh.ParserTokenManager.jjCanMove_1(IIIJJ)Z -METHOD|bsh.ParserTokenManager.jjCanMove_2(IIIJJ)Z -METHOD|bsh.ParserTokenManager.(Lbsh/JavaCharStream;)V -METHOD|bsh.ParserTokenManager.(Lbsh/JavaCharStream;I)V -METHOD|bsh.ParserTokenManager.ReInit(Lbsh/JavaCharStream;)V -METHOD|bsh.ParserTokenManager.ReInitRounds()V -METHOD|bsh.ParserTokenManager.ReInit(Lbsh/JavaCharStream;I)V -METHOD|bsh.ParserTokenManager.SwitchTo(I)V -METHOD|bsh.ParserTokenManager.jjFillToken()Lbsh/Token; -METHOD|bsh.ParserTokenManager.getNextToken()Lbsh/Token; -METHOD|bsh.ParserTokenManager.()V -METHOD|bsh.ParserTreeConstants.()V -METHOD|bsh.Primitive$Special.()V -METHOD|bsh.Primitive$Special.()V -METHOD|bsh.Primitive.(Ljava/lang/Object;)V -METHOD|bsh.Primitive.(Z)V -METHOD|bsh.Primitive.(B)V -METHOD|bsh.Primitive.(S)V -METHOD|bsh.Primitive.(C)V -METHOD|bsh.Primitive.(I)V -METHOD|bsh.Primitive.(J)V -METHOD|bsh.Primitive.(F)V -METHOD|bsh.Primitive.(D)V -METHOD|bsh.Primitive.getValue()Ljava/lang/Object; -METHOD|bsh.Primitive.toString()Ljava/lang/String; -METHOD|bsh.Primitive.getType()Ljava/lang/Class; -METHOD|bsh.Primitive.binaryOperation(Ljava/lang/Object;Ljava/lang/Object;I)Ljava/lang/Object; -METHOD|bsh.Primitive.binaryOperationImpl(Ljava/lang/Object;Ljava/lang/Object;I)Ljava/lang/Object; -METHOD|bsh.Primitive.booleanBinaryOperation(Ljava/lang/Boolean;Ljava/lang/Boolean;I)Ljava/lang/Boolean; -METHOD|bsh.Primitive.longBinaryOperation(Ljava/lang/Long;Ljava/lang/Long;I)Ljava/lang/Object; -METHOD|bsh.Primitive.intBinaryOperation(Ljava/lang/Integer;Ljava/lang/Integer;I)Ljava/lang/Object; -METHOD|bsh.Primitive.doubleBinaryOperation(Ljava/lang/Double;Ljava/lang/Double;I)Ljava/lang/Object; -METHOD|bsh.Primitive.floatBinaryOperation(Ljava/lang/Float;Ljava/lang/Float;I)Ljava/lang/Object; -METHOD|bsh.Primitive.promoteToInteger(Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.Primitive.promotePrimitives(Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object; -METHOD|bsh.Primitive.unaryOperation(Lbsh/Primitive;I)Lbsh/Primitive; -METHOD|bsh.Primitive.booleanUnaryOperation(Ljava/lang/Boolean;I)Z -METHOD|bsh.Primitive.intUnaryOperation(Ljava/lang/Integer;I)I -METHOD|bsh.Primitive.longUnaryOperation(Ljava/lang/Long;I)J -METHOD|bsh.Primitive.floatUnaryOperation(Ljava/lang/Float;I)F -METHOD|bsh.Primitive.doubleUnaryOperation(Ljava/lang/Double;I)D -METHOD|bsh.Primitive.intValue()I -METHOD|bsh.Primitive.booleanValue()Z -METHOD|bsh.Primitive.isNumber()Z -METHOD|bsh.Primitive.numberValue()Ljava/lang/Number; -METHOD|bsh.Primitive.equals(Ljava/lang/Object;)Z -METHOD|bsh.Primitive.hashCode()I -METHOD|bsh.Primitive.unwrap(Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.Primitive.unwrap([Ljava/lang/Object;)[Ljava/lang/Object; -METHOD|bsh.Primitive.wrap([Ljava/lang/Object;[Ljava/lang/Class;)[Ljava/lang/Object; -METHOD|bsh.Primitive.wrap(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object; -METHOD|bsh.Primitive.getDefaultValue(Ljava/lang/Class;)Lbsh/Primitive; -METHOD|bsh.Primitive.boxType(Ljava/lang/Class;)Ljava/lang/Class; -METHOD|bsh.Primitive.unboxType(Ljava/lang/Class;)Ljava/lang/Class; -METHOD|bsh.Primitive.castToType(Ljava/lang/Class;I)Lbsh/Primitive; -METHOD|bsh.Primitive.castPrimitive(Ljava/lang/Class;Ljava/lang/Class;Lbsh/Primitive;ZI)Lbsh/Primitive; -METHOD|bsh.Primitive.isWrapperType(Ljava/lang/Class;)Z -METHOD|bsh.Primitive.castWrapper(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.Primitive.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.Primitive.()V -METHOD|bsh.Reflect.()V -METHOD|bsh.Reflect.invokeObjectMethod(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;Lbsh/Interpreter;Lbsh/CallStack;Lbsh/SimpleNode;)Ljava/lang/Object; -METHOD|bsh.Reflect.invokeStaticMethod(Lbsh/BshClassManager;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.Reflect.invokeMethod(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.Reflect.getIndex(Ljava/lang/Object;I)Ljava/lang/Object; -METHOD|bsh.Reflect.setIndex(Ljava/lang/Object;ILjava/lang/Object;)V -METHOD|bsh.Reflect.getStaticFieldValue(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object; -METHOD|bsh.Reflect.getObjectFieldValue(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; -METHOD|bsh.Reflect.getLHSStaticField(Ljava/lang/Class;Ljava/lang/String;)Lbsh/LHS; -METHOD|bsh.Reflect.getLHSObjectField(Ljava/lang/Object;Ljava/lang/String;)Lbsh/LHS; -METHOD|bsh.Reflect.getFieldValue(Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;Z)Ljava/lang/Object; -METHOD|bsh.Reflect.resolveJavaField(Ljava/lang/Class;Ljava/lang/String;Z)Ljava/lang/reflect/Field; -METHOD|bsh.Reflect.resolveExpectedJavaField(Ljava/lang/Class;Ljava/lang/String;Z)Ljava/lang/reflect/Field; -METHOD|bsh.Reflect.findAccessibleField(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field; -METHOD|bsh.Reflect.resolveExpectedJavaMethod(Lbsh/BshClassManager;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;Z)Ljava/lang/reflect/Method; -METHOD|bsh.Reflect.resolveJavaMethod(Lbsh/BshClassManager;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Z)Ljava/lang/reflect/Method; -METHOD|bsh.Reflect.findOverloadedMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Z)Ljava/lang/reflect/Method; -METHOD|bsh.Reflect.getCandidateMethods(Ljava/lang/Class;Ljava/lang/String;IZ)[Ljava/lang/reflect/Method; -METHOD|bsh.Reflect.gatherMethodsRecursive(Ljava/lang/Class;Ljava/lang/String;IZLjava/util/Vector;)Ljava/util/Vector; -METHOD|bsh.Reflect.addCandidates([Ljava/lang/reflect/Method;Ljava/lang/String;IZLjava/util/Vector;)Ljava/util/Vector; -METHOD|bsh.Reflect.constructObject(Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.Reflect.findMostSpecificConstructor([Ljava/lang/Class;[Ljava/lang/reflect/Constructor;)Ljava/lang/reflect/Constructor; -METHOD|bsh.Reflect.findMostSpecificConstructorIndex([Ljava/lang/Class;[Ljava/lang/reflect/Constructor;)I -METHOD|bsh.Reflect.findMostSpecificMethod([Ljava/lang/Class;[Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method; -METHOD|bsh.Reflect.findMostSpecificSignature([Ljava/lang/Class;[[Ljava/lang/Class;)I -METHOD|bsh.Reflect.accessorName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.Reflect.hasObjectPropertyGetter(Ljava/lang/Class;Ljava/lang/String;)Z -METHOD|bsh.Reflect.hasObjectPropertySetter(Ljava/lang/Class;Ljava/lang/String;)Z -METHOD|bsh.Reflect.getObjectProperty(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; -METHOD|bsh.Reflect.setObjectProperty(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V -METHOD|bsh.Reflect.normalizeClassName(Ljava/lang/Class;)Ljava/lang/String; -METHOD|bsh.Reflect.getArrayDimensions(Ljava/lang/Class;)I -METHOD|bsh.Reflect.getArrayBaseType(Ljava/lang/Class;)Ljava/lang/Class; -METHOD|bsh.Reflect.invokeCompiledCommand(Ljava/lang/Class;[Ljava/lang/Object;Lbsh/Interpreter;Lbsh/CallStack;)Ljava/lang/Object; -METHOD|bsh.Reflect.logInvokeMethod(Ljava/lang/String;Ljava/lang/reflect/Method;[Ljava/lang/Object;)V -METHOD|bsh.Reflect.checkFoundStaticMethod(Ljava/lang/reflect/Method;ZLjava/lang/Class;)V -METHOD|bsh.Reflect.cantFindConstructor(Ljava/lang/Class;[Ljava/lang/Class;)Lbsh/ReflectError; -METHOD|bsh.Reflect.isPublic(Ljava/lang/Class;)Z -METHOD|bsh.Reflect.isPublic(Ljava/lang/reflect/Method;)Z -METHOD|bsh.Reflect.isPublic(Ljava/lang/reflect/Constructor;)Z -METHOD|bsh.Reflect.isStatic(Ljava/lang/reflect/Method;)Z -METHOD|bsh.ReflectError.()V -METHOD|bsh.ReflectError.(Ljava/lang/String;)V -METHOD|bsh.ReflectManager.()V -METHOD|bsh.ReflectManager.getReflectManager()Lbsh/ReflectManager; -METHOD|bsh.ReflectManager.RMSetAccessible(Ljava/lang/Object;)Z -METHOD|bsh.ReflectManager.setAccessible(Ljava/lang/Object;)Z -METHOD|bsh.Remote.()V -METHOD|bsh.Remote.main([Ljava/lang/String;)V -METHOD|bsh.Remote.eval(Ljava/lang/String;Ljava/lang/String;)I -METHOD|bsh.Remote.doBsh(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.Remote.sendLine(Ljava/lang/String;Ljava/io/OutputStream;)V -METHOD|bsh.Remote.doHttp(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.Remote.getFile(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.ReturnControl.(ILjava/lang/Object;Lbsh/SimpleNode;)V -METHOD|bsh.SimpleNode$1.(I)V -METHOD|bsh.SimpleNode$1.getSourceFile()Ljava/lang/String; -METHOD|bsh.SimpleNode$1.getLineNumber()I -METHOD|bsh.SimpleNode$1.getText()Ljava/lang/String; -METHOD|bsh.SimpleNode.(I)V -METHOD|bsh.SimpleNode.jjtOpen()V -METHOD|bsh.SimpleNode.jjtClose()V -METHOD|bsh.SimpleNode.jjtSetParent(Lbsh/Node;)V -METHOD|bsh.SimpleNode.jjtGetParent()Lbsh/Node; -METHOD|bsh.SimpleNode.jjtAddChild(Lbsh/Node;I)V -METHOD|bsh.SimpleNode.jjtGetChild(I)Lbsh/Node; -METHOD|bsh.SimpleNode.getChild(I)Lbsh/SimpleNode; -METHOD|bsh.SimpleNode.jjtGetNumChildren()I -METHOD|bsh.SimpleNode.toString()Ljava/lang/String; -METHOD|bsh.SimpleNode.toString(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.SimpleNode.dump(Ljava/lang/String;)V -METHOD|bsh.SimpleNode.prune()V -METHOD|bsh.SimpleNode.eval(Lbsh/CallStack;Lbsh/Interpreter;)Ljava/lang/Object; -METHOD|bsh.SimpleNode.setSourceFile(Ljava/lang/String;)V -METHOD|bsh.SimpleNode.getSourceFile()Ljava/lang/String; -METHOD|bsh.SimpleNode.getLineNumber()I -METHOD|bsh.SimpleNode.getText()Ljava/lang/String; -METHOD|bsh.SimpleNode.()V -METHOD|bsh.StringUtil.()V -METHOD|bsh.StringUtil.split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String; -METHOD|bsh.StringUtil.bubbleSort([Ljava/lang/String;)[Ljava/lang/String; -METHOD|bsh.StringUtil.maxCommonPrefix(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.StringUtil.methodString(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/String; -METHOD|bsh.StringUtil.normalizeClassName(Ljava/lang/Class;)Ljava/lang/String; -METHOD|bsh.TargetError.(Ljava/lang/String;Ljava/lang/Throwable;Lbsh/SimpleNode;Lbsh/CallStack;Z)V -METHOD|bsh.TargetError.(Ljava/lang/Throwable;Lbsh/SimpleNode;Lbsh/CallStack;)V -METHOD|bsh.TargetError.getTarget()Ljava/lang/Throwable; -METHOD|bsh.TargetError.toString()Ljava/lang/String; -METHOD|bsh.TargetError.printStackTrace()V -METHOD|bsh.TargetError.printStackTrace(Ljava/io/PrintStream;)V -METHOD|bsh.TargetError.printStackTrace(ZLjava/io/PrintStream;)V -METHOD|bsh.TargetError.printTargetError(Ljava/lang/Throwable;)Ljava/lang/String; -METHOD|bsh.TargetError.xPrintTargetError(Ljava/lang/Throwable;)Ljava/lang/String; -METHOD|bsh.TargetError.inNativeCode()Z -METHOD|bsh.This.getThis(Lbsh/NameSpace;Lbsh/Interpreter;)Lbsh/This; -METHOD|bsh.This.getInterface(Ljava/lang/Class;)Ljava/lang/Object; -METHOD|bsh.This.getInterface([Ljava/lang/Class;)Ljava/lang/Object; -METHOD|bsh.This.(Lbsh/NameSpace;Lbsh/Interpreter;)V -METHOD|bsh.This.getNameSpace()Lbsh/NameSpace; -METHOD|bsh.This.toString()Ljava/lang/String; -METHOD|bsh.This.run()V -METHOD|bsh.This.invokeMethod(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.This.invokeMethod(Ljava/lang/String;[Ljava/lang/Object;Lbsh/Interpreter;Lbsh/CallStack;Lbsh/SimpleNode;Z)Ljava/lang/Object; -METHOD|bsh.This.bind(Lbsh/This;Lbsh/NameSpace;Lbsh/Interpreter;)V -METHOD|bsh.This.isExposedThisMethod(Ljava/lang/String;)Z -METHOD|bsh.Token.()V -METHOD|bsh.Token.toString()Ljava/lang/String; -METHOD|bsh.Token.newToken(I)Lbsh/Token; -METHOD|bsh.TokenMgrError.addEscapes(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.TokenMgrError.LexicalError(ZIIILjava/lang/String;C)Ljava/lang/String; -METHOD|bsh.TokenMgrError.getMessage()Ljava/lang/String; -METHOD|bsh.TokenMgrError.()V -METHOD|bsh.TokenMgrError.(Ljava/lang/String;I)V -METHOD|bsh.TokenMgrError.(ZIIILjava/lang/String;CI)V -METHOD|bsh.Types.()V -METHOD|bsh.Types.getTypes([Ljava/lang/Object;)[Ljava/lang/Class; -METHOD|bsh.Types.isSignatureAssignable([Ljava/lang/Class;[Ljava/lang/Class;I)Z -METHOD|bsh.Types.isSignatureVarargsAssignable([Ljava/lang/Class;[Ljava/lang/Class;)Z -METHOD|bsh.Types.isJavaAssignable(Ljava/lang/Class;Ljava/lang/Class;)Z -METHOD|bsh.Types.isJavaBaseAssignable(Ljava/lang/Class;Ljava/lang/Class;)Z -METHOD|bsh.Types.isJavaBoxTypesAssignable(Ljava/lang/Class;Ljava/lang/Class;)Z -METHOD|bsh.Types.isBshAssignable(Ljava/lang/Class;Ljava/lang/Class;)Z -METHOD|bsh.Types.castObject(Ljava/lang/Object;Ljava/lang/Class;I)Ljava/lang/Object; -METHOD|bsh.Types.castObject(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;IZ)Ljava/lang/Object; -METHOD|bsh.Types.castError(Ljava/lang/Class;Ljava/lang/Class;I)Lbsh/UtilEvalError; -METHOD|bsh.Types.castError(Ljava/lang/String;Ljava/lang/String;I)Lbsh/UtilEvalError; -METHOD|bsh.Types.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.Types.()V -METHOD|bsh.UtilEvalError.()V -METHOD|bsh.UtilEvalError.(Ljava/lang/String;)V -METHOD|bsh.UtilEvalError.toEvalError(Ljava/lang/String;Lbsh/SimpleNode;Lbsh/CallStack;)Lbsh/EvalError; -METHOD|bsh.UtilEvalError.toEvalError(Lbsh/SimpleNode;Lbsh/CallStack;)Lbsh/EvalError; -METHOD|bsh.UtilTargetError.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|bsh.UtilTargetError.(Ljava/lang/Throwable;)V -METHOD|bsh.UtilTargetError.toEvalError(Ljava/lang/String;Lbsh/SimpleNode;Lbsh/CallStack;)Lbsh/EvalError; -METHOD|bsh.Variable.(Ljava/lang/String;Ljava/lang/Class;Lbsh/LHS;)V -METHOD|bsh.Variable.(Ljava/lang/String;Ljava/lang/Object;Lbsh/Modifiers;)V -METHOD|bsh.Variable.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Lbsh/Modifiers;)V -METHOD|bsh.Variable.(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Lbsh/Modifiers;)V -METHOD|bsh.Variable.setValue(Ljava/lang/Object;I)V -METHOD|bsh.Variable.getValue()Ljava/lang/Object; -METHOD|bsh.Variable.getType()Ljava/lang/Class; -METHOD|bsh.Variable.getTypeDescriptor()Ljava/lang/String; -METHOD|bsh.Variable.getModifiers()Lbsh/Modifiers; -METHOD|bsh.Variable.getName()Ljava/lang/String; -METHOD|bsh.Variable.hasModifier(Ljava/lang/String;)Z -METHOD|bsh.Variable.toString()Ljava/lang/String; -METHOD|bsh.XThis$Handler.(Lbsh/XThis;)V -METHOD|bsh.XThis$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.XThis$Handler.invokeImpl(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.XThis.(Lbsh/NameSpace;Lbsh/Interpreter;)V -METHOD|bsh.XThis.toString()Ljava/lang/String; -METHOD|bsh.XThis.getInterface(Ljava/lang/Class;)Ljava/lang/Object; -METHOD|bsh.XThis.getInterface([Ljava/lang/Class;)Ljava/lang/Object; -METHOD|bsh.XThis.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.classpath.BshClassLoader.(Lbsh/BshClassManager;[Ljava/net/URL;)V -METHOD|bsh.classpath.BshClassLoader.(Lbsh/BshClassManager;Lbsh/classpath/BshClassPath;)V -METHOD|bsh.classpath.BshClassLoader.(Lbsh/BshClassManager;)V -METHOD|bsh.classpath.BshClassLoader.addURL(Ljava/net/URL;)V -METHOD|bsh.classpath.BshClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class; -METHOD|bsh.classpath.BshClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.classpath.BshClassLoader.getClassManager()Lbsh/BshClassManager; -METHOD|bsh.classpath.BshClassLoader.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.classpath.BshClassPath$AmbiguousName.()V -METHOD|bsh.classpath.BshClassPath$AmbiguousName.add(Ljava/lang/String;)V -METHOD|bsh.classpath.BshClassPath$AmbiguousName.get()Ljava/util/List; -METHOD|bsh.classpath.BshClassPath$ClassSource.()V -METHOD|bsh.classpath.BshClassPath$ClassSource.getCode(Ljava/lang/String;)[B -METHOD|bsh.classpath.BshClassPath$DirClassSource.(Ljava/io/File;)V -METHOD|bsh.classpath.BshClassPath$DirClassSource.getDir()Ljava/io/File; -METHOD|bsh.classpath.BshClassPath$DirClassSource.toString()Ljava/lang/String; -METHOD|bsh.classpath.BshClassPath$DirClassSource.getCode(Ljava/lang/String;)[B -METHOD|bsh.classpath.BshClassPath$DirClassSource.readBytesFromFile(Ljava/io/File;Ljava/lang/String;)[B -METHOD|bsh.classpath.BshClassPath$GeneratedClassSource.([B)V -METHOD|bsh.classpath.BshClassPath$GeneratedClassSource.getCode(Ljava/lang/String;)[B -METHOD|bsh.classpath.BshClassPath$JarClassSource.(Ljava/net/URL;)V -METHOD|bsh.classpath.BshClassPath$JarClassSource.getURL()Ljava/net/URL; -METHOD|bsh.classpath.BshClassPath$JarClassSource.getCode(Ljava/lang/String;)[B -METHOD|bsh.classpath.BshClassPath$JarClassSource.toString()Ljava/lang/String; -METHOD|bsh.classpath.BshClassPath$MappingFeedback.startClassMapping()V -METHOD|bsh.classpath.BshClassPath$MappingFeedback.classMapping(Ljava/lang/String;)V -METHOD|bsh.classpath.BshClassPath$MappingFeedback.errorWhileMapping(Ljava/lang/String;)V -METHOD|bsh.classpath.BshClassPath$MappingFeedback.endClassMapping()V -METHOD|bsh.classpath.BshClassPath$UnqualifiedNameTable.()V -METHOD|bsh.classpath.BshClassPath$UnqualifiedNameTable.add(Ljava/lang/String;)V -METHOD|bsh.classpath.BshClassPath.(Ljava/lang/String;)V -METHOD|bsh.classpath.BshClassPath.(Ljava/lang/String;[Ljava/net/URL;)V -METHOD|bsh.classpath.BshClassPath.setPath([Ljava/net/URL;)V -METHOD|bsh.classpath.BshClassPath.addComponent(Lbsh/classpath/BshClassPath;)V -METHOD|bsh.classpath.BshClassPath.add([Ljava/net/URL;)V -METHOD|bsh.classpath.BshClassPath.add(Ljava/net/URL;)V -METHOD|bsh.classpath.BshClassPath.getPathComponents()[Ljava/net/URL; -METHOD|bsh.classpath.BshClassPath.getClassesForPackage(Ljava/lang/String;)Ljava/util/Set; -METHOD|bsh.classpath.BshClassPath.getClassSource(Ljava/lang/String;)Lbsh/classpath/BshClassPath$ClassSource; -METHOD|bsh.classpath.BshClassPath.setClassSource(Ljava/lang/String;Lbsh/classpath/BshClassPath$ClassSource;)V -METHOD|bsh.classpath.BshClassPath.insureInitialized()V -METHOD|bsh.classpath.BshClassPath.insureInitialized(Z)V -METHOD|bsh.classpath.BshClassPath.getFullPath()Ljava/util/List; -METHOD|bsh.classpath.BshClassPath.getClassNameByUnqName(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.classpath.BshClassPath.getUnqualifiedNameTable()Lbsh/classpath/BshClassPath$UnqualifiedNameTable; -METHOD|bsh.classpath.BshClassPath.buildUnqualifiedNameTable()Lbsh/classpath/BshClassPath$UnqualifiedNameTable; -METHOD|bsh.classpath.BshClassPath.getAllNames()[Ljava/lang/String; -METHOD|bsh.classpath.BshClassPath.map([Ljava/net/URL;)V -METHOD|bsh.classpath.BshClassPath.map(Ljava/net/URL;)V -METHOD|bsh.classpath.BshClassPath.map([Ljava/lang/String;Ljava/lang/Object;)V -METHOD|bsh.classpath.BshClassPath.mapClass(Ljava/lang/String;Ljava/lang/Object;)V -METHOD|bsh.classpath.BshClassPath.reset()V -METHOD|bsh.classpath.BshClassPath.clearCachedStructures()V -METHOD|bsh.classpath.BshClassPath.classPathChanged()V -METHOD|bsh.classpath.BshClassPath.traverseDirForClasses(Ljava/io/File;)[Ljava/lang/String; -METHOD|bsh.classpath.BshClassPath.traverseDirForClassesAux(Ljava/io/File;Ljava/io/File;)Ljava/util/List; -METHOD|bsh.classpath.BshClassPath.searchJarForClasses(Ljava/net/URL;)[Ljava/lang/String; -METHOD|bsh.classpath.BshClassPath.isClassFileName(Ljava/lang/String;)Z -METHOD|bsh.classpath.BshClassPath.isArchiveFileName(Ljava/lang/String;)Z -METHOD|bsh.classpath.BshClassPath.canonicalizeClassName(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.classpath.BshClassPath.splitClassname(Ljava/lang/String;)[Ljava/lang/String; -METHOD|bsh.classpath.BshClassPath.removeInnerClassNames(Ljava/util/Collection;)Ljava/util/Collection; -METHOD|bsh.classpath.BshClassPath.getUserClassPathComponents()[Ljava/net/URL; -METHOD|bsh.classpath.BshClassPath.getPackagesSet()Ljava/util/Set; -METHOD|bsh.classpath.BshClassPath.addListener(Lbsh/classpath/ClassPathListener;)V -METHOD|bsh.classpath.BshClassPath.removeListener(Lbsh/classpath/ClassPathListener;)V -METHOD|bsh.classpath.BshClassPath.notifyListeners()V -METHOD|bsh.classpath.BshClassPath.getUserClassPath()Lbsh/classpath/BshClassPath; -METHOD|bsh.classpath.BshClassPath.getBootClassPath()Lbsh/classpath/BshClassPath; -METHOD|bsh.classpath.BshClassPath.getRTJarPath()Ljava/lang/String; -METHOD|bsh.classpath.BshClassPath.main([Ljava/lang/String;)V -METHOD|bsh.classpath.BshClassPath.toString()Ljava/lang/String; -METHOD|bsh.classpath.BshClassPath.nameSpaceChanged()V -METHOD|bsh.classpath.BshClassPath.addNameSourceListener(Lbsh/NameSource$Listener;)V -METHOD|bsh.classpath.BshClassPath.addMappingFeedback(Lbsh/classpath/BshClassPath$MappingFeedback;)V -METHOD|bsh.classpath.BshClassPath.startClassMapping()V -METHOD|bsh.classpath.BshClassPath.classMapping(Ljava/lang/String;)V -METHOD|bsh.classpath.BshClassPath.errorWhileMapping(Ljava/lang/String;)V -METHOD|bsh.classpath.BshClassPath.endClassMapping()V -METHOD|bsh.classpath.BshClassPath.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.classpath.ClassManagerImpl.()V -METHOD|bsh.classpath.ClassManagerImpl.classForName(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.classpath.ClassManagerImpl.getResource(Ljava/lang/String;)Ljava/net/URL; -METHOD|bsh.classpath.ClassManagerImpl.getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream; -METHOD|bsh.classpath.ClassManagerImpl.getLoaderForClass(Ljava/lang/String;)Ljava/lang/ClassLoader; -METHOD|bsh.classpath.ClassManagerImpl.addClassPath(Ljava/net/URL;)V -METHOD|bsh.classpath.ClassManagerImpl.reset()V -METHOD|bsh.classpath.ClassManagerImpl.setClassPath([Ljava/net/URL;)V -METHOD|bsh.classpath.ClassManagerImpl.reloadAllClasses()V -METHOD|bsh.classpath.ClassManagerImpl.initBaseLoader()V -METHOD|bsh.classpath.ClassManagerImpl.reloadClasses([Ljava/lang/String;)V -METHOD|bsh.classpath.ClassManagerImpl.reloadPackage(Ljava/lang/String;)V -METHOD|bsh.classpath.ClassManagerImpl.getClassPath()Lbsh/classpath/BshClassPath; -METHOD|bsh.classpath.ClassManagerImpl.doSuperImport()V -METHOD|bsh.classpath.ClassManagerImpl.hasSuperImport()Z -METHOD|bsh.classpath.ClassManagerImpl.getClassNameByUnqName(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.classpath.ClassManagerImpl.addListener(Lbsh/BshClassManager$Listener;)V -METHOD|bsh.classpath.ClassManagerImpl.removeListener(Lbsh/BshClassManager$Listener;)V -METHOD|bsh.classpath.ClassManagerImpl.getBaseLoader()Ljava/lang/ClassLoader; -METHOD|bsh.classpath.ClassManagerImpl.defineClass(Ljava/lang/String;[B)Ljava/lang/Class; -METHOD|bsh.classpath.ClassManagerImpl.classLoaderChanged()V -METHOD|bsh.classpath.ClassManagerImpl.dump(Ljava/io/PrintWriter;)V -METHOD|bsh.classpath.ClassManagerImpl.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.classpath.ClassPathListener.classPathChanged()V -METHOD|bsh.classpath.DiscreteFilesClassLoader$ClassSourceMap.()V -METHOD|bsh.classpath.DiscreteFilesClassLoader$ClassSourceMap.put(Ljava/lang/String;Lbsh/classpath/BshClassPath$ClassSource;)V -METHOD|bsh.classpath.DiscreteFilesClassLoader$ClassSourceMap.get(Ljava/lang/String;)Lbsh/classpath/BshClassPath$ClassSource; -METHOD|bsh.classpath.DiscreteFilesClassLoader.(Lbsh/BshClassManager;Lbsh/classpath/DiscreteFilesClassLoader$ClassSourceMap;)V -METHOD|bsh.classpath.DiscreteFilesClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.classpath.DiscreteFilesClassLoader.toString()Ljava/lang/String; -METHOD|bsh.collection.CollectionIterator.(Ljava/lang/Object;)V -METHOD|bsh.collection.CollectionIterator.createIterator(Ljava/lang/Object;)Ljava/util/Iterator; -METHOD|bsh.collection.CollectionIterator.next()Ljava/lang/Object; -METHOD|bsh.collection.CollectionIterator.hasNext()Z -METHOD|bsh.collection.CollectionManagerImpl.()V -METHOD|bsh.collection.CollectionManagerImpl.getBshIterator(Ljava/lang/Object;)Lbsh/BshIterator; -METHOD|bsh.collection.CollectionManagerImpl.isMap(Ljava/lang/Object;)Z -METHOD|bsh.collection.CollectionManagerImpl.getFromMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.collection.CollectionManagerImpl.putInMap(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.commands.dir.()V -METHOD|bsh.commands.dir.usage()Ljava/lang/String; -METHOD|bsh.commands.dir.invoke(Lbsh/Interpreter;Lbsh/CallStack;)V -METHOD|bsh.commands.dir.invoke(Lbsh/Interpreter;Lbsh/CallStack;Ljava/lang/String;)V -METHOD|bsh.commands.dir.()V -METHOD|bsh.org.objectweb.asm.ByteVector.()V -METHOD|bsh.org.objectweb.asm.ByteVector.(I)V -METHOD|bsh.org.objectweb.asm.ByteVector.put1(I)Lbsh/org/objectweb/asm/ByteVector; -METHOD|bsh.org.objectweb.asm.ByteVector.put11(II)Lbsh/org/objectweb/asm/ByteVector; -METHOD|bsh.org.objectweb.asm.ByteVector.put2(I)Lbsh/org/objectweb/asm/ByteVector; -METHOD|bsh.org.objectweb.asm.ByteVector.put12(II)Lbsh/org/objectweb/asm/ByteVector; -METHOD|bsh.org.objectweb.asm.ByteVector.put4(I)Lbsh/org/objectweb/asm/ByteVector; -METHOD|bsh.org.objectweb.asm.ByteVector.put8(J)Lbsh/org/objectweb/asm/ByteVector; -METHOD|bsh.org.objectweb.asm.ByteVector.putUTF(Ljava/lang/String;)Lbsh/org/objectweb/asm/ByteVector; -METHOD|bsh.org.objectweb.asm.ByteVector.putByteArray([BII)Lbsh/org/objectweb/asm/ByteVector; -METHOD|bsh.org.objectweb.asm.ByteVector.enlarge(I)V -METHOD|bsh.org.objectweb.asm.ClassVisitor.visit(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V -METHOD|bsh.org.objectweb.asm.ClassVisitor.visitInnerClass(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V -METHOD|bsh.org.objectweb.asm.ClassVisitor.visitField(ILjava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V -METHOD|bsh.org.objectweb.asm.ClassVisitor.visitMethod(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Lbsh/org/objectweb/asm/CodeVisitor; -METHOD|bsh.org.objectweb.asm.ClassVisitor.visitEnd()V -METHOD|bsh.org.objectweb.asm.ClassWriter.(Z)V -METHOD|bsh.org.objectweb.asm.ClassWriter.visit(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V -METHOD|bsh.org.objectweb.asm.ClassWriter.visitInnerClass(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V -METHOD|bsh.org.objectweb.asm.ClassWriter.visitField(ILjava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V -METHOD|bsh.org.objectweb.asm.ClassWriter.visitMethod(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Lbsh/org/objectweb/asm/CodeVisitor; -METHOD|bsh.org.objectweb.asm.ClassWriter.visitEnd()V -METHOD|bsh.org.objectweb.asm.ClassWriter.toByteArray()[B -METHOD|bsh.org.objectweb.asm.ClassWriter.newCst(Ljava/lang/Object;)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.newUTF8(Ljava/lang/String;)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.newClass(Ljava/lang/String;)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.newField(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.newMethod(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.newItfMethod(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.newInteger(I)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.newFloat(F)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.newLong(J)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.newDouble(D)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.newString(Ljava/lang/String;)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.newNameType(Ljava/lang/String;Ljava/lang/String;)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.get(Lbsh/org/objectweb/asm/Item;)Lbsh/org/objectweb/asm/Item; -METHOD|bsh.org.objectweb.asm.ClassWriter.put(Lbsh/org/objectweb/asm/Item;)V -METHOD|bsh.org.objectweb.asm.ClassWriter.put122(III)V -METHOD|bsh.org.objectweb.asm.ClassWriter.()V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitInsn(I)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitIntInsn(II)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitVarInsn(II)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitTypeInsn(ILjava/lang/String;)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitJumpInsn(ILbsh/org/objectweb/asm/Label;)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitLabel(Lbsh/org/objectweb/asm/Label;)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitLdcInsn(Ljava/lang/Object;)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitIincInsn(II)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitTableSwitchInsn(IILbsh/org/objectweb/asm/Label;[Lbsh/org/objectweb/asm/Label;)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitLookupSwitchInsn(Lbsh/org/objectweb/asm/Label;[I[Lbsh/org/objectweb/asm/Label;)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitMultiANewArrayInsn(Ljava/lang/String;I)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitTryCatchBlock(Lbsh/org/objectweb/asm/Label;Lbsh/org/objectweb/asm/Label;Lbsh/org/objectweb/asm/Label;Ljava/lang/String;)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitMaxs(II)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitLocalVariable(Ljava/lang/String;Ljava/lang/String;Lbsh/org/objectweb/asm/Label;Lbsh/org/objectweb/asm/Label;I)V -METHOD|bsh.org.objectweb.asm.CodeVisitor.visitLineNumber(ILbsh/org/objectweb/asm/Label;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.(Lbsh/org/objectweb/asm/ClassWriter;Z)V -METHOD|bsh.org.objectweb.asm.CodeWriter.init(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitInsn(I)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitIntInsn(II)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitVarInsn(II)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitTypeInsn(ILjava/lang/String;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitJumpInsn(ILbsh/org/objectweb/asm/Label;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitLabel(Lbsh/org/objectweb/asm/Label;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitLdcInsn(Ljava/lang/Object;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitIincInsn(II)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitTableSwitchInsn(IILbsh/org/objectweb/asm/Label;[Lbsh/org/objectweb/asm/Label;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitLookupSwitchInsn(Lbsh/org/objectweb/asm/Label;[I[Lbsh/org/objectweb/asm/Label;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitMultiANewArrayInsn(Ljava/lang/String;I)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitTryCatchBlock(Lbsh/org/objectweb/asm/Label;Lbsh/org/objectweb/asm/Label;Lbsh/org/objectweb/asm/Label;Ljava/lang/String;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitMaxs(II)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitLocalVariable(Ljava/lang/String;Ljava/lang/String;Lbsh/org/objectweb/asm/Label;Lbsh/org/objectweb/asm/Label;I)V -METHOD|bsh.org.objectweb.asm.CodeWriter.visitLineNumber(ILbsh/org/objectweb/asm/Label;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.getArgumentsAndReturnSizes(Ljava/lang/String;)I -METHOD|bsh.org.objectweb.asm.CodeWriter.addSuccessor(ILbsh/org/objectweb/asm/Label;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.getSize()I -METHOD|bsh.org.objectweb.asm.CodeWriter.put(Lbsh/org/objectweb/asm/ByteVector;)V -METHOD|bsh.org.objectweb.asm.CodeWriter.resizeInstructions([I[II)[I -METHOD|bsh.org.objectweb.asm.CodeWriter.readUnsignedShort([BI)I -METHOD|bsh.org.objectweb.asm.CodeWriter.readShort([BI)S -METHOD|bsh.org.objectweb.asm.CodeWriter.readInt([BI)I -METHOD|bsh.org.objectweb.asm.CodeWriter.writeShort([BII)V -METHOD|bsh.org.objectweb.asm.CodeWriter.getNewOffset([I[III)I -METHOD|bsh.org.objectweb.asm.CodeWriter.getCodeSize()I -METHOD|bsh.org.objectweb.asm.CodeWriter.getCode()[B -METHOD|bsh.org.objectweb.asm.CodeWriter.()V -METHOD|bsh.org.objectweb.asm.Edge.()V -METHOD|bsh.org.objectweb.asm.Item.()V -METHOD|bsh.org.objectweb.asm.Item.(SLbsh/org/objectweb/asm/Item;)V -METHOD|bsh.org.objectweb.asm.Item.set(I)V -METHOD|bsh.org.objectweb.asm.Item.set(J)V -METHOD|bsh.org.objectweb.asm.Item.set(F)V -METHOD|bsh.org.objectweb.asm.Item.set(D)V -METHOD|bsh.org.objectweb.asm.Item.set(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|bsh.org.objectweb.asm.Item.isEqualTo(Lbsh/org/objectweb/asm/Item;)Z -METHOD|bsh.org.objectweb.asm.Label.()V -METHOD|bsh.org.objectweb.asm.Label.put(Lbsh/org/objectweb/asm/CodeWriter;Lbsh/org/objectweb/asm/ByteVector;IZ)V -METHOD|bsh.org.objectweb.asm.Label.addReference(II)V -METHOD|bsh.org.objectweb.asm.Label.resolve(Lbsh/org/objectweb/asm/CodeWriter;I[B)Z -METHOD|bsh.org.objectweb.asm.Type.(I)V -METHOD|bsh.org.objectweb.asm.Type.(I[CII)V -METHOD|bsh.org.objectweb.asm.Type.getType(Ljava/lang/String;)Lbsh/org/objectweb/asm/Type; -METHOD|bsh.org.objectweb.asm.Type.getType(Ljava/lang/Class;)Lbsh/org/objectweb/asm/Type; -METHOD|bsh.org.objectweb.asm.Type.getArgumentTypes(Ljava/lang/String;)[Lbsh/org/objectweb/asm/Type; -METHOD|bsh.org.objectweb.asm.Type.getArgumentTypes(Ljava/lang/reflect/Method;)[Lbsh/org/objectweb/asm/Type; -METHOD|bsh.org.objectweb.asm.Type.getReturnType(Ljava/lang/String;)Lbsh/org/objectweb/asm/Type; -METHOD|bsh.org.objectweb.asm.Type.getReturnType(Ljava/lang/reflect/Method;)Lbsh/org/objectweb/asm/Type; -METHOD|bsh.org.objectweb.asm.Type.getType([CI)Lbsh/org/objectweb/asm/Type; -METHOD|bsh.org.objectweb.asm.Type.getSort()I -METHOD|bsh.org.objectweb.asm.Type.getDimensions()I -METHOD|bsh.org.objectweb.asm.Type.getElementType()Lbsh/org/objectweb/asm/Type; -METHOD|bsh.org.objectweb.asm.Type.getClassName()Ljava/lang/String; -METHOD|bsh.org.objectweb.asm.Type.getInternalName()Ljava/lang/String; -METHOD|bsh.org.objectweb.asm.Type.getDescriptor()Ljava/lang/String; -METHOD|bsh.org.objectweb.asm.Type.getMethodDescriptor(Lbsh/org/objectweb/asm/Type;[Lbsh/org/objectweb/asm/Type;)Ljava/lang/String; -METHOD|bsh.org.objectweb.asm.Type.getDescriptor(Ljava/lang/StringBuffer;)V -METHOD|bsh.org.objectweb.asm.Type.getInternalName(Ljava/lang/Class;)Ljava/lang/String; -METHOD|bsh.org.objectweb.asm.Type.getDescriptor(Ljava/lang/Class;)Ljava/lang/String; -METHOD|bsh.org.objectweb.asm.Type.getMethodDescriptor(Ljava/lang/reflect/Method;)Ljava/lang/String; -METHOD|bsh.org.objectweb.asm.Type.getDescriptor(Ljava/lang/StringBuffer;Ljava/lang/Class;)V -METHOD|bsh.org.objectweb.asm.Type.getSize()I -METHOD|bsh.org.objectweb.asm.Type.getOpcode(I)I -METHOD|bsh.org.objectweb.asm.Type.()V -METHOD|bsh.reflect.ReflectManagerImpl.()V -METHOD|bsh.reflect.ReflectManagerImpl.setAccessible(Ljava/lang/Object;)Z -METHOD|bsh.servlet.BshServlet.()V -METHOD|bsh.servlet.BshServlet.getBshVersion()Ljava/lang/String; -METHOD|bsh.servlet.BshServlet.doGet(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V -METHOD|bsh.servlet.BshServlet.sendHTML(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/Exception;Ljava/lang/Object;Ljava/lang/StringBuffer;Z)V -METHOD|bsh.servlet.BshServlet.sendRaw(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/Exception;Ljava/lang/Object;Ljava/lang/StringBuffer;)V -METHOD|bsh.servlet.BshServlet.formatScriptResultHTML(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Exception;Ljava/lang/StringBuffer;)Ljava/lang/String; -METHOD|bsh.servlet.BshServlet.showScriptContextHTML(Ljava/lang/String;II)Ljava/lang/String; -METHOD|bsh.servlet.BshServlet.doPost(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V -METHOD|bsh.servlet.BshServlet.evalScript(Ljava/lang/String;Ljava/lang/StringBuffer;ZLjavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Ljava/lang/Object; -METHOD|bsh.servlet.BshServlet.escape(Ljava/lang/String;)Ljava/lang/String; -METHOD|bsh.servlet.BshServlet.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|bsh.servlet.BshServlet.()V -METHOD|bsh.servlet.SimpleTemplate.getTemplate(Ljava/lang/String;)Lbsh/servlet/SimpleTemplate; -METHOD|bsh.servlet.SimpleTemplate.getStringFromStream(Ljava/io/InputStream;)Ljava/lang/String; -METHOD|bsh.servlet.SimpleTemplate.getStringFromStream(Ljava/io/Reader;)Ljava/lang/String; -METHOD|bsh.servlet.SimpleTemplate.(Ljava/lang/String;)V -METHOD|bsh.servlet.SimpleTemplate.(Ljava/io/Reader;)V -METHOD|bsh.servlet.SimpleTemplate.(Ljava/net/URL;)V -METHOD|bsh.servlet.SimpleTemplate.init(Ljava/lang/String;)V -METHOD|bsh.servlet.SimpleTemplate.replace(Ljava/lang/String;Ljava/lang/String;)V -METHOD|bsh.servlet.SimpleTemplate.findTemplate(Ljava/lang/String;)[I -METHOD|bsh.servlet.SimpleTemplate.toString()Ljava/lang/String; -METHOD|bsh.servlet.SimpleTemplate.write(Ljava/io/PrintWriter;)V -METHOD|bsh.servlet.SimpleTemplate.write(Ljava/io/PrintStream;)V -METHOD|bsh.servlet.SimpleTemplate.main([Ljava/lang/String;)V -METHOD|bsh.servlet.SimpleTemplate.setCacheTemplates(Z)V -METHOD|bsh.servlet.SimpleTemplate.()V -METHOD|bsh.util.AWTConsole$1.(Ljava/awt/Frame;)V -METHOD|bsh.util.AWTConsole$1.windowClosing(Ljava/awt/event/WindowEvent;)V -METHOD|bsh.util.AWTConsole.getIn()Ljava/io/Reader; -METHOD|bsh.util.AWTConsole.getOut()Ljava/io/PrintStream; -METHOD|bsh.util.AWTConsole.getErr()Ljava/io/PrintStream; -METHOD|bsh.util.AWTConsole.(IILjava/io/InputStream;Ljava/io/OutputStream;)V -METHOD|bsh.util.AWTConsole.keyPressed(Ljava/awt/event/KeyEvent;)V -METHOD|bsh.util.AWTConsole.()V -METHOD|bsh.util.AWTConsole.(Ljava/io/InputStream;Ljava/io/OutputStream;)V -METHOD|bsh.util.AWTConsole.type(ICI)V -METHOD|bsh.util.AWTConsole.doChar(C)V -METHOD|bsh.util.AWTConsole.enter()V -METHOD|bsh.util.AWTConsole.setCaretPosition(I)V -METHOD|bsh.util.AWTConsole.countNLs()I -METHOD|bsh.util.AWTConsole.historyUp()V -METHOD|bsh.util.AWTConsole.historyDown()V -METHOD|bsh.util.AWTConsole.showHistoryLine()V -METHOD|bsh.util.AWTConsole.acceptLine(Ljava/lang/String;)V -METHOD|bsh.util.AWTConsole.println(Ljava/lang/Object;)V -METHOD|bsh.util.AWTConsole.error(Ljava/lang/Object;)V -METHOD|bsh.util.AWTConsole.print(Ljava/lang/Object;Ljava/awt/Color;)V -METHOD|bsh.util.AWTConsole.print(Ljava/lang/Object;)V -METHOD|bsh.util.AWTConsole.inPipeWatcher()V -METHOD|bsh.util.AWTConsole.run()V -METHOD|bsh.util.AWTConsole.main([Ljava/lang/String;)V -METHOD|bsh.util.AWTConsole.toString()Ljava/lang/String; -METHOD|bsh.util.AWTConsole.keyTyped(Ljava/awt/event/KeyEvent;)V -METHOD|bsh.util.AWTConsole.keyReleased(Ljava/awt/event/KeyEvent;)V -METHOD|bsh.util.AWTDemoApplet.()V -METHOD|bsh.util.AWTDemoApplet.init()V -METHOD|bsh.util.AWTRemoteApplet.()V -METHOD|bsh.util.AWTRemoteApplet.init()V -METHOD|bsh.util.BeanShellBSFEngine.()V -METHOD|bsh.util.BeanShellBSFEngine.initialize(Lorg/apache/bsf/BSFManager;Ljava/lang/String;Ljava/util/Vector;)V -METHOD|bsh.util.BeanShellBSFEngine.setDebug(Z)V -METHOD|bsh.util.BeanShellBSFEngine.call(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.util.BeanShellBSFEngine.apply(Ljava/lang/String;IILjava/lang/Object;Ljava/util/Vector;Ljava/util/Vector;)Ljava/lang/Object; -METHOD|bsh.util.BeanShellBSFEngine.eval(Ljava/lang/String;IILjava/lang/Object;)Ljava/lang/Object; -METHOD|bsh.util.BeanShellBSFEngine.exec(Ljava/lang/String;IILjava/lang/Object;)V -METHOD|bsh.util.BeanShellBSFEngine.declareBean(Lorg/apache/bsf/BSFDeclaredBean;)V -METHOD|bsh.util.BeanShellBSFEngine.undeclareBean(Lorg/apache/bsf/BSFDeclaredBean;)V -METHOD|bsh.util.BeanShellBSFEngine.terminate()V -METHOD|bsh.util.BeanShellBSFEngine.sourceInfo(Ljava/lang/String;II)Ljava/lang/String; -METHOD|bsh.util.BshCanvas.()V -METHOD|bsh.util.BshCanvas.(Lbsh/This;)V -METHOD|bsh.util.BshCanvas.paintComponent(Ljava/awt/Graphics;)V -METHOD|bsh.util.BshCanvas.getBufferedGraphics()Ljava/awt/Graphics; -METHOD|bsh.util.BshCanvas.setBounds(IIII)V -METHOD|bsh.util.ClassBrowser$1.(Lbsh/util/ClassBrowser;)V -METHOD|bsh.util.ClassBrowser$1.valueChanged(Ljavax/swing/event/TreeSelectionEvent;)V -METHOD|bsh.util.ClassBrowser$2.(Lbsh/util/ClassBrowser;)V -METHOD|bsh.util.ClassBrowser$2.valueChanged(Ljavax/swing/event/TreeSelectionEvent;)V -METHOD|bsh.util.ClassBrowser$PackageTree.(Lbsh/util/ClassBrowser;Ljava/util/Collection;)V -METHOD|bsh.util.ClassBrowser$PackageTree.setPackages(Ljava/util/Collection;)V -METHOD|bsh.util.ClassBrowser$PackageTree.makeTreeModel(Ljava/util/Collection;)Ljavax/swing/tree/DefaultTreeModel; -METHOD|bsh.util.ClassBrowser$PackageTree.makeNode(Ljava/util/Map;Ljava/lang/String;)Ljavax/swing/tree/MutableTreeNode; -METHOD|bsh.util.ClassBrowser$PackageTree.mapNodes(Ljavax/swing/tree/TreeNode;)V -METHOD|bsh.util.ClassBrowser$PackageTree.addNodeMap(Ljavax/swing/tree/TreeNode;)V -METHOD|bsh.util.ClassBrowser$PackageTree.setSelectedPackage(Ljava/lang/String;)V -METHOD|bsh.util.ClassBrowser.()V -METHOD|bsh.util.ClassBrowser.(Lbsh/BshClassManager;)V -METHOD|bsh.util.ClassBrowser.toSortedStrings(Ljava/util/Collection;)[Ljava/lang/String; -METHOD|bsh.util.ClassBrowser.setClist(Ljava/lang/String;)V -METHOD|bsh.util.ClassBrowser.parseConstructors([Ljava/lang/reflect/Constructor;)[Ljava/lang/String; -METHOD|bsh.util.ClassBrowser.parseMethods([Ljava/lang/reflect/Method;)[Ljava/lang/String; -METHOD|bsh.util.ClassBrowser.parseFields([Ljava/lang/reflect/Field;)[Ljava/lang/String; -METHOD|bsh.util.ClassBrowser.getPublicConstructors([Ljava/lang/reflect/Constructor;)[Ljava/lang/reflect/Constructor; -METHOD|bsh.util.ClassBrowser.getPublicMethods([Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method; -METHOD|bsh.util.ClassBrowser.getPublicFields([Ljava/lang/reflect/Field;)[Ljava/lang/reflect/Field; -METHOD|bsh.util.ClassBrowser.setConslist(Ljava/lang/Class;)V -METHOD|bsh.util.ClassBrowser.setMlist(Ljava/lang/String;)V -METHOD|bsh.util.ClassBrowser.setFieldList(Ljava/lang/Class;)V -METHOD|bsh.util.ClassBrowser.setMethodLine(Ljava/lang/Object;)V -METHOD|bsh.util.ClassBrowser.setClassTree(Ljava/lang/Class;)V -METHOD|bsh.util.ClassBrowser.labeledPane(Ljavax/swing/JComponent;Ljava/lang/String;)Ljavax/swing/JPanel; -METHOD|bsh.util.ClassBrowser.init()V -METHOD|bsh.util.ClassBrowser.splitPane(IZLjavax/swing/JComponent;Ljavax/swing/JComponent;)Ljavax/swing/JSplitPane; -METHOD|bsh.util.ClassBrowser.main([Ljava/lang/String;)V -METHOD|bsh.util.ClassBrowser.setFrame(Ljavax/swing/JFrame;)V -METHOD|bsh.util.ClassBrowser.setFrame(Ljavax/swing/JInternalFrame;)V -METHOD|bsh.util.ClassBrowser.valueChanged(Ljavax/swing/event/ListSelectionEvent;)V -METHOD|bsh.util.ClassBrowser.driveToClass(Ljava/lang/String;)V -METHOD|bsh.util.ClassBrowser.toFront()V -METHOD|bsh.util.ClassBrowser.classPathChanged()V -METHOD|bsh.util.ClassBrowser.()V -METHOD|bsh.util.GUIConsoleInterface.print(Ljava/lang/Object;Ljava/awt/Color;)V -METHOD|bsh.util.GUIConsoleInterface.setNameCompletion(Lbsh/util/NameCompletion;)V -METHOD|bsh.util.GUIConsoleInterface.setWaitFeedback(Z)V -METHOD|bsh.util.Httpd.main([Ljava/lang/String;)V -METHOD|bsh.util.Httpd.(I)V -METHOD|bsh.util.Httpd.run()V -METHOD|bsh.util.HttpdConnection.(Ljava/net/Socket;)V -METHOD|bsh.util.HttpdConnection.run()V -METHOD|bsh.util.HttpdConnection.serveFile(Ljava/lang/String;)V -METHOD|bsh.util.HttpdConnection.sendFileData(Ljava/lang/String;)V -METHOD|bsh.util.HttpdConnection.error(ILjava/lang/String;)V -METHOD|bsh.util.JConsole$1.(Lbsh/util/JConsole;Ljavax/swing/text/StyledDocument;)V -METHOD|bsh.util.JConsole$1.cut()V -METHOD|bsh.util.JConsole$1.paste()V -METHOD|bsh.util.JConsole$2.(Lbsh/util/JConsole;Ljava/lang/Object;)V -METHOD|bsh.util.JConsole$2.run()V -METHOD|bsh.util.JConsole$3.(Lbsh/util/JConsole;Ljavax/swing/Icon;)V -METHOD|bsh.util.JConsole$3.run()V -METHOD|bsh.util.JConsole$4.(Lbsh/util/JConsole;Ljava/awt/Font;Ljava/awt/Color;Ljava/lang/Object;)V -METHOD|bsh.util.JConsole$4.run()V -METHOD|bsh.util.JConsole$5.(Lbsh/util/JConsole;Ljava/lang/String;ILjava/awt/Color;ZZZLjava/lang/Object;)V -METHOD|bsh.util.JConsole$5.run()V -METHOD|bsh.util.JConsole$BlockingPipedInputStream.(Ljava/io/PipedOutputStream;)V -METHOD|bsh.util.JConsole$BlockingPipedInputStream.read()I -METHOD|bsh.util.JConsole$BlockingPipedInputStream.close()V -METHOD|bsh.util.JConsole.getInputStream()Ljava/io/InputStream; -METHOD|bsh.util.JConsole.getIn()Ljava/io/Reader; -METHOD|bsh.util.JConsole.getOut()Ljava/io/PrintStream; -METHOD|bsh.util.JConsole.getErr()Ljava/io/PrintStream; -METHOD|bsh.util.JConsole.()V -METHOD|bsh.util.JConsole.(Ljava/io/InputStream;Ljava/io/OutputStream;)V -METHOD|bsh.util.JConsole.requestFocus()V -METHOD|bsh.util.JConsole.keyPressed(Ljava/awt/event/KeyEvent;)V -METHOD|bsh.util.JConsole.keyTyped(Ljava/awt/event/KeyEvent;)V -METHOD|bsh.util.JConsole.keyReleased(Ljava/awt/event/KeyEvent;)V -METHOD|bsh.util.JConsole.type(Ljava/awt/event/KeyEvent;)V -METHOD|bsh.util.JConsole.doCommandCompletion(Ljava/lang/String;)V -METHOD|bsh.util.JConsole.resetCommandStart()V -METHOD|bsh.util.JConsole.append(Ljava/lang/String;)V -METHOD|bsh.util.JConsole.replaceRange(Ljava/lang/Object;II)Ljava/lang/String; -METHOD|bsh.util.JConsole.forceCaretMoveToEnd()V -METHOD|bsh.util.JConsole.forceCaretMoveToStart()V -METHOD|bsh.util.JConsole.enter()V -METHOD|bsh.util.JConsole.getCmd()Ljava/lang/String; -METHOD|bsh.util.JConsole.historyUp()V -METHOD|bsh.util.JConsole.historyDown()V -METHOD|bsh.util.JConsole.showHistoryLine()V -METHOD|bsh.util.JConsole.acceptLine(Ljava/lang/String;)V -METHOD|bsh.util.JConsole.println(Ljava/lang/Object;)V -METHOD|bsh.util.JConsole.print(Ljava/lang/Object;)V -METHOD|bsh.util.JConsole.println()V -METHOD|bsh.util.JConsole.error(Ljava/lang/Object;)V -METHOD|bsh.util.JConsole.println(Ljavax/swing/Icon;)V -METHOD|bsh.util.JConsole.print(Ljavax/swing/Icon;)V -METHOD|bsh.util.JConsole.print(Ljava/lang/Object;Ljava/awt/Font;)V -METHOD|bsh.util.JConsole.print(Ljava/lang/Object;Ljava/awt/Color;)V -METHOD|bsh.util.JConsole.print(Ljava/lang/Object;Ljava/awt/Font;Ljava/awt/Color;)V -METHOD|bsh.util.JConsole.print(Ljava/lang/Object;Ljava/lang/String;ILjava/awt/Color;)V -METHOD|bsh.util.JConsole.print(Ljava/lang/Object;Ljava/lang/String;ILjava/awt/Color;ZZZ)V -METHOD|bsh.util.JConsole.setStyle(Ljava/awt/Font;)Ljavax/swing/text/AttributeSet; -METHOD|bsh.util.JConsole.setStyle(Ljava/awt/Color;)Ljavax/swing/text/AttributeSet; -METHOD|bsh.util.JConsole.setStyle(Ljava/awt/Font;Ljava/awt/Color;)Ljavax/swing/text/AttributeSet; -METHOD|bsh.util.JConsole.setStyle(Ljava/lang/String;ILjava/awt/Color;)Ljavax/swing/text/AttributeSet; -METHOD|bsh.util.JConsole.setStyle(Ljava/lang/String;ILjava/awt/Color;ZZZ)Ljavax/swing/text/AttributeSet; -METHOD|bsh.util.JConsole.setStyle(Ljavax/swing/text/AttributeSet;)V -METHOD|bsh.util.JConsole.setStyle(Ljavax/swing/text/AttributeSet;Z)V -METHOD|bsh.util.JConsole.getStyle()Ljavax/swing/text/AttributeSet; -METHOD|bsh.util.JConsole.setFont(Ljava/awt/Font;)V -METHOD|bsh.util.JConsole.inPipeWatcher()V -METHOD|bsh.util.JConsole.run()V -METHOD|bsh.util.JConsole.toString()Ljava/lang/String; -METHOD|bsh.util.JConsole.mouseClicked(Ljava/awt/event/MouseEvent;)V -METHOD|bsh.util.JConsole.mousePressed(Ljava/awt/event/MouseEvent;)V -METHOD|bsh.util.JConsole.mouseReleased(Ljava/awt/event/MouseEvent;)V -METHOD|bsh.util.JConsole.mouseEntered(Ljava/awt/event/MouseEvent;)V -METHOD|bsh.util.JConsole.mouseExited(Ljava/awt/event/MouseEvent;)V -METHOD|bsh.util.JConsole.propertyChange(Ljava/beans/PropertyChangeEvent;)V -METHOD|bsh.util.JConsole.actionPerformed(Ljava/awt/event/ActionEvent;)V -METHOD|bsh.util.JConsole.invokeAndWait(Ljava/lang/Runnable;)V -METHOD|bsh.util.JConsole.setNameCompletion(Lbsh/util/NameCompletion;)V -METHOD|bsh.util.JConsole.setWaitFeedback(Z)V -METHOD|bsh.util.JConsole.textLength()I -METHOD|bsh.util.JConsole.access$000(Lbsh/util/JConsole;)Ljavax/swing/JTextPane; -METHOD|bsh.util.JConsole.access$100(Lbsh/util/JConsole;)I -METHOD|bsh.util.JConsole.access$200(Lbsh/util/JConsole;)V -METHOD|bsh.util.JConsole.access$300(Lbsh/util/JConsole;Ljava/lang/String;)V -METHOD|bsh.util.JConsole.access$400(Lbsh/util/JConsole;)V -METHOD|bsh.util.JConsole.access$500(Lbsh/util/JConsole;)Ljavax/swing/text/AttributeSet; -METHOD|bsh.util.JConsole.access$600(Lbsh/util/JConsole;Ljava/awt/Font;Ljava/awt/Color;)Ljavax/swing/text/AttributeSet; -METHOD|bsh.util.JConsole.access$700(Lbsh/util/JConsole;Ljavax/swing/text/AttributeSet;Z)V -METHOD|bsh.util.JConsole.access$800(Lbsh/util/JConsole;Ljava/lang/String;ILjava/awt/Color;ZZZ)Ljavax/swing/text/AttributeSet; -METHOD|bsh.util.JDemoApplet.()V -METHOD|bsh.util.JDemoApplet.init()V -METHOD|bsh.util.JRemoteApplet.()V -METHOD|bsh.util.JRemoteApplet.init()V -METHOD|bsh.util.NameCompletion.completeName(Ljava/lang/String;)[Ljava/lang/String; -METHOD|bsh.util.NameCompletionTable.()V -METHOD|bsh.util.NameCompletionTable.add(Lbsh/util/NameCompletionTable;)V -METHOD|bsh.util.NameCompletionTable.add(Lbsh/NameSource;)V -METHOD|bsh.util.NameCompletionTable.getMatchingNames(Ljava/lang/String;Ljava/util/List;)V -METHOD|bsh.util.NameCompletionTable.completeName(Ljava/lang/String;)[Ljava/lang/String; -METHOD|bsh.util.Sessiond.(Lbsh/NameSpace;I)V -METHOD|bsh.util.Sessiond.run()V -METHOD|bsh.util.SessiondConnection.(Lbsh/NameSpace;Ljava/net/Socket;)V -METHOD|bsh.util.SessiondConnection.run()V -METHOD|bsh.util.Util.()V -METHOD|bsh.util.Util.startSplashScreen()V -METHOD|bsh.util.Util.endSplashScreen()V -METHOD|bsh.util.Util.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|com.beust.testng.TestNG.()V -METHOD|com.beust.testng.TestNGAntTask.()V -METHOD|com.thoughtworks.qdox.JavaDocBuilder$1.(Lcom/thoughtworks/qdox/JavaDocBuilder;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder$1.visitFile(Ljava/io/File;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.()V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.(Lcom/thoughtworks/qdox/model/DocletTagFactory;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addClasses(Lcom/thoughtworks/qdox/model/JavaSource;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addClass(Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.getClassByName(Ljava/lang/String;)Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.createUnknownClass(Ljava/lang/String;)Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.createBinaryClass(Ljava/lang/String;)Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addModifiers(Ljava/util/Set;I)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addField(Ljava/lang/reflect/Field;Lcom/thoughtworks/qdox/model/ModelBuilder;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addMethodOrConstructor(Ljava/lang/reflect/Member;Lcom/thoughtworks/qdox/model/ModelBuilder;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.getDimension(Ljava/lang/Class;)I -METHOD|com.thoughtworks.qdox.JavaDocBuilder.getTypeName(Ljava/lang/Class;)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.getPackageName(Ljava/lang/String;)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.getClassName(Ljava/lang/String;)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addSource(Ljava/io/Reader;)Lcom/thoughtworks/qdox/model/JavaSource; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addSource(Ljava/io/Reader;Ljava/lang/String;)Lcom/thoughtworks/qdox/model/JavaSource; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addSource(Ljava/io/File;)Lcom/thoughtworks/qdox/model/JavaSource; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addSource(Ljava/net/URL;)Lcom/thoughtworks/qdox/model/JavaSource; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.getSources()[Lcom/thoughtworks/qdox/model/JavaSource; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.getClasses()[Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addClassesRecursive(Lcom/thoughtworks/qdox/model/JavaSource;Ljava/util/Set;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addClassesRecursive(Lcom/thoughtworks/qdox/model/JavaClass;Ljava/util/Set;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.addSourceTree(Ljava/io/File;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.search(Lcom/thoughtworks/qdox/Searcher;)Ljava/util/List; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.getClassLibrary()Lcom/thoughtworks/qdox/model/ClassLibrary; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.save(Ljava/io/File;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.load(Ljava/io/File;)Lcom/thoughtworks/qdox/JavaDocBuilder; -METHOD|com.thoughtworks.qdox.JavaDocBuilder.setEncoding(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.JavaDocBuilder.access$000(Lcom/thoughtworks/qdox/JavaDocBuilder;)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.Searcher.eval(Lcom/thoughtworks/qdox/model/JavaClass;)Z -METHOD|com.thoughtworks.qdox.ant.AbstractQdoxTask.()V -METHOD|com.thoughtworks.qdox.ant.AbstractQdoxTask.addFileset(Lorg/apache/tools/ant/types/FileSet;)V -METHOD|com.thoughtworks.qdox.ant.AbstractQdoxTask.buildFileMap()V -METHOD|com.thoughtworks.qdox.ant.AbstractQdoxTask.buildFileMap(Ljava/io/File;[Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.ant.AbstractQdoxTask.execute()V -METHOD|com.thoughtworks.qdox.ant.AbstractQdoxTask.createDocletTagFactory()Lcom/thoughtworks/qdox/model/DocletTagFactory; -METHOD|com.thoughtworks.qdox.ant.AbstractQdoxTask.mergeBuilderSources(Lcom/thoughtworks/qdox/JavaDocBuilder;)V -METHOD|com.thoughtworks.qdox.ant.AbstractQdoxTask.processSources([Lcom/thoughtworks/qdox/model/JavaSource;)V -METHOD|com.thoughtworks.qdox.ant.AbstractQdoxTask.processClasses([Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.ant.AbstractQdoxTask.validateAttributes()V -METHOD|com.thoughtworks.qdox.directorywalker.DirectoryScanner$1.(Lcom/thoughtworks/qdox/directorywalker/DirectoryScanner;Ljava/util/List;)V -METHOD|com.thoughtworks.qdox.directorywalker.DirectoryScanner$1.visitFile(Ljava/io/File;)V -METHOD|com.thoughtworks.qdox.directorywalker.DirectoryScanner.(Ljava/io/File;)V -METHOD|com.thoughtworks.qdox.directorywalker.DirectoryScanner.scan()[Ljava/io/File; -METHOD|com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(Lcom/thoughtworks/qdox/directorywalker/FileVisitor;Ljava/io/File;)V -METHOD|com.thoughtworks.qdox.directorywalker.DirectoryScanner.addFilter(Lcom/thoughtworks/qdox/directorywalker/Filter;)V -METHOD|com.thoughtworks.qdox.directorywalker.DirectoryScanner.scan(Lcom/thoughtworks/qdox/directorywalker/FileVisitor;)V -METHOD|com.thoughtworks.qdox.directorywalker.FileVisitor.visitFile(Ljava/io/File;)V -METHOD|com.thoughtworks.qdox.directorywalker.Filter.filter(Ljava/io/File;)Z -METHOD|com.thoughtworks.qdox.directorywalker.SuffixFilter.(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.directorywalker.SuffixFilter.filter(Ljava/io/File;)Z -METHOD|com.thoughtworks.qdox.junit.APITestCase$1.()V -METHOD|com.thoughtworks.qdox.junit.APITestCase$1.compare(Ljava/lang/Object;Ljava/lang/Object;)I -METHOD|com.thoughtworks.qdox.junit.APITestCase.()V -METHOD|com.thoughtworks.qdox.junit.APITestCase.assertApiEquals(Ljava/net/URL;Ljava/net/URL;)V -METHOD|com.thoughtworks.qdox.junit.APITestCase.assertApiEquals(Lcom/thoughtworks/qdox/model/JavaSource;Lcom/thoughtworks/qdox/model/JavaSource;)V -METHOD|com.thoughtworks.qdox.junit.APITestCase.assertClassesEqual(Lcom/thoughtworks/qdox/model/JavaClass;Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.junit.APITestCase.assertFieldEquals(Lcom/thoughtworks/qdox/model/JavaField;Lcom/thoughtworks/qdox/model/JavaField;)V -METHOD|com.thoughtworks.qdox.junit.APITestCase.assertFieldsEqual(Lcom/thoughtworks/qdox/model/JavaClass;Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.junit.APITestCase.assertInnerClassesEquals(Lcom/thoughtworks/qdox/model/JavaClass;Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.junit.APITestCase.assertInterfacesEqual(Lcom/thoughtworks/qdox/model/JavaClass;Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.junit.APITestCase.assertMethodsEqual(Lcom/thoughtworks/qdox/model/JavaClass;Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.junit.APITestCase.assertModifiersEquals(Ljava/lang/String;Lcom/thoughtworks/qdox/model/AbstractJavaEntity;Lcom/thoughtworks/qdox/model/AbstractJavaEntity;)V -METHOD|com.thoughtworks.qdox.junit.APITestCase.assertNotDir(Ljava/io/File;Ljava/io/File;)V -METHOD|com.thoughtworks.qdox.junit.APITestCase.getDir()Ljava/io/File; -METHOD|com.thoughtworks.qdox.junit.APITestCase.getRootDir()Ljava/io/File; -METHOD|com.thoughtworks.qdox.junit.APITestCase.()V -METHOD|com.thoughtworks.qdox.model.AbstractInheritableJavaEntity.getTagByName(Ljava/lang/String;Z)Lcom/thoughtworks/qdox/model/DocletTag; -METHOD|com.thoughtworks.qdox.model.AbstractInheritableJavaEntity.(Lcom/thoughtworks/qdox/model/JavaClassParent;I)V -METHOD|com.thoughtworks.qdox.model.AbstractInheritableJavaEntity.getTagsByName(Ljava/lang/String;Z)[Lcom/thoughtworks/qdox/model/DocletTag; -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.(Lcom/thoughtworks/qdox/model/JavaClassParent;I)V -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.getLineNumber()I -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.getName()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.getModifiers()[Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.getComment()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.getTags()[Lcom/thoughtworks/qdox/model/DocletTag; -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.getTagsByName(Ljava/lang/String;)[Lcom/thoughtworks/qdox/model/DocletTag; -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.getTagByName(Ljava/lang/String;)Lcom/thoughtworks/qdox/model/DocletTag; -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.getNamedParameter(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.commentHeader(Lcom/thoughtworks/qdox/model/IndentBuffer;)V -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.toString()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.write(Lcom/thoughtworks/qdox/model/IndentBuffer;)V -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.writeBody(Lcom/thoughtworks/qdox/model/IndentBuffer;)V -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.setName(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.setModifiers([Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.setComment(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.setTags(Ljava/util/List;)V -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isAbstract()Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isPublic()Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isPrivate()Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isProtected()Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isStatic()Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isFinal()Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isSynchronized()Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isTransient()Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isVolatile()Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isNative()Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isStrictfp()Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.isModifierPresent(Ljava/lang/String;)Z -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.writeNonAccessibilityModifiers(Lcom/thoughtworks/qdox/model/IndentBuffer;)V -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.writeAccessibilityModifier(Lcom/thoughtworks/qdox/model/IndentBuffer;)V -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.writeAllModifiers(Lcom/thoughtworks/qdox/model/IndentBuffer;)V -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.getParent()Lcom/thoughtworks/qdox/model/JavaClassParent; -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.getSource()Lcom/thoughtworks/qdox/model/JavaSource; -METHOD|com.thoughtworks.qdox.model.AbstractJavaEntity.compareTo(Ljava/lang/Object;)I -METHOD|com.thoughtworks.qdox.model.BeanProperty.(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.BeanProperty.getName()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.BeanProperty.setType(Lcom/thoughtworks/qdox/model/Type;)V -METHOD|com.thoughtworks.qdox.model.BeanProperty.getType()Lcom/thoughtworks/qdox/model/Type; -METHOD|com.thoughtworks.qdox.model.BeanProperty.getAccessor()Lcom/thoughtworks/qdox/model/JavaMethod; -METHOD|com.thoughtworks.qdox.model.BeanProperty.setAccessor(Lcom/thoughtworks/qdox/model/JavaMethod;)V -METHOD|com.thoughtworks.qdox.model.BeanProperty.getMutator()Lcom/thoughtworks/qdox/model/JavaMethod; -METHOD|com.thoughtworks.qdox.model.BeanProperty.setMutator(Lcom/thoughtworks/qdox/model/JavaMethod;)V -METHOD|com.thoughtworks.qdox.model.ClassLibrary.(Lcom/thoughtworks/qdox/model/JavaClassCache;)V -METHOD|com.thoughtworks.qdox.model.ClassLibrary.add(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.ClassLibrary.getClassByName(Ljava/lang/String;)Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.model.ClassLibrary.contains(Ljava/lang/String;)Z -METHOD|com.thoughtworks.qdox.model.ClassLibrary.getClass(Ljava/lang/String;)Ljava/lang/Class; -METHOD|com.thoughtworks.qdox.model.ClassLibrary.all()Ljava/util/Collection; -METHOD|com.thoughtworks.qdox.model.ClassLibrary.addClassLoader(Ljava/lang/ClassLoader;)V -METHOD|com.thoughtworks.qdox.model.ClassLibrary.addDefaultLoader()V -METHOD|com.thoughtworks.qdox.model.ClassLibrary.readObject(Ljava/io/ObjectInputStream;)V -METHOD|com.thoughtworks.qdox.model.DefaultDocletTag.(Ljava/lang/String;Ljava/lang/String;Lcom/thoughtworks/qdox/model/AbstractJavaEntity;I)V -METHOD|com.thoughtworks.qdox.model.DefaultDocletTag.(Ljava/lang/String;Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.DefaultDocletTag.getName()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.DefaultDocletTag.getValue()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.DefaultDocletTag.getParameters()[Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.DefaultDocletTag.getNamedParameterMap()Ljava/util/Map; -METHOD|com.thoughtworks.qdox.model.DefaultDocletTag.getNamedParameter(Ljava/lang/String;)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.DefaultDocletTag.getContext()Lcom/thoughtworks/qdox/model/AbstractJavaEntity; -METHOD|com.thoughtworks.qdox.model.DefaultDocletTag.getLineNumber()I -METHOD|com.thoughtworks.qdox.model.DefaultDocletTagFactory.()V -METHOD|com.thoughtworks.qdox.model.DefaultDocletTagFactory.createDocletTag(Ljava/lang/String;Ljava/lang/String;Lcom/thoughtworks/qdox/model/AbstractJavaEntity;I)Lcom/thoughtworks/qdox/model/DocletTag; -METHOD|com.thoughtworks.qdox.model.DefaultDocletTagFactory.createDocletTag(Ljava/lang/String;Ljava/lang/String;)Lcom/thoughtworks/qdox/model/DocletTag; -METHOD|com.thoughtworks.qdox.model.DocletTag.getName()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.DocletTag.getValue()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.DocletTag.getParameters()[Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.DocletTag.getNamedParameter(Ljava/lang/String;)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.DocletTag.getNamedParameterMap()Ljava/util/Map; -METHOD|com.thoughtworks.qdox.model.DocletTag.getLineNumber()I -METHOD|com.thoughtworks.qdox.model.DocletTag.getContext()Lcom/thoughtworks/qdox/model/AbstractJavaEntity; -METHOD|com.thoughtworks.qdox.model.DocletTagFactory.createDocletTag(Ljava/lang/String;Ljava/lang/String;Lcom/thoughtworks/qdox/model/AbstractJavaEntity;I)Lcom/thoughtworks/qdox/model/DocletTag; -METHOD|com.thoughtworks.qdox.model.DocletTagFactory.createDocletTag(Ljava/lang/String;Ljava/lang/String;)Lcom/thoughtworks/qdox/model/DocletTag; -METHOD|com.thoughtworks.qdox.model.IndentBuffer.()V -METHOD|com.thoughtworks.qdox.model.IndentBuffer.write(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.IndentBuffer.write(C)V -METHOD|com.thoughtworks.qdox.model.IndentBuffer.newline()V -METHOD|com.thoughtworks.qdox.model.IndentBuffer.indent()V -METHOD|com.thoughtworks.qdox.model.IndentBuffer.deindent()V -METHOD|com.thoughtworks.qdox.model.IndentBuffer.toString()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.IndentBuffer.checkNewLine()V -METHOD|com.thoughtworks.qdox.model.JavaClass.(Lcom/thoughtworks/qdox/model/JavaClassParent;I)V -METHOD|com.thoughtworks.qdox.model.JavaClass.(Lcom/thoughtworks/qdox/model/JavaClassParent;)V -METHOD|com.thoughtworks.qdox.model.JavaClass.setJavaClassCache(Lcom/thoughtworks/qdox/model/JavaClassCache;)V -METHOD|com.thoughtworks.qdox.model.JavaClass.isInterface()Z -METHOD|com.thoughtworks.qdox.model.JavaClass.getSuperClass()Lcom/thoughtworks/qdox/model/Type; -METHOD|com.thoughtworks.qdox.model.JavaClass.getSuperJavaClass()Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.model.JavaClass.getImplements()[Lcom/thoughtworks/qdox/model/Type; -METHOD|com.thoughtworks.qdox.model.JavaClass.getImplementedInterfaces()[Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.model.JavaClass.writeBody(Lcom/thoughtworks/qdox/model/IndentBuffer;)V -METHOD|com.thoughtworks.qdox.model.JavaClass.setInterface(Z)V -METHOD|com.thoughtworks.qdox.model.JavaClass.addMethod(Lcom/thoughtworks/qdox/model/JavaMethod;)V -METHOD|com.thoughtworks.qdox.model.JavaClass.setSuperClass(Lcom/thoughtworks/qdox/model/Type;)V -METHOD|com.thoughtworks.qdox.model.JavaClass.setImplementz([Lcom/thoughtworks/qdox/model/Type;)V -METHOD|com.thoughtworks.qdox.model.JavaClass.addField(Lcom/thoughtworks/qdox/model/JavaField;)V -METHOD|com.thoughtworks.qdox.model.JavaClass.getParentSource()Lcom/thoughtworks/qdox/model/JavaSource; -METHOD|com.thoughtworks.qdox.model.JavaClass.getPackage()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaClass.getFullyQualifiedName()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaClass.isInner()Z -METHOD|com.thoughtworks.qdox.model.JavaClass.resolveType(Ljava/lang/String;)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaClass.getClassLibrary()Lcom/thoughtworks/qdox/model/ClassLibrary; -METHOD|com.thoughtworks.qdox.model.JavaClass.getClassNamePrefix()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaClass.asType()Lcom/thoughtworks/qdox/model/Type; -METHOD|com.thoughtworks.qdox.model.JavaClass.getMethods()[Lcom/thoughtworks/qdox/model/JavaMethod; -METHOD|com.thoughtworks.qdox.model.JavaClass.getMethods(Z)[Lcom/thoughtworks/qdox/model/JavaMethod; -METHOD|com.thoughtworks.qdox.model.JavaClass.addMethodsFromSuperclassAndInterfaces(Ljava/util/Set;Ljava/util/List;Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.model.JavaClass.addNewMethods(Ljava/util/Set;Ljava/util/List;[Lcom/thoughtworks/qdox/model/JavaMethod;)V -METHOD|com.thoughtworks.qdox.model.JavaClass.getMethodBySignature(Ljava/lang/String;[Lcom/thoughtworks/qdox/model/Type;)Lcom/thoughtworks/qdox/model/JavaMethod; -METHOD|com.thoughtworks.qdox.model.JavaClass.getMethodBySignature(Ljava/lang/String;[Lcom/thoughtworks/qdox/model/Type;Z)Lcom/thoughtworks/qdox/model/JavaMethod; -METHOD|com.thoughtworks.qdox.model.JavaClass.getMethodsBySignature(Ljava/lang/String;[Lcom/thoughtworks/qdox/model/Type;Z)[Lcom/thoughtworks/qdox/model/JavaMethod; -METHOD|com.thoughtworks.qdox.model.JavaClass.getFields()[Lcom/thoughtworks/qdox/model/JavaField; -METHOD|com.thoughtworks.qdox.model.JavaClass.getFieldByName(Ljava/lang/String;)Lcom/thoughtworks/qdox/model/JavaField; -METHOD|com.thoughtworks.qdox.model.JavaClass.addClass(Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.model.JavaClass.getClasses()[Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.model.JavaClass.getInnerClasses()[Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.model.JavaClass.getInnerClassByName(Ljava/lang/String;)Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.model.JavaClass.isA(Ljava/lang/String;)Z -METHOD|com.thoughtworks.qdox.model.JavaClass.isA(Lcom/thoughtworks/qdox/model/JavaClass;)Z -METHOD|com.thoughtworks.qdox.model.JavaClass.getBeanProperties()[Lcom/thoughtworks/qdox/model/BeanProperty; -METHOD|com.thoughtworks.qdox.model.JavaClass.getBeanProperties(Z)[Lcom/thoughtworks/qdox/model/BeanProperty; -METHOD|com.thoughtworks.qdox.model.JavaClass.getBeanPropertyMap(Z)Ljava/util/Map; -METHOD|com.thoughtworks.qdox.model.JavaClass.getOrCreateProperty(Ljava/util/Map;Ljava/lang/String;)Lcom/thoughtworks/qdox/model/BeanProperty; -METHOD|com.thoughtworks.qdox.model.JavaClass.getBeanProperty(Ljava/lang/String;)Lcom/thoughtworks/qdox/model/BeanProperty; -METHOD|com.thoughtworks.qdox.model.JavaClass.getBeanProperty(Ljava/lang/String;Z)Lcom/thoughtworks/qdox/model/BeanProperty; -METHOD|com.thoughtworks.qdox.model.JavaClass.getDerivedClasses()[Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.model.JavaClass.getTagsByName(Ljava/lang/String;Z)[Lcom/thoughtworks/qdox/model/DocletTag; -METHOD|com.thoughtworks.qdox.model.JavaClass.addTagsRecursive(Ljava/util/List;Lcom/thoughtworks/qdox/model/JavaClass;Ljava/lang/String;Z)V -METHOD|com.thoughtworks.qdox.model.JavaClass.addNewTags(Ljava/util/List;[Lcom/thoughtworks/qdox/model/DocletTag;)V -METHOD|com.thoughtworks.qdox.model.JavaClass.compareTo(Ljava/lang/Object;)I -METHOD|com.thoughtworks.qdox.model.JavaClass.()V -METHOD|com.thoughtworks.qdox.model.JavaClassCache.getClassByName(Ljava/lang/String;)Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.model.JavaClassParent.resolveType(Ljava/lang/String;)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaClassParent.getClassLibrary()Lcom/thoughtworks/qdox/model/ClassLibrary; -METHOD|com.thoughtworks.qdox.model.JavaClassParent.getClassNamePrefix()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaClassParent.getParentSource()Lcom/thoughtworks/qdox/model/JavaSource; -METHOD|com.thoughtworks.qdox.model.JavaClassParent.addClass(Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.model.JavaField.(Lcom/thoughtworks/qdox/model/JavaClass;I)V -METHOD|com.thoughtworks.qdox.model.JavaField.(Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.model.JavaField.()V -METHOD|com.thoughtworks.qdox.model.JavaField.getType()Lcom/thoughtworks/qdox/model/Type; -METHOD|com.thoughtworks.qdox.model.JavaField.writeBody(Lcom/thoughtworks/qdox/model/IndentBuffer;)V -METHOD|com.thoughtworks.qdox.model.JavaField.setType(Lcom/thoughtworks/qdox/model/Type;)V -METHOD|com.thoughtworks.qdox.model.JavaField.compareTo(Ljava/lang/Object;)I -METHOD|com.thoughtworks.qdox.model.JavaField.getDeclarationSignature(Z)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaField.getCallSignature()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaMethod.(Lcom/thoughtworks/qdox/model/JavaClass;I)V -METHOD|com.thoughtworks.qdox.model.JavaMethod.(Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.model.JavaMethod.()V -METHOD|com.thoughtworks.qdox.model.JavaMethod.getReturns()Lcom/thoughtworks/qdox/model/Type; -METHOD|com.thoughtworks.qdox.model.JavaMethod.getParameters()[Lcom/thoughtworks/qdox/model/JavaParameter; -METHOD|com.thoughtworks.qdox.model.JavaMethod.getParameterByName(Ljava/lang/String;)Lcom/thoughtworks/qdox/model/JavaParameter; -METHOD|com.thoughtworks.qdox.model.JavaMethod.getExceptions()[Lcom/thoughtworks/qdox/model/Type; -METHOD|com.thoughtworks.qdox.model.JavaMethod.isConstructor()Z -METHOD|com.thoughtworks.qdox.model.JavaMethod.writeBody(Lcom/thoughtworks/qdox/model/IndentBuffer;)V -METHOD|com.thoughtworks.qdox.model.JavaMethod.writeBody(Lcom/thoughtworks/qdox/model/IndentBuffer;ZZZ)V -METHOD|com.thoughtworks.qdox.model.JavaMethod.getSignature(ZZ)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaMethod.getDeclarationSignature(Z)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaMethod.getCallSignature()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaMethod.setReturns(Lcom/thoughtworks/qdox/model/Type;)V -METHOD|com.thoughtworks.qdox.model.JavaMethod.setParameters([Lcom/thoughtworks/qdox/model/JavaParameter;)V -METHOD|com.thoughtworks.qdox.model.JavaMethod.setExceptions([Lcom/thoughtworks/qdox/model/Type;)V -METHOD|com.thoughtworks.qdox.model.JavaMethod.setConstructor(Z)V -METHOD|com.thoughtworks.qdox.model.JavaMethod.equals(Ljava/lang/Object;)Z -METHOD|com.thoughtworks.qdox.model.JavaMethod.signatureMatches(Ljava/lang/String;[Lcom/thoughtworks/qdox/model/Type;)Z -METHOD|com.thoughtworks.qdox.model.JavaMethod.hashCode()I -METHOD|com.thoughtworks.qdox.model.JavaMethod.getParentClass()Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.model.JavaMethod.setParentClass(Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.model.JavaMethod.isPublic()Z -METHOD|com.thoughtworks.qdox.model.JavaMethod.isPropertyAccessor()Z -METHOD|com.thoughtworks.qdox.model.JavaMethod.isPropertyMutator()Z -METHOD|com.thoughtworks.qdox.model.JavaMethod.getPropertyType()Lcom/thoughtworks/qdox/model/Type; -METHOD|com.thoughtworks.qdox.model.JavaMethod.getPropertyName()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaMethod.getTagsByName(Ljava/lang/String;Z)[Lcom/thoughtworks/qdox/model/DocletTag; -METHOD|com.thoughtworks.qdox.model.JavaMethod.compareTo(Ljava/lang/Object;)I -METHOD|com.thoughtworks.qdox.model.JavaParameter.(Lcom/thoughtworks/qdox/model/Type;Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.JavaParameter.getName()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaParameter.getType()Lcom/thoughtworks/qdox/model/Type; -METHOD|com.thoughtworks.qdox.model.JavaParameter.equals(Ljava/lang/Object;)Z -METHOD|com.thoughtworks.qdox.model.JavaParameter.hashCode()I -METHOD|com.thoughtworks.qdox.model.JavaParameter.getParentMethod()Lcom/thoughtworks/qdox/model/JavaMethod; -METHOD|com.thoughtworks.qdox.model.JavaParameter.setParentMethod(Lcom/thoughtworks/qdox/model/JavaMethod;)V -METHOD|com.thoughtworks.qdox.model.JavaParameter.()V -METHOD|com.thoughtworks.qdox.model.JavaSource.()V -METHOD|com.thoughtworks.qdox.model.JavaSource.setURL(Ljava/net/URL;)V -METHOD|com.thoughtworks.qdox.model.JavaSource.getURL()Ljava/net/URL; -METHOD|com.thoughtworks.qdox.model.JavaSource.setFile(Ljava/io/File;)V -METHOD|com.thoughtworks.qdox.model.JavaSource.getFile()Ljava/io/File; -METHOD|com.thoughtworks.qdox.model.JavaSource.getPackage()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaSource.setPackage(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.JavaSource.addImport(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.JavaSource.getImports()[Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaSource.addClass(Lcom/thoughtworks/qdox/model/JavaClass;)V -METHOD|com.thoughtworks.qdox.model.JavaSource.getClasses()[Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.model.JavaSource.getClassLibrary()Lcom/thoughtworks/qdox/model/ClassLibrary; -METHOD|com.thoughtworks.qdox.model.JavaSource.setClassLibrary(Lcom/thoughtworks/qdox/model/ClassLibrary;)V -METHOD|com.thoughtworks.qdox.model.JavaSource.toString()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaSource.resolveType(Ljava/lang/String;)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(Ljava/lang/String;)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaSource.getClassNamePrefix()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.JavaSource.getParentSource()Lcom/thoughtworks/qdox/model/JavaSource; -METHOD|com.thoughtworks.qdox.model.JavaSource.()V -METHOD|com.thoughtworks.qdox.model.Member.getDeclarationSignature(Z)Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.Member.getCallSignature()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.ModelBuilder.()V -METHOD|com.thoughtworks.qdox.model.ModelBuilder.(Lcom/thoughtworks/qdox/model/ClassLibrary;Lcom/thoughtworks/qdox/model/DocletTagFactory;)V -METHOD|com.thoughtworks.qdox.model.ModelBuilder.addPackage(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.ModelBuilder.addImport(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.ModelBuilder.addJavaDoc(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.ModelBuilder.addJavaDocTag(Lcom/thoughtworks/qdox/parser/structs/TagDef;)V -METHOD|com.thoughtworks.qdox.model.ModelBuilder.beginClass(Lcom/thoughtworks/qdox/parser/structs/ClassDef;)V -METHOD|com.thoughtworks.qdox.model.ModelBuilder.endClass()V -METHOD|com.thoughtworks.qdox.model.ModelBuilder.createType(Ljava/lang/String;I)Lcom/thoughtworks/qdox/model/Type; -METHOD|com.thoughtworks.qdox.model.ModelBuilder.addJavaDoc(Lcom/thoughtworks/qdox/model/AbstractJavaEntity;)V -METHOD|com.thoughtworks.qdox.model.ModelBuilder.addMethod(Lcom/thoughtworks/qdox/parser/structs/MethodDef;)V -METHOD|com.thoughtworks.qdox.model.ModelBuilder.addField(Lcom/thoughtworks/qdox/parser/structs/FieldDef;)V -METHOD|com.thoughtworks.qdox.model.ModelBuilder.getSource()Lcom/thoughtworks/qdox/model/JavaSource; -METHOD|com.thoughtworks.qdox.model.Type.(Ljava/lang/String;Ljava/lang/String;ILcom/thoughtworks/qdox/model/JavaClassParent;)V -METHOD|com.thoughtworks.qdox.model.Type.(Ljava/lang/String;ILcom/thoughtworks/qdox/model/JavaClassParent;)V -METHOD|com.thoughtworks.qdox.model.Type.(Ljava/lang/String;I)V -METHOD|com.thoughtworks.qdox.model.Type.(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.model.Type.createUnresolved(Ljava/lang/String;ILcom/thoughtworks/qdox/model/JavaClassParent;)Lcom/thoughtworks/qdox/model/Type; -METHOD|com.thoughtworks.qdox.model.Type.getJavaClassParent()Lcom/thoughtworks/qdox/model/JavaClassParent; -METHOD|com.thoughtworks.qdox.model.Type.getValue()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.Type.isResolved()Z -METHOD|com.thoughtworks.qdox.model.Type.compareTo(Ljava/lang/Object;)I -METHOD|com.thoughtworks.qdox.model.Type.isArray()Z -METHOD|com.thoughtworks.qdox.model.Type.getDimensions()I -METHOD|com.thoughtworks.qdox.model.Type.toString()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.model.Type.equals(Ljava/lang/Object;)Z -METHOD|com.thoughtworks.qdox.model.Type.hashCode()I -METHOD|com.thoughtworks.qdox.model.Type.getJavaClass()Lcom/thoughtworks/qdox/model/JavaClass; -METHOD|com.thoughtworks.qdox.model.Type.isA(Lcom/thoughtworks/qdox/model/Type;)Z -METHOD|com.thoughtworks.qdox.model.Type.()V -METHOD|com.thoughtworks.qdox.model.util.TagParser.()V -METHOD|com.thoughtworks.qdox.model.util.TagParser.makeTokenizer(Ljava/lang/String;)Ljava/io/StreamTokenizer; -METHOD|com.thoughtworks.qdox.model.util.TagParser.parseNamedParameters(Ljava/lang/String;)Ljava/util/Map; -METHOD|com.thoughtworks.qdox.model.util.TagParser.parseWords(Ljava/lang/String;)[Ljava/lang/String; -METHOD|com.thoughtworks.qdox.parser.Builder.addPackage(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.parser.Builder.addImport(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.parser.Builder.addJavaDoc(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.parser.Builder.addJavaDocTag(Lcom/thoughtworks/qdox/parser/structs/TagDef;)V -METHOD|com.thoughtworks.qdox.parser.Builder.beginClass(Lcom/thoughtworks/qdox/parser/structs/ClassDef;)V -METHOD|com.thoughtworks.qdox.parser.Builder.endClass()V -METHOD|com.thoughtworks.qdox.parser.Builder.addMethod(Lcom/thoughtworks/qdox/parser/structs/MethodDef;)V -METHOD|com.thoughtworks.qdox.parser.Builder.addField(Lcom/thoughtworks/qdox/parser/structs/FieldDef;)V -METHOD|com.thoughtworks.qdox.parser.Lexer.lex()I -METHOD|com.thoughtworks.qdox.parser.Lexer.text()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.parser.Lexer.getLine()I -METHOD|com.thoughtworks.qdox.parser.Lexer.getColumn()I -METHOD|com.thoughtworks.qdox.parser.ParseException.(Ljava/lang/String;II)V -METHOD|com.thoughtworks.qdox.parser.ParseException.getLine()I -METHOD|com.thoughtworks.qdox.parser.ParseException.getColumn()I -METHOD|com.thoughtworks.qdox.parser.ParseException.setSourceInfo(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.parser.ParseException.getMessage()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.text()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.lex()I -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.getLine()I -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.getColumn()I -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.pushState(I)V -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.popState()V -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.(Ljava/io/Reader;)V -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.(Ljava/io/InputStream;)V -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yy_unpack()[I -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yy_unpack(Ljava/lang/String;I[I)I -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yy_unpack_cmap(Ljava/lang/String;)[C -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yy_refill()Z -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yyclose()V -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yyreset(Ljava/io/Reader;)V -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yystate()I -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yybegin(I)V -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yytext()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yycharat(I)C -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yylength()I -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yy_ScanError(I)V -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yypushback(I)V -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yy_do_eof()V -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.yylex()I -METHOD|com.thoughtworks.qdox.parser.impl.JFlexLexer.()V -METHOD|com.thoughtworks.qdox.parser.impl.Parser$Value.(Lcom/thoughtworks/qdox/parser/impl/Parser;)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser$Value.(Lcom/thoughtworks/qdox/parser/impl/Parser;Lcom/thoughtworks/qdox/parser/impl/Parser$1;)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.debug(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.state_push(I)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.state_pop()I -METHOD|com.thoughtworks.qdox.parser.impl.Parser.state_drop(I)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.state_peek(I)I -METHOD|com.thoughtworks.qdox.parser.impl.Parser.init_stacks()Z -METHOD|com.thoughtworks.qdox.parser.impl.Parser.dump_stacks(I)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.val_init()V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.val_push(Lcom/thoughtworks/qdox/parser/impl/Parser$Value;)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.val_pop()Lcom/thoughtworks/qdox/parser/impl/Parser$Value; -METHOD|com.thoughtworks.qdox.parser.impl.Parser.val_drop(I)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.val_peek(I)Lcom/thoughtworks/qdox/parser/impl/Parser$Value; -METHOD|com.thoughtworks.qdox.parser.impl.Parser.buffer()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.parser.impl.Parser.(Lcom/thoughtworks/qdox/parser/Lexer;Lcom/thoughtworks/qdox/parser/Builder;)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.parse()Z -METHOD|com.thoughtworks.qdox.parser.impl.Parser.yylex()I -METHOD|com.thoughtworks.qdox.parser.impl.Parser.yyerror(Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.makeField(Lcom/thoughtworks/qdox/parser/structs/TypeDef;)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.yylexdebug(II)V -METHOD|com.thoughtworks.qdox.parser.impl.Parser.yyparse()I -METHOD|com.thoughtworks.qdox.parser.impl.Parser.()V -METHOD|com.thoughtworks.qdox.parser.structs.ClassDef.()V -METHOD|com.thoughtworks.qdox.parser.structs.ClassDef.equals(Ljava/lang/Object;)Z -METHOD|com.thoughtworks.qdox.parser.structs.ClassDef.hashCode()I -METHOD|com.thoughtworks.qdox.parser.structs.ClassDef.toString()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.parser.structs.FieldDef.()V -METHOD|com.thoughtworks.qdox.parser.structs.FieldDef.equals(Ljava/lang/Object;)Z -METHOD|com.thoughtworks.qdox.parser.structs.FieldDef.hashCode()I -METHOD|com.thoughtworks.qdox.parser.structs.FieldDef.toString()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.parser.structs.LocatedDef.()V -METHOD|com.thoughtworks.qdox.parser.structs.MethodDef.()V -METHOD|com.thoughtworks.qdox.parser.structs.MethodDef.equals(Ljava/lang/Object;)Z -METHOD|com.thoughtworks.qdox.parser.structs.MethodDef.hashCode()I -METHOD|com.thoughtworks.qdox.parser.structs.MethodDef.toString()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.parser.structs.TagDef.(Ljava/lang/String;Ljava/lang/String;I)V -METHOD|com.thoughtworks.qdox.parser.structs.TagDef.(Ljava/lang/String;Ljava/lang/String;)V -METHOD|com.thoughtworks.qdox.parser.structs.TagDef.equals(Ljava/lang/Object;)Z -METHOD|com.thoughtworks.qdox.parser.structs.TagDef.hashCode()I -METHOD|com.thoughtworks.qdox.parser.structs.TagDef.toString()Ljava/lang/String; -METHOD|com.thoughtworks.qdox.parser.structs.TypeDef.(Ljava/lang/String;I)V -METHOD|org.testng.Assert.()V -METHOD|org.testng.Assert.assertTrue(ZLjava/lang/String;)V -METHOD|org.testng.Assert.assertTrue(Z)V -METHOD|org.testng.Assert.assertFalse(ZLjava/lang/String;)V -METHOD|org.testng.Assert.assertFalse(Z)V -METHOD|org.testng.Assert.fail(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.testng.Assert.fail(Ljava/lang/String;)V -METHOD|org.testng.Assert.fail()V -METHOD|org.testng.Assert.assertEquals(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V -METHOD|org.testng.Assert.assertEquals(Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.Assert.assertEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.Assert.assertEquals(Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.Assert.assertEquals(DDDLjava/lang/String;)V -METHOD|org.testng.Assert.assertEquals(DDD)V -METHOD|org.testng.Assert.assertEquals(FFFLjava/lang/String;)V -METHOD|org.testng.Assert.assertEquals(FFF)V -METHOD|org.testng.Assert.assertEquals(JJLjava/lang/String;)V -METHOD|org.testng.Assert.assertEquals(JJ)V -METHOD|org.testng.Assert.assertEquals(ZZLjava/lang/String;)V -METHOD|org.testng.Assert.assertEquals(ZZ)V -METHOD|org.testng.Assert.assertEquals(BBLjava/lang/String;)V -METHOD|org.testng.Assert.assertEquals(BB)V -METHOD|org.testng.Assert.assertEquals(CCLjava/lang/String;)V -METHOD|org.testng.Assert.assertEquals(CC)V -METHOD|org.testng.Assert.assertEquals(SSLjava/lang/String;)V -METHOD|org.testng.Assert.assertEquals(SS)V -METHOD|org.testng.Assert.assertEquals(IILjava/lang/String;)V -METHOD|org.testng.Assert.assertEquals(II)V -METHOD|org.testng.Assert.assertNotNull(Ljava/lang/Object;)V -METHOD|org.testng.Assert.assertNotNull(Ljava/lang/Object;Ljava/lang/String;)V -METHOD|org.testng.Assert.assertNull(Ljava/lang/Object;)V -METHOD|org.testng.Assert.assertNull(Ljava/lang/Object;Ljava/lang/String;)V -METHOD|org.testng.Assert.assertSame(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V -METHOD|org.testng.Assert.assertSame(Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.Assert.assertNotSame(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V -METHOD|org.testng.Assert.assertNotSame(Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.Assert.failSame(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V -METHOD|org.testng.Assert.failNotSame(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V -METHOD|org.testng.Assert.failNotEquals(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V -METHOD|org.testng.Assert.format(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.Assert.assertEquals(Ljava/util/Collection;Ljava/util/Collection;)V -METHOD|org.testng.Assert.assertEquals(Ljava/util/Collection;Ljava/util/Collection;Ljava/lang/String;)V -METHOD|org.testng.Assert.assertEquals([Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/String;)V -METHOD|org.testng.Assert.assertEqualsNoOrder([Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/String;)V -METHOD|org.testng.Assert.assertEquals([Ljava/lang/Object;[Ljava/lang/Object;)V -METHOD|org.testng.Assert.assertEqualsNoOrder([Ljava/lang/Object;[Ljava/lang/Object;)V -METHOD|org.testng.Assert.assertEquals([B[B)V -METHOD|org.testng.Assert.assertEquals([B[BLjava/lang/String;)V -METHOD|org.testng.AssertJUnit.()V -METHOD|org.testng.AssertJUnit.assertTrue(Ljava/lang/String;Z)V -METHOD|org.testng.AssertJUnit.assertTrue(Z)V -METHOD|org.testng.AssertJUnit.assertFalse(Ljava/lang/String;Z)V -METHOD|org.testng.AssertJUnit.assertFalse(Z)V -METHOD|org.testng.AssertJUnit.fail(Ljava/lang/String;)V -METHOD|org.testng.AssertJUnit.fail()V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;DDD)V -METHOD|org.testng.AssertJUnit.assertEquals(DDD)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;FFF)V -METHOD|org.testng.AssertJUnit.assertEquals(FFF)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;JJ)V -METHOD|org.testng.AssertJUnit.assertEquals(JJ)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;ZZ)V -METHOD|org.testng.AssertJUnit.assertEquals(ZZ)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;BB)V -METHOD|org.testng.AssertJUnit.assertEquals(BB)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;CC)V -METHOD|org.testng.AssertJUnit.assertEquals(CC)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;SS)V -METHOD|org.testng.AssertJUnit.assertEquals(SS)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;II)V -METHOD|org.testng.AssertJUnit.assertEquals(II)V -METHOD|org.testng.AssertJUnit.assertNotNull(Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.assertNotNull(Ljava/lang/String;Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.assertNull(Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.assertNull(Ljava/lang/String;Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.assertSame(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.assertSame(Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.assertNotSame(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.assertNotSame(Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.assertEquals([B[B)V -METHOD|org.testng.AssertJUnit.assertEquals(Ljava/lang/String;[B[B)V -METHOD|org.testng.AssertJUnit.failSame(Ljava/lang/String;)V -METHOD|org.testng.AssertJUnit.failNotSame(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.failNotEquals(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.AssertJUnit.format(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String; -METHOD|org.testng.ClassMethodMap.([Lorg/testng/ITestNGMethod;)V -METHOD|org.testng.ClassMethodMap.removeAndCheckIfLast(Lorg/testng/ITestNGMethod;)Z -METHOD|org.testng.ClassMethodMap.getMethodClass(Lorg/testng/ITestNGMethod;)Ljava/lang/Class; -METHOD|org.testng.IClass.getName()Ljava/lang/String; -METHOD|org.testng.IClass.getRealClass()Ljava/lang/Class; -METHOD|org.testng.IClass.getInstances(Z)[Ljava/lang/Object; -METHOD|org.testng.IClass.getInstanceCount()I -METHOD|org.testng.IClass.getInstanceHashCodes()[J -METHOD|org.testng.IClass.addInstance(Ljava/lang/Object;)V -METHOD|org.testng.IExtraOutput.getParameterOutput()Ljava/util/List; -METHOD|org.testng.IHookCallBack.runTestMethod(Lorg/testng/ITestResult;)V -METHOD|org.testng.IHookable.run(Lorg/testng/IHookCallBack;Lorg/testng/ITestResult;)V -METHOD|org.testng.IInstanceInfo.getInstance()Ljava/lang/Object; -METHOD|org.testng.IInstanceInfo.getInstanceClass()Ljava/lang/Class; -METHOD|org.testng.IMethodSelector.includeMethod(Lorg/testng/ITestNGMethod;Z)Z -METHOD|org.testng.IMethodSelector.setTestMethods(Ljava/util/List;)V -METHOD|org.testng.IReporter.generateReport(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V -METHOD|org.testng.IResultMap.addResult(Lorg/testng/ITestResult;Lorg/testng/ITestNGMethod;)V -METHOD|org.testng.IResultMap.getResults(Lorg/testng/ITestNGMethod;)Ljava/util/Set; -METHOD|org.testng.IResultMap.getAllResults()Ljava/util/Set; -METHOD|org.testng.IResultMap.getAllMethods()Ljava/util/Collection; -METHOD|org.testng.IResultMap.size()I -METHOD|org.testng.ISuite.getName()Ljava/lang/String; -METHOD|org.testng.ISuite.getResults()Ljava/util/Map; -METHOD|org.testng.ISuite.getOutputDirectory()Ljava/lang/String; -METHOD|org.testng.ISuite.isParallel()Z -METHOD|org.testng.ISuite.getParameter(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.ISuite.getMethodsByGroups()Ljava/util/Map; -METHOD|org.testng.ISuite.getInvokedMethods()Ljava/util/Collection; -METHOD|org.testng.ISuite.getExcludedMethods()Ljava/util/Collection; -METHOD|org.testng.ISuite.run()V -METHOD|org.testng.ISuite.getHost()Ljava/lang/String; -METHOD|org.testng.ISuiteListener.onStart(Lorg/testng/ISuite;)V -METHOD|org.testng.ISuiteListener.onFinish(Lorg/testng/ISuite;)V -METHOD|org.testng.ISuiteResult.getPropertyFileName()Ljava/lang/String; -METHOD|org.testng.ISuiteResult.getTestContext()Lorg/testng/ITestContext; -METHOD|org.testng.ITest.getTestName()Ljava/lang/String; -METHOD|org.testng.ITestClass.getInstances(Z)[Ljava/lang/Object; -METHOD|org.testng.ITestClass.getInstanceHashCodes()[J -METHOD|org.testng.ITestClass.getInstanceCount()I -METHOD|org.testng.ITestClass.getTestMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestClass.getBeforeTestMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestClass.getAfterTestMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestClass.getBeforeClassMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestClass.getAfterClassMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestClass.getBeforeSuiteMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestClass.getAfterSuiteMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestClass.getBeforeTestConfigurationMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestClass.getAfterTestConfigurationMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestClass.getBeforeGroupsMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestClass.getAfterGroupsMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestClassFinder.findTestClasses()[Lorg/testng/IClass; -METHOD|org.testng.ITestClassFinder.getIClass(Ljava/lang/Class;)Lorg/testng/IClass; -METHOD|org.testng.ITestContext.getName()Ljava/lang/String; -METHOD|org.testng.ITestContext.getStartDate()Ljava/util/Date; -METHOD|org.testng.ITestContext.getEndDate()Ljava/util/Date; -METHOD|org.testng.ITestContext.getPassedTests()Lorg/testng/IResultMap; -METHOD|org.testng.ITestContext.getSkippedTests()Lorg/testng/IResultMap; -METHOD|org.testng.ITestContext.getFailedButWithinSuccessPercentageTests()Lorg/testng/IResultMap; -METHOD|org.testng.ITestContext.getFailedTests()Lorg/testng/IResultMap; -METHOD|org.testng.ITestContext.getIncludedGroups()[Ljava/lang/String; -METHOD|org.testng.ITestContext.getExcludedGroups()[Ljava/lang/String; -METHOD|org.testng.ITestContext.getOutputDirectory()Ljava/lang/String; -METHOD|org.testng.ITestContext.getSuite()Lorg/testng/ISuite; -METHOD|org.testng.ITestContext.getAllTestMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestContext.getHost()Ljava/lang/String; -METHOD|org.testng.ITestContext.getExcludedMethods()Ljava/util/Collection; -METHOD|org.testng.ITestListener.onTestStart(Lorg/testng/ITestResult;)V -METHOD|org.testng.ITestListener.onTestSuccess(Lorg/testng/ITestResult;)V -METHOD|org.testng.ITestListener.onTestFailure(Lorg/testng/ITestResult;)V -METHOD|org.testng.ITestListener.onTestSkipped(Lorg/testng/ITestResult;)V -METHOD|org.testng.ITestListener.onTestFailedButWithinSuccessPercentage(Lorg/testng/ITestResult;)V -METHOD|org.testng.ITestListener.onStart(Lorg/testng/ITestContext;)V -METHOD|org.testng.ITestListener.onFinish(Lorg/testng/ITestContext;)V -METHOD|org.testng.ITestMethodFinder.getTestMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestMethodFinder.getBeforeTestMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestMethodFinder.getAfterTestMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestMethodFinder.getBeforeClassMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestMethodFinder.getAfterClassMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestMethodFinder.getBeforeSuiteMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestMethodFinder.getAfterSuiteMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestMethodFinder.getBeforeTestConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestMethodFinder.getAfterTestConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestMethodFinder.getBeforeGroupsConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestMethodFinder.getAfterGroupsConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestNGMethod.getRealClass()Ljava/lang/Class; -METHOD|org.testng.ITestNGMethod.getTestClass()Lorg/testng/ITestClass; -METHOD|org.testng.ITestNGMethod.setTestClass(Lorg/testng/ITestClass;)V -METHOD|org.testng.ITestNGMethod.getMethod()Ljava/lang/reflect/Method; -METHOD|org.testng.ITestNGMethod.getMethodName()Ljava/lang/String; -METHOD|org.testng.ITestNGMethod.getInstances()[Ljava/lang/Object; -METHOD|org.testng.ITestNGMethod.getInstanceHashCodes()[J -METHOD|org.testng.ITestNGMethod.getGroups()[Ljava/lang/String; -METHOD|org.testng.ITestNGMethod.getGroupsDependedUpon()[Ljava/lang/String; -METHOD|org.testng.ITestNGMethod.getMissingGroup()Ljava/lang/String; -METHOD|org.testng.ITestNGMethod.setMissingGroup(Ljava/lang/String;)V -METHOD|org.testng.ITestNGMethod.getBeforeGroups()[Ljava/lang/String; -METHOD|org.testng.ITestNGMethod.getAfterGroups()[Ljava/lang/String; -METHOD|org.testng.ITestNGMethod.getMethodsDependedUpon()[Ljava/lang/String; -METHOD|org.testng.ITestNGMethod.addMethodDependedUpon(Ljava/lang/String;)V -METHOD|org.testng.ITestNGMethod.isTest()Z -METHOD|org.testng.ITestNGMethod.isBeforeMethodConfiguration()Z -METHOD|org.testng.ITestNGMethod.isAfterMethodConfiguration()Z -METHOD|org.testng.ITestNGMethod.isBeforeClassConfiguration()Z -METHOD|org.testng.ITestNGMethod.isAfterClassConfiguration()Z -METHOD|org.testng.ITestNGMethod.isBeforeSuiteConfiguration()Z -METHOD|org.testng.ITestNGMethod.isAfterSuiteConfiguration()Z -METHOD|org.testng.ITestNGMethod.isBeforeTestConfiguration()Z -METHOD|org.testng.ITestNGMethod.isAfterTestConfiguration()Z -METHOD|org.testng.ITestNGMethod.getTimeOut()J -METHOD|org.testng.ITestNGMethod.getInvocationCount()I -METHOD|org.testng.ITestNGMethod.getSuccessPercentage()I -METHOD|org.testng.ITestNGMethod.getId()J -METHOD|org.testng.ITestNGMethod.setId(J)V -METHOD|org.testng.ITestNGMethod.getDate()J -METHOD|org.testng.ITestNGMethod.setDate(J)V -METHOD|org.testng.ITestNGMethod.canRunFromClass(Lorg/testng/IClass;)Z -METHOD|org.testng.ITestNGMethod.isAlwaysRun()Z -METHOD|org.testng.ITestNGMethod.getThreadPoolSize()I -METHOD|org.testng.ITestNGMethod.getDescription()Ljava/lang/String; -METHOD|org.testng.ITestNGMethod.isBeforeGroupsConfiguration()Z -METHOD|org.testng.ITestNGMethod.isAfterGroupsConfiguration()Z -METHOD|org.testng.ITestResult.getStatus()I -METHOD|org.testng.ITestResult.setStatus(I)V -METHOD|org.testng.ITestResult.getMethod()Lorg/testng/ITestNGMethod; -METHOD|org.testng.ITestResult.getParameters()[Ljava/lang/Object; -METHOD|org.testng.ITestResult.setParameters([Ljava/lang/Object;)V -METHOD|org.testng.ITestResult.getTestClass()Lorg/testng/IClass; -METHOD|org.testng.ITestResult.setThrowable(Ljava/lang/Throwable;)V -METHOD|org.testng.ITestResult.getThrowable()Ljava/lang/Throwable; -METHOD|org.testng.ITestResult.getStartMillis()J -METHOD|org.testng.ITestResult.getEndMillis()J -METHOD|org.testng.ITestResult.setEndMillis(J)V -METHOD|org.testng.ITestResult.getName()Ljava/lang/String; -METHOD|org.testng.ITestResult.isSuccess()Z -METHOD|org.testng.ITestResult.getHost()Ljava/lang/String; -METHOD|org.testng.ITestRunnerFactory.newTestRunner(Lorg/testng/ISuite;Lorg/testng/xml/XmlTest;)Lorg/testng/TestRunner; -METHOD|org.testng.JUnitConverter.()V -METHOD|org.testng.JUnitConverter.main([Ljava/lang/String;)V -METHOD|org.testng.JUnitConverter.extractOptions([Ljava/lang/String;)Ljava/util/Map; -METHOD|org.testng.JUnitConverter.usage()V -METHOD|org.testng.JUnitConverter.log(Ljava/lang/String;)V -METHOD|org.testng.JUnitConverter.getLogLevel()I -METHOD|org.testng.JUnitConverter.ppp(Ljava/lang/String;)V -METHOD|org.testng.JUnitConverter.()V -METHOD|org.testng.JUnitConverterTask.()V -METHOD|org.testng.JUnitConverterTask.execute()V -METHOD|org.testng.JUnitConverterTask.validate()V -METHOD|org.testng.JUnitConverterTask.init()V -METHOD|org.testng.JUnitConverterTask.setOutputDir(Ljava/io/File;)V -METHOD|org.testng.JUnitConverterTask.setSourceDir(Ljava/io/File;)V -METHOD|org.testng.JUnitConverterTask.setAnnotations(Z)V -METHOD|org.testng.Reporter.()V -METHOD|org.testng.Reporter.setCurrentTestResult(Lorg/testng/ITestResult;)V -METHOD|org.testng.Reporter.getOutput()Ljava/util/List; -METHOD|org.testng.Reporter.log(Ljava/lang/String;Lorg/testng/ITestResult;)V -METHOD|org.testng.Reporter.log(Ljava/lang/String;)V -METHOD|org.testng.Reporter.log(Ljava/lang/String;IZ)V -METHOD|org.testng.Reporter.log(Ljava/lang/String;Z)V -METHOD|org.testng.Reporter.log(Ljava/lang/String;I)V -METHOD|org.testng.Reporter.getCurrentTestResult()Lorg/testng/ITestResult; -METHOD|org.testng.Reporter.ppp(Ljava/lang/String;)V -METHOD|org.testng.Reporter.getOutput(Lorg/testng/ITestResult;)Ljava/util/List; -METHOD|org.testng.Reporter.()V -METHOD|org.testng.SuiteResult$1.()V -METHOD|org.testng.SuiteResult$1.compare(Lorg/testng/SuiteResult;Lorg/testng/SuiteResult;)I -METHOD|org.testng.SuiteResult$1.equals(Ljava/lang/Object;)Z -METHOD|org.testng.SuiteResult$1.compare(Ljava/lang/Object;Ljava/lang/Object;)I -METHOD|org.testng.SuiteResult.(Ljava/lang/String;Lorg/testng/ITestContext;)V -METHOD|org.testng.SuiteResult.(Lorg/testng/xml/XmlSuite;Lorg/testng/ITestContext;)V -METHOD|org.testng.SuiteResult.getPropertyFileName()Ljava/lang/String; -METHOD|org.testng.SuiteResult.getTestContext()Lorg/testng/ITestContext; -METHOD|org.testng.SuiteResult.getSuite()Lorg/testng/xml/XmlSuite; -METHOD|org.testng.SuiteResult.compareTo(Ljava/lang/Object;)I -METHOD|org.testng.SuiteResult.toString()Ljava/lang/String; -METHOD|org.testng.SuiteResult.()V -METHOD|org.testng.SuiteRunner$DefaultTestRunnerFactory.([Lorg/testng/ITestListener;Z)V -METHOD|org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(Lorg/testng/ISuite;Lorg/testng/xml/XmlTest;)Lorg/testng/TestRunner; -METHOD|org.testng.SuiteRunner$ProxyTestRunnerFactory.([Lorg/testng/ITestListener;Lorg/testng/ITestRunnerFactory;)V -METHOD|org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(Lorg/testng/ISuite;Lorg/testng/xml/XmlTest;)Lorg/testng/TestRunner; -METHOD|org.testng.SuiteRunner.(Lorg/testng/xml/XmlSuite;Ljava/lang/String;)V -METHOD|org.testng.SuiteRunner.(Lorg/testng/xml/XmlSuite;Ljava/lang/String;Z)V -METHOD|org.testng.SuiteRunner.(Lorg/testng/xml/XmlSuite;Ljava/lang/String;Lorg/testng/ITestRunnerFactory;)V -METHOD|org.testng.SuiteRunner.(Lorg/testng/xml/XmlSuite;Ljava/lang/String;Lorg/testng/ITestRunnerFactory;Z)V -METHOD|org.testng.SuiteRunner.getName()Ljava/lang/String; -METHOD|org.testng.SuiteRunner.setTestListeners(Ljava/util/List;)V -METHOD|org.testng.SuiteRunner.setReportResults(Z)V -METHOD|org.testng.SuiteRunner.invokeListeners(Z)V -METHOD|org.testng.SuiteRunner.setOutputDir(Ljava/lang/String;)V -METHOD|org.testng.SuiteRunner.lazyInit()V -METHOD|org.testng.SuiteRunner.buildRunnerFactory(Ljava/util/List;)Lorg/testng/ITestRunnerFactory; -METHOD|org.testng.SuiteRunner.isParallel()Z -METHOD|org.testng.SuiteRunner.run()V -METHOD|org.testng.SuiteRunner.privateRun()V -METHOD|org.testng.SuiteRunner.addListener(Lorg/testng/ISuiteListener;)V -METHOD|org.testng.SuiteRunner.getOutputDirectory()Ljava/lang/String; -METHOD|org.testng.SuiteRunner.getResults()Ljava/util/Map; -METHOD|org.testng.SuiteRunner.getParameter(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.SuiteRunner.getMethodsByGroups()Ljava/util/Map; -METHOD|org.testng.SuiteRunner.getInvokedMethods()Ljava/util/Collection; -METHOD|org.testng.SuiteRunner.getExcludedMethods()Ljava/util/Collection; -METHOD|org.testng.SuiteRunner.getIncludedOrExcludedMethods(Z)Ljava/util/Collection; -METHOD|org.testng.SuiteRunner.getAnnotationFinder(Lorg/testng/xml/XmlTest;)Lorg/testng/internal/annotations/IAnnotationFinder; -METHOD|org.testng.SuiteRunner.getAnnotationFinder(I)Lorg/testng/internal/annotations/IAnnotationFinder; -METHOD|org.testng.SuiteRunner.ppp(Ljava/lang/String;)V -METHOD|org.testng.SuiteRunner.setHost(Ljava/lang/String;)V -METHOD|org.testng.SuiteRunner.getHost()Ljava/lang/String; -METHOD|org.testng.TestClass.(Lorg/testng/IClass;Ljava/lang/String;Lorg/testng/ITestMethodFinder;Lorg/testng/internal/annotations/IAnnotationFinder;Lorg/testng/internal/RunInfo;Lorg/testng/TestRunner;)V -METHOD|org.testng.TestClass.(Lorg/testng/IClass;Lorg/testng/TestClass;)V -METHOD|org.testng.TestClass.getTestName()Ljava/lang/String; -METHOD|org.testng.TestClass.getAnnotationFinder()Lorg/testng/internal/annotations/IAnnotationFinder; -METHOD|org.testng.TestClass.init(Lorg/testng/IClass;Ljava/lang/String;Lorg/testng/ITestMethodFinder;Lorg/testng/internal/annotations/IAnnotationFinder;Lorg/testng/internal/RunInfo;Lorg/testng/TestRunner;)V -METHOD|org.testng.TestClass.initTestClassesAndInstances()V -METHOD|org.testng.TestClass.getInstances(Z)[Ljava/lang/Object; -METHOD|org.testng.TestClass.getInstanceHashCodes()[J -METHOD|org.testng.TestClass.getInstanceCount()I -METHOD|org.testng.TestClass.addInstance(Ljava/lang/Object;)V -METHOD|org.testng.TestClass.initMethods()V -METHOD|org.testng.TestClass.createTestMethods([Lorg/testng/ITestNGMethod;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.getTestRunner()Lorg/testng/TestRunner; -METHOD|org.testng.TestClass.getRunInfo()Lorg/testng/internal/RunInfo; -METHOD|org.testng.TestClass.getTestMethodFinder()Lorg/testng/ITestMethodFinder; -METHOD|org.testng.TestClass.log(ILjava/lang/String;)V -METHOD|org.testng.TestClass.ppp(Ljava/lang/String;)V -METHOD|org.testng.TestClass.getName()Ljava/lang/String; -METHOD|org.testng.TestClass.getRealClass()Ljava/lang/Class; -METHOD|org.testng.TestClass.getTestClasses()[Ljava/lang/Class; -METHOD|org.testng.TestClass.dump()V -METHOD|org.testng.TestClass.getAfterClassMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.getAfterTestMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.getBeforeClassMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.getBeforeTestMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.getTestMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.getBeforeSuiteMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.getAfterSuiteMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.getBeforeTestConfigurationMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.getAfterTestConfigurationMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.getBeforeGroupsMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.getAfterGroupsMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestClass.toString()Ljava/lang/String; -METHOD|org.testng.TestException.(Ljava/lang/String;)V -METHOD|org.testng.TestException.(Ljava/lang/Throwable;)V -METHOD|org.testng.TestListenerAdapter.()V -METHOD|org.testng.TestListenerAdapter.onTestSuccess(Lorg/testng/ITestResult;)V -METHOD|org.testng.TestListenerAdapter.onTestFailure(Lorg/testng/ITestResult;)V -METHOD|org.testng.TestListenerAdapter.onTestSkipped(Lorg/testng/ITestResult;)V -METHOD|org.testng.TestListenerAdapter.onTestFailedButWithinSuccessPercentage(Lorg/testng/ITestResult;)V -METHOD|org.testng.TestListenerAdapter.getAllTestMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestListenerAdapter.onStart(Lorg/testng/ITestContext;)V -METHOD|org.testng.TestListenerAdapter.onFinish(Lorg/testng/ITestContext;)V -METHOD|org.testng.TestListenerAdapter.getFailedButWithinSuccessPercentageTests()Ljava/util/List; -METHOD|org.testng.TestListenerAdapter.getFailedTests()Ljava/util/List; -METHOD|org.testng.TestListenerAdapter.getPassedTests()Ljava/util/List; -METHOD|org.testng.TestListenerAdapter.getSkippedTests()Ljava/util/List; -METHOD|org.testng.TestListenerAdapter.ppp(Ljava/lang/String;)V -METHOD|org.testng.TestListenerAdapter.setAllTestMethods(Ljava/util/List;)V -METHOD|org.testng.TestListenerAdapter.setFailedButWithinSuccessPercentageTests(Ljava/util/List;)V -METHOD|org.testng.TestListenerAdapter.setFailedTests(Ljava/util/List;)V -METHOD|org.testng.TestListenerAdapter.setPassedTests(Ljava/util/List;)V -METHOD|org.testng.TestListenerAdapter.setSkippedTests(Ljava/util/List;)V -METHOD|org.testng.TestListenerAdapter.onTestStart(Lorg/testng/ITestResult;)V -METHOD|org.testng.TestNG.()V -METHOD|org.testng.TestNG.(Z)V -METHOD|org.testng.TestNG.init(Z)V -METHOD|org.testng.TestNG.getDefault()Lorg/testng/TestNG; -METHOD|org.testng.TestNG.getStatus()I -METHOD|org.testng.TestNG.setStatus(I)V -METHOD|org.testng.TestNG.setOutputDirectory(Ljava/lang/String;)V -METHOD|org.testng.TestNG.setUseDefaultListeners(Z)V -METHOD|org.testng.TestNG.setTarget(Ljava/lang/String;)V -METHOD|org.testng.TestNG.setSourcePath(Ljava/lang/String;)V -METHOD|org.testng.TestNG.setTestJar(Ljava/lang/String;)V -METHOD|org.testng.TestNG.setThreadCount(I)V -METHOD|org.testng.TestNG.setParallel(Z)V -METHOD|org.testng.TestNG.setCommandLineSuite(Lorg/testng/xml/XmlSuite;)V -METHOD|org.testng.TestNG.setTestClasses([Ljava/lang/Class;)V -METHOD|org.testng.TestNG.createCommandLineSuites([Ljava/lang/Class;)[Lorg/testng/xml/XmlSuite; -METHOD|org.testng.TestNG.setTestSuites(Ljava/util/List;)V -METHOD|org.testng.TestNG.setXmlSuites(Ljava/util/List;)V -METHOD|org.testng.TestNG.setExcludedGroups(Ljava/lang/String;)V -METHOD|org.testng.TestNG.setGroups(Ljava/lang/String;)V -METHOD|org.testng.TestNG.setTestRunnerFactoryClass(Ljava/lang/Class;)V -METHOD|org.testng.TestNG.setTestRunnerFactory(Lorg/testng/ITestRunnerFactory;)V -METHOD|org.testng.TestNG.setListenerClasses(Ljava/util/List;)V -METHOD|org.testng.TestNG.setListeners(Ljava/util/List;)V -METHOD|org.testng.TestNG.addListener(Ljava/lang/Object;)V -METHOD|org.testng.TestNG.addListener(Lorg/testng/ISuiteListener;)V -METHOD|org.testng.TestNG.addListener(Lorg/testng/ITestListener;)V -METHOD|org.testng.TestNG.addListener(Lorg/testng/IReporter;)V -METHOD|org.testng.TestNG.getReporters()Ljava/util/List; -METHOD|org.testng.TestNG.getTestListeners()Ljava/util/List; -METHOD|org.testng.TestNG.getSuiteListeners()Ljava/util/List; -METHOD|org.testng.TestNG.setVerbose(I)V -METHOD|org.testng.TestNG.run()V -METHOD|org.testng.TestNG.resetSocket(ILorg/testng/remote/ConnectionInfo;)Lorg/testng/remote/ConnectionInfo; -METHOD|org.testng.TestNG.waitForSuites()V -METHOD|org.testng.TestNG.log(Ljava/lang/String;)V -METHOD|org.testng.TestNG.runSuitesRemotely()Ljava/util/List; -METHOD|org.testng.TestNG.runSuitesLocally()Ljava/util/List; -METHOD|org.testng.TestNG.createAndRunSuiteRunners(Lorg/testng/xml/XmlSuite;)Lorg/testng/SuiteRunner; -METHOD|org.testng.TestNG.newInstance(Ljava/lang/Class;)Ljava/lang/Object; -METHOD|org.testng.TestNG.main([Ljava/lang/String;)V -METHOD|org.testng.TestNG.privateMain([Ljava/lang/String;Lorg/testng/ITestListener;)Lorg/testng/TestNG; -METHOD|org.testng.TestNG.setClientPort(I)V -METHOD|org.testng.TestNG.setHostFile(Ljava/lang/String;)V -METHOD|org.testng.TestNG.setJUnit(Ljava/lang/Boolean;)V -METHOD|org.testng.TestNG.setTestNGVersion()V -METHOD|org.testng.TestNG.isJdk14()Z -METHOD|org.testng.TestNG.checkConditions(Ljava/util/Map;)V -METHOD|org.testng.TestNG.ppp(Ljava/lang/String;)V -METHOD|org.testng.TestNG.hasFailure()Z -METHOD|org.testng.TestNG.setHasFailure(Z)V -METHOD|org.testng.TestNG.hasFailureWithinSuccessPercentage()Z -METHOD|org.testng.TestNG.setHasFailureWithinSuccessPercentage(Z)V -METHOD|org.testng.TestNG.hasSkip()Z -METHOD|org.testng.TestNG.setHasSkip(Z)V -METHOD|org.testng.TestNG.usage()V -METHOD|org.testng.TestNG.exitWithError(Ljava/lang/String;)V -METHOD|org.testng.TestNG.getOutputDirectory()Ljava/lang/String; -METHOD|org.testng.TestNGAntTask.()V -METHOD|org.testng.TestNGAntTask.setHaltonfailure(Z)V -METHOD|org.testng.TestNGAntTask.setFailureProperty(Ljava/lang/String;)V -METHOD|org.testng.TestNGAntTask.setHaltonskipped(Z)V -METHOD|org.testng.TestNGAntTask.setSkippedProperty(Ljava/lang/String;)V -METHOD|org.testng.TestNGAntTask.setHaltonFSP(Z)V -METHOD|org.testng.TestNGAntTask.setFSPProperty(Ljava/lang/String;)V -METHOD|org.testng.TestNGAntTask.setDumpCommand(Z)V -METHOD|org.testng.TestNGAntTask.setEnableAssert(Z)V -METHOD|org.testng.TestNGAntTask.setWorkingDir(Ljava/io/File;)V -METHOD|org.testng.TestNGAntTask.setJvm(Ljava/lang/String;)V -METHOD|org.testng.TestNGAntTask.setTimeout(Ljava/lang/Integer;)V -METHOD|org.testng.TestNGAntTask.createJvmarg()Lorg/apache/tools/ant/types/Commandline$Argument; -METHOD|org.testng.TestNGAntTask.addSysproperty(Lorg/apache/tools/ant/types/Environment$Variable;)V -METHOD|org.testng.TestNGAntTask.addEnv(Lorg/apache/tools/ant/types/Environment$Variable;)V -METHOD|org.testng.TestNGAntTask.createClasspath()Lorg/apache/tools/ant/types/Path; -METHOD|org.testng.TestNGAntTask.createBootclasspath()Lorg/apache/tools/ant/types/Path; -METHOD|org.testng.TestNGAntTask.setClasspath(Lorg/apache/tools/ant/types/Path;)V -METHOD|org.testng.TestNGAntTask.setClasspathRef(Lorg/apache/tools/ant/types/Reference;)V -METHOD|org.testng.TestNGAntTask.addXmlfileset(Lorg/apache/tools/ant/types/FileSet;)V -METHOD|org.testng.TestNGAntTask.setXmlfilesetRef(Lorg/apache/tools/ant/types/Reference;)V -METHOD|org.testng.TestNGAntTask.addClassfileset(Lorg/apache/tools/ant/types/FileSet;)V -METHOD|org.testng.TestNGAntTask.setClassfilesetRef(Lorg/apache/tools/ant/types/Reference;)V -METHOD|org.testng.TestNGAntTask.setSourcedir(Lorg/apache/tools/ant/types/Path;)V -METHOD|org.testng.TestNGAntTask.createSourceDir()Lorg/apache/tools/ant/types/Path; -METHOD|org.testng.TestNGAntTask.setSourceDirRef(Lorg/apache/tools/ant/types/Reference;)V -METHOD|org.testng.TestNGAntTask.setSuiteRunnerClass(Ljava/lang/String;)V -METHOD|org.testng.TestNGAntTask.setJUnit(Z)V -METHOD|org.testng.TestNGAntTask.setTarget(Ljava/lang/String;)V -METHOD|org.testng.TestNGAntTask.setOutputDir(Ljava/io/File;)V -METHOD|org.testng.TestNGAntTask.setTestJar(Ljava/io/File;)V -METHOD|org.testng.TestNGAntTask.setGroups(Ljava/lang/String;)V -METHOD|org.testng.TestNGAntTask.setExcludedGroups(Ljava/lang/String;)V -METHOD|org.testng.TestNGAntTask.setVerbose(Ljava/lang/Integer;)V -METHOD|org.testng.TestNGAntTask.setReporter(Ljava/lang/String;)V -METHOD|org.testng.TestNGAntTask.setListener(Ljava/lang/String;)V -METHOD|org.testng.TestNGAntTask.execute()V -METHOD|org.testng.TestNGAntTask.actOnResult(IZ)V -METHOD|org.testng.TestNGAntTask.executeAsForked(Lorg/apache/tools/ant/types/CommandlineJava;Lorg/apache/tools/ant/taskdefs/ExecuteWatchdog;)I -METHOD|org.testng.TestNGAntTask.getJavaCommand()Lorg/apache/tools/ant/types/CommandlineJava; -METHOD|org.testng.TestNGAntTask.createWatchdog()Lorg/apache/tools/ant/taskdefs/ExecuteWatchdog; -METHOD|org.testng.TestNGAntTask.validateOptions()V -METHOD|org.testng.TestNGAntTask.usesJavadocAnnotations()Z -METHOD|org.testng.TestNGAntTask.createFileSet(Lorg/apache/tools/ant/types/Reference;)Lorg/apache/tools/ant/types/FileSet; -METHOD|org.testng.TestNGAntTask.findJar()Ljava/io/File; -METHOD|org.testng.TestNGAntTask.fromURI(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.TestNGAntTask.fileset(Ljava/util/List;)Ljava/util/List; -METHOD|org.testng.TestNGAntTask.createPathString(Lorg/apache/tools/ant/types/Path;Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.TestNGAntTask.dumpCommand()V -METHOD|org.testng.TestNGCommandLineArgs.()V -METHOD|org.testng.TestNGCommandLineArgs.parseCommandLine([Ljava/lang/String;)Ljava/util/Map; -METHOD|org.testng.TestNGCommandLineArgs.fileToClass(Ljava/lang/String;)Ljava/lang/Class; -METHOD|org.testng.TestNGCommandLineArgs.usage()V -METHOD|org.testng.TestNGCommandLineArgs.()V -METHOD|org.testng.TestNGException.(Ljava/lang/Throwable;)V -METHOD|org.testng.TestNGException.(Ljava/lang/String;)V -METHOD|org.testng.TestNGException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.testng.TestRunner.(Lorg/testng/ISuite;Lorg/testng/xml/XmlTest;Ljava/lang/String;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.TestRunner.(Lorg/testng/ISuite;Lorg/testng/xml/XmlTest;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.TestRunner.(Lorg/testng/ISuite;Lorg/testng/xml/XmlTest;)V -METHOD|org.testng.TestRunner.init(Lorg/testng/ISuite;Lorg/testng/xml/XmlTest;Ljava/lang/String;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.TestRunner.getInvoker()Lorg/testng/internal/IInvoker; -METHOD|org.testng.TestRunner.getBeforeSuiteMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestRunner.getAfterSuiteMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestRunner.getBeforeTestConfigurationMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestRunner.getAfterTestConfigurationMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestRunner.init()V -METHOD|org.testng.TestRunner.initMetaGroups(Lorg/testng/xml/XmlTest;)V -METHOD|org.testng.TestRunner.initRunInfo(Lorg/testng/xml/XmlTest;)V -METHOD|org.testng.TestRunner.initMethods()V -METHOD|org.testng.TestRunner.findGroupMethods(Ljava/util/Collection;)Lorg/testng/internal/ConfigurationGroupMethods; -METHOD|org.testng.TestRunner.fillGroupMethods(Ljava/util/Collection;Ljava/util/Map;Z)V -METHOD|org.testng.TestRunner.ppp(Ljava/lang/String;)V -METHOD|org.testng.TestRunner.fixMethodsWithClass([Lorg/testng/ITestNGMethod;Lorg/testng/ITestClass;Ljava/util/List;)V -METHOD|org.testng.TestRunner.getIClass()Ljava/util/Collection; -METHOD|org.testng.TestRunner.findIClass([Lorg/testng/IClass;Ljava/lang/Class;)Lorg/testng/IClass; -METHOD|org.testng.TestRunner.getName()Ljava/lang/String; -METHOD|org.testng.TestRunner.getIncludedGroups()[Ljava/lang/String; -METHOD|org.testng.TestRunner.getExcludedGroups()[Ljava/lang/String; -METHOD|org.testng.TestRunner.setTestName(Ljava/lang/String;)V -METHOD|org.testng.TestRunner.setOutputDirectory(Ljava/lang/String;)V -METHOD|org.testng.TestRunner.getOutputDirectory()Ljava/lang/String; -METHOD|org.testng.TestRunner.getEndDate()Ljava/util/Date; -METHOD|org.testng.TestRunner.getStartDate()Ljava/util/Date; -METHOD|org.testng.TestRunner.addMetaGroup(Ljava/lang/String;Ljava/util/List;)V -METHOD|org.testng.TestRunner.collectGroups([Ljava/lang/String;Ljava/util/List;Ljava/util/Map;)V -METHOD|org.testng.TestRunner.createGroups(Ljava/util/List;)Ljava/util/Map; -METHOD|org.testng.TestRunner.createGroups([Ljava/lang/String;)Ljava/util/Map; -METHOD|org.testng.TestRunner.collectAndOrderTestMethods([Lorg/testng/ITestNGMethod;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestRunner.run()V -METHOD|org.testng.TestRunner.beforeRun()V -METHOD|org.testng.TestRunner.privateRun(Lorg/testng/xml/XmlTest;)V -METHOD|org.testng.TestRunner.afterRun()V -METHOD|org.testng.TestRunner.containsString(Ljava/util/Map;Ljava/lang/String;)Z -METHOD|org.testng.TestRunner.computeTestLists(Ljava/util/List;Ljava/util/List;)V -METHOD|org.testng.TestRunner.invokeClassConfigurations([Lorg/testng/ITestNGMethod;Lorg/testng/xml/XmlTest;Z)V -METHOD|org.testng.TestRunner.logStart()V -METHOD|org.testng.TestRunner.fireEvent(Z)V -METHOD|org.testng.TestRunner.addPassedTest(Lorg/testng/ITestNGMethod;Lorg/testng/ITestResult;)V -METHOD|org.testng.TestRunner.getPassedTests(Lorg/testng/ITestNGMethod;)Ljava/util/Set; -METHOD|org.testng.TestRunner.addSkippedTest(Lorg/testng/ITestNGMethod;Lorg/testng/ITestResult;)V -METHOD|org.testng.TestRunner.addInvokedMethod(Lorg/testng/internal/InvokedMethod;)V -METHOD|org.testng.TestRunner.addFailedTest(Lorg/testng/ITestNGMethod;Lorg/testng/ITestResult;)V -METHOD|org.testng.TestRunner.addFailedButWithinSuccessPercentageTest(Lorg/testng/ITestNGMethod;Lorg/testng/ITestResult;)V -METHOD|org.testng.TestRunner.getTest()Lorg/testng/xml/XmlTest; -METHOD|org.testng.TestRunner.getTestListeners()Ljava/util/List; -METHOD|org.testng.TestRunner.findTestClass(Ljava/lang/Class;)Lorg/testng/IClass; -METHOD|org.testng.TestRunner.getTestMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestRunner.logFailedTest(Lorg/testng/ITestNGMethod;Lorg/testng/ITestResult;Z)V -METHOD|org.testng.TestRunner.mapToString(Ljava/util/Map;)Ljava/lang/String; -METHOD|org.testng.TestRunner.log(ILjava/lang/String;)V -METHOD|org.testng.TestRunner.getVerbose()I -METHOD|org.testng.TestRunner.setVerbose(I)V -METHOD|org.testng.TestRunner.log(Ljava/lang/String;)V -METHOD|org.testng.TestRunner.getPassedTests()Lorg/testng/IResultMap; -METHOD|org.testng.TestRunner.getSkippedTests()Lorg/testng/IResultMap; -METHOD|org.testng.TestRunner.getFailedTests()Lorg/testng/IResultMap; -METHOD|org.testng.TestRunner.getFailedButWithinSuccessPercentageTests()Lorg/testng/IResultMap; -METHOD|org.testng.TestRunner.addTestListener(Lorg/testng/ITestListener;)V -METHOD|org.testng.TestRunner.getSuite()Lorg/testng/ISuite; -METHOD|org.testng.TestRunner.getAllTestMethods()[Lorg/testng/ITestNGMethod; -METHOD|org.testng.TestRunner.dumpInvokedMethods()V -METHOD|org.testng.TestRunner.getInvokedMethods()Ljava/util/List; -METHOD|org.testng.TestRunner.getHost()Ljava/lang/String; -METHOD|org.testng.TestRunner.getExcludedMethods()Ljava/util/Collection; -METHOD|org.testng.TestRunner.()V -METHOD|org.testng.annotations.AfterClass.enabled()Z -METHOD|org.testng.annotations.AfterClass.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterClass.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterClass.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterClass.alwaysRun()Z -METHOD|org.testng.annotations.AfterClass.inheritGroups()Z -METHOD|org.testng.annotations.AfterClass.description()Ljava/lang/String; -METHOD|org.testng.annotations.AfterGroups.value()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterGroups.enabled()Z -METHOD|org.testng.annotations.AfterGroups.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterGroups.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterGroups.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterGroups.alwaysRun()Z -METHOD|org.testng.annotations.AfterGroups.inheritGroups()Z -METHOD|org.testng.annotations.AfterGroups.description()Ljava/lang/String; -METHOD|org.testng.annotations.AfterMethod.enabled()Z -METHOD|org.testng.annotations.AfterMethod.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterMethod.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterMethod.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterMethod.alwaysRun()Z -METHOD|org.testng.annotations.AfterMethod.inheritGroups()Z -METHOD|org.testng.annotations.AfterMethod.description()Ljava/lang/String; -METHOD|org.testng.annotations.AfterSuite.enabled()Z -METHOD|org.testng.annotations.AfterSuite.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterSuite.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterSuite.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterSuite.alwaysRun()Z -METHOD|org.testng.annotations.AfterSuite.inheritGroups()Z -METHOD|org.testng.annotations.AfterSuite.description()Ljava/lang/String; -METHOD|org.testng.annotations.AfterTest.enabled()Z -METHOD|org.testng.annotations.AfterTest.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterTest.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterTest.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.AfterTest.alwaysRun()Z -METHOD|org.testng.annotations.AfterTest.inheritGroups()Z -METHOD|org.testng.annotations.AfterTest.description()Ljava/lang/String; -METHOD|org.testng.annotations.BeforeClass.enabled()Z -METHOD|org.testng.annotations.BeforeClass.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeClass.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeClass.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeClass.alwaysRun()Z -METHOD|org.testng.annotations.BeforeClass.inheritGroups()Z -METHOD|org.testng.annotations.BeforeClass.description()Ljava/lang/String; -METHOD|org.testng.annotations.BeforeGroups.value()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeGroups.enabled()Z -METHOD|org.testng.annotations.BeforeGroups.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeGroups.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeGroups.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeGroups.alwaysRun()Z -METHOD|org.testng.annotations.BeforeGroups.inheritGroups()Z -METHOD|org.testng.annotations.BeforeGroups.description()Ljava/lang/String; -METHOD|org.testng.annotations.BeforeMethod.enabled()Z -METHOD|org.testng.annotations.BeforeMethod.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeMethod.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeMethod.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeMethod.alwaysRun()Z -METHOD|org.testng.annotations.BeforeMethod.inheritGroups()Z -METHOD|org.testng.annotations.BeforeMethod.description()Ljava/lang/String; -METHOD|org.testng.annotations.BeforeSuite.enabled()Z -METHOD|org.testng.annotations.BeforeSuite.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeSuite.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeSuite.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeSuite.alwaysRun()Z -METHOD|org.testng.annotations.BeforeSuite.inheritGroups()Z -METHOD|org.testng.annotations.BeforeSuite.description()Ljava/lang/String; -METHOD|org.testng.annotations.BeforeTest.enabled()Z -METHOD|org.testng.annotations.BeforeTest.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeTest.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeTest.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.BeforeTest.alwaysRun()Z -METHOD|org.testng.annotations.BeforeTest.inheritGroups()Z -METHOD|org.testng.annotations.BeforeTest.description()Ljava/lang/String; -METHOD|org.testng.annotations.Configuration.beforeTestClass()Z -METHOD|org.testng.annotations.Configuration.afterTestClass()Z -METHOD|org.testng.annotations.Configuration.beforeTestMethod()Z -METHOD|org.testng.annotations.Configuration.afterTestMethod()Z -METHOD|org.testng.annotations.Configuration.beforeSuite()Z -METHOD|org.testng.annotations.Configuration.afterSuite()Z -METHOD|org.testng.annotations.Configuration.beforeTest()Z -METHOD|org.testng.annotations.Configuration.afterTest()Z -METHOD|org.testng.annotations.Configuration.beforeGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.Configuration.afterGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.Configuration.parameters()[Ljava/lang/String; -METHOD|org.testng.annotations.Configuration.enabled()Z -METHOD|org.testng.annotations.Configuration.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.Configuration.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.Configuration.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.Configuration.alwaysRun()Z -METHOD|org.testng.annotations.Configuration.inheritGroups()Z -METHOD|org.testng.annotations.Configuration.description()Ljava/lang/String; -METHOD|org.testng.annotations.DataProvider.name()Ljava/lang/String; -METHOD|org.testng.annotations.ExpectedExceptions.value()[Ljava/lang/Class; -METHOD|org.testng.annotations.Factory.parameters()[Ljava/lang/String; -METHOD|org.testng.annotations.Parameters.value()[Ljava/lang/String; -METHOD|org.testng.annotations.Test.groups()[Ljava/lang/String; -METHOD|org.testng.annotations.Test.enabled()Z -METHOD|org.testng.annotations.Test.parameters()[Ljava/lang/String; -METHOD|org.testng.annotations.Test.dependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.annotations.Test.dependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.annotations.Test.timeOut()J -METHOD|org.testng.annotations.Test.invocationCount()I -METHOD|org.testng.annotations.Test.threadPoolSize()I -METHOD|org.testng.annotations.Test.successPercentage()I -METHOD|org.testng.annotations.Test.dataProvider()Ljava/lang/String; -METHOD|org.testng.annotations.Test.alwaysRun()Z -METHOD|org.testng.annotations.Test.description()Ljava/lang/String; -METHOD|org.testng.annotations.Test.expectedExceptions()[Ljava/lang/Class; -METHOD|org.testng.annotations.Test.suiteName()Ljava/lang/String; -METHOD|org.testng.annotations.Test.testName()Ljava/lang/String; -METHOD|org.testng.annotations.Test.sequential()Z -METHOD|org.testng.internal.ArrayIterator.([[Ljava/lang/Object;)V -METHOD|org.testng.internal.ArrayIterator.hasNext()Z -METHOD|org.testng.internal.ArrayIterator.next()Ljava/lang/Object; -METHOD|org.testng.internal.ArrayIterator.remove()V -METHOD|org.testng.internal.BaseClassFinder.()V -METHOD|org.testng.internal.BaseClassFinder.getIClass(Ljava/lang/Class;)Lorg/testng/IClass; -METHOD|org.testng.internal.BaseClassFinder.putIClass(Ljava/lang/Class;Lorg/testng/IClass;)V -METHOD|org.testng.internal.BaseClassFinder.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.BaseClassFinder.findOrCreateIClass(Ljava/lang/Class;Ljava/lang/Object;Lorg/testng/xml/XmlTest;Lorg/testng/internal/annotations/IAnnotationFinder;)Lorg/testng/IClass; -METHOD|org.testng.internal.BaseClassFinder.getExistingClasses()Ljava/util/Map; -METHOD|org.testng.internal.BaseClassFinder.classExists(Ljava/lang/Class;)Z -METHOD|org.testng.internal.BaseClassFinder.findTestClasses()[Lorg/testng/IClass; -METHOD|org.testng.internal.BaseTestMethod$1.()V -METHOD|org.testng.internal.BaseTestMethod$1.compare(Ljava/lang/Object;Ljava/lang/Object;)I -METHOD|org.testng.internal.BaseTestMethod.(Ljava/lang/reflect/Method;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.internal.BaseTestMethod.isAlwaysRun()Z -METHOD|org.testng.internal.BaseTestMethod.setAlwaysRun(Z)V -METHOD|org.testng.internal.BaseTestMethod.getRealClass()Ljava/lang/Class; -METHOD|org.testng.internal.BaseTestMethod.getTestClass()Lorg/testng/ITestClass; -METHOD|org.testng.internal.BaseTestMethod.setTestClass(Lorg/testng/ITestClass;)V -METHOD|org.testng.internal.BaseTestMethod.compareTo(Ljava/lang/Object;)I -METHOD|org.testng.internal.BaseTestMethod.getMethod()Ljava/lang/reflect/Method; -METHOD|org.testng.internal.BaseTestMethod.getMethodName()Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.getInstances()[Ljava/lang/Object; -METHOD|org.testng.internal.BaseTestMethod.getInstanceHashCodes()[J -METHOD|org.testng.internal.BaseTestMethod.getGroups()[Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.getGroupsDependedUpon()[Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.getMethodsDependedUpon()[Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.isTest()Z -METHOD|org.testng.internal.BaseTestMethod.isBeforeSuiteConfiguration()Z -METHOD|org.testng.internal.BaseTestMethod.isAfterSuiteConfiguration()Z -METHOD|org.testng.internal.BaseTestMethod.isBeforeTestConfiguration()Z -METHOD|org.testng.internal.BaseTestMethod.isAfterTestConfiguration()Z -METHOD|org.testng.internal.BaseTestMethod.isBeforeGroupsConfiguration()Z -METHOD|org.testng.internal.BaseTestMethod.isAfterGroupsConfiguration()Z -METHOD|org.testng.internal.BaseTestMethod.isBeforeClassConfiguration()Z -METHOD|org.testng.internal.BaseTestMethod.isAfterClassConfiguration()Z -METHOD|org.testng.internal.BaseTestMethod.isBeforeMethodConfiguration()Z -METHOD|org.testng.internal.BaseTestMethod.isAfterMethodConfiguration()Z -METHOD|org.testng.internal.BaseTestMethod.getTimeOut()J -METHOD|org.testng.internal.BaseTestMethod.getInvocationCount()I -METHOD|org.testng.internal.BaseTestMethod.getSuccessPercentage()I -METHOD|org.testng.internal.BaseTestMethod.getId()J -METHOD|org.testng.internal.BaseTestMethod.setId(J)V -METHOD|org.testng.internal.BaseTestMethod.getDate()J -METHOD|org.testng.internal.BaseTestMethod.setDate(J)V -METHOD|org.testng.internal.BaseTestMethod.canRunFromClass(Lorg/testng/IClass;)Z -METHOD|org.testng.internal.BaseTestMethod.equals(Ljava/lang/Object;)Z -METHOD|org.testng.internal.BaseTestMethod.hashCode()I -METHOD|org.testng.internal.BaseTestMethod.initGroups(Ljava/lang/Class;)V -METHOD|org.testng.internal.BaseTestMethod.getAnnotationFinder()Lorg/testng/internal/annotations/IAnnotationFinder; -METHOD|org.testng.internal.BaseTestMethod.getIClass()Lorg/testng/IClass; -METHOD|org.testng.internal.BaseTestMethod.getSignature()Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.initSignature()Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.toString()Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.getStringArray([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.setGroups([Ljava/lang/String;)V -METHOD|org.testng.internal.BaseTestMethod.setGroupsDependedUpon([Ljava/lang/String;)V -METHOD|org.testng.internal.BaseTestMethod.setMethodsDependedUpon([Ljava/lang/String;)V -METHOD|org.testng.internal.BaseTestMethod.addMethodDependedUpon(Ljava/lang/String;)V -METHOD|org.testng.internal.BaseTestMethod.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.BaseTestMethod.getMissingGroup()Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.setMissingGroup(Ljava/lang/String;)V -METHOD|org.testng.internal.BaseTestMethod.getThreadPoolSize()I -METHOD|org.testng.internal.BaseTestMethod.setThreadPoolSize(Ljava/lang/Integer;)V -METHOD|org.testng.internal.BaseTestMethod.setDescription(Ljava/lang/String;)V -METHOD|org.testng.internal.BaseTestMethod.getDescription()Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.getBeforeGroups()[Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.getAfterGroups()[Ljava/lang/String; -METHOD|org.testng.internal.BaseTestMethod.()V -METHOD|org.testng.internal.ClassHelper.()V -METHOD|org.testng.internal.ClassHelper.forName(Ljava/lang/String;)Ljava/lang/Class; -METHOD|org.testng.internal.ClassHelper.findFactoryMethod(Ljava/lang/Class;Lorg/testng/internal/annotations/IAnnotationFinder;)Ljava/lang/reflect/Method; -METHOD|org.testng.internal.ClassHelper.getAvailableMethods(Ljava/lang/Class;)Ljava/util/Set; -METHOD|org.testng.internal.ClassHelper.extractMethods(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/Set;)Ljava/util/Set; -METHOD|org.testng.internal.ClassHelper.isOverridden(Ljava/lang/reflect/Method;Ljava/util/Set;)Z -METHOD|org.testng.internal.ClassHelper.createSelector(Lorg/testng/xml/XmlMethodSelector;)Lorg/testng/IMethodSelector; -METHOD|org.testng.internal.ClassImpl.(Ljava/lang/Class;Ljava/lang/Object;Ljava/util/Map;Lorg/testng/xml/XmlTest;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.internal.ClassImpl.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.ClassImpl.getName()Ljava/lang/String; -METHOD|org.testng.internal.ClassImpl.getRealClass()Ljava/lang/Class; -METHOD|org.testng.internal.ClassImpl.getInstanceCount()I -METHOD|org.testng.internal.ClassImpl.getInstanceHashCodes()[J -METHOD|org.testng.internal.ClassImpl.getDefaultInstance()Ljava/lang/Object; -METHOD|org.testng.internal.ClassImpl.getInstances(Z)[Ljava/lang/Object; -METHOD|org.testng.internal.ClassImpl.toString()Ljava/lang/String; -METHOD|org.testng.internal.ClassImpl.addInstance(Ljava/lang/Object;)V -METHOD|org.testng.internal.ConfigurationGroupMethods.([Lorg/testng/ITestNGMethod;)V -METHOD|org.testng.internal.ConfigurationGroupMethods.isLastMethodForGroup(Ljava/lang/String;Lorg/testng/ITestNGMethod;)Z -METHOD|org.testng.internal.ConfigurationGroupMethods.removeBeforeMethod(Ljava/lang/String;Lorg/testng/ITestNGMethod;)V -METHOD|org.testng.internal.ConfigurationGroupMethods.log(Ljava/lang/String;)V -METHOD|org.testng.internal.ConfigurationGroupMethods.getBeforeGroupsMap()Ljava/util/Map; -METHOD|org.testng.internal.ConfigurationGroupMethods.getAfterGroupsMap()Ljava/util/Map; -METHOD|org.testng.internal.ConfigurationGroupMethods.getBeforeGroupsMethods()Ljava/util/List; -METHOD|org.testng.internal.ConfigurationGroupMethods.getAfterGroupsMethods()Ljava/util/List; -METHOD|org.testng.internal.ConfigurationGroupMethods.unique(Ljava/util/Collection;)Ljava/util/List; -METHOD|org.testng.internal.ConfigurationGroupMethods.removeBeforeGroups([Ljava/lang/String;)V -METHOD|org.testng.internal.ConfigurationGroupMethods.removeAfterGroups(Ljava/util/Collection;)V -METHOD|org.testng.internal.ConfigurationMethod.(Ljava/lang/reflect/Method;Lorg/testng/internal/annotations/IAnnotationFinder;ZZZZZZZZ[Ljava/lang/String;[Ljava/lang/String;)V -METHOD|org.testng.internal.ConfigurationMethod.createSuiteConfigurationMethods([Lorg/testng/ITestNGMethod;Lorg/testng/internal/annotations/IAnnotationFinder;Z)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.ConfigurationMethod.createTestConfigurationMethods([Lorg/testng/ITestNGMethod;Lorg/testng/internal/annotations/IAnnotationFinder;Z)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.ConfigurationMethod.createClassConfigurationMethods([Lorg/testng/ITestNGMethod;Lorg/testng/internal/annotations/IAnnotationFinder;Z)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.ConfigurationMethod.createBeforeConfigurationMethods([Lorg/testng/ITestNGMethod;Lorg/testng/internal/annotations/IAnnotationFinder;Z)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.ConfigurationMethod.createAfterConfigurationMethods([Lorg/testng/ITestNGMethod;Lorg/testng/internal/annotations/IAnnotationFinder;Z)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.ConfigurationMethod.createTestMethodConfigurationMethods([Lorg/testng/ITestNGMethod;Lorg/testng/internal/annotations/IAnnotationFinder;Z)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.ConfigurationMethod.isAfterClassConfiguration()Z -METHOD|org.testng.internal.ConfigurationMethod.isAfterMethodConfiguration()Z -METHOD|org.testng.internal.ConfigurationMethod.isBeforeClassConfiguration()Z -METHOD|org.testng.internal.ConfigurationMethod.isBeforeMethodConfiguration()Z -METHOD|org.testng.internal.ConfigurationMethod.isAfterSuiteConfiguration()Z -METHOD|org.testng.internal.ConfigurationMethod.isBeforeSuiteConfiguration()Z -METHOD|org.testng.internal.ConfigurationMethod.isBeforeTestConfiguration()Z -METHOD|org.testng.internal.ConfigurationMethod.isAfterTestConfiguration()Z -METHOD|org.testng.internal.ConfigurationMethod.isBeforeGroupsConfiguration()Z -METHOD|org.testng.internal.ConfigurationMethod.isAfterGroupsConfiguration()Z -METHOD|org.testng.internal.ConfigurationMethod.inheritGroupsFromTestClass()Z -METHOD|org.testng.internal.ConfigurationMethod.init()V -METHOD|org.testng.internal.ConfigurationMethod.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.Constants.()V -METHOD|org.testng.internal.Constants.getProperty(Ljava/lang/String;)Lorg/testng/internal/TestNGProperty; -METHOD|org.testng.internal.Constants.getPropertyValue(Ljava/util/Properties;Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.internal.Constants.getBooleanPropertyValue(Ljava/util/Properties;Ljava/lang/String;)Z -METHOD|org.testng.internal.Constants.getIntegerPropertyValue(Ljava/util/Properties;Ljava/lang/String;)I -METHOD|org.testng.internal.Constants.getDefaultValueFor(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.internal.Constants.displayStatus(I)Ljava/lang/String; -METHOD|org.testng.internal.Constants.()V -METHOD|org.testng.internal.ExtraOutput.()V -METHOD|org.testng.internal.ExtraOutput.getParameterOutput()Ljava/util/List; -METHOD|org.testng.internal.FactoryMethod.(Ljava/lang/reflect/Method;Ljava/lang/Object;Lorg/testng/xml/XmlTest;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.internal.FactoryMethod.invoke()[Ljava/lang/Object; -METHOD|org.testng.internal.Graph$Node.(Ljava/lang/Object;)V -METHOD|org.testng.internal.Graph$Node.clone()Lorg/testng/internal/Graph$Node; -METHOD|org.testng.internal.Graph$Node.getObject()Ljava/lang/Object; -METHOD|org.testng.internal.Graph$Node.getPredecessors()Ljava/util/Map; -METHOD|org.testng.internal.Graph$Node.removePredecessor(Ljava/lang/Object;)Z -METHOD|org.testng.internal.Graph$Node.dump()V -METHOD|org.testng.internal.Graph$Node.toString()Ljava/lang/String; -METHOD|org.testng.internal.Graph$Node.addPredecessor(Ljava/lang/Object;)V -METHOD|org.testng.internal.Graph$Node.hasPredecessors()Z -METHOD|org.testng.internal.Graph$Node.hasPredecessor(Ljava/lang/Object;)Z -METHOD|org.testng.internal.Graph$Node.clone()Ljava/lang/Object; -METHOD|org.testng.internal.Graph.()V -METHOD|org.testng.internal.Graph.addNode(Ljava/lang/Object;)V -METHOD|org.testng.internal.Graph.hasBeenSorted()Z -METHOD|org.testng.internal.Graph.isIndependent(Ljava/lang/Object;)Z -METHOD|org.testng.internal.Graph.findNode(Ljava/lang/Object;)Lorg/testng/internal/Graph$Node; -METHOD|org.testng.internal.Graph.addPredecessor(Ljava/lang/Object;Ljava/lang/Object;)V -METHOD|org.testng.internal.Graph.getNodes()Ljava/util/Collection; -METHOD|org.testng.internal.Graph.getIndependentNodes()Ljava/util/Set; -METHOD|org.testng.internal.Graph.getStrictlySortedNodes()Ljava/util/List; -METHOD|org.testng.internal.Graph.topologicalSort()V -METHOD|org.testng.internal.Graph.dumpSortedNodes()V -METHOD|org.testng.internal.Graph.dumpGraph()V -METHOD|org.testng.internal.Graph.removeFromNodes(Ljava/util/List;Lorg/testng/internal/Graph$Node;)V -METHOD|org.testng.internal.Graph.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.Graph.findNodeWithNoPredecessors(Ljava/util/List;)Lorg/testng/internal/Graph$Node; -METHOD|org.testng.internal.Graph.findPredecessors(Ljava/lang/Object;)Ljava/util/List; -METHOD|org.testng.internal.Graph.toString()Ljava/lang/String; -METHOD|org.testng.internal.Graph.main([Ljava/lang/String;)V -METHOD|org.testng.internal.Graph.access$000(Ljava/lang/String;)V -METHOD|org.testng.internal.Graph.()V -METHOD|org.testng.internal.HostFile.(Ljava/lang/String;)V -METHOD|org.testng.internal.HostFile.getHosts()[Ljava/lang/String; -METHOD|org.testng.internal.HostFile.isStrategyTest()Z -METHOD|org.testng.internal.HostFile.getVerbose()I -METHOD|org.testng.internal.IInvoker.invokeConfigurations(Lorg/testng/IClass;[Lorg/testng/ITestNGMethod;Lorg/testng/xml/XmlSuite;Ljava/util/Map;Ljava/lang/Object;)V -METHOD|org.testng.internal.IInvoker.invokeTestMethods(Lorg/testng/ITestNGMethod;Lorg/testng/xml/XmlSuite;Ljava/util/Map;[Lorg/testng/ITestNGMethod;ILorg/testng/internal/ConfigurationGroupMethods;)Ljava/util/List; -METHOD|org.testng.internal.IInvoker.runTestListeners(Lorg/testng/ITestResult;)V -METHOD|org.testng.internal.ITestResultNotifier.getPassedTests(Lorg/testng/ITestNGMethod;)Ljava/util/Set; -METHOD|org.testng.internal.ITestResultNotifier.addPassedTest(Lorg/testng/ITestNGMethod;Lorg/testng/ITestResult;)V -METHOD|org.testng.internal.ITestResultNotifier.addSkippedTest(Lorg/testng/ITestNGMethod;Lorg/testng/ITestResult;)V -METHOD|org.testng.internal.ITestResultNotifier.addFailedTest(Lorg/testng/ITestNGMethod;Lorg/testng/ITestResult;)V -METHOD|org.testng.internal.ITestResultNotifier.addFailedButWithinSuccessPercentageTest(Lorg/testng/ITestNGMethod;Lorg/testng/ITestResult;)V -METHOD|org.testng.internal.ITestResultNotifier.addInvokedMethod(Lorg/testng/internal/InvokedMethod;)V -METHOD|org.testng.internal.ITestResultNotifier.getTest()Lorg/testng/xml/XmlTest; -METHOD|org.testng.internal.ITestResultNotifier.getTestListeners()Ljava/util/List; -METHOD|org.testng.internal.InstanceInfo.(Ljava/lang/Class;Ljava/lang/Object;)V -METHOD|org.testng.internal.InstanceInfo.getInstance()Ljava/lang/Object; -METHOD|org.testng.internal.InstanceInfo.getInstanceClass()Ljava/lang/Class; -METHOD|org.testng.internal.InvokeMethodRunnable$TestNGRuntimeException.(Ljava/lang/Throwable;)V -METHOD|org.testng.internal.InvokeMethodRunnable.(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;Lorg/testng/internal/thread/ICountDown;)V -METHOD|org.testng.internal.InvokeMethodRunnable.run()V -METHOD|org.testng.internal.InvokedMethod.(Ljava/lang/Object;Lorg/testng/ITestNGMethod;[Ljava/lang/Object;ZZJ)V -METHOD|org.testng.internal.InvokedMethod.isTestMethod()Z -METHOD|org.testng.internal.InvokedMethod.toString()Ljava/lang/String; -METHOD|org.testng.internal.InvokedMethod.isConfigurationMethod()Z -METHOD|org.testng.internal.InvokedMethod.getTestMethod()Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.InvokedMethod.getDate()J -METHOD|org.testng.internal.Invoker$1.(Lorg/testng/internal/Invoker;Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;[Ljava/lang/Throwable;)V -METHOD|org.testng.internal.Invoker$1.runTestMethod(Lorg/testng/ITestResult;)V -METHOD|org.testng.internal.Invoker.(Lorg/testng/ITestContext;Lorg/testng/internal/ITestResultNotifier;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.internal.Invoker.invokeConfigurations(Lorg/testng/IClass;[Lorg/testng/ITestNGMethod;Lorg/testng/xml/XmlSuite;Ljava/util/Map;Ljava/lang/Object;)V -METHOD|org.testng.internal.Invoker.handleConfigurationFailure(Ljava/lang/Throwable;Lorg/testng/ITestNGMethod;Lorg/testng/ITestResult;Lorg/testng/internal/annotations/IConfiguration;Lorg/testng/xml/XmlSuite;)V -METHOD|org.testng.internal.Invoker.findClassesInSameTest(Ljava/lang/Class;Lorg/testng/xml/XmlSuite;)[Lorg/testng/xml/XmlClass; -METHOD|org.testng.internal.Invoker.confInvocationPassed(Ljava/lang/Class;)Z -METHOD|org.testng.internal.Invoker.setClassInvocationFailure(Ljava/lang/Class;Z)V -METHOD|org.testng.internal.Invoker.invokeConfigurationMethod([Ljava/lang/Object;Lorg/testng/ITestNGMethod;[Ljava/lang/Object;ZLorg/testng/ITestResult;)V -METHOD|org.testng.internal.Invoker.invokeMethod([Ljava/lang/Object;Lorg/testng/ITestNGMethod;[Ljava/lang/Object;Lorg/testng/xml/XmlSuite;Ljava/util/Map;Lorg/testng/ITestClass;[Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;Lorg/testng/internal/ConfigurationGroupMethods;)Ljava/util/List; -METHOD|org.testng.internal.Invoker.invokeBeforeGroupsConfigurations(Lorg/testng/ITestClass;Lorg/testng/ITestNGMethod;Lorg/testng/internal/ConfigurationGroupMethods;Lorg/testng/xml/XmlSuite;Ljava/util/Map;Ljava/lang/Object;)V -METHOD|org.testng.internal.Invoker.invokeAfterGroupsConfigurations(Lorg/testng/ITestClass;Lorg/testng/ITestNGMethod;Lorg/testng/internal/ConfigurationGroupMethods;Lorg/testng/xml/XmlSuite;Ljava/util/Map;Ljava/lang/Object;)V -METHOD|org.testng.internal.Invoker.invokeHookable([Ljava/lang/Object;[Ljava/lang/Object;Lorg/testng/ITestClass;Ljava/lang/reflect/Method;ILorg/testng/internal/TestResult;)V -METHOD|org.testng.internal.Invoker.handleParameters(Lorg/testng/ITestNGMethod;Ljava/util/Map;Lorg/testng/ITestClass;Ljava/util/Map;Lorg/testng/xml/XmlSuite;)Ljava/util/Iterator; -METHOD|org.testng.internal.Invoker.invokeTestMethods(Lorg/testng/ITestNGMethod;Lorg/testng/xml/XmlSuite;Ljava/util/Map;[Lorg/testng/ITestNGMethod;ILorg/testng/internal/ConfigurationGroupMethods;)Ljava/util/List; -METHOD|org.testng.internal.Invoker.findExpectedExceptions(Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/lang/reflect/Method;)[Ljava/lang/Class; -METHOD|org.testng.internal.Invoker.isWithinThreadedMethod()Z -METHOD|org.testng.internal.Invoker.setWithinThreadedMethod(Z)V -METHOD|org.testng.internal.Invoker.runWorkers(Lorg/testng/ITestNGMethod;Ljava/util/List;I)Ljava/util/List; -METHOD|org.testng.internal.Invoker.checkDependencies(Lorg/testng/ITestNGMethod;Lorg/testng/ITestClass;[Lorg/testng/ITestNGMethod;)Z -METHOD|org.testng.internal.Invoker.haveBeenRunSuccessfully([Lorg/testng/ITestNGMethod;)Z -METHOD|org.testng.internal.Invoker.handleException(Ljava/lang/Throwable;Lorg/testng/ITestNGMethod;Lorg/testng/ITestResult;I)V -METHOD|org.testng.internal.Invoker.isExpectedException(Ljava/lang/Throwable;[Ljava/lang/Class;)Z -METHOD|org.testng.internal.Invoker.filterMethods(Lorg/testng/IClass;[Lorg/testng/ITestNGMethod;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.Invoker.filterMethodsUnique(Lorg/testng/IClass;[Lorg/testng/ITestNGMethod;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.Invoker.dependsOnGroups(Lorg/testng/ITestNGMethod;)Z -METHOD|org.testng.internal.Invoker.dependsOnMethods(Lorg/testng/ITestNGMethod;)Z -METHOD|org.testng.internal.Invoker.runTestListeners(Lorg/testng/ITestResult;)V -METHOD|org.testng.internal.Invoker.runTestListeners(Lorg/testng/ITestResult;Ljava/util/List;)V -METHOD|org.testng.internal.Invoker.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.Invoker.log(ILjava/lang/String;)V -METHOD|org.testng.internal.Invoker.()V -METHOD|org.testng.internal.JUnitUtils.()V -METHOD|org.testng.internal.JUnitUtils.isJUnitClass(Ljava/lang/Class;)Z -METHOD|org.testng.internal.JUnitUtils.isAssignableFromTestCase(Ljava/lang/Class;)Z -METHOD|org.testng.internal.JUnitUtils.isAssignableFromTest(Ljava/lang/Class;)Z -METHOD|org.testng.internal.MethodHelper.()V -METHOD|org.testng.internal.MethodHelper.collectAndOrderMethods(Ljava/util/List;ZLorg/testng/internal/RunInfo;Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/util/List;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.MethodHelper.collectAndOrderMethods(Ljava/util/List;ZLorg/testng/internal/RunInfo;Lorg/testng/internal/annotations/IAnnotationFinder;ZLjava/util/List;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.MethodHelper.collectAndOrderMethods([Lorg/testng/ITestNGMethod;ZLorg/testng/internal/RunInfo;Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/util/List;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.MethodHelper.collectAndOrderMethods([Lorg/testng/ITestNGMethod;ZLorg/testng/internal/RunInfo;Lorg/testng/internal/annotations/IAnnotationFinder;ZLjava/util/List;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.MethodHelper.collectAndOrderConfigurationMethods([Lorg/testng/ITestNGMethod;Lorg/testng/internal/RunInfo;Lorg/testng/internal/annotations/IAnnotationFinder;ZLjava/util/List;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.MethodHelper.findMethodsThatBelongToGroup(Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;Ljava/lang/String;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.MethodHelper.findMethodsNamed(Ljava/lang/String;[Lorg/testng/ITestNGMethod;[Ljava/lang/String;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.MethodHelper.isEnabled(Ljava/lang/Class;Lorg/testng/internal/annotations/IAnnotationFinder;)Z -METHOD|org.testng.internal.MethodHelper.isEnabled(Ljava/lang/reflect/Method;Lorg/testng/internal/annotations/IAnnotationFinder;)Z -METHOD|org.testng.internal.MethodHelper.isEnabled(Lorg/testng/internal/annotations/ITestOrConfiguration;)Z -METHOD|org.testng.internal.MethodHelper.findMethodsThatBelongToGroup(Lorg/testng/ITestNGMethod;Ljava/util/List;Ljava/lang/String;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.MethodHelper.findGroupTransitiveClosure(Lorg/testng/internal/XmlMethodSelector;Ljava/util/List;Ljava/util/List;[Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;)V -METHOD|org.testng.internal.MethodHelper.findMethodNamed(Ljava/lang/String;Ljava/util/List;)Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.MethodHelper.includeMethod(Lorg/testng/internal/annotations/ITestOrConfiguration;Lorg/testng/internal/RunInfo;Lorg/testng/ITestNGMethod;ZZLjava/util/List;)Z -METHOD|org.testng.internal.MethodHelper.collectMethodsByGroup([Lorg/testng/ITestNGMethod;ZLjava/util/List;Ljava/util/List;Lorg/testng/internal/RunInfo;Lorg/testng/internal/annotations/IAnnotationFinder;Z)V -METHOD|org.testng.internal.MethodHelper.isMethodAlreadyPresent(Ljava/util/List;Lorg/testng/ITestNGMethod;)Z -METHOD|org.testng.internal.MethodHelper.topologicalSort([Lorg/testng/ITestNGMethod;Ljava/util/List;Ljava/util/List;)Lorg/testng/internal/Graph; -METHOD|org.testng.internal.MethodHelper.calculateMethodCanonicalName(Lorg/testng/ITestNGMethod;)Ljava/lang/String; -METHOD|org.testng.internal.MethodHelper.calculateMethodCanonicalName(Ljava/lang/reflect/Method;)Ljava/lang/String; -METHOD|org.testng.internal.MethodHelper.sortMethods(ZLjava/util/List;Lorg/testng/internal/annotations/IAnnotationFinder;)Ljava/util/List; -METHOD|org.testng.internal.MethodHelper.log(ILjava/lang/String;)V -METHOD|org.testng.internal.MethodHelper.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.MethodHelper.getMethodsDependedUpon(Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;)Ljava/util/List; -METHOD|org.testng.internal.MethodHelper.invokeMethod(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; -METHOD|org.testng.internal.MethodHelper.createArrayIterator([[Ljava/lang/Object;)Ljava/util/Iterator; -METHOD|org.testng.internal.MethodHelper.invokeDataProvider(Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)Ljava/util/Iterator; -METHOD|org.testng.internal.MethodHelper.calculateMethodCanonicalName(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.internal.MethodHelper.()V -METHOD|org.testng.internal.MethodInheritance.()V -METHOD|org.testng.internal.MethodInheritance.findMethodListSuperClass(Ljava/util/Map;Ljava/lang/Class;)Ljava/util/List; -METHOD|org.testng.internal.MethodInheritance.findSubClass(Ljava/util/Map;Ljava/lang/Class;)Ljava/lang/Class; -METHOD|org.testng.internal.MethodInheritance.fixMethodInheritance([Lorg/testng/ITestNGMethod;Z)V -METHOD|org.testng.internal.MethodInheritance.equalsEffectiveClass(Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;)Z -METHOD|org.testng.internal.MethodInheritance.sortMethodsByInheritance(Ljava/util/List;Z)V -METHOD|org.testng.internal.MethodInheritance.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.MethodSelectorDescriptor.getPriority()I -METHOD|org.testng.internal.MethodSelectorDescriptor.getMethodSelector()Lorg/testng/IMethodSelector; -METHOD|org.testng.internal.MethodSelectorDescriptor.(Lorg/testng/IMethodSelector;I)V -METHOD|org.testng.internal.MethodSelectorDescriptor.compareTo(Ljava/lang/Object;)I -METHOD|org.testng.internal.MethodSelectorDescriptor.setTestMethods(Ljava/util/List;)V -METHOD|org.testng.internal.PackageUtils$1.(Z)V -METHOD|org.testng.internal.PackageUtils$1.accept(Ljava/io/File;)Z -METHOD|org.testng.internal.PackageUtils.()V -METHOD|org.testng.internal.PackageUtils.findClassesInPackage(Ljava/lang/String;Ljava/util/List;Ljava/util/List;)[Ljava/lang/String; -METHOD|org.testng.internal.PackageUtils.getTestClasspath()[Ljava/lang/String; -METHOD|org.testng.internal.PackageUtils.matchTestClasspath(Ljava/net/URL;Ljava/lang/String;Z)Z -METHOD|org.testng.internal.PackageUtils.findClassesInDirPackage(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;ZLjava/util/List;)V -METHOD|org.testng.internal.PackageUtils.includeOrExcludeClass(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V -METHOD|org.testng.internal.PackageUtils.isIncluded(Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Z -METHOD|org.testng.internal.PackageUtils.find(Ljava/lang/String;Ljava/util/List;)Z -METHOD|org.testng.internal.Parameters.()V -METHOD|org.testng.internal.Parameters.createParameters(Ljava/lang/reflect/Constructor;Ljava/lang/String;[Ljava/lang/String;Ljava/util/Map;Lorg/testng/xml/XmlSuite;)[Ljava/lang/Object; -METHOD|org.testng.internal.Parameters.createTestParameters(Ljava/lang/reflect/Method;Ljava/util/Map;Lorg/testng/internal/annotations/IAnnotationFinder;Lorg/testng/xml/XmlSuite;)[Ljava/lang/Object; -METHOD|org.testng.internal.Parameters.createConfigurationParameters(Ljava/lang/reflect/Method;Ljava/util/Map;Lorg/testng/internal/annotations/IAnnotationFinder;Lorg/testng/xml/XmlSuite;)[Ljava/lang/Object; -METHOD|org.testng.internal.Parameters.createFactoryParameters(Ljava/lang/reflect/Method;Ljava/util/Map;Lorg/testng/internal/annotations/IAnnotationFinder;Lorg/testng/xml/XmlSuite;)[Ljava/lang/Object; -METHOD|org.testng.internal.Parameters.createParameters(Ljava/lang/reflect/Method;Ljava/lang/String;[Ljava/lang/String;Ljava/util/Map;Lorg/testng/xml/XmlSuite;)[Ljava/lang/Object; -METHOD|org.testng.internal.Parameters.createParameters(Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/String;Ljava/util/Map;Lorg/testng/xml/XmlSuite;)[Ljava/lang/Object; -METHOD|org.testng.internal.Parameters.convertType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; -METHOD|org.testng.internal.Parameters.findDataProvider(Ljava/lang/Class;Ljava/lang/reflect/Method;Lorg/testng/internal/annotations/IAnnotationFinder;)Ljava/lang/reflect/Method; -METHOD|org.testng.internal.Parameters.findDataProvider(Ljava/lang/Class;Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/lang/String;)Ljava/lang/reflect/Method; -METHOD|org.testng.internal.Parameters.createParameters(Ljava/lang/reflect/Method;Ljava/util/Map;Lorg/testng/internal/annotations/IAnnotationFinder;Lorg/testng/xml/XmlSuite;Ljava/lang/Class;Ljava/lang/String;)[Ljava/lang/Object; -METHOD|org.testng.internal.Parameters.()V -METHOD|org.testng.internal.ResultMap.()V -METHOD|org.testng.internal.ResultMap.addResult(Lorg/testng/ITestResult;Lorg/testng/ITestNGMethod;)V -METHOD|org.testng.internal.ResultMap.getResults(Lorg/testng/ITestNGMethod;)Ljava/util/Set; -METHOD|org.testng.internal.ResultMap.getAllResults()Ljava/util/Set; -METHOD|org.testng.internal.ResultMap.size()I -METHOD|org.testng.internal.ResultMap.getAllMethods()Ljava/util/Collection; -METHOD|org.testng.internal.RunInfo.()V -METHOD|org.testng.internal.RunInfo.addMethodSelector(Lorg/testng/IMethodSelector;I)V -METHOD|org.testng.internal.RunInfo.includeMethod(Lorg/testng/ITestNGMethod;Z)Z -METHOD|org.testng.internal.RunInfo.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.RunInfo.setTestMethods(Ljava/util/List;)V -METHOD|org.testng.internal.TestMethodWorker.(Lorg/testng/internal/IInvoker;[Lorg/testng/ITestNGMethod;Lorg/testng/xml/XmlSuite;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;[Lorg/testng/ITestNGMethod;Lorg/testng/internal/ConfigurationGroupMethods;Lorg/testng/ClassMethodMap;)V -METHOD|org.testng.internal.TestMethodWorker.getMaxTimeOut()J -METHOD|org.testng.internal.TestMethodWorker.toString()Ljava/lang/String; -METHOD|org.testng.internal.TestMethodWorker.run()V -METHOD|org.testng.internal.TestMethodWorker.indexOf(Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;)I -METHOD|org.testng.internal.TestMethodWorker.getTestResults()Ljava/util/List; -METHOD|org.testng.internal.TestMethodWorker.isLastTestMethodForClass(Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;)Z -METHOD|org.testng.internal.TestMethodWorker.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.TestMethodWorker.setAllTestMethods([Lorg/testng/ITestNGMethod;)V -METHOD|org.testng.internal.TestNGClassFinder.([Ljava/lang/Class;Ljava/util/Map;Lorg/testng/xml/XmlTest;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.internal.TestNGClassFinder.isTestNGClass(Ljava/lang/Class;Lorg/testng/internal/annotations/IAnnotationFinder;)Z -METHOD|org.testng.internal.TestNGClassFinder.addInstance(Ljava/lang/Class;Ljava/lang/Object;)V -METHOD|org.testng.internal.TestNGClassFinder.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.TestNGMethod$1.()V -METHOD|org.testng.internal.TestNGMethod$1.compare(Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;)I -METHOD|org.testng.internal.TestNGMethod$1.compare(Ljava/lang/Object;Ljava/lang/Object;)I -METHOD|org.testng.internal.TestNGMethod.(Ljava/lang/reflect/Method;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.internal.TestNGMethod.getTimeOut()J -METHOD|org.testng.internal.TestNGMethod.getInvocationCount()I -METHOD|org.testng.internal.TestNGMethod.getSuccessPercentage()I -METHOD|org.testng.internal.TestNGMethod.isTest()Z -METHOD|org.testng.internal.TestNGMethod.init()V -METHOD|org.testng.internal.TestNGMethod.()V -METHOD|org.testng.internal.TestNGMethodFinder.(Lorg/testng/internal/RunInfo;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.internal.TestNGMethodFinder.getTestMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.getBeforeClassMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.getAfterClassMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.getBeforeTestMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.getAfterTestMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.getBeforeSuiteMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.getAfterSuiteMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.getBeforeTestConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.getAfterTestConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.getBeforeGroupsConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.getAfterGroupsConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.findConfiguration(Ljava/lang/Class;I)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestNGMethodFinder.addConfigurationMethod(Ljava/lang/Class;Ljava/util/List;Ljava/lang/reflect/Method;ZZZZZZZZ[Ljava/lang/String;[Ljava/lang/String;)V -METHOD|org.testng.internal.TestNGMethodFinder.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.TestNGProperty.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.internal.TestNGProperty.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.internal.TestNGProperty.init(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.internal.TestNGProperty.getDefault()Ljava/lang/String; -METHOD|org.testng.internal.TestNGProperty.getDocumentation()Ljava/lang/String; -METHOD|org.testng.internal.TestNGProperty.getName()Ljava/lang/String; -METHOD|org.testng.internal.TestNGProperty.getCommandLineName()Ljava/lang/String; -METHOD|org.testng.internal.TestResult.(Lorg/testng/IClass;Ljava/lang/Object;Lorg/testng/ITestNGMethod;Ljava/lang/Throwable;JJ)V -METHOD|org.testng.internal.TestResult.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.TestResult.setEndMillis(J)V -METHOD|org.testng.internal.TestResult.getName()Ljava/lang/String; -METHOD|org.testng.internal.TestResult.getMethod()Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.TestResult.setMethod(Lorg/testng/ITestNGMethod;)V -METHOD|org.testng.internal.TestResult.getStatus()I -METHOD|org.testng.internal.TestResult.setStatus(I)V -METHOD|org.testng.internal.TestResult.isSuccess()Z -METHOD|org.testng.internal.TestResult.getTestClass()Lorg/testng/IClass; -METHOD|org.testng.internal.TestResult.setTestClass(Lorg/testng/IClass;)V -METHOD|org.testng.internal.TestResult.getThrowable()Ljava/lang/Throwable; -METHOD|org.testng.internal.TestResult.setThrowable(Ljava/lang/Throwable;)V -METHOD|org.testng.internal.TestResult.getEndMillis()J -METHOD|org.testng.internal.TestResult.getStartMillis()J -METHOD|org.testng.internal.TestResult.toString()Ljava/lang/String; -METHOD|org.testng.internal.TestResult.getHost()Ljava/lang/String; -METHOD|org.testng.internal.TestResult.setHost(Ljava/lang/String;)V -METHOD|org.testng.internal.TestResult.getParameters()[Ljava/lang/Object; -METHOD|org.testng.internal.TestResult.setParameters([Ljava/lang/Object;)V -METHOD|org.testng.internal.Utils.()V -METHOD|org.testng.internal.Utils.stringToArray(Ljava/lang/String;)[Ljava/lang/String; -METHOD|org.testng.internal.Utils.xmlClassesToClasses(Ljava/util/List;)[Ljava/lang/Class; -METHOD|org.testng.internal.Utils.classesToXmlClasses([Ljava/lang/Class;)[Lorg/testng/xml/XmlClass; -METHOD|org.testng.internal.Utils.findAllClasses([Ljava/lang/Class;Ljava/util/Map;)V -METHOD|org.testng.internal.Utils.parseMultiLine(Ljava/lang/String;)[Ljava/lang/String; -METHOD|org.testng.internal.Utils.writeFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringBuffer;)V -METHOD|org.testng.internal.Utils.writeFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.internal.Utils.writeFile(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.internal.Utils.writeFile(Ljava/io/File;Ljava/lang/String;)V -METHOD|org.testng.internal.Utils.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.Utils.dumpMap(Ljava/util/Map;)V -METHOD|org.testng.internal.Utils.dumpMethods(Ljava/util/List;)V -METHOD|org.testng.internal.Utils.dependentGroupsForThisMethodForTest(Ljava/lang/reflect/Method;Lorg/testng/internal/annotations/IAnnotationFinder;)[Ljava/lang/String; -METHOD|org.testng.internal.Utils.groupsForThisMethodForTest(Ljava/lang/reflect/Method;Lorg/testng/internal/annotations/IAnnotationFinder;)[Ljava/lang/String; -METHOD|org.testng.internal.Utils.groupsForThisMethodForConfiguration(Ljava/lang/reflect/Method;Lorg/testng/internal/annotations/IAnnotationFinder;)[Ljava/lang/String; -METHOD|org.testng.internal.Utils.dependentGroupsForThisMethodForConfiguration(Ljava/lang/reflect/Method;Lorg/testng/internal/annotations/IAnnotationFinder;)[Ljava/lang/String; -METHOD|org.testng.internal.Utils.log(Ljava/lang/String;)V -METHOD|org.testng.internal.Utils.log(Ljava/lang/String;ILjava/lang/String;)V -METHOD|org.testng.internal.Utils.error(Ljava/lang/String;)V -METHOD|org.testng.internal.Utils.calculateInvokedMethodCount(Lorg/testng/IResultMap;)I -METHOD|org.testng.internal.Utils.calculateInvokedMethodCount([Lorg/testng/ITestNGMethod;)I -METHOD|org.testng.internal.Utils.createInstance(Ljava/lang/Class;Ljava/util/Map;Lorg/testng/xml/XmlTest;Lorg/testng/internal/annotations/IAnnotationFinder;)Ljava/lang/Object; -METHOD|org.testng.internal.Utils.getEnclosingClass(Ljava/lang/Class;)Ljava/lang/Class; -METHOD|org.testng.internal.Utils.tryOtherConstructor(Ljava/lang/Class;)Ljava/lang/Object; -METHOD|org.testng.internal.Utils.findAnnotatedConstructor(Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/lang/Class;)Ljava/lang/reflect/Constructor; -METHOD|org.testng.internal.Utils.split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String; -METHOD|org.testng.internal.Utils.initLogger(Ljava/util/logging/Logger;Ljava/lang/String;)V -METHOD|org.testng.internal.Utils.logInvocation(Ljava/lang/String;Ljava/lang/reflect/Method;[Ljava/lang/Object;)V -METHOD|org.testng.internal.Utils.writeResourceToFile(Ljava/io/File;Ljava/lang/String;Ljava/lang/Class;)V -METHOD|org.testng.internal.Utils.isStringEmpty(Ljava/lang/String;)Z -METHOD|org.testng.internal.Utils.stackTrace(Ljava/lang/Throwable;Z)[Ljava/lang/String; -METHOD|org.testng.internal.Utils.filterTrace(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.internal.Utils.()V -METHOD|org.testng.internal.XmlMethodSelector.()V -METHOD|org.testng.internal.XmlMethodSelector.includeMethod(Lorg/testng/ITestNGMethod;Z)Z -METHOD|org.testng.internal.XmlMethodSelector.includeMethodFromExpression(Lorg/testng/ITestNGMethod;Z)Z -METHOD|org.testng.internal.XmlMethodSelector.includeMethodFromIncludeExclude(Lorg/testng/ITestNGMethod;Z)Z -METHOD|org.testng.internal.XmlMethodSelector.logInclusion(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.internal.XmlMethodSelector.hasIncludedMethods()Z -METHOD|org.testng.internal.XmlMethodSelector.hasExcludedMethods()Z -METHOD|org.testng.internal.XmlMethodSelector.createQualifiedMethodNames(Lorg/testng/xml/XmlClass;Ljava/util/List;)Ljava/util/List; -METHOD|org.testng.internal.XmlMethodSelector.setXmlClasses(Ljava/util/List;)V -METHOD|org.testng.internal.XmlMethodSelector.getExcludedGroups()Ljava/util/Map; -METHOD|org.testng.internal.XmlMethodSelector.getIncludedGroups()Ljava/util/Map; -METHOD|org.testng.internal.XmlMethodSelector.setExcludedGroups(Ljava/util/Map;)V -METHOD|org.testng.internal.XmlMethodSelector.setIncludedGroups(Ljava/util/Map;)V -METHOD|org.testng.internal.XmlMethodSelector.isIncluded([Ljava/lang/String;Ljava/util/Collection;)Z -METHOD|org.testng.internal.XmlMethodSelector.isExcluded([Ljava/lang/String;Ljava/util/Collection;)Z -METHOD|org.testng.internal.XmlMethodSelector.isMemberOf([Ljava/lang/String;Ljava/util/Collection;)Z -METHOD|org.testng.internal.XmlMethodSelector.log(ILjava/lang/String;)V -METHOD|org.testng.internal.XmlMethodSelector.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.XmlMethodSelector.setExpression(Ljava/lang/String;)V -METHOD|org.testng.internal.XmlMethodSelector.setTestMethods(Ljava/util/List;)V -METHOD|org.testng.internal.XmlMethodSelector.filterTestMethods(Ljava/util/List;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.XmlMethodSelector.setVerbose(Z)V -METHOD|org.testng.internal.annotations.AfterSuiteAnnotation.()V -METHOD|org.testng.internal.annotations.AnnotationConfiguration.()V -METHOD|org.testng.internal.annotations.AnnotationConfiguration.getInstance()Lorg/testng/internal/annotations/AnnotationConfiguration; -METHOD|org.testng.internal.annotations.AnnotationConfiguration.getAnnotationFinder()Lorg/testng/internal/annotations/IAnnotationFinder; -METHOD|org.testng.internal.annotations.AnnotationConfiguration.getJavadocAnnotationFinder()Lorg/testng/internal/annotations/IAnnotationFinder; -METHOD|org.testng.internal.annotations.AnnotationConfiguration.initialize(I)V -METHOD|org.testng.internal.annotations.AnnotationConfiguration.()V -METHOD|org.testng.internal.annotations.AnnotationHelper.()V -METHOD|org.testng.internal.annotations.AnnotationHelper.findTest(Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/lang/Class;)Lorg/testng/internal/annotations/ITest; -METHOD|org.testng.internal.annotations.AnnotationHelper.findTest(Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/lang/reflect/Method;)Lorg/testng/internal/annotations/ITest; -METHOD|org.testng.internal.annotations.AnnotationHelper.findTest(Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/lang/reflect/Constructor;)Lorg/testng/internal/annotations/ITest; -METHOD|org.testng.internal.annotations.AnnotationHelper.findConfiguration(Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/lang/reflect/Constructor;)Lorg/testng/internal/annotations/IConfiguration; -METHOD|org.testng.internal.annotations.AnnotationHelper.findConfiguration(Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/lang/reflect/Method;)Lorg/testng/internal/annotations/IConfiguration; -METHOD|org.testng.internal.annotations.AnnotationHelper.createConfiguration(Lorg/testng/internal/annotations/IConfiguration;Lorg/testng/internal/annotations/IConfiguration;Lorg/testng/internal/annotations/IConfiguration;Lorg/testng/internal/annotations/IConfiguration;Lorg/testng/internal/annotations/IConfiguration;Lorg/testng/internal/annotations/IConfiguration;Lorg/testng/internal/annotations/IConfiguration;Lorg/testng/internal/annotations/IConfiguration;Lorg/testng/internal/annotations/IConfiguration;Lorg/testng/internal/annotations/IConfiguration;)Lorg/testng/internal/annotations/IConfiguration; -METHOD|org.testng.internal.annotations.AnnotationHelper.finishInitialize(Lorg/testng/internal/annotations/ConfigurationAnnotation;Lorg/testng/internal/annotations/IConfiguration;)V -METHOD|org.testng.internal.annotations.AnnotationHelper.getAllAnnotations()[Ljava/lang/Class; -METHOD|org.testng.internal.annotations.AnnotationHelper.findMethodsWithAnnotation(Ljava/lang/Class;Ljava/lang/Class;Lorg/testng/internal/annotations/IAnnotationFinder;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.internal.annotations.AnnotationHelper.isAnnotationPresent(Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/lang/reflect/Method;[Ljava/lang/Class;)Z -METHOD|org.testng.internal.annotations.AnnotationHelper.isAnnotationPresent(Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/lang/reflect/Method;Ljava/lang/Class;)Z -METHOD|org.testng.internal.annotations.AnnotationHelper.isAnnotationPresent(Lorg/testng/internal/annotations/IAnnotationFinder;Ljava/lang/Class;Ljava/lang/Class;)Z -METHOD|org.testng.internal.annotations.AnnotationHelper.createMethodKey(Ljava/lang/reflect/Method;)Ljava/lang/String; -METHOD|org.testng.internal.annotations.AnnotationHelper.()V -METHOD|org.testng.internal.annotations.BaseBeforeAfter.()V -METHOD|org.testng.internal.annotations.BaseBeforeAfter.getDescription()Ljava/lang/String; -METHOD|org.testng.internal.annotations.BaseBeforeAfter.setDescription(Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.BaseBeforeAfter.setAlwaysRun(Z)V -METHOD|org.testng.internal.annotations.BaseBeforeAfter.setInheritGroups(Z)V -METHOD|org.testng.internal.annotations.BaseBeforeAfter.setParameters([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.BaseBeforeAfter.getParameters()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.BaseBeforeAfter.getAlwaysRun()Z -METHOD|org.testng.internal.annotations.BaseBeforeAfter.getInheritGroups()Z -METHOD|org.testng.internal.annotations.BaseBeforeAfter.getAfterGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.BaseBeforeAfter.setAfterGroups([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.BaseBeforeAfter.getBeforeGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.BaseBeforeAfter.setBeforeGroups([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.BeforeSuiteAnnotation.()V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.()V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setAfterSuite(Z)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setAfterTest(Z)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setAfterTestClass(Z)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setAfterTestMethod(Z)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setAlwaysRun(Z)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setBeforeSuite(Z)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setBeforeTest(Z)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setBeforeTestClass(Z)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setBeforeTestMethod(Z)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setInheritGroups(Z)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setParameters([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getBeforeTestClass()Z -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getAfterTestClass()Z -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getBeforeTestMethod()Z -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getAfterTestMethod()Z -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getBeforeSuite()Z -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getAfterSuite()Z -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getBeforeTest()Z -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getAfterTest()Z -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getParameters()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getAlwaysRun()Z -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getInheritGroups()Z -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getAfterGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setAfterGroups([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.getBeforeGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setBeforeGroups([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.setFakeConfiguration(Z)V -METHOD|org.testng.internal.annotations.ConfigurationAnnotation.isFakeConfiguration()Z -METHOD|org.testng.internal.annotations.Converter.()V -METHOD|org.testng.internal.annotations.Converter.getBoolean(Ljava/lang/String;Z)Z -METHOD|org.testng.internal.annotations.Converter.getInt(Ljava/lang/String;I)I -METHOD|org.testng.internal.annotations.Converter.getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.internal.annotations.Converter.getLong(Ljava/lang/String;J)J -METHOD|org.testng.internal.annotations.Converter.getStringArray(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String; -METHOD|org.testng.internal.annotations.Converter.getClassArray(Ljava/lang/String;[Ljava/lang/Class;)[Ljava/lang/Class; -METHOD|org.testng.internal.annotations.DataProviderAnnotation.()V -METHOD|org.testng.internal.annotations.DataProviderAnnotation.getName()Ljava/lang/String; -METHOD|org.testng.internal.annotations.DataProviderAnnotation.setName(Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.ExpectedExceptionsAnnotation.()V -METHOD|org.testng.internal.annotations.ExpectedExceptionsAnnotation.getValue()[Ljava/lang/Class; -METHOD|org.testng.internal.annotations.ExpectedExceptionsAnnotation.setValue([Ljava/lang/Class;)V -METHOD|org.testng.internal.annotations.FactoryAnnotation.()V -METHOD|org.testng.internal.annotations.FactoryAnnotation.getParameters()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.FactoryAnnotation.setParameters([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.IAnnotationFinder.findAnnotation(Ljava/lang/Class;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.IAnnotationFinder.findAnnotation(Ljava/lang/reflect/Method;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.IAnnotationFinder.findAnnotation(Ljava/lang/reflect/Constructor;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.IAnnotationFinder.addSourceDirs([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.IBaseBeforeAfter.getEnabled()Z -METHOD|org.testng.internal.annotations.IBaseBeforeAfter.getGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.IBaseBeforeAfter.getDependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.IBaseBeforeAfter.getDependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.IBaseBeforeAfter.getAlwaysRun()Z -METHOD|org.testng.internal.annotations.IBaseBeforeAfter.getInheritGroups()Z -METHOD|org.testng.internal.annotations.IBaseBeforeAfter.getDescription()Ljava/lang/String; -METHOD|org.testng.internal.annotations.IConfiguration.getBeforeTestClass()Z -METHOD|org.testng.internal.annotations.IConfiguration.getAfterTestClass()Z -METHOD|org.testng.internal.annotations.IConfiguration.getBeforeTestMethod()Z -METHOD|org.testng.internal.annotations.IConfiguration.getAfterTestMethod()Z -METHOD|org.testng.internal.annotations.IConfiguration.getBeforeSuite()Z -METHOD|org.testng.internal.annotations.IConfiguration.getAfterSuite()Z -METHOD|org.testng.internal.annotations.IConfiguration.getBeforeTest()Z -METHOD|org.testng.internal.annotations.IConfiguration.getAfterTest()Z -METHOD|org.testng.internal.annotations.IConfiguration.getAlwaysRun()Z -METHOD|org.testng.internal.annotations.IConfiguration.getInheritGroups()Z -METHOD|org.testng.internal.annotations.IConfiguration.getBeforeGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.IConfiguration.getAfterGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.IConfiguration.isFakeConfiguration()Z -METHOD|org.testng.internal.annotations.IDataProvider.getName()Ljava/lang/String; -METHOD|org.testng.internal.annotations.IExpectedExceptions.getValue()[Ljava/lang/Class; -METHOD|org.testng.internal.annotations.IParameterizable.getParameters()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.IParameters.getValue()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.ITest.getTimeOut()J -METHOD|org.testng.internal.annotations.ITest.getInvocationCount()I -METHOD|org.testng.internal.annotations.ITest.getThreadPoolSize()I -METHOD|org.testng.internal.annotations.ITest.getSuccessPercentage()I -METHOD|org.testng.internal.annotations.ITest.getDataProvider()Ljava/lang/String; -METHOD|org.testng.internal.annotations.ITest.getAlwaysRun()Z -METHOD|org.testng.internal.annotations.ITest.getGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.ITest.getEnabled()Z -METHOD|org.testng.internal.annotations.ITest.setDependsOnGroups([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.ITest.setDependsOnMethods([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.ITest.setEnabled(Z)V -METHOD|org.testng.internal.annotations.ITest.setGroups([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.ITest.getDependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.ITest.getDependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.ITest.getDescription()Ljava/lang/String; -METHOD|org.testng.internal.annotations.ITest.getExpectedExceptions()[Ljava/lang/Class; -METHOD|org.testng.internal.annotations.ITest.getSuiteName()Ljava/lang/String; -METHOD|org.testng.internal.annotations.ITest.getTestName()Ljava/lang/String; -METHOD|org.testng.internal.annotations.ITest.getSequential()Z -METHOD|org.testng.internal.annotations.ITestOrConfiguration.getGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.ITestOrConfiguration.getDependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.ITestOrConfiguration.getDependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.ITestOrConfiguration.getEnabled()Z -METHOD|org.testng.internal.annotations.ITestOrConfiguration.getDescription()Ljava/lang/String; -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder$1.(Lorg/testng/internal/annotations/JDK14AnnotationFinder;)V -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder$1.visitFile(Ljava/io/File;)V -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder.()V -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder.addSources([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder.addSourceDirs([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder.findAnnotation(Ljava/lang/Class;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder.findAnnotation(Ljava/lang/reflect/Method;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder.findAnnotation(Ljava/lang/reflect/Constructor;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder.stripPackage(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder.findMethodAnnotation(Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder.methodsAreEqual(Lcom/thoughtworks/qdox/model/JavaMethod;Ljava/lang/String;[Ljava/lang/Class;)Z -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder.findTag(Ljava/lang/Class;Lorg/testng/internal/annotations/IAnnotation;Lcom/thoughtworks/qdox/model/AbstractInheritableJavaEntity;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14AnnotationFinder.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.JDK14TagFactory.()V -METHOD|org.testng.internal.annotations.JDK14TagFactory.createTag(Ljava/lang/Class;Lcom/thoughtworks/qdox/model/AbstractInheritableJavaEntity;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14TagFactory.getTagName(Ljava/lang/Class;)Ljava/lang/String; -METHOD|org.testng.internal.annotations.JDK14TagFactory.createTag(Ljava/lang/Class;Lcom/thoughtworks/qdox/model/DocletTag;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14TagFactory.maybeCreateNewConfigurationTag(Ljava/lang/Class;Lcom/thoughtworks/qdox/model/DocletTag;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14TagFactory.createConfigurationTag(Ljava/lang/Class;Lcom/thoughtworks/qdox/model/DocletTag;ZZZZ[Ljava/lang/String;[Ljava/lang/String;ZZZZZ[Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;Z[Ljava/lang/String;)Lorg/testng/internal/annotations/IConfiguration; -METHOD|org.testng.internal.annotations.JDK14TagFactory.createTestTag(Lcom/thoughtworks/qdox/model/DocletTag;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14TagFactory.createConfigurationTag(Lcom/thoughtworks/qdox/model/DocletTag;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14TagFactory.createDataProviderTag(Lcom/thoughtworks/qdox/model/DocletTag;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14TagFactory.createExpectedExceptionsTag(Lcom/thoughtworks/qdox/model/DocletTag;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14TagFactory.createParametersTag(Lcom/thoughtworks/qdox/model/DocletTag;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14TagFactory.createFactoryTag(Lcom/thoughtworks/qdox/model/DocletTag;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK14TagFactory.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.JDK14TagFactory.()V -METHOD|org.testng.internal.annotations.JDK15AnnotationFinder.()V -METHOD|org.testng.internal.annotations.JDK15AnnotationFinder.findAnnotation(Ljava/lang/Class;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15AnnotationFinder.findAnnotationInSuperClasses(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation; -METHOD|org.testng.internal.annotations.JDK15AnnotationFinder.findAnnotation(Ljava/lang/reflect/Method;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15AnnotationFinder.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.JDK15AnnotationFinder.findAnnotation(Ljava/lang/reflect/Constructor;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15AnnotationFinder.findAnnotation(Ljava/lang/Class;Ljava/lang/annotation/Annotation;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15AnnotationFinder.addSourceDirs([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.JDK15AnnotationFinder.()V -METHOD|org.testng.internal.annotations.JDK15TagFactory.()V -METHOD|org.testng.internal.annotations.JDK15TagFactory.createTag(Ljava/lang/Class;Ljava/lang/annotation/Annotation;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15TagFactory.maybeCreateNewConfigurationTag(Ljava/lang/Class;Ljava/lang/annotation/Annotation;Ljava/lang/Class;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15TagFactory.createConfigurationTag(Ljava/lang/Class;Ljava/lang/annotation/Annotation;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15TagFactory.createConfigurationTag(Ljava/lang/Class;Ljava/lang/annotation/Annotation;ZZZZ[Ljava/lang/String;[Ljava/lang/String;ZZZZZ[Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;Z[Ljava/lang/String;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15TagFactory.createDataProviderTag(Ljava/lang/annotation/Annotation;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15TagFactory.createExpectedExceptionsTag(Ljava/lang/annotation/Annotation;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15TagFactory.createFactoryTag(Ljava/lang/annotation/Annotation;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15TagFactory.createParametersTag(Ljava/lang/annotation/Annotation;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15TagFactory.createTestTag(Ljava/lang/Class;Ljava/lang/annotation/Annotation;)Lorg/testng/internal/annotations/IAnnotation; -METHOD|org.testng.internal.annotations.JDK15TagFactory.join([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String; -METHOD|org.testng.internal.annotations.JDK15TagFactory.findInheritedStringArray(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)[Ljava/lang/String; -METHOD|org.testng.internal.annotations.JDK15TagFactory.invokeMethod(Ljava/lang/annotation/Annotation;Ljava/lang/String;)Ljava/lang/Object; -METHOD|org.testng.internal.annotations.JDK15TagFactory.ppp(Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.ParametersAnnotation.()V -METHOD|org.testng.internal.annotations.ParametersAnnotation.getValue()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.ParametersAnnotation.setValue([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.TestAnnotation.()V -METHOD|org.testng.internal.annotations.TestAnnotation.getExpectedExceptions()[Ljava/lang/Class; -METHOD|org.testng.internal.annotations.TestAnnotation.setExpectedExceptions([Ljava/lang/Class;)V -METHOD|org.testng.internal.annotations.TestAnnotation.setAlwaysRun(Z)V -METHOD|org.testng.internal.annotations.TestAnnotation.setDataProvider(Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.TestAnnotation.setInvocationCount(I)V -METHOD|org.testng.internal.annotations.TestAnnotation.setSuccessPercentage(I)V -METHOD|org.testng.internal.annotations.TestAnnotation.setTimeOut(J)V -METHOD|org.testng.internal.annotations.TestAnnotation.getTimeOut()J -METHOD|org.testng.internal.annotations.TestAnnotation.getInvocationCount()I -METHOD|org.testng.internal.annotations.TestAnnotation.getSuccessPercentage()I -METHOD|org.testng.internal.annotations.TestAnnotation.getDataProvider()Ljava/lang/String; -METHOD|org.testng.internal.annotations.TestAnnotation.getAlwaysRun()Z -METHOD|org.testng.internal.annotations.TestAnnotation.getThreadPoolSize()I -METHOD|org.testng.internal.annotations.TestAnnotation.setThreadPoolSize(I)V -METHOD|org.testng.internal.annotations.TestAnnotation.getSuiteName()Ljava/lang/String; -METHOD|org.testng.internal.annotations.TestAnnotation.setSuiteName(Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.TestAnnotation.getTestName()Ljava/lang/String; -METHOD|org.testng.internal.annotations.TestAnnotation.setTestName(Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.TestAnnotation.getSequential()Z -METHOD|org.testng.internal.annotations.TestAnnotation.setSequential(Z)V -METHOD|org.testng.internal.annotations.TestOrConfiguration.()V -METHOD|org.testng.internal.annotations.TestOrConfiguration.getGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.TestOrConfiguration.getEnabled()Z -METHOD|org.testng.internal.annotations.TestOrConfiguration.setDependsOnGroups([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.TestOrConfiguration.setDependsOnMethods([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.TestOrConfiguration.setGroups([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.TestOrConfiguration.getDescription()Ljava/lang/String; -METHOD|org.testng.internal.annotations.TestOrConfiguration.setEnabled(Z)V -METHOD|org.testng.internal.annotations.TestOrConfiguration.getDependsOnGroups()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.TestOrConfiguration.getDependsOnMethods()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.TestOrConfiguration.getParameters()[Ljava/lang/String; -METHOD|org.testng.internal.annotations.TestOrConfiguration.setParameters([Ljava/lang/String;)V -METHOD|org.testng.internal.annotations.TestOrConfiguration.setDescription(Ljava/lang/String;)V -METHOD|org.testng.internal.remote.SlavePool.()V -METHOD|org.testng.internal.remote.SlavePool.addSlaves([Ljava/net/Socket;)V -METHOD|org.testng.internal.remote.SlavePool.addSlave(Ljava/net/Socket;)V -METHOD|org.testng.internal.remote.SlavePool.addSlave(Ljava/net/Socket;Lorg/testng/remote/ConnectionInfo;)V -METHOD|org.testng.internal.remote.SlavePool.getSlave()Lorg/testng/remote/ConnectionInfo; -METHOD|org.testng.internal.remote.SlavePool.returnSlave(Lorg/testng/remote/ConnectionInfo;)V -METHOD|org.testng.internal.thread.CountDownAdapter.(I)V -METHOD|org.testng.internal.thread.CountDownAdapter.await()V -METHOD|org.testng.internal.thread.CountDownAdapter.await(J)Z -METHOD|org.testng.internal.thread.CountDownAdapter.countDown()V -METHOD|org.testng.internal.thread.ExecutorAdapter.(ILorg/testng/internal/thread/IThreadFactory;)V -METHOD|org.testng.internal.thread.ExecutorAdapter.submitRunnable(Ljava/lang/Runnable;)Lorg/testng/internal/thread/IFutureResult; -METHOD|org.testng.internal.thread.ExecutorAdapter.stopNow()V -METHOD|org.testng.internal.thread.ExecutorAdapter.awaitTermination(J)Z -METHOD|org.testng.internal.thread.FutureResultAdapter.(Ljava/util/concurrent/Future;)V -METHOD|org.testng.internal.thread.FutureResultAdapter.get()Ljava/lang/Object; -METHOD|org.testng.internal.thread.ICountDown.await()V -METHOD|org.testng.internal.thread.ICountDown.await(J)Z -METHOD|org.testng.internal.thread.ICountDown.countDown()V -METHOD|org.testng.internal.thread.IExecutor.submitRunnable(Ljava/lang/Runnable;)Lorg/testng/internal/thread/IFutureResult; -METHOD|org.testng.internal.thread.IExecutor.shutdown()V -METHOD|org.testng.internal.thread.IExecutor.awaitTermination(J)Z -METHOD|org.testng.internal.thread.IExecutor.stopNow()V -METHOD|org.testng.internal.thread.IFutureResult.get()Ljava/lang/Object; -METHOD|org.testng.internal.thread.IPooledExecutor.execute(Ljava/lang/Runnable;)V -METHOD|org.testng.internal.thread.IPooledExecutor.shutdown()V -METHOD|org.testng.internal.thread.IPooledExecutor.awaitTermination(J)V -METHOD|org.testng.internal.thread.IThreadFactory.newThread(Ljava/lang/Runnable;)Ljava/lang/Thread; -METHOD|org.testng.internal.thread.IThreadFactory.getThreadFactory()Ljava/lang/Object; -METHOD|org.testng.internal.thread.PooledExecutorAdapter.(I)V -METHOD|org.testng.internal.thread.PooledExecutorAdapter.awaitTermination(J)V -METHOD|org.testng.internal.thread.TestNGThread.(Ljava/lang/String;)V -METHOD|org.testng.internal.thread.TestNGThread.(Ljava/lang/Runnable;Ljava/lang/String;)V -METHOD|org.testng.internal.thread.ThreadExecutionException.(Ljava/lang/Throwable;)V -METHOD|org.testng.internal.thread.ThreadTimeoutException.(Ljava/lang/String;)V -METHOD|org.testng.internal.thread.ThreadTimeoutException.(Ljava/lang/Throwable;)V -METHOD|org.testng.internal.thread.ThreadTimeoutException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.testng.internal.thread.ThreadUtil$ThreadFactoryImpl.(Ljava/lang/String;)V -METHOD|org.testng.internal.thread.ThreadUtil$ThreadFactoryImpl.newThread(Ljava/lang/Runnable;)Ljava/lang/Thread; -METHOD|org.testng.internal.thread.ThreadUtil$ThreadFactoryImpl.getThreadFactory()Ljava/lang/Object; -METHOD|org.testng.internal.thread.ThreadUtil.()V -METHOD|org.testng.internal.thread.ThreadUtil.currentThreadInfo()Ljava/lang/String; -METHOD|org.testng.internal.thread.ThreadUtil.createCountDown(I)Lorg/testng/internal/thread/ICountDown; -METHOD|org.testng.internal.thread.ThreadUtil.createExecutor(ILorg/testng/internal/thread/IThreadFactory;)Lorg/testng/internal/thread/IExecutor; -METHOD|org.testng.internal.thread.ThreadUtil.createPooledExecutor(I)Lorg/testng/internal/thread/IPooledExecutor; -METHOD|org.testng.internal.thread.ThreadUtil.createFactory(Ljava/lang/String;)Lorg/testng/internal/thread/IThreadFactory; -METHOD|org.testng.junit.INameFilter.accept(Ljava/lang/reflect/Method;)Z -METHOD|org.testng.junit.JUnitClassFinder.([Ljava/lang/Class;Lorg/testng/xml/XmlTest;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.junit.JUnitClassFinder.invokeSuite([Ljava/lang/Class;)Ljava/util/Collection; -METHOD|org.testng.junit.JUnitClassFinder.invokeSuite(Ljava/lang/Class;)[Ljava/lang/Class; -METHOD|org.testng.junit.JUnitClassFinder.getTestClass(Ljava/lang/Object;)Ljava/lang/Class; -METHOD|org.testng.junit.JUnitClassFinder.findClassFinder(Ljava/lang/Class;[Ljava/lang/Class;Lorg/testng/xml/XmlTest;Lorg/testng/internal/annotations/IAnnotationFinder;)Lorg/testng/junit/JUnitClassFinder; -METHOD|org.testng.junit.JUnitClassFinder.ppp(Ljava/lang/String;)V -METHOD|org.testng.junit.JUnitDirectoryConverter.(Ljava/io/File;Ljava/io/File;Ljava/lang/String;Z)V -METHOD|org.testng.junit.JUnitDirectoryConverter.convert()I -METHOD|org.testng.junit.JUnitDirectoryConverter.generateConfiguration([Ljava/lang/String;)V -METHOD|org.testng.junit.JUnitDirectoryConverter.isTestFile(Ljava/io/File;)Z -METHOD|org.testng.junit.JUnitDirectoryConverter.convert(Ljava/io/File;)Ljava/util/Map; -METHOD|org.testng.junit.JUnitDirectoryConverter.ppp(Ljava/lang/String;)V -METHOD|org.testng.junit.JUnitMethodFinder$1.(Lorg/testng/junit/JUnitMethodFinder;)V -METHOD|org.testng.junit.JUnitMethodFinder$1.accept(Ljava/lang/reflect/Method;)Z -METHOD|org.testng.junit.JUnitMethodFinder$2.(Lorg/testng/junit/JUnitMethodFinder;)V -METHOD|org.testng.junit.JUnitMethodFinder$2.accept(Ljava/lang/reflect/Method;)Z -METHOD|org.testng.junit.JUnitMethodFinder$3.(Lorg/testng/junit/JUnitMethodFinder;)V -METHOD|org.testng.junit.JUnitMethodFinder$3.accept(Ljava/lang/reflect/Method;)Z -METHOD|org.testng.junit.JUnitMethodFinder.(Ljava/lang/String;Lorg/testng/internal/annotations/IAnnotationFinder;)V -METHOD|org.testng.junit.JUnitMethodFinder.findConstructor(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor; -METHOD|org.testng.junit.JUnitMethodFinder.getTestMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitMethodFinder.privateFindTestMethods(Lorg/testng/junit/INameFilter;Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitMethodFinder.ppp(Ljava/lang/String;)V -METHOD|org.testng.junit.JUnitMethodFinder.instantiate(Ljava/lang/Class;)Ljava/lang/Object; -METHOD|org.testng.junit.JUnitMethodFinder.getBeforeTestMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitMethodFinder.getAfterTestMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitMethodFinder.getAfterClassMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitMethodFinder.getBeforeClassMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitMethodFinder.getBeforeSuiteMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitMethodFinder.getAfterSuiteMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitMethodFinder.getBeforeTestConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitMethodFinder.getAfterTestConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitMethodFinder.getBeforeGroupsConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitMethodFinder.getAfterGroupsConfigurationMethods(Ljava/lang/Class;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.junit.JUnitTestConverter.([Ljava/io/File;Ljava/io/File;Ljava/lang/String;Z)V -METHOD|org.testng.junit.JUnitTestConverter.findFileName(Lcom/sun/javadoc/ClassDoc;)Ljava/io/File; -METHOD|org.testng.junit.JUnitTestConverter.start(Lcom/sun/javadoc/RootDoc;)Z -METHOD|org.testng.junit.JUnitTestConverter.isJUnitTest(Lcom/sun/javadoc/ClassDoc;)Z -METHOD|org.testng.junit.JUnitTestConverter.isTest(Lcom/sun/javadoc/MethodDoc;)Z -METHOD|org.testng.junit.JUnitTestConverter.isSetUp(Lcom/sun/javadoc/MethodDoc;)Z -METHOD|org.testng.junit.JUnitTestConverter.isTearDown(Lcom/sun/javadoc/MethodDoc;)Z -METHOD|org.testng.junit.JUnitTestConverter.convert()I -METHOD|org.testng.junit.JUnitTestConverter.writeFile(Ljava/io/File;)V -METHOD|org.testng.junit.JUnitTestConverter.insertAnnotations(Ljava/util/List;Ljava/util/List;)Ljava/util/List; -METHOD|org.testng.junit.JUnitTestConverter.insertJavadoc(Ljava/io/File;Ljava/util/List;Ljava/util/List;)Ljava/util/List; -METHOD|org.testng.junit.JUnitTestConverter.getPackageOutputDir(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; -METHOD|org.testng.junit.JUnitTestConverter.findCommentLine(Ljava/util/List;Lcom/sun/javadoc/MethodDoc;I)I -METHOD|org.testng.junit.JUnitTestConverter.fileToLines(Ljava/io/File;)Ljava/util/List; -METHOD|org.testng.junit.JUnitTestConverter.ppp(Ljava/lang/String;)V -METHOD|org.testng.junit.JUnitTestConverter.getClassNames()[Ljava/lang/String; -METHOD|org.testng.junit.JUnitTestConverter.()V -METHOD|org.testng.log.TextFormatter.()V -METHOD|org.testng.log.TextFormatter.format(Ljava/util/logging/LogRecord;)Ljava/lang/String; -METHOD|org.testng.log4testng.Logger.getLogger(Ljava/lang/Class;)Lorg/testng/log4testng/Logger; -METHOD|org.testng.log4testng.Logger.isTraceEnabled()Z -METHOD|org.testng.log4testng.Logger.trace(Ljava/lang/Object;)V -METHOD|org.testng.log4testng.Logger.trace(Ljava/lang/Object;Ljava/lang/Throwable;)V -METHOD|org.testng.log4testng.Logger.isDebugEnabled()Z -METHOD|org.testng.log4testng.Logger.debug(Ljava/lang/Object;)V -METHOD|org.testng.log4testng.Logger.debug(Ljava/lang/Object;Ljava/lang/Throwable;)V -METHOD|org.testng.log4testng.Logger.isInfoEnabled()Z -METHOD|org.testng.log4testng.Logger.info(Ljava/lang/Object;)V -METHOD|org.testng.log4testng.Logger.info(Ljava/lang/Object;Ljava/lang/Throwable;)V -METHOD|org.testng.log4testng.Logger.warn(Ljava/lang/Object;)V -METHOD|org.testng.log4testng.Logger.warn(Ljava/lang/Object;Ljava/lang/Throwable;)V -METHOD|org.testng.log4testng.Logger.error(Ljava/lang/Object;)V -METHOD|org.testng.log4testng.Logger.error(Ljava/lang/Object;Ljava/lang/Throwable;)V -METHOD|org.testng.log4testng.Logger.fatal(Ljava/lang/Object;)V -METHOD|org.testng.log4testng.Logger.fatal(Ljava/lang/Object;Ljava/lang/Throwable;)V -METHOD|org.testng.log4testng.Logger.(Ljava/lang/Class;I)V -METHOD|org.testng.log4testng.Logger.initialize()V -METHOD|org.testng.log4testng.Logger.getLevel(Ljava/lang/Class;)I -METHOD|org.testng.log4testng.Logger.isLevelEnabled(I)Z -METHOD|org.testng.log4testng.Logger.log(ILjava/lang/Object;Ljava/lang/Throwable;)V -METHOD|org.testng.log4testng.Logger.()V -METHOD|org.testng.remote.ConnectionInfo.()V -METHOD|org.testng.remote.ConnectionInfo.getOis()Ljava/io/ObjectInputStream; -METHOD|org.testng.remote.ConnectionInfo.getOos()Ljava/io/ObjectOutputStream; -METHOD|org.testng.remote.ConnectionInfo.setSocket(Ljava/net/Socket;)V -METHOD|org.testng.remote.ConnectionInfo.getSocket()Ljava/net/Socket; -METHOD|org.testng.remote.RemoteSuiteWorker.(Lorg/testng/xml/XmlSuite;Lorg/testng/internal/remote/SlavePool;Ljava/util/List;)V -METHOD|org.testng.remote.RemoteSuiteWorker.run()V -METHOD|org.testng.remote.RemoteTestWorker.(Lorg/testng/xml/XmlSuite;Lorg/testng/internal/remote/SlavePool;Lorg/testng/SuiteRunner;Ljava/util/List;)V -METHOD|org.testng.remote.RemoteTestWorker.run()V -METHOD|org.testng.remote.RemoteTestWorker.ppp(Ljava/lang/String;)V -METHOD|org.testng.remote.RemoteWorker.(Ljava/util/List;Lorg/testng/internal/remote/SlavePool;)V -METHOD|org.testng.remote.RemoteWorker.getSlavePool()Lorg/testng/internal/remote/SlavePool; -METHOD|org.testng.remote.RemoteWorker.sendSuite(Lorg/testng/remote/ConnectionInfo;Lorg/testng/xml/XmlSuite;)Lorg/testng/SuiteRunner; -METHOD|org.testng.remote.RemoteWorker.log(Ljava/lang/String;)V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient$ServerConnection.(Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient;I)V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient$ServerConnection.run()V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient$ServerConnection.handleThrowable(Ljava/lang/Throwable;)V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.()V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.startListening([Lorg/testng/remote/strprotocol/IRemoteSuiteListener;[Lorg/testng/remote/strprotocol/IRemoteTestListener;Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient$ServerConnection;)V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.getSuiteListeners()[Lorg/testng/remote/strprotocol/IRemoteSuiteListener; -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.getTestListeners()[Lorg/testng/remote/strprotocol/IRemoteTestListener; -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.shutdown()V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.isRunning()Z -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.stopTest()V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.readMessage(Ljava/io/BufferedReader;)Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.receiveMessage(Ljava/lang/String;)V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.notifyStart(Lorg/testng/remote/strprotocol/GenericMessage;)V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.notifySuiteEvents(Lorg/testng/remote/strprotocol/SuiteMessage;)V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.notifyTestEvents(Lorg/testng/remote/strprotocol/TestMessage;)V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.notifyResultEvents(Lorg/testng/remote/strprotocol/TestResultMessage;)V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.access$002(Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient;Ljava/net/ServerSocket;)Ljava/net/ServerSocket; -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.access$102(Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient;Ljava/net/Socket;)Ljava/net/Socket; -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.access$000(Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient;)Ljava/net/ServerSocket; -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.access$202(Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient;Ljava/io/BufferedReader;)Ljava/io/BufferedReader; -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.access$100(Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient;)Ljava/net/Socket; -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.access$302(Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient;Ljava/io/PrintWriter;)Ljava/io/PrintWriter; -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.access$200(Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient;)Ljava/io/BufferedReader; -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.access$400(Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient;Ljava/io/BufferedReader;)Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.access$500(Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient;Ljava/lang/String;)V -METHOD|org.testng.remote.strprotocol.AbstractRemoteTestRunnerClient.access$600(Lorg/testng/remote/strprotocol/AbstractRemoteTestRunnerClient;)V -METHOD|org.testng.remote.strprotocol.GenericMessage.(I)V -METHOD|org.testng.remote.strprotocol.GenericMessage.(ILjava/util/Map;)V -METHOD|org.testng.remote.strprotocol.GenericMessage.addProperty(Ljava/lang/String;Ljava/lang/Object;)Lorg/testng/remote/strprotocol/GenericMessage; -METHOD|org.testng.remote.strprotocol.GenericMessage.addProperty(Ljava/lang/String;I)Lorg/testng/remote/strprotocol/GenericMessage; -METHOD|org.testng.remote.strprotocol.GenericMessage.getProperty(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.GenericMessage.getMessageAsString()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.IRemoteSuiteListener.onInitialization(Lorg/testng/remote/strprotocol/GenericMessage;)V -METHOD|org.testng.remote.strprotocol.IRemoteSuiteListener.onStart(Lorg/testng/remote/strprotocol/SuiteMessage;)V -METHOD|org.testng.remote.strprotocol.IRemoteSuiteListener.onFinish(Lorg/testng/remote/strprotocol/SuiteMessage;)V -METHOD|org.testng.remote.strprotocol.IRemoteTestListener.onStart(Lorg/testng/remote/strprotocol/TestMessage;)V -METHOD|org.testng.remote.strprotocol.IRemoteTestListener.onFinish(Lorg/testng/remote/strprotocol/TestMessage;)V -METHOD|org.testng.remote.strprotocol.IRemoteTestListener.onTestStart(Lorg/testng/remote/strprotocol/TestResultMessage;)V -METHOD|org.testng.remote.strprotocol.IRemoteTestListener.onTestSuccess(Lorg/testng/remote/strprotocol/TestResultMessage;)V -METHOD|org.testng.remote.strprotocol.IRemoteTestListener.onTestFailure(Lorg/testng/remote/strprotocol/TestResultMessage;)V -METHOD|org.testng.remote.strprotocol.IRemoteTestListener.onTestSkipped(Lorg/testng/remote/strprotocol/TestResultMessage;)V -METHOD|org.testng.remote.strprotocol.IRemoteTestListener.onTestFailedButWithinSuccessPercentage(Lorg/testng/remote/strprotocol/TestResultMessage;)V -METHOD|org.testng.remote.strprotocol.IStringMessage.getMessageAsString()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.MessageHelper.()V -METHOD|org.testng.remote.strprotocol.MessageHelper.getMessageType(Ljava/lang/String;)I -METHOD|org.testng.remote.strprotocol.MessageHelper.unmarshallGenericMessage(Ljava/lang/String;)Lorg/testng/remote/strprotocol/GenericMessage; -METHOD|org.testng.remote.strprotocol.MessageHelper.createSuiteMessage(Ljava/lang/String;)Lorg/testng/remote/strprotocol/SuiteMessage; -METHOD|org.testng.remote.strprotocol.MessageHelper.createTestMessage(Ljava/lang/String;)Lorg/testng/remote/strprotocol/TestMessage; -METHOD|org.testng.remote.strprotocol.MessageHelper.unmarshallTestResultMessage(Ljava/lang/String;)Lorg/testng/remote/strprotocol/TestResultMessage; -METHOD|org.testng.remote.strprotocol.MessageHelper.replaceNewLine(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.MessageHelper.replaceNewLineReplacer(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.MessageHelper.parseMessage(Ljava/lang/String;)[Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.RemoteMessageSenderTestListener.(Lorg/testng/ISuite;Lorg/testng/xml/XmlTest;Lorg/testng/remote/strprotocol/StringMessageSenderHelper;)V -METHOD|org.testng.remote.strprotocol.RemoteMessageSenderTestListener.onStart(Lorg/testng/ITestContext;)V -METHOD|org.testng.remote.strprotocol.RemoteMessageSenderTestListener.onFinish(Lorg/testng/ITestContext;)V -METHOD|org.testng.remote.strprotocol.RemoteMessageSenderTestListener.onTestStart(Lorg/testng/ITestResult;)V -METHOD|org.testng.remote.strprotocol.RemoteMessageSenderTestListener.onTestFailedButWithinSuccessPercentage(Lorg/testng/ITestResult;)V -METHOD|org.testng.remote.strprotocol.RemoteMessageSenderTestListener.onTestFailure(Lorg/testng/ITestResult;)V -METHOD|org.testng.remote.strprotocol.RemoteMessageSenderTestListener.onTestSkipped(Lorg/testng/ITestResult;)V -METHOD|org.testng.remote.strprotocol.RemoteMessageSenderTestListener.onTestSuccess(Lorg/testng/ITestResult;)V -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper$ReaderThread.(Lorg/testng/remote/strprotocol/StringMessageSenderHelper;)V -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper$ReaderThread.run()V -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper.(Ljava/lang/String;I)V -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper.connect()Z -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper.shutDown()V -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper.sendMessage(Lorg/testng/remote/strprotocol/IMessage;)V -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper.sendMessage(Lorg/testng/remote/strprotocol/IStringMessage;)V -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper.sendMessage(Ljava/lang/String;)V -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper.ppp(Ljava/lang/String;)V -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper.access$000(Lorg/testng/remote/strprotocol/StringMessageSenderHelper;)Ljava/io/BufferedReader; -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper.access$100(Lorg/testng/remote/strprotocol/StringMessageSenderHelper;)Z -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper.access$200(Ljava/lang/String;)V -METHOD|org.testng.remote.strprotocol.StringMessageSenderHelper.access$300(Lorg/testng/remote/strprotocol/StringMessageSenderHelper;)Ljava/lang/Object; -METHOD|org.testng.remote.strprotocol.SuiteMessage.(Ljava/lang/String;ZI)V -METHOD|org.testng.remote.strprotocol.SuiteMessage.(Lorg/testng/ISuite;Z)V -METHOD|org.testng.remote.strprotocol.SuiteMessage.isMessageOnStart()Z -METHOD|org.testng.remote.strprotocol.SuiteMessage.getSuiteName()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.SuiteMessage.getTestMethodCount()I -METHOD|org.testng.remote.strprotocol.SuiteMessage.getMessageAsString()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.TestMessage.(ZLjava/lang/String;Ljava/lang/String;IIIII)V -METHOD|org.testng.remote.strprotocol.TestMessage.(Lorg/testng/ITestContext;Z)V -METHOD|org.testng.remote.strprotocol.TestMessage.isMessageOnStart()Z -METHOD|org.testng.remote.strprotocol.TestMessage.getMessageAsString()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.TestMessage.getSuiteName()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.TestMessage.getTestName()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.TestMessage.isTestStart()Z -METHOD|org.testng.remote.strprotocol.TestMessage.getTestMethodCount()I -METHOD|org.testng.remote.strprotocol.TestMessage.getSuccessPercentageFailedTestCount()I -METHOD|org.testng.remote.strprotocol.TestMessage.getFailedTestCount()I -METHOD|org.testng.remote.strprotocol.TestMessage.getPassedTestCount()I -METHOD|org.testng.remote.strprotocol.TestMessage.getSkippedTestCount()I -METHOD|org.testng.remote.strprotocol.TestResultMessage.(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJLjava/lang/String;)V -METHOD|org.testng.remote.strprotocol.TestResultMessage.(Ljava/lang/String;Ljava/lang/String;Lorg/testng/ITestResult;)V -METHOD|org.testng.remote.strprotocol.TestResultMessage.(Lorg/testng/ITestContext;Lorg/testng/ITestResult;)V -METHOD|org.testng.remote.strprotocol.TestResultMessage.init(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJ)V -METHOD|org.testng.remote.strprotocol.TestResultMessage.getResult()I -METHOD|org.testng.remote.strprotocol.TestResultMessage.getMessageAsString()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.TestResultMessage.getSuiteName()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.TestResultMessage.getTestClass()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.TestResultMessage.getMethod()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.TestResultMessage.getName()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.TestResultMessage.getStackTrace()Ljava/lang/String; -METHOD|org.testng.remote.strprotocol.TestResultMessage.getEndMillis()J -METHOD|org.testng.remote.strprotocol.TestResultMessage.getStartMillis()J -METHOD|org.testng.remote.strprotocol.TestResultMessage.equals(Ljava/lang/Object;)Z -METHOD|org.testng.remote.strprotocol.TestResultMessage.hashCode()I -METHOD|org.testng.reporters.DotTestListener.()V -METHOD|org.testng.reporters.DotTestListener.onTestFailure(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.DotTestListener.onTestSkipped(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.DotTestListener.onTestSuccess(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.DotTestListener.log(Ljava/lang/String;)V -METHOD|org.testng.reporters.ExitCodeListener.()V -METHOD|org.testng.reporters.ExitCodeListener.onTestFailure(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.ExitCodeListener.onTestSkipped(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.ExitCodeListener.onTestFailedButWithinSuccessPercentage(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.ExitCodeListener.onTestSuccess(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.ExitCodeListener.onStart(Lorg/testng/ITestContext;)V -METHOD|org.testng.reporters.ExitCodeListener.onFinish(Lorg/testng/ITestContext;)V -METHOD|org.testng.reporters.ExitCodeListener.onTestStart(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.FailedReporter.()V -METHOD|org.testng.reporters.FailedReporter.(Lorg/testng/xml/XmlSuite;)V -METHOD|org.testng.reporters.FailedReporter.generateReport(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V -METHOD|org.testng.reporters.FailedReporter.generateFailureSuite(Lorg/testng/xml/XmlSuite;Lorg/testng/ISuite;Ljava/lang/String;)V -METHOD|org.testng.reporters.FailedReporter.onFinish(Lorg/testng/ITestContext;)V -METHOD|org.testng.reporters.FailedReporter.generateXmlTest(Lorg/testng/ISuite;Lorg/testng/xml/XmlTest;Lorg/testng/ITestContext;Ljava/util/Collection;Ljava/util/Collection;)V -METHOD|org.testng.reporters.FailedReporter.addMethods(Ljava/util/Map;[Lorg/testng/ITestNGMethod;)V -METHOD|org.testng.reporters.FailedReporter.createXmlTest(Lorg/testng/ITestContext;Ljava/util/List;Lorg/testng/xml/XmlTest;)V -METHOD|org.testng.reporters.FailedReporter.createXmlClasses(Ljava/util/List;)Ljava/util/List; -METHOD|org.testng.reporters.FailedReporter.getFileName(Lorg/testng/ITestContext;)Ljava/lang/String; -METHOD|org.testng.reporters.FailedReporter.ppp(Ljava/lang/String;)V -METHOD|org.testng.reporters.HtmlHelper.()V -METHOD|org.testng.reporters.HtmlHelper.getCssString()Ljava/lang/String; -METHOD|org.testng.reporters.HtmlHelper.getCssString(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.reporters.HtmlHelper.generateStylesheet(Ljava/lang/String;)Ljava/io/File; -METHOD|org.testng.reporters.JUnitXMLReporter.()V -METHOD|org.testng.reporters.JUnitXMLReporter.onTestStart(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.JUnitXMLReporter.onTestSuccess(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.JUnitXMLReporter.onTestFailedButWithinSuccessPercentage(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.JUnitXMLReporter.onTestFailure(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.JUnitXMLReporter.onTestSkipped(Lorg/testng/ITestResult;)V -METHOD|org.testng.reporters.JUnitXMLReporter.onStart(Lorg/testng/ITestContext;)V -METHOD|org.testng.reporters.JUnitXMLReporter.onFinish(Lorg/testng/ITestContext;)V -METHOD|org.testng.reporters.JUnitXMLReporter.generateReport()V -METHOD|org.testng.reporters.SuiteHTMLReporter$1.(Lorg/testng/reporters/SuiteHTMLReporter;)V -METHOD|org.testng.reporters.SuiteHTMLReporter$1.compare(Ljava/lang/Object;Ljava/lang/Object;)I -METHOD|org.testng.reporters.SuiteHTMLReporter.()V -METHOD|org.testng.reporters.SuiteHTMLReporter.generateReport(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.generateXmlFile(Lorg/testng/xml/XmlSuite;Lorg/testng/ISuite;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.generateIndex(Ljava/util/List;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.generateExcludedMethodsReport(Lorg/testng/xml/XmlSuite;Lorg/testng/ISuite;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.generateReporterOutput(Lorg/testng/xml/XmlSuite;Lorg/testng/ISuite;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.generateClasses(Lorg/testng/xml/XmlSuite;Lorg/testng/ISuite;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.generateClass(Lorg/testng/ITestClass;)Ljava/lang/String; -METHOD|org.testng.reporters.SuiteHTMLReporter.dumpMethods([Lorg/testng/ITestNGMethod;)Ljava/lang/String; -METHOD|org.testng.reporters.SuiteHTMLReporter.dumpGroups([Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.reporters.SuiteHTMLReporter.generateMethodsChronologically(Lorg/testng/xml/XmlSuite;Lorg/testng/ISuite;Ljava/lang/String;Z)V -METHOD|org.testng.reporters.SuiteHTMLReporter.toHex(I)Ljava/lang/String; -METHOD|org.testng.reporters.SuiteHTMLReporter.createColor(Lorg/testng/ITestNGMethod;)Ljava/lang/String; -METHOD|org.testng.reporters.SuiteHTMLReporter.td(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.reporters.SuiteHTMLReporter.ppp(Ljava/lang/String;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.generateMethodsAndGroups(Lorg/testng/xml/XmlSuite;Lorg/testng/ISuite;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.generateIndex(Lorg/testng/xml/XmlSuite;Lorg/testng/ISuite;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.makeTitle(Lorg/testng/ISuite;)Ljava/lang/String; -METHOD|org.testng.reporters.SuiteHTMLReporter.generateMain(Lorg/testng/xml/XmlSuite;Lorg/testng/ISuite;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.generateTableOfContents(Lorg/testng/xml/XmlSuite;Lorg/testng/ISuite;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.pluralize(ILjava/lang/String;)Ljava/lang/String; -METHOD|org.testng.reporters.SuiteHTMLReporter.getOutputDirectory(Lorg/testng/xml/XmlSuite;)Ljava/lang/String; -METHOD|org.testng.reporters.SuiteHTMLReporter.sortResults(Ljava/util/Collection;)[Lorg/testng/ISuiteResult; -METHOD|org.testng.reporters.SuiteHTMLReporter.generateSuiteResult(Ljava/lang/String;Lorg/testng/ISuiteResult;Ljava/lang/String;Ljava/lang/StringBuffer;Ljava/lang/String;)V -METHOD|org.testng.reporters.SuiteHTMLReporter.generateSuites(Lorg/testng/xml/XmlSuite;Lorg/testng/ISuite;)V -METHOD|org.testng.reporters.Tag.(Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.reporters.TestHTMLReporter$1.()V -METHOD|org.testng.reporters.TestHTMLReporter$1.compare(Lorg/testng/ITestResult;Lorg/testng/ITestResult;)I -METHOD|org.testng.reporters.TestHTMLReporter$1.compare(Ljava/lang/Object;Ljava/lang/Object;)I -METHOD|org.testng.reporters.TestHTMLReporter.()V -METHOD|org.testng.reporters.TestHTMLReporter.onStart(Lorg/testng/ITestContext;)V -METHOD|org.testng.reporters.TestHTMLReporter.onFinish(Lorg/testng/ITestContext;)V -METHOD|org.testng.reporters.TestHTMLReporter.getOutputFile(Ljava/lang/String;Lorg/testng/ITestContext;)Ljava/io/File; -METHOD|org.testng.reporters.TestHTMLReporter.generateTable(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/util/Collection;Ljava/lang/String;)V -METHOD|org.testng.reporters.TestHTMLReporter.arrayToString([Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.reporters.TestHTMLReporter.generateLog(Lorg/testng/ITestContext;Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Collection;)V -METHOD|org.testng.reporters.TestHTMLReporter.ppp(Ljava/lang/String;)V -METHOD|org.testng.reporters.TestHTMLReporter.()V -METHOD|org.testng.reporters.TextReporter.(Ljava/lang/String;I)V -METHOD|org.testng.reporters.TextReporter.onFinish(Lorg/testng/ITestContext;)V -METHOD|org.testng.reporters.TextReporter.resultsToMethods(Ljava/util/List;)[Lorg/testng/ITestNGMethod; -METHOD|org.testng.reporters.TextReporter.logResults()V -METHOD|org.testng.reporters.TextReporter.getName()Ljava/lang/String; -METHOD|org.testng.reporters.TextReporter.logResult(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.reporters.TextReporter.logResult(Ljava/lang/Throwable;)V -METHOD|org.testng.reporters.TextReporter.ppp(Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLReporter.()V -METHOD|org.testng.reporters.XMLReporter.onStart(Lorg/testng/ISuite;)V -METHOD|org.testng.reporters.XMLReporter.onFinish(Lorg/testng/ISuite;)V -METHOD|org.testng.reporters.XMLReporter.ppp(Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.(Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.setDocType(Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.(Ljava/lang/StringBuffer;Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.init(Ljava/lang/StringBuffer;Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.push(Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)V -METHOD|org.testng.reporters.XMLStringBuffer.push(Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.push(Ljava/lang/String;Ljava/util/Properties;)V -METHOD|org.testng.reporters.XMLStringBuffer.push(Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.pop()V -METHOD|org.testng.reporters.XMLStringBuffer.pop(Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.addRequired(Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.addRequired(Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)V -METHOD|org.testng.reporters.XMLStringBuffer.addOptional(Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)V -METHOD|org.testng.reporters.XMLStringBuffer.addOptional(Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.addOptional(Ljava/lang/String;Ljava/lang/Boolean;Ljava/util/Properties;)V -METHOD|org.testng.reporters.XMLStringBuffer.addOptional(Ljava/lang/String;Ljava/lang/Boolean;)V -METHOD|org.testng.reporters.XMLStringBuffer.addEmptyElement(Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.addEmptyElement(Ljava/lang/String;Ljava/util/Properties;)V -METHOD|org.testng.reporters.XMLStringBuffer.ppp(Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.addCDATA(Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.getStringBuffer()Ljava/lang/StringBuffer; -METHOD|org.testng.reporters.XMLStringBuffer.toXML()Ljava/lang/String; -METHOD|org.testng.reporters.XMLStringBuffer.main([Ljava/lang/String;)V -METHOD|org.testng.reporters.XMLStringBuffer.()V -METHOD|org.testng.reporters.XMLUtils.()V -METHOD|org.testng.reporters.XMLUtils.xml(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)Ljava/lang/String; -METHOD|org.testng.reporters.XMLUtils.xmlOptional(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/util/Properties;)V -METHOD|org.testng.reporters.XMLUtils.xmlOptional(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)V -METHOD|org.testng.reporters.XMLUtils.xmlRequired(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)V -METHOD|org.testng.reporters.XMLUtils.xmlOpen(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)V -METHOD|org.testng.reporters.XMLUtils.appendAttributes(Ljava/lang/StringBuffer;Ljava/util/Properties;)V -METHOD|org.testng.reporters.XMLUtils.xmlOpen(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;Z)V -METHOD|org.testng.reporters.XMLUtils.xmlClose(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.xml.ClassSuite.(Ljava/lang/String;[Ljava/lang/Class;)V -METHOD|org.testng.xml.LaunchSuite$ClassListSuite.(Ljava/lang/String;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Map;Ljava/lang/String;I)V -METHOD|org.testng.xml.LaunchSuite$ClassListSuite.initContentBuffer(Lorg/testng/reporters/XMLStringBuffer;)V -METHOD|org.testng.xml.LaunchSuite$CustomizedSuite.(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V -METHOD|org.testng.xml.LaunchSuite$CustomizedSuite.createContentBuffer()Lorg/testng/reporters/XMLStringBuffer; -METHOD|org.testng.xml.LaunchSuite$CustomizedSuite.getSuiteBuffer()Lorg/testng/reporters/XMLStringBuffer; -METHOD|org.testng.xml.LaunchSuite$CustomizedSuite.initContentBuffer(Lorg/testng/reporters/XMLStringBuffer;)V -METHOD|org.testng.xml.LaunchSuite$CustomizedSuite.save(Ljava/io/File;)Ljava/io/File; -METHOD|org.testng.xml.LaunchSuite$CustomizedSuite.saveSuiteContent(Ljava/io/File;Lorg/testng/reporters/XMLStringBuffer;)V -METHOD|org.testng.xml.LaunchSuite$CustomizedSuite.(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Lorg/testng/xml/LaunchSuite$1;)V -METHOD|org.testng.xml.LaunchSuite$ExistingSuite.(Ljava/io/File;)V -METHOD|org.testng.xml.LaunchSuite$ExistingSuite.save(Ljava/io/File;)Ljava/io/File; -METHOD|org.testng.xml.LaunchSuite$MethodsSuite.(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;Ljava/util/Map;Ljava/lang/String;I)V -METHOD|org.testng.xml.LaunchSuite$MethodsSuite.initContentBuffer(Lorg/testng/reporters/XMLStringBuffer;)V -METHOD|org.testng.xml.LaunchSuite.(Z)V -METHOD|org.testng.xml.LaunchSuite.isTemporary()Z -METHOD|org.testng.xml.LaunchSuite.save(Ljava/io/File;)Ljava/io/File; -METHOD|org.testng.xml.Parser.(Ljava/lang/String;Ljava/io/InputStream;)V -METHOD|org.testng.xml.Parser.(Ljava/lang/String;)V -METHOD|org.testng.xml.Parser.(Ljava/io/InputStream;)V -METHOD|org.testng.xml.Parser.()V -METHOD|org.testng.xml.Parser.getDefault()Ljava/io/InputStream; -METHOD|org.testng.xml.Parser.parse()Lorg/testng/xml/XmlSuite; -METHOD|org.testng.xml.SuiteGenerator.()V -METHOD|org.testng.xml.SuiteGenerator.createProxiedXmlSuite(Ljava/io/File;)Lorg/testng/xml/LaunchSuite; -METHOD|org.testng.xml.SuiteGenerator.createCustomizedSuite(Ljava/lang/String;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Map;Ljava/lang/String;I)Lorg/testng/xml/LaunchSuite; -METHOD|org.testng.xml.TestNGContentHandler.(Ljava/lang/String;)V -METHOD|org.testng.xml.TestNGContentHandler.ppp(Ljava/lang/String;)V -METHOD|org.testng.xml.TestNGContentHandler.resolveEntity(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource; -METHOD|org.testng.xml.TestNGContentHandler.xmlSuite(ZLorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.xmlDefine(ZLorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.xmlScript(ZLorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.xmlTest(ZLorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.xmlClasses(ZLorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.xmlPackages(ZLorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.xmlMethodSelectors(ZLorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.xmlSelectorClass(ZLorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.xmlMethodSelector(ZLorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.xmlMethod(ZLorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.xmlRun(ZLorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V -METHOD|org.testng.xml.TestNGContentHandler.endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.xml.TestNGContentHandler.error(Lorg/xml/sax/SAXParseException;)V -METHOD|org.testng.xml.TestNGContentHandler.areWhiteSpaces([CII)Z -METHOD|org.testng.xml.TestNGContentHandler.characters([CII)V -METHOD|org.testng.xml.TestNGContentHandler.getSuite()Lorg/testng/xml/XmlSuite; -METHOD|org.testng.xml.XmlClass.(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlClass.(Ljava/lang/Class;)V -METHOD|org.testng.xml.XmlClass.init(Ljava/lang/String;Ljava/lang/Class;)V -METHOD|org.testng.xml.XmlClass.getSupportClass()Ljava/lang/Class; -METHOD|org.testng.xml.XmlClass.setClass(Ljava/lang/Class;)V -METHOD|org.testng.xml.XmlClass.getExcludedMethods()Ljava/util/List; -METHOD|org.testng.xml.XmlClass.setExcludedMethods(Ljava/util/List;)V -METHOD|org.testng.xml.XmlClass.getIncludedMethods()Ljava/util/List; -METHOD|org.testng.xml.XmlClass.setIncludedMethods(Ljava/util/List;)V -METHOD|org.testng.xml.XmlClass.getName()Ljava/lang/String; -METHOD|org.testng.xml.XmlClass.setName(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlClass.toString()Ljava/lang/String; -METHOD|org.testng.xml.XmlClass.toXml(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.xml.XmlClass.clone()Ljava/lang/Object; -METHOD|org.testng.xml.XmlMethodSelector.()V -METHOD|org.testng.xml.XmlMethodSelector.getClassName()Ljava/lang/String; -METHOD|org.testng.xml.XmlMethodSelector.setName(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlMethodSelector.getExpression()Ljava/lang/String; -METHOD|org.testng.xml.XmlMethodSelector.setExpression(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlMethodSelector.getLanguage()Ljava/lang/String; -METHOD|org.testng.xml.XmlMethodSelector.setLanguage(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlMethodSelector.getPriority()I -METHOD|org.testng.xml.XmlMethodSelector.setPriority(I)V -METHOD|org.testng.xml.XmlMethodSelector.toXml(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.xml.XmlPackage.()V -METHOD|org.testng.xml.XmlPackage.getExclude()Ljava/util/List; -METHOD|org.testng.xml.XmlPackage.setExclude(Ljava/util/List;)V -METHOD|org.testng.xml.XmlPackage.getInclude()Ljava/util/List; -METHOD|org.testng.xml.XmlPackage.setInclude(Ljava/util/List;)V -METHOD|org.testng.xml.XmlPackage.getName()Ljava/lang/String; -METHOD|org.testng.xml.XmlPackage.setName(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlPackage.getXmlClasses()Ljava/util/List; -METHOD|org.testng.xml.XmlPackage.initializeXmlClasses()Ljava/util/List; -METHOD|org.testng.xml.XmlPackage.toXml(Ljava/lang/String;)Ljava/lang/Object; -METHOD|org.testng.xml.XmlSuite.()V -METHOD|org.testng.xml.XmlSuite.getFileName()Ljava/lang/String; -METHOD|org.testng.xml.XmlSuite.setFileName(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlSuite.isParallel()Z -METHOD|org.testng.xml.XmlSuite.setParallel(Z)V -METHOD|org.testng.xml.XmlSuite.getVerbose()Ljava/lang/Integer; -METHOD|org.testng.xml.XmlSuite.setVerbose(Ljava/lang/Integer;)V -METHOD|org.testng.xml.XmlSuite.getName()Ljava/lang/String; -METHOD|org.testng.xml.XmlSuite.setName(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlSuite.getTest()Ljava/lang/String; -METHOD|org.testng.xml.XmlSuite.getTests()Ljava/util/List; -METHOD|org.testng.xml.XmlSuite.getMethodSelectors()Ljava/util/List; -METHOD|org.testng.xml.XmlSuite.setMethodSelectors(Ljava/util/List;)V -METHOD|org.testng.xml.XmlSuite.setBeanShellExpression(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlSuite.getExpression()Ljava/lang/String; -METHOD|org.testng.xml.XmlSuite.getBeanShellExpression()Ljava/lang/String; -METHOD|org.testng.xml.XmlSuite.setParameters(Ljava/util/Map;)V -METHOD|org.testng.xml.XmlSuite.getParameters()Ljava/util/Map; -METHOD|org.testng.xml.XmlSuite.getAllParameters()Ljava/util/Map; -METHOD|org.testng.xml.XmlSuite.getParameter(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.xml.XmlSuite.getThreadCount()I -METHOD|org.testng.xml.XmlSuite.setThreadCount(I)V -METHOD|org.testng.xml.XmlSuite.getAnnotations()Ljava/lang/String; -METHOD|org.testng.xml.XmlSuite.setAnnotations(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlSuite.isJUnit()Ljava/lang/Boolean; -METHOD|org.testng.xml.XmlSuite.setJUnit(Ljava/lang/Boolean;)V -METHOD|org.testng.xml.XmlSuite.setXmlPackages(Ljava/util/List;)V -METHOD|org.testng.xml.XmlSuite.getXmlPackages()Ljava/util/List; -METHOD|org.testng.xml.XmlSuite.toXml()Ljava/lang/String; -METHOD|org.testng.xml.XmlSuite.toString()Ljava/lang/String; -METHOD|org.testng.xml.XmlSuite.ppp(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlSuite.clone()Ljava/lang/Object; -METHOD|org.testng.xml.XmlTest.(Lorg/testng/xml/XmlSuite;)V -METHOD|org.testng.xml.XmlTest.setXmlPackages(Ljava/util/List;)V -METHOD|org.testng.xml.XmlTest.getXmlPackages()Ljava/util/List; -METHOD|org.testng.xml.XmlTest.getMethodSelectors()Ljava/util/List; -METHOD|org.testng.xml.XmlTest.setMethodSelectors(Ljava/util/List;)V -METHOD|org.testng.xml.XmlTest.getSuite()Lorg/testng/xml/XmlSuite; -METHOD|org.testng.xml.XmlTest.getIncludedGroups()Ljava/util/List; -METHOD|org.testng.xml.XmlTest.setClassNames(Ljava/util/List;)V -METHOD|org.testng.xml.XmlTest.getXmlClasses()Ljava/util/List; -METHOD|org.testng.xml.XmlTest.setXmlClasses(Ljava/util/List;)V -METHOD|org.testng.xml.XmlTest.getName()Ljava/lang/String; -METHOD|org.testng.xml.XmlTest.setName(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlTest.setVerbose(I)V -METHOD|org.testng.xml.XmlTest.setIncludedGroups(Ljava/util/List;)V -METHOD|org.testng.xml.XmlTest.setExcludedGroups(Ljava/util/List;)V -METHOD|org.testng.xml.XmlTest.getExcludedGroups()Ljava/util/List; -METHOD|org.testng.xml.XmlTest.getVerbose()I -METHOD|org.testng.xml.XmlTest.isJUnit()Z -METHOD|org.testng.xml.XmlTest.setJUnit(Z)V -METHOD|org.testng.xml.XmlTest.addMetaGroup(Ljava/lang/String;Ljava/util/List;)V -METHOD|org.testng.xml.XmlTest.getMetaGroups()Ljava/util/Map; -METHOD|org.testng.xml.XmlTest.setParameters(Ljava/util/Map;)V -METHOD|org.testng.xml.XmlTest.addParameter(Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.testng.xml.XmlTest.getParameter(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.xml.XmlTest.getParameters()Ljava/util/Map; -METHOD|org.testng.xml.XmlTest.setParallel(Z)V -METHOD|org.testng.xml.XmlTest.isParallel()Z -METHOD|org.testng.xml.XmlTest.getAnnotations()Ljava/lang/String; -METHOD|org.testng.xml.XmlTest.setAnnotations(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlTest.setBeanShellExpression(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlTest.getExpression()Ljava/lang/String; -METHOD|org.testng.xml.XmlTest.toXml(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.testng.xml.XmlTest.toString()Ljava/lang/String; -METHOD|org.testng.xml.XmlTest.ppp(Ljava/lang/String;)V -METHOD|org.testng.xml.XmlTest.clone()Ljava/lang/Object; -FILE|META-INF/ -FILE|META-INF/LICENSE.txt -FILE|META-INF/MANIFEST.MF -FILE|bsh/ -FILE|bsh/BSHAllocationExpression.class -FILE|bsh/BSHAmbiguousName.class -FILE|bsh/BSHArguments.class -FILE|bsh/BSHArrayDimensions.class -FILE|bsh/BSHArrayInitializer.class -FILE|bsh/BSHAssignment.class -FILE|bsh/BSHBinaryExpression.class -FILE|bsh/BSHBlock$NodeFilter.class -FILE|bsh/BSHBlock.class -FILE|bsh/BSHCastExpression.class -FILE|bsh/BSHClassDeclaration.class -FILE|bsh/BSHEnhancedForStatement.class -FILE|bsh/BSHForStatement.class -FILE|bsh/BSHFormalComment.class -FILE|bsh/BSHFormalParameter.class -FILE|bsh/BSHFormalParameters.class -FILE|bsh/BSHIfStatement.class -FILE|bsh/BSHImportDeclaration.class -FILE|bsh/BSHLiteral.class -FILE|bsh/BSHMethodDeclaration.class -FILE|bsh/BSHMethodInvocation.class -FILE|bsh/BSHPackageDeclaration.class -FILE|bsh/BSHPrimaryExpression.class -FILE|bsh/BSHPrimarySuffix.class -FILE|bsh/BSHPrimitiveType.class -FILE|bsh/BSHReturnStatement.class -FILE|bsh/BSHReturnType.class -FILE|bsh/BSHStatementExpressionList.class -FILE|bsh/BSHSwitchLabel.class -FILE|bsh/BSHSwitchStatement.class -FILE|bsh/BSHTernaryExpression.class -FILE|bsh/BSHThrowStatement.class -FILE|bsh/BSHTryStatement.class -FILE|bsh/BSHType.class -FILE|bsh/BSHTypedVariableDeclaration.class -FILE|bsh/BSHUnaryExpression.class -FILE|bsh/BSHVariableDeclarator.class -FILE|bsh/BSHWhileStatement.class -FILE|bsh/BlockNameSpace.class -FILE|bsh/BshClassManager$Listener.class -FILE|bsh/BshClassManager$SignatureKey.class -FILE|bsh/BshClassManager.class -FILE|bsh/BshIterator.class -FILE|bsh/BshMethod.class -FILE|bsh/CallStack.class -FILE|bsh/Capabilities$Unavailable.class -FILE|bsh/Capabilities.class -FILE|bsh/ClassGenerator.class -FILE|bsh/ClassGeneratorImpl$ClassNodeFilter.class -FILE|bsh/ClassGeneratorImpl.class -FILE|bsh/ClassGeneratorUtil$ConstructorArgs.class -FILE|bsh/ClassGeneratorUtil.class -FILE|bsh/ClassIdentifier.class -FILE|bsh/ClassPathException.class -FILE|bsh/CollectionManager$1.class -FILE|bsh/CollectionManager$BasicBshIterator.class -FILE|bsh/CollectionManager.class -FILE|bsh/CommandLineReader.class -FILE|bsh/Console.class -FILE|bsh/ConsoleInterface.class -FILE|bsh/DelayedEvalBshMethod.class -FILE|bsh/EvalError.class -FILE|bsh/ExternalNameSpace.class -FILE|bsh/Interpreter$1.class -FILE|bsh/Interpreter.class -FILE|bsh/InterpreterError.class -FILE|bsh/JJTParserState.class -FILE|bsh/JavaCharStream.class -FILE|bsh/LHS.class -FILE|bsh/Modifiers.class -FILE|bsh/Name.class -FILE|bsh/NameSource$Listener.class -FILE|bsh/NameSource.class -FILE|bsh/NameSpace.class -FILE|bsh/Node.class -FILE|bsh/ParseException.class -FILE|bsh/Parser$1.class -FILE|bsh/Parser$LookaheadSuccess.class -FILE|bsh/Parser.class -FILE|bsh/ParserConstants.class -FILE|bsh/ParserTokenManager.class -FILE|bsh/ParserTreeConstants.class -FILE|bsh/Primitive$Special.class -FILE|bsh/Primitive.class -FILE|bsh/Reflect.class -FILE|bsh/ReflectError.class -FILE|bsh/ReflectManager.class -FILE|bsh/Remote.class -FILE|bsh/ReturnControl.class -FILE|bsh/SimpleNode$1.class -FILE|bsh/SimpleNode.class -FILE|bsh/StringUtil.class -FILE|bsh/TargetError.class -FILE|bsh/This.class -FILE|bsh/Token.class -FILE|bsh/TokenMgrError.class -FILE|bsh/Types.class -FILE|bsh/UtilEvalError.class -FILE|bsh/UtilTargetError.class -FILE|bsh/Variable.class -FILE|bsh/XThis$Handler.class -FILE|bsh/XThis.class -FILE|bsh/classpath/ -FILE|bsh/classpath/BshClassLoader.class -FILE|bsh/classpath/BshClassPath$AmbiguousName.class -FILE|bsh/classpath/BshClassPath$ClassSource.class -FILE|bsh/classpath/BshClassPath$DirClassSource.class -FILE|bsh/classpath/BshClassPath$GeneratedClassSource.class -FILE|bsh/classpath/BshClassPath$JarClassSource.class -FILE|bsh/classpath/BshClassPath$MappingFeedback.class -FILE|bsh/classpath/BshClassPath$UnqualifiedNameTable.class -FILE|bsh/classpath/BshClassPath.class -FILE|bsh/classpath/ClassManagerImpl.class -FILE|bsh/classpath/ClassPathListener.class -FILE|bsh/classpath/DiscreteFilesClassLoader$ClassSourceMap.class -FILE|bsh/classpath/DiscreteFilesClassLoader.class -FILE|bsh/collection/ -FILE|bsh/collection/CollectionIterator.class -FILE|bsh/collection/CollectionManagerImpl.class -FILE|bsh/commands/ -FILE|bsh/commands/addClassPath.bsh -FILE|bsh/commands/bg.bsh -FILE|bsh/commands/bind.bsh -FILE|bsh/commands/browseClass.bsh -FILE|bsh/commands/cat.bsh -FILE|bsh/commands/cd.bsh -FILE|bsh/commands/classBrowser.bsh -FILE|bsh/commands/clear.bsh -FILE|bsh/commands/cp.bsh -FILE|bsh/commands/debug.bsh -FILE|bsh/commands/desktop.bsh -FILE|bsh/commands/dir.class -FILE|bsh/commands/dirname.bsh -FILE|bsh/commands/editor.bsh -FILE|bsh/commands/error.bsh -FILE|bsh/commands/eval.bsh -FILE|bsh/commands/exec.bsh -FILE|bsh/commands/exit.bsh -FILE|bsh/commands/extend.bsh -FILE|bsh/commands/fontMenu.bsh -FILE|bsh/commands/frame.bsh -FILE|bsh/commands/getBshPrompt.bsh -FILE|bsh/commands/getClass.bsh -FILE|bsh/commands/getClassPath.bsh -FILE|bsh/commands/getResource.bsh -FILE|bsh/commands/getSourceFileInfo.bsh -FILE|bsh/commands/importCommands.bsh -FILE|bsh/commands/importObject.bsh -FILE|bsh/commands/javap.bsh -FILE|bsh/commands/load.bsh -FILE|bsh/commands/makeWorkspace.bsh -FILE|bsh/commands/mv.bsh -FILE|bsh/commands/object.bsh -FILE|bsh/commands/pathToFile.bsh -FILE|bsh/commands/print.bsh -FILE|bsh/commands/printBanner.bsh -FILE|bsh/commands/pwd.bsh -FILE|bsh/commands/reloadClasses.bsh -FILE|bsh/commands/rm.bsh -FILE|bsh/commands/run.bsh -FILE|bsh/commands/save.bsh -FILE|bsh/commands/server.bsh -FILE|bsh/commands/setAccessibility.bsh -FILE|bsh/commands/setClassPath.bsh -FILE|bsh/commands/setFont.bsh -FILE|bsh/commands/setNameCompletion.bsh -FILE|bsh/commands/setNameSpace.bsh -FILE|bsh/commands/setStrictJava.bsh -FILE|bsh/commands/show.bsh -FILE|bsh/commands/source.bsh -FILE|bsh/commands/sourceRelative.bsh -FILE|bsh/commands/thinBorder.bsh -FILE|bsh/commands/unset.bsh -FILE|bsh/commands/which.bsh -FILE|bsh/commands/workspaceEditor.bsh -FILE|bsh/org/ -FILE|bsh/org/objectweb/ -FILE|bsh/org/objectweb/asm/ -FILE|bsh/org/objectweb/asm/ByteVector.class -FILE|bsh/org/objectweb/asm/ClassVisitor.class -FILE|bsh/org/objectweb/asm/ClassWriter.class -FILE|bsh/org/objectweb/asm/CodeVisitor.class -FILE|bsh/org/objectweb/asm/CodeWriter.class -FILE|bsh/org/objectweb/asm/Constants.class -FILE|bsh/org/objectweb/asm/Edge.class -FILE|bsh/org/objectweb/asm/Item.class -FILE|bsh/org/objectweb/asm/Label.class -FILE|bsh/org/objectweb/asm/Type.class -FILE|bsh/reflect/ -FILE|bsh/reflect/ReflectManagerImpl.class -FILE|bsh/servlet/ -FILE|bsh/servlet/BshServlet.class -FILE|bsh/servlet/SimpleTemplate.class -FILE|bsh/servlet/error.template -FILE|bsh/servlet/getVersion.bsh -FILE|bsh/servlet/page.template -FILE|bsh/servlet/result.template -FILE|bsh/util/ -FILE|bsh/util/AWTConsole$1.class -FILE|bsh/util/AWTConsole.class -FILE|bsh/util/AWTDemoApplet.class -FILE|bsh/util/AWTRemoteApplet.class -FILE|bsh/util/BeanShellBSFEngine.class -FILE|bsh/util/BshCanvas.class -FILE|bsh/util/ClassBrowser$1.class -FILE|bsh/util/ClassBrowser$2.class -FILE|bsh/util/ClassBrowser$PackageTree.class -FILE|bsh/util/ClassBrowser.class -FILE|bsh/util/GUIConsoleInterface.class -FILE|bsh/util/Httpd.class -FILE|bsh/util/HttpdConnection.class -FILE|bsh/util/JConsole$1.class -FILE|bsh/util/JConsole$2.class -FILE|bsh/util/JConsole$3.class -FILE|bsh/util/JConsole$4.class -FILE|bsh/util/JConsole$5.class -FILE|bsh/util/JConsole$BlockingPipedInputStream.class -FILE|bsh/util/JConsole.class -FILE|bsh/util/JDemoApplet.class -FILE|bsh/util/JRemoteApplet.class -FILE|bsh/util/NameCompletion.class -FILE|bsh/util/NameCompletionTable.class -FILE|bsh/util/Sessiond.class -FILE|bsh/util/SessiondConnection.class -FILE|bsh/util/Util.class -FILE|bsh/util/lib/ -FILE|bsh/util/lib/awtconsole.html -FILE|bsh/util/lib/eye.jpg -FILE|bsh/util/lib/icon.gif -FILE|bsh/util/lib/jconsole.html -FILE|bsh/util/lib/remote.html -FILE|bsh/util/lib/script.gif -FILE|bsh/util/lib/small_bean_shell.gif -FILE|bsh/util/lib/splash.gif -FILE|bsh/util/lib/workspace.gif -FILE|com/ -FILE|com/beust/ -FILE|com/beust/testng/ -FILE|com/beust/testng/TestNG.class -FILE|com/beust/testng/TestNGAntTask.class -FILE|com/thoughtworks/ -FILE|com/thoughtworks/qdox/ -FILE|com/thoughtworks/qdox/JavaDocBuilder$1.class -FILE|com/thoughtworks/qdox/JavaDocBuilder.class -FILE|com/thoughtworks/qdox/Searcher.class -FILE|com/thoughtworks/qdox/ant/ -FILE|com/thoughtworks/qdox/ant/AbstractQdoxTask.class -FILE|com/thoughtworks/qdox/directorywalker/ -FILE|com/thoughtworks/qdox/directorywalker/DirectoryScanner$1.class -FILE|com/thoughtworks/qdox/directorywalker/DirectoryScanner.class -FILE|com/thoughtworks/qdox/directorywalker/FileVisitor.class -FILE|com/thoughtworks/qdox/directorywalker/Filter.class -FILE|com/thoughtworks/qdox/directorywalker/SuffixFilter.class -FILE|com/thoughtworks/qdox/junit/ -FILE|com/thoughtworks/qdox/junit/APITestCase$1.class -FILE|com/thoughtworks/qdox/junit/APITestCase.class -FILE|com/thoughtworks/qdox/model/ -FILE|com/thoughtworks/qdox/model/AbstractInheritableJavaEntity.class -FILE|com/thoughtworks/qdox/model/AbstractJavaEntity.class -FILE|com/thoughtworks/qdox/model/BeanProperty.class -FILE|com/thoughtworks/qdox/model/ClassLibrary.class -FILE|com/thoughtworks/qdox/model/DefaultDocletTag.class -FILE|com/thoughtworks/qdox/model/DefaultDocletTagFactory.class -FILE|com/thoughtworks/qdox/model/DocletTag.class -FILE|com/thoughtworks/qdox/model/DocletTagFactory.class -FILE|com/thoughtworks/qdox/model/IndentBuffer.class -FILE|com/thoughtworks/qdox/model/JavaClass.class -FILE|com/thoughtworks/qdox/model/JavaClassCache.class -FILE|com/thoughtworks/qdox/model/JavaClassParent.class -FILE|com/thoughtworks/qdox/model/JavaField.class -FILE|com/thoughtworks/qdox/model/JavaMethod.class -FILE|com/thoughtworks/qdox/model/JavaParameter.class -FILE|com/thoughtworks/qdox/model/JavaSource.class -FILE|com/thoughtworks/qdox/model/Member.class -FILE|com/thoughtworks/qdox/model/ModelBuilder.class -FILE|com/thoughtworks/qdox/model/Type.class -FILE|com/thoughtworks/qdox/model/util/ -FILE|com/thoughtworks/qdox/model/util/TagParser.class -FILE|com/thoughtworks/qdox/parser/ -FILE|com/thoughtworks/qdox/parser/Builder.class -FILE|com/thoughtworks/qdox/parser/Lexer.class -FILE|com/thoughtworks/qdox/parser/ParseException.class -FILE|com/thoughtworks/qdox/parser/impl/ -FILE|com/thoughtworks/qdox/parser/impl/JFlexLexer.class -FILE|com/thoughtworks/qdox/parser/impl/Parser$1.class -FILE|com/thoughtworks/qdox/parser/impl/Parser$Value.class -FILE|com/thoughtworks/qdox/parser/impl/Parser.class -FILE|com/thoughtworks/qdox/parser/structs/ -FILE|com/thoughtworks/qdox/parser/structs/ClassDef.class -FILE|com/thoughtworks/qdox/parser/structs/FieldDef.class -FILE|com/thoughtworks/qdox/parser/structs/LocatedDef.class -FILE|com/thoughtworks/qdox/parser/structs/MethodDef.class -FILE|com/thoughtworks/qdox/parser/structs/TagDef.class -FILE|com/thoughtworks/qdox/parser/structs/TypeDef.class -FILE|org/ -FILE|org/testng/ -FILE|org/testng/Assert.class -FILE|org/testng/AssertJUnit.class -FILE|org/testng/ClassMethodMap.class -FILE|org/testng/IClass.class -FILE|org/testng/IExtraOutput.class -FILE|org/testng/IHookCallBack.class -FILE|org/testng/IHookable.class -FILE|org/testng/IInstanceInfo.class -FILE|org/testng/IMethodSelector.class -FILE|org/testng/IReporter.class -FILE|org/testng/IResultMap.class -FILE|org/testng/ISuite.class -FILE|org/testng/ISuiteListener.class -FILE|org/testng/ISuiteResult.class -FILE|org/testng/ITest.class -FILE|org/testng/ITestClass.class -FILE|org/testng/ITestClassFinder.class -FILE|org/testng/ITestContext.class -FILE|org/testng/ITestListener.class -FILE|org/testng/ITestMethodFinder.class -FILE|org/testng/ITestNGMethod.class -FILE|org/testng/ITestResult.class -FILE|org/testng/ITestRunnerFactory.class -FILE|org/testng/JUnitConverter.class -FILE|org/testng/JUnitConverterTask.class -FILE|org/testng/Reporter.class -FILE|org/testng/SuiteResult$1.class -FILE|org/testng/SuiteResult.class -FILE|org/testng/SuiteRunner$DefaultTestRunnerFactory.class -FILE|org/testng/SuiteRunner$ProxyTestRunnerFactory.class -FILE|org/testng/SuiteRunner.class -FILE|org/testng/TestClass.class -FILE|org/testng/TestException.class -FILE|org/testng/TestListenerAdapter.class -FILE|org/testng/TestNG.class -FILE|org/testng/TestNGAntTask.class -FILE|org/testng/TestNGCommandLineArgs.class -FILE|org/testng/TestNGException.class -FILE|org/testng/TestRunner.class -FILE|org/testng/annotations/ -FILE|org/testng/annotations/AfterClass.class -FILE|org/testng/annotations/AfterGroups.class -FILE|org/testng/annotations/AfterMethod.class -FILE|org/testng/annotations/AfterSuite.class -FILE|org/testng/annotations/AfterTest.class -FILE|org/testng/annotations/BeforeClass.class -FILE|org/testng/annotations/BeforeGroups.class -FILE|org/testng/annotations/BeforeMethod.class -FILE|org/testng/annotations/BeforeSuite.class -FILE|org/testng/annotations/BeforeTest.class -FILE|org/testng/annotations/Configuration.class -FILE|org/testng/annotations/DataProvider.class -FILE|org/testng/annotations/ExpectedExceptions.class -FILE|org/testng/annotations/Factory.class -FILE|org/testng/annotations/Parameters.class -FILE|org/testng/annotations/Test.class -FILE|org/testng/internal/ -FILE|org/testng/internal/ArrayIterator.class -FILE|org/testng/internal/BaseClassFinder.class -FILE|org/testng/internal/BaseTestMethod$1.class -FILE|org/testng/internal/BaseTestMethod.class -FILE|org/testng/internal/ClassHelper.class -FILE|org/testng/internal/ClassImpl.class -FILE|org/testng/internal/ConfigurationGroupMethods.class -FILE|org/testng/internal/ConfigurationMethod.class -FILE|org/testng/internal/Constants.class -FILE|org/testng/internal/ExtraOutput.class -FILE|org/testng/internal/FactoryMethod.class -FILE|org/testng/internal/Graph$Node.class -FILE|org/testng/internal/Graph.class -FILE|org/testng/internal/HostFile.class -FILE|org/testng/internal/IInvoker.class -FILE|org/testng/internal/ITestResultNotifier.class -FILE|org/testng/internal/InstanceInfo.class -FILE|org/testng/internal/InvokeMethodRunnable$TestNGRuntimeException.class -FILE|org/testng/internal/InvokeMethodRunnable.class -FILE|org/testng/internal/InvokedMethod.class -FILE|org/testng/internal/Invoker$1.class -FILE|org/testng/internal/Invoker.class -FILE|org/testng/internal/JUnitUtils.class -FILE|org/testng/internal/MethodHelper.class -FILE|org/testng/internal/MethodInheritance.class -FILE|org/testng/internal/MethodSelectorDescriptor.class -FILE|org/testng/internal/PackageUtils$1.class -FILE|org/testng/internal/PackageUtils.class -FILE|org/testng/internal/Parameters.class -FILE|org/testng/internal/ResultMap.class -FILE|org/testng/internal/RunInfo.class -FILE|org/testng/internal/TestMethodWorker.class -FILE|org/testng/internal/TestNGClassFinder.class -FILE|org/testng/internal/TestNGMethod$1.class -FILE|org/testng/internal/TestNGMethod.class -FILE|org/testng/internal/TestNGMethodFinder.class -FILE|org/testng/internal/TestNGProperty.class -FILE|org/testng/internal/TestResult.class -FILE|org/testng/internal/Utils.class -FILE|org/testng/internal/XmlMethodSelector.class -FILE|org/testng/internal/annotations/ -FILE|org/testng/internal/annotations/AfterSuiteAnnotation.class -FILE|org/testng/internal/annotations/AnnotationConfiguration.class -FILE|org/testng/internal/annotations/AnnotationHelper.class -FILE|org/testng/internal/annotations/BaseBeforeAfter.class -FILE|org/testng/internal/annotations/BeforeSuiteAnnotation.class -FILE|org/testng/internal/annotations/ConfigurationAnnotation.class -FILE|org/testng/internal/annotations/Converter.class -FILE|org/testng/internal/annotations/DataProviderAnnotation.class -FILE|org/testng/internal/annotations/ExpectedExceptionsAnnotation.class -FILE|org/testng/internal/annotations/FactoryAnnotation.class -FILE|org/testng/internal/annotations/IAfterClass.class -FILE|org/testng/internal/annotations/IAfterGroups.class -FILE|org/testng/internal/annotations/IAfterMethod.class -FILE|org/testng/internal/annotations/IAfterSuite.class -FILE|org/testng/internal/annotations/IAfterTest.class -FILE|org/testng/internal/annotations/IAfterTests.class -FILE|org/testng/internal/annotations/IAnnotation.class -FILE|org/testng/internal/annotations/IAnnotationFinder.class -FILE|org/testng/internal/annotations/IBaseBeforeAfter.class -FILE|org/testng/internal/annotations/IBeforeClass.class -FILE|org/testng/internal/annotations/IBeforeGroups.class -FILE|org/testng/internal/annotations/IBeforeMethod.class -FILE|org/testng/internal/annotations/IBeforeSuite.class -FILE|org/testng/internal/annotations/IBeforeTest.class -FILE|org/testng/internal/annotations/IConfiguration.class -FILE|org/testng/internal/annotations/IDataProvider.class -FILE|org/testng/internal/annotations/IExpectedExceptions.class -FILE|org/testng/internal/annotations/IFactory.class -FILE|org/testng/internal/annotations/IParameterizable.class -FILE|org/testng/internal/annotations/IParameters.class -FILE|org/testng/internal/annotations/ITest.class -FILE|org/testng/internal/annotations/ITestOrConfiguration.class -FILE|org/testng/internal/annotations/JDK14AnnotationFinder$1.class -FILE|org/testng/internal/annotations/JDK14AnnotationFinder.class -FILE|org/testng/internal/annotations/JDK14TagFactory.class -FILE|org/testng/internal/annotations/JDK15AnnotationFinder.class -FILE|org/testng/internal/annotations/JDK15TagFactory.class -FILE|org/testng/internal/annotations/ParametersAnnotation.class -FILE|org/testng/internal/annotations/TestAnnotation.class -FILE|org/testng/internal/annotations/TestOrConfiguration.class -FILE|org/testng/internal/remote/ -FILE|org/testng/internal/remote/SlavePool.class -FILE|org/testng/internal/thread/ -FILE|org/testng/internal/thread/CountDownAdapter.class -FILE|org/testng/internal/thread/ExecutorAdapter.class -FILE|org/testng/internal/thread/FutureResultAdapter.class -FILE|org/testng/internal/thread/ICountDown.class -FILE|org/testng/internal/thread/IExecutor.class -FILE|org/testng/internal/thread/IFutureResult.class -FILE|org/testng/internal/thread/IPooledExecutor.class -FILE|org/testng/internal/thread/IThreadFactory.class -FILE|org/testng/internal/thread/PooledExecutorAdapter.class -FILE|org/testng/internal/thread/TestNGThread.class -FILE|org/testng/internal/thread/ThreadExecutionException.class -FILE|org/testng/internal/thread/ThreadTimeoutException.class -FILE|org/testng/internal/thread/ThreadUtil$ThreadFactoryImpl.class -FILE|org/testng/internal/thread/ThreadUtil.class -FILE|org/testng/junit/ -FILE|org/testng/junit/INameFilter.class -FILE|org/testng/junit/JUnitClassFinder.class -FILE|org/testng/junit/JUnitDirectoryConverter.class -FILE|org/testng/junit/JUnitMethodFinder$1.class -FILE|org/testng/junit/JUnitMethodFinder$2.class -FILE|org/testng/junit/JUnitMethodFinder$3.class -FILE|org/testng/junit/JUnitMethodFinder.class -FILE|org/testng/junit/JUnitTestConverter.class -FILE|org/testng/log/ -FILE|org/testng/log/TextFormatter.class -FILE|org/testng/log4testng/ -FILE|org/testng/log4testng/Logger.class -FILE|org/testng/remote/ -FILE|org/testng/remote/ConnectionInfo.class -FILE|org/testng/remote/RemoteSuiteWorker.class -FILE|org/testng/remote/RemoteTestWorker.class -FILE|org/testng/remote/RemoteWorker.class -FILE|org/testng/remote/strprotocol/ -FILE|org/testng/remote/strprotocol/AbstractRemoteTestRunnerClient$ServerConnection.class -FILE|org/testng/remote/strprotocol/AbstractRemoteTestRunnerClient.class -FILE|org/testng/remote/strprotocol/GenericMessage.class -FILE|org/testng/remote/strprotocol/IMessage.class -FILE|org/testng/remote/strprotocol/IRemoteSuiteListener.class -FILE|org/testng/remote/strprotocol/IRemoteTestListener.class -FILE|org/testng/remote/strprotocol/IStringMessage.class -FILE|org/testng/remote/strprotocol/MessageHelper.class -FILE|org/testng/remote/strprotocol/RemoteMessageSenderTestListener.class -FILE|org/testng/remote/strprotocol/StringMessageSenderHelper$ReaderThread.class -FILE|org/testng/remote/strprotocol/StringMessageSenderHelper.class -FILE|org/testng/remote/strprotocol/SuiteMessage.class -FILE|org/testng/remote/strprotocol/TestMessage.class -FILE|org/testng/remote/strprotocol/TestResultMessage.class -FILE|org/testng/reporters/ -FILE|org/testng/reporters/DotTestListener.class -FILE|org/testng/reporters/ExitCodeListener.class -FILE|org/testng/reporters/FailedReporter.class -FILE|org/testng/reporters/HtmlHelper.class -FILE|org/testng/reporters/JUnitXMLReporter.class -FILE|org/testng/reporters/SuiteHTMLReporter$1.class -FILE|org/testng/reporters/SuiteHTMLReporter.class -FILE|org/testng/reporters/Tag.class -FILE|org/testng/reporters/TestHTMLReporter$1.class -FILE|org/testng/reporters/TestHTMLReporter.class -FILE|org/testng/reporters/TextReporter.class -FILE|org/testng/reporters/XMLConstants.class -FILE|org/testng/reporters/XMLReporter.class -FILE|org/testng/reporters/XMLStringBuffer.class -FILE|org/testng/reporters/XMLUtils.class -FILE|org/testng/xml/ -FILE|org/testng/xml/ClassSuite.class -FILE|org/testng/xml/LaunchSuite$1.class -FILE|org/testng/xml/LaunchSuite$ClassListSuite.class -FILE|org/testng/xml/LaunchSuite$CustomizedSuite.class -FILE|org/testng/xml/LaunchSuite$ExistingSuite.class -FILE|org/testng/xml/LaunchSuite$MethodsSuite.class -FILE|org/testng/xml/LaunchSuite.class -FILE|org/testng/xml/Parser.class -FILE|org/testng/xml/SuiteGenerator.class -FILE|org/testng/xml/TestNGContentHandler.class -FILE|org/testng/xml/XmlClass.class -FILE|org/testng/xml/XmlMethodSelector.class -FILE|org/testng/xml/XmlPackage.class -FILE|org/testng/xml/XmlSuite.class -FILE|org/testng/xml/XmlTest.class -FILE|testng-1.0.dtd -FILE|testng.css -FILE|testngtasks diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/wagon-provider-api-1.0-beta-3-20070209.213958-2.jar.txt b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/wagon-provider-api-1.0-beta-3-20070209.213958-2.jar.txt deleted file mode 100644 index 5365b6637..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/artifact-dumps/wagon-provider-api-1.0-beta-3-20070209.213958-2.jar.txt +++ /dev/null @@ -1,435 +0,0 @@ -FILENAME|wagon-provider-api-1.0-beta-3-20070209.213958-2.jar -SIZE|43527 -HASH_MD5|51e8109f78e663f11310f7df2790dbce -HASH_SHA1|7a8322eff673ed8f8d79b4676aca0d7d2004241d -HASH_BYTECODE|edde91be8d27eef6ee0da42147bb313af891871a -JDK|1.1 -CLASS|org.apache.maven.wagon.AbstractWagon -CLASS|org.apache.maven.wagon.CommandExecutionException -CLASS|org.apache.maven.wagon.CommandExecutor$1 -CLASS|org.apache.maven.wagon.CommandExecutor -CLASS|org.apache.maven.wagon.ConnectionException -CLASS|org.apache.maven.wagon.InputData -CLASS|org.apache.maven.wagon.LazyFileOutputStream -CLASS|org.apache.maven.wagon.OutputData -CLASS|org.apache.maven.wagon.PathUtils -CLASS|org.apache.maven.wagon.PermissionModeUtils -CLASS|org.apache.maven.wagon.ResourceDoesNotExistException -CLASS|org.apache.maven.wagon.StreamWagon -CLASS|org.apache.maven.wagon.Streams -CLASS|org.apache.maven.wagon.TransferFailedException -CLASS|org.apache.maven.wagon.UnsupportedProtocolException -CLASS|org.apache.maven.wagon.Wagon$1 -CLASS|org.apache.maven.wagon.Wagon -CLASS|org.apache.maven.wagon.WagonConstants -CLASS|org.apache.maven.wagon.WagonException -CLASS|org.apache.maven.wagon.WagonUtils -CLASS|org.apache.maven.wagon.authentication.AuthenticationException -CLASS|org.apache.maven.wagon.authentication.AuthenticationInfo -CLASS|org.apache.maven.wagon.authorization.AuthorizationException -CLASS|org.apache.maven.wagon.events.SessionEvent -CLASS|org.apache.maven.wagon.events.SessionEventSupport -CLASS|org.apache.maven.wagon.events.SessionListener -CLASS|org.apache.maven.wagon.events.TransferEvent -CLASS|org.apache.maven.wagon.events.TransferEventSupport -CLASS|org.apache.maven.wagon.events.TransferListener -CLASS|org.apache.maven.wagon.events.WagonEvent -CLASS|org.apache.maven.wagon.observers.AbstractTransferListener -CLASS|org.apache.maven.wagon.observers.ChecksumObserver -CLASS|org.apache.maven.wagon.observers.Debug -CLASS|org.apache.maven.wagon.proxy.ProxyInfo -CLASS|org.apache.maven.wagon.repository.Repository -CLASS|org.apache.maven.wagon.repository.RepositoryPermissions -CLASS|org.apache.maven.wagon.resource.Resource -METHOD|org.apache.maven.wagon.AbstractWagon.()V -METHOD|org.apache.maven.wagon.AbstractWagon.getRepository()Lorg/apache/maven/wagon/repository/Repository; -METHOD|org.apache.maven.wagon.AbstractWagon.setRepository(Lorg/apache/maven/wagon/repository/Repository;)V -METHOD|org.apache.maven.wagon.AbstractWagon.getProxyInfo()Lorg/apache/maven/wagon/proxy/ProxyInfo; -METHOD|org.apache.maven.wagon.AbstractWagon.setProxyInfo(Lorg/apache/maven/wagon/proxy/ProxyInfo;)V -METHOD|org.apache.maven.wagon.AbstractWagon.getAuthenticationInfo()Lorg/apache/maven/wagon/authentication/AuthenticationInfo; -METHOD|org.apache.maven.wagon.AbstractWagon.setAuthenticationInfo(Lorg/apache/maven/wagon/authentication/AuthenticationInfo;)V -METHOD|org.apache.maven.wagon.AbstractWagon.isConnected()Z -METHOD|org.apache.maven.wagon.AbstractWagon.openConnection()V -METHOD|org.apache.maven.wagon.AbstractWagon.connect()V -METHOD|org.apache.maven.wagon.AbstractWagon.connect(Lorg/apache/maven/wagon/repository/Repository;)V -METHOD|org.apache.maven.wagon.AbstractWagon.connect(Lorg/apache/maven/wagon/repository/Repository;Lorg/apache/maven/wagon/proxy/ProxyInfo;)V -METHOD|org.apache.maven.wagon.AbstractWagon.connect(Lorg/apache/maven/wagon/repository/Repository;Lorg/apache/maven/wagon/authentication/AuthenticationInfo;)V -METHOD|org.apache.maven.wagon.AbstractWagon.connect(Lorg/apache/maven/wagon/repository/Repository;Lorg/apache/maven/wagon/authentication/AuthenticationInfo;Lorg/apache/maven/wagon/proxy/ProxyInfo;)V -METHOD|org.apache.maven.wagon.AbstractWagon.disconnect()V -METHOD|org.apache.maven.wagon.AbstractWagon.closeConnection()V -METHOD|org.apache.maven.wagon.AbstractWagon.createParentDirectories(Ljava/io/File;)V -METHOD|org.apache.maven.wagon.AbstractWagon.getTransfer(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/File;Ljava/io/InputStream;)V -METHOD|org.apache.maven.wagon.AbstractWagon.getTransfer(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/File;Ljava/io/InputStream;ZI)V -METHOD|org.apache.maven.wagon.AbstractWagon.putTransfer(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/File;Ljava/io/OutputStream;Z)V -METHOD|org.apache.maven.wagon.AbstractWagon.transfer(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/File;Ljava/io/OutputStream;Z)V -METHOD|org.apache.maven.wagon.AbstractWagon.transfer(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/InputStream;Ljava/io/OutputStream;I)V -METHOD|org.apache.maven.wagon.AbstractWagon.transfer(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/InputStream;Ljava/io/OutputStream;II)V -METHOD|org.apache.maven.wagon.AbstractWagon.fireTransferProgress(Lorg/apache/maven/wagon/events/TransferEvent;[BI)V -METHOD|org.apache.maven.wagon.AbstractWagon.fireGetCompleted(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/File;)V -METHOD|org.apache.maven.wagon.AbstractWagon.fireGetStarted(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/File;)V -METHOD|org.apache.maven.wagon.AbstractWagon.fireGetInitiated(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/File;)V -METHOD|org.apache.maven.wagon.AbstractWagon.firePutInitiated(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/File;)V -METHOD|org.apache.maven.wagon.AbstractWagon.firePutCompleted(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/File;)V -METHOD|org.apache.maven.wagon.AbstractWagon.firePutStarted(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/File;)V -METHOD|org.apache.maven.wagon.AbstractWagon.fireSessionDisconnected()V -METHOD|org.apache.maven.wagon.AbstractWagon.fireSessionDisconnecting()V -METHOD|org.apache.maven.wagon.AbstractWagon.fireSessionLoggedIn()V -METHOD|org.apache.maven.wagon.AbstractWagon.fireSessionLoggedOff()V -METHOD|org.apache.maven.wagon.AbstractWagon.fireSessionOpened()V -METHOD|org.apache.maven.wagon.AbstractWagon.fireSessionOpening()V -METHOD|org.apache.maven.wagon.AbstractWagon.fireSessionConnectionRefused()V -METHOD|org.apache.maven.wagon.AbstractWagon.fireSessionError(Ljava/lang/Exception;)V -METHOD|org.apache.maven.wagon.AbstractWagon.fireTransferDebug(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.AbstractWagon.fireSessionDebug(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.AbstractWagon.hasTransferListener(Lorg/apache/maven/wagon/events/TransferListener;)Z -METHOD|org.apache.maven.wagon.AbstractWagon.addTransferListener(Lorg/apache/maven/wagon/events/TransferListener;)V -METHOD|org.apache.maven.wagon.AbstractWagon.removeTransferListener(Lorg/apache/maven/wagon/events/TransferListener;)V -METHOD|org.apache.maven.wagon.AbstractWagon.addSessionListener(Lorg/apache/maven/wagon/events/SessionListener;)V -METHOD|org.apache.maven.wagon.AbstractWagon.hasSessionListener(Lorg/apache/maven/wagon/events/SessionListener;)Z -METHOD|org.apache.maven.wagon.AbstractWagon.removeSessionListener(Lorg/apache/maven/wagon/events/SessionListener;)V -METHOD|org.apache.maven.wagon.AbstractWagon.fireTransferError(Lorg/apache/maven/wagon/resource/Resource;Ljava/lang/Exception;I)V -METHOD|org.apache.maven.wagon.AbstractWagon.getSessionEventSupport()Lorg/apache/maven/wagon/events/SessionEventSupport; -METHOD|org.apache.maven.wagon.AbstractWagon.setSessionEventSupport(Lorg/apache/maven/wagon/events/SessionEventSupport;)V -METHOD|org.apache.maven.wagon.AbstractWagon.getTransferEventSupport()Lorg/apache/maven/wagon/events/TransferEventSupport; -METHOD|org.apache.maven.wagon.AbstractWagon.setTransferEventSupport(Lorg/apache/maven/wagon/events/TransferEventSupport;)V -METHOD|org.apache.maven.wagon.AbstractWagon.postProcessListeners(Lorg/apache/maven/wagon/resource/Resource;Ljava/io/File;I)V -METHOD|org.apache.maven.wagon.AbstractWagon.putDirectory(Ljava/io/File;Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.AbstractWagon.supportsDirectoryCopy()Z -METHOD|org.apache.maven.wagon.AbstractWagon.createZip(Ljava/util/List;Ljava/io/File;Ljava/io/File;)V -METHOD|org.apache.maven.wagon.AbstractWagon.writeZipEntry(Ljava/util/zip/ZipOutputStream;Ljava/io/File;Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.AbstractWagon.getPath(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.AbstractWagon.isInteractive()Z -METHOD|org.apache.maven.wagon.AbstractWagon.setInteractive(Z)V -METHOD|org.apache.maven.wagon.AbstractWagon.getFileList(Ljava/lang/String;)Ljava/util/List; -METHOD|org.apache.maven.wagon.AbstractWagon.resourceExists(Ljava/lang/String;)Z -METHOD|org.apache.maven.wagon.AbstractWagon.getProtocol()Ljava/lang/String; -METHOD|org.apache.maven.wagon.AbstractWagon.put(Ljava/io/File;Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.AbstractWagon.getIfNewer(Ljava/lang/String;Ljava/io/File;J)Z -METHOD|org.apache.maven.wagon.AbstractWagon.get(Ljava/lang/String;Ljava/io/File;)V -METHOD|org.apache.maven.wagon.CommandExecutionException.(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.CommandExecutionException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.apache.maven.wagon.CommandExecutor$1.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|org.apache.maven.wagon.CommandExecutor.executeCommand(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.CommandExecutor.executeCommand(Ljava/lang/String;Z)Lorg/apache/maven/wagon/Streams; -METHOD|org.apache.maven.wagon.CommandExecutor.()V -METHOD|org.apache.maven.wagon.ConnectionException.(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.ConnectionException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.apache.maven.wagon.InputData.()V -METHOD|org.apache.maven.wagon.InputData.getInputStream()Ljava/io/InputStream; -METHOD|org.apache.maven.wagon.InputData.setInputStream(Ljava/io/InputStream;)V -METHOD|org.apache.maven.wagon.InputData.getResource()Lorg/apache/maven/wagon/resource/Resource; -METHOD|org.apache.maven.wagon.InputData.setResource(Lorg/apache/maven/wagon/resource/Resource;)V -METHOD|org.apache.maven.wagon.LazyFileOutputStream.(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.LazyFileOutputStream.(Ljava/io/File;)V -METHOD|org.apache.maven.wagon.LazyFileOutputStream.close()V -METHOD|org.apache.maven.wagon.LazyFileOutputStream.equals(Ljava/lang/Object;)Z -METHOD|org.apache.maven.wagon.LazyFileOutputStream.flush()V -METHOD|org.apache.maven.wagon.LazyFileOutputStream.getChannel()Ljava/nio/channels/FileChannel; -METHOD|org.apache.maven.wagon.LazyFileOutputStream.getFD()Ljava/io/FileDescriptor; -METHOD|org.apache.maven.wagon.LazyFileOutputStream.hashCode()I -METHOD|org.apache.maven.wagon.LazyFileOutputStream.toString()Ljava/lang/String; -METHOD|org.apache.maven.wagon.LazyFileOutputStream.write([B)V -METHOD|org.apache.maven.wagon.LazyFileOutputStream.write([BII)V -METHOD|org.apache.maven.wagon.LazyFileOutputStream.write(I)V -METHOD|org.apache.maven.wagon.LazyFileOutputStream.initialize()V -METHOD|org.apache.maven.wagon.OutputData.()V -METHOD|org.apache.maven.wagon.OutputData.getOutputStream()Ljava/io/OutputStream; -METHOD|org.apache.maven.wagon.OutputData.setOutputStream(Ljava/io/OutputStream;)V -METHOD|org.apache.maven.wagon.OutputData.getResource()Lorg/apache/maven/wagon/resource/Resource; -METHOD|org.apache.maven.wagon.OutputData.setResource(Lorg/apache/maven/wagon/resource/Resource;)V -METHOD|org.apache.maven.wagon.PathUtils.()V -METHOD|org.apache.maven.wagon.PathUtils.dirname(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.PathUtils.filename(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.PathUtils.dirnames(Ljava/lang/String;)[Ljava/lang/String; -METHOD|org.apache.maven.wagon.PathUtils.split(Ljava/lang/String;Ljava/lang/String;I)[Ljava/lang/String; -METHOD|org.apache.maven.wagon.PathUtils.host(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.PathUtils.authorization(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.PathUtils.protocol(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.PathUtils.port(Ljava/lang/String;)I -METHOD|org.apache.maven.wagon.PathUtils.basedir(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.PathUtils.user(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.PathUtils.password(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.PathUtils.toRelative(Ljava/io/File;Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.PermissionModeUtils.()V -METHOD|org.apache.maven.wagon.PermissionModeUtils.getUserMaskFor(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.ResourceDoesNotExistException.(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.ResourceDoesNotExistException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.apache.maven.wagon.StreamWagon.()V -METHOD|org.apache.maven.wagon.StreamWagon.fillInputData(Lorg/apache/maven/wagon/InputData;)V -METHOD|org.apache.maven.wagon.StreamWagon.fillOutputData(Lorg/apache/maven/wagon/OutputData;)V -METHOD|org.apache.maven.wagon.StreamWagon.openConnection()V -METHOD|org.apache.maven.wagon.StreamWagon.closeConnection()V -METHOD|org.apache.maven.wagon.StreamWagon.get(Ljava/lang/String;Ljava/io/File;)V -METHOD|org.apache.maven.wagon.StreamWagon.getIfNewer(Ljava/lang/String;Ljava/io/File;J)Z -METHOD|org.apache.maven.wagon.StreamWagon.put(Ljava/io/File;Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.Streams.()V -METHOD|org.apache.maven.wagon.Streams.getOut()Ljava/lang/String; -METHOD|org.apache.maven.wagon.Streams.setOut(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.Streams.getErr()Ljava/lang/String; -METHOD|org.apache.maven.wagon.Streams.setErr(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.TransferFailedException.(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.TransferFailedException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.apache.maven.wagon.UnsupportedProtocolException.(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.UnsupportedProtocolException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.apache.maven.wagon.Wagon$1.class$(Ljava/lang/String;)Ljava/lang/Class; -METHOD|org.apache.maven.wagon.Wagon.get(Ljava/lang/String;Ljava/io/File;)V -METHOD|org.apache.maven.wagon.Wagon.getIfNewer(Ljava/lang/String;Ljava/io/File;J)Z -METHOD|org.apache.maven.wagon.Wagon.put(Ljava/io/File;Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.Wagon.putDirectory(Ljava/io/File;Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.Wagon.resourceExists(Ljava/lang/String;)Z -METHOD|org.apache.maven.wagon.Wagon.getFileList(Ljava/lang/String;)Ljava/util/List; -METHOD|org.apache.maven.wagon.Wagon.getProtocol()Ljava/lang/String; -METHOD|org.apache.maven.wagon.Wagon.supportsDirectoryCopy()Z -METHOD|org.apache.maven.wagon.Wagon.isInteractive()Z -METHOD|org.apache.maven.wagon.Wagon.setInteractive(Z)V -METHOD|org.apache.maven.wagon.Wagon.getRepository()Lorg/apache/maven/wagon/repository/Repository; -METHOD|org.apache.maven.wagon.Wagon.setRepository(Lorg/apache/maven/wagon/repository/Repository;)V -METHOD|org.apache.maven.wagon.Wagon.getAuthenticationInfo()Lorg/apache/maven/wagon/authentication/AuthenticationInfo; -METHOD|org.apache.maven.wagon.Wagon.setAuthenticationInfo(Lorg/apache/maven/wagon/authentication/AuthenticationInfo;)V -METHOD|org.apache.maven.wagon.Wagon.getProxyInfo()Lorg/apache/maven/wagon/proxy/ProxyInfo; -METHOD|org.apache.maven.wagon.Wagon.setProxyInfo(Lorg/apache/maven/wagon/proxy/ProxyInfo;)V -METHOD|org.apache.maven.wagon.Wagon.connect()V -METHOD|org.apache.maven.wagon.Wagon.isConnected()Z -METHOD|org.apache.maven.wagon.Wagon.connect(Lorg/apache/maven/wagon/repository/Repository;)V -METHOD|org.apache.maven.wagon.Wagon.connect(Lorg/apache/maven/wagon/repository/Repository;Lorg/apache/maven/wagon/proxy/ProxyInfo;)V -METHOD|org.apache.maven.wagon.Wagon.connect(Lorg/apache/maven/wagon/repository/Repository;Lorg/apache/maven/wagon/authentication/AuthenticationInfo;)V -METHOD|org.apache.maven.wagon.Wagon.connect(Lorg/apache/maven/wagon/repository/Repository;Lorg/apache/maven/wagon/authentication/AuthenticationInfo;Lorg/apache/maven/wagon/proxy/ProxyInfo;)V -METHOD|org.apache.maven.wagon.Wagon.disconnect()V -METHOD|org.apache.maven.wagon.Wagon.addSessionListener(Lorg/apache/maven/wagon/events/SessionListener;)V -METHOD|org.apache.maven.wagon.Wagon.removeSessionListener(Lorg/apache/maven/wagon/events/SessionListener;)V -METHOD|org.apache.maven.wagon.Wagon.hasSessionListener(Lorg/apache/maven/wagon/events/SessionListener;)Z -METHOD|org.apache.maven.wagon.Wagon.addTransferListener(Lorg/apache/maven/wagon/events/TransferListener;)V -METHOD|org.apache.maven.wagon.Wagon.removeTransferListener(Lorg/apache/maven/wagon/events/TransferListener;)V -METHOD|org.apache.maven.wagon.Wagon.hasTransferListener(Lorg/apache/maven/wagon/events/TransferListener;)Z -METHOD|org.apache.maven.wagon.Wagon.()V -METHOD|org.apache.maven.wagon.WagonConstants.()V -METHOD|org.apache.maven.wagon.WagonException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.apache.maven.wagon.WagonException.(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.WagonException.getCause()Ljava/lang/Throwable; -METHOD|org.apache.maven.wagon.WagonException.initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable; -METHOD|org.apache.maven.wagon.WagonUtils.()V -METHOD|org.apache.maven.wagon.WagonUtils.toString(Ljava/lang/String;Lorg/apache/maven/wagon/Wagon;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.WagonUtils.putDirectory(Ljava/io/File;Lorg/apache/maven/wagon/Wagon;Z)V -METHOD|org.apache.maven.wagon.WagonUtils.getAuthInfo()Lorg/apache/maven/wagon/authentication/AuthenticationInfo; -METHOD|org.apache.maven.wagon.WagonUtils.getUserGroup()Ljava/lang/String; -METHOD|org.apache.maven.wagon.WagonUtils.getUserName()Ljava/lang/String; -METHOD|org.apache.maven.wagon.authentication.AuthenticationException.(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.authentication.AuthenticationException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.apache.maven.wagon.authentication.AuthenticationInfo.()V -METHOD|org.apache.maven.wagon.authentication.AuthenticationInfo.getPassphrase()Ljava/lang/String; -METHOD|org.apache.maven.wagon.authentication.AuthenticationInfo.setPassphrase(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.authentication.AuthenticationInfo.getPrivateKey()Ljava/lang/String; -METHOD|org.apache.maven.wagon.authentication.AuthenticationInfo.setPrivateKey(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.authentication.AuthenticationInfo.getPassword()Ljava/lang/String; -METHOD|org.apache.maven.wagon.authentication.AuthenticationInfo.setPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.authentication.AuthenticationInfo.getUserName()Ljava/lang/String; -METHOD|org.apache.maven.wagon.authentication.AuthenticationInfo.setUserName(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.authorization.AuthorizationException.(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.authorization.AuthorizationException.(Ljava/lang/String;Ljava/lang/Throwable;)V -METHOD|org.apache.maven.wagon.events.SessionEvent.(Lorg/apache/maven/wagon/Wagon;Lorg/apache/maven/wagon/repository/Repository;I)V -METHOD|org.apache.maven.wagon.events.SessionEvent.(Lorg/apache/maven/wagon/Wagon;Lorg/apache/maven/wagon/repository/Repository;Ljava/lang/Exception;)V -METHOD|org.apache.maven.wagon.events.SessionEvent.getEventType()I -METHOD|org.apache.maven.wagon.events.SessionEvent.getException()Ljava/lang/Exception; -METHOD|org.apache.maven.wagon.events.SessionEvent.setEventType(I)V -METHOD|org.apache.maven.wagon.events.SessionEvent.setException(Ljava/lang/Exception;)V -METHOD|org.apache.maven.wagon.events.SessionEvent.toString()Ljava/lang/String; -METHOD|org.apache.maven.wagon.events.SessionEventSupport.()V -METHOD|org.apache.maven.wagon.events.SessionEventSupport.addSessionListener(Lorg/apache/maven/wagon/events/SessionListener;)V -METHOD|org.apache.maven.wagon.events.SessionEventSupport.removeSessionListener(Lorg/apache/maven/wagon/events/SessionListener;)V -METHOD|org.apache.maven.wagon.events.SessionEventSupport.hasSessionListener(Lorg/apache/maven/wagon/events/SessionListener;)Z -METHOD|org.apache.maven.wagon.events.SessionEventSupport.fireSessionDisconnected(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionEventSupport.fireSessionDisconnecting(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionEventSupport.fireSessionLoggedIn(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionEventSupport.fireSessionLoggedOff(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionEventSupport.fireSessionOpened(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionEventSupport.fireSessionOpening(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionEventSupport.fireSessionConnectionRefused(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionEventSupport.fireDebug(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.events.SessionEventSupport.fireSessionError(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionListener.sessionOpening(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionListener.sessionOpened(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionListener.sessionDisconnecting(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionListener.sessionDisconnected(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionListener.sessionConnectionRefused(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionListener.sessionLoggedIn(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionListener.sessionLoggedOff(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionListener.sessionError(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.events.SessionListener.debug(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.events.TransferEvent.(Lorg/apache/maven/wagon/Wagon;Lorg/apache/maven/wagon/repository/Repository;Lorg/apache/maven/wagon/resource/Resource;Ljava/lang/Exception;I)V -METHOD|org.apache.maven.wagon.events.TransferEvent.(Lorg/apache/maven/wagon/Wagon;Lorg/apache/maven/wagon/repository/Repository;Lorg/apache/maven/wagon/resource/Resource;II)V -METHOD|org.apache.maven.wagon.events.TransferEvent.getResource()Lorg/apache/maven/wagon/resource/Resource; -METHOD|org.apache.maven.wagon.events.TransferEvent.getException()Ljava/lang/Exception; -METHOD|org.apache.maven.wagon.events.TransferEvent.getRequestType()I -METHOD|org.apache.maven.wagon.events.TransferEvent.setRequestType(I)V -METHOD|org.apache.maven.wagon.events.TransferEvent.getEventType()I -METHOD|org.apache.maven.wagon.events.TransferEvent.setEventType(I)V -METHOD|org.apache.maven.wagon.events.TransferEvent.setResource(Lorg/apache/maven/wagon/resource/Resource;)V -METHOD|org.apache.maven.wagon.events.TransferEvent.getLocalFile()Ljava/io/File; -METHOD|org.apache.maven.wagon.events.TransferEvent.setLocalFile(Ljava/io/File;)V -METHOD|org.apache.maven.wagon.events.TransferEvent.toString()Ljava/lang/String; -METHOD|org.apache.maven.wagon.events.TransferEventSupport.()V -METHOD|org.apache.maven.wagon.events.TransferEventSupport.addTransferListener(Lorg/apache/maven/wagon/events/TransferListener;)V -METHOD|org.apache.maven.wagon.events.TransferEventSupport.removeTransferListener(Lorg/apache/maven/wagon/events/TransferListener;)V -METHOD|org.apache.maven.wagon.events.TransferEventSupport.hasTransferListener(Lorg/apache/maven/wagon/events/TransferListener;)Z -METHOD|org.apache.maven.wagon.events.TransferEventSupport.fireTransferStarted(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.events.TransferEventSupport.fireTransferProgress(Lorg/apache/maven/wagon/events/TransferEvent;[BI)V -METHOD|org.apache.maven.wagon.events.TransferEventSupport.fireTransferCompleted(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.events.TransferEventSupport.fireTransferError(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.events.TransferEventSupport.fireDebug(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.events.TransferEventSupport.fireTransferInitiated(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.events.TransferListener.transferInitiated(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.events.TransferListener.transferStarted(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.events.TransferListener.transferProgress(Lorg/apache/maven/wagon/events/TransferEvent;[BI)V -METHOD|org.apache.maven.wagon.events.TransferListener.transferCompleted(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.events.TransferListener.transferError(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.events.TransferListener.debug(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.events.WagonEvent.(Lorg/apache/maven/wagon/Wagon;Lorg/apache/maven/wagon/repository/Repository;)V -METHOD|org.apache.maven.wagon.events.WagonEvent.getWagon()Lorg/apache/maven/wagon/Wagon; -METHOD|org.apache.maven.wagon.events.WagonEvent.getTimestamp()J -METHOD|org.apache.maven.wagon.events.WagonEvent.setTimestamp(J)V -METHOD|org.apache.maven.wagon.events.WagonEvent.getRepository()Lorg/apache/maven/wagon/repository/Repository; -METHOD|org.apache.maven.wagon.observers.AbstractTransferListener.()V -METHOD|org.apache.maven.wagon.observers.AbstractTransferListener.transferInitiated(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.AbstractTransferListener.transferStarted(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.AbstractTransferListener.transferProgress(Lorg/apache/maven/wagon/events/TransferEvent;[BI)V -METHOD|org.apache.maven.wagon.observers.AbstractTransferListener.transferCompleted(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.AbstractTransferListener.transferError(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.AbstractTransferListener.debug(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.observers.ChecksumObserver.()V -METHOD|org.apache.maven.wagon.observers.ChecksumObserver.(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.observers.ChecksumObserver.transferInitiated(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.ChecksumObserver.transferStarted(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.ChecksumObserver.transferProgress(Lorg/apache/maven/wagon/events/TransferEvent;[BI)V -METHOD|org.apache.maven.wagon.observers.ChecksumObserver.transferCompleted(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.ChecksumObserver.transferError(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.ChecksumObserver.debug(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.observers.ChecksumObserver.getActualChecksum()Ljava/lang/String; -METHOD|org.apache.maven.wagon.observers.ChecksumObserver.encode([B)Ljava/lang/String; -METHOD|org.apache.maven.wagon.observers.Debug.()V -METHOD|org.apache.maven.wagon.observers.Debug.(Ljava/io/PrintStream;)V -METHOD|org.apache.maven.wagon.observers.Debug.sessionOpening(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.observers.Debug.sessionOpened(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.observers.Debug.sessionDisconnecting(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.observers.Debug.sessionDisconnected(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.observers.Debug.sessionConnectionRefused(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.observers.Debug.sessionLoggedIn(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.observers.Debug.sessionLoggedOff(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.observers.Debug.debug(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.observers.Debug.transferInitiated(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.Debug.transferStarted(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.Debug.transferProgress(Lorg/apache/maven/wagon/events/TransferEvent;[BI)V -METHOD|org.apache.maven.wagon.observers.Debug.transferCompleted(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.Debug.transferError(Lorg/apache/maven/wagon/events/TransferEvent;)V -METHOD|org.apache.maven.wagon.observers.Debug.sessionError(Lorg/apache/maven/wagon/events/SessionEvent;)V -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.()V -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.getHost()Ljava/lang/String; -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.setHost(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.getPassword()Ljava/lang/String; -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.setPassword(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.getPort()I -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.setPort(I)V -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.getUserName()Ljava/lang/String; -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.setUserName(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.getType()Ljava/lang/String; -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.setType(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.getNonProxyHosts()Ljava/lang/String; -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.setNonProxyHosts(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.getNtlmHost()Ljava/lang/String; -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.setNtlmHost(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.setNtlmDomain(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.proxy.ProxyInfo.getNtlmDomain()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.Repository.()V -METHOD|org.apache.maven.wagon.repository.Repository.(Ljava/lang/String;Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.repository.Repository.getId()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.Repository.setId(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.repository.Repository.getBasedir()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.Repository.setBasedir(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.repository.Repository.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.repository.Repository.getPort()I -METHOD|org.apache.maven.wagon.repository.Repository.setPort(I)V -METHOD|org.apache.maven.wagon.repository.Repository.setUrl(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.repository.Repository.getUrl()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.Repository.getHost()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.Repository.getName()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.Repository.toString()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.Repository.getProtocol()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.Repository.getPermissions()Lorg/apache/maven/wagon/repository/RepositoryPermissions; -METHOD|org.apache.maven.wagon.repository.Repository.setPermissions(Lorg/apache/maven/wagon/repository/RepositoryPermissions;)V -METHOD|org.apache.maven.wagon.repository.Repository.getParameter(Ljava/lang/String;)Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.Repository.setParameters(Ljava/util/Properties;)V -METHOD|org.apache.maven.wagon.repository.Repository.equals(Ljava/lang/Object;)Z -METHOD|org.apache.maven.wagon.repository.Repository.hashCode()I -METHOD|org.apache.maven.wagon.repository.Repository.getUsername()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.Repository.getPassword()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.Repository.setProtocol(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.repository.RepositoryPermissions.()V -METHOD|org.apache.maven.wagon.repository.RepositoryPermissions.getDirectoryMode()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.RepositoryPermissions.setDirectoryMode(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.repository.RepositoryPermissions.getFileMode()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.RepositoryPermissions.setFileMode(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.repository.RepositoryPermissions.getGroup()Ljava/lang/String; -METHOD|org.apache.maven.wagon.repository.RepositoryPermissions.setGroup(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.resource.Resource.()V -METHOD|org.apache.maven.wagon.resource.Resource.(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.resource.Resource.getName()Ljava/lang/String; -METHOD|org.apache.maven.wagon.resource.Resource.setName(Ljava/lang/String;)V -METHOD|org.apache.maven.wagon.resource.Resource.getLastModified()J -METHOD|org.apache.maven.wagon.resource.Resource.setLastModified(J)V -METHOD|org.apache.maven.wagon.resource.Resource.getContentLength()J -METHOD|org.apache.maven.wagon.resource.Resource.setContentLength(J)V -METHOD|org.apache.maven.wagon.resource.Resource.toString()Ljava/lang/String; -FILE|META-INF/ -FILE|META-INF/MANIFEST.MF -FILE|META-INF/maven/ -FILE|META-INF/maven/org.apache.maven.wagon/ -FILE|META-INF/maven/org.apache.maven.wagon/wagon-provider-api/ -FILE|META-INF/maven/org.apache.maven.wagon/wagon-provider-api/pom.properties -FILE|META-INF/maven/org.apache.maven.wagon/wagon-provider-api/pom.xml -FILE|org/ -FILE|org/apache/ -FILE|org/apache/maven/ -FILE|org/apache/maven/wagon/ -FILE|org/apache/maven/wagon/AbstractWagon.class -FILE|org/apache/maven/wagon/CommandExecutionException.class -FILE|org/apache/maven/wagon/CommandExecutor$1.class -FILE|org/apache/maven/wagon/CommandExecutor.class -FILE|org/apache/maven/wagon/ConnectionException.class -FILE|org/apache/maven/wagon/InputData.class -FILE|org/apache/maven/wagon/LazyFileOutputStream.class -FILE|org/apache/maven/wagon/OutputData.class -FILE|org/apache/maven/wagon/PathUtils.class -FILE|org/apache/maven/wagon/PermissionModeUtils.class -FILE|org/apache/maven/wagon/ResourceDoesNotExistException.class -FILE|org/apache/maven/wagon/StreamWagon.class -FILE|org/apache/maven/wagon/Streams.class -FILE|org/apache/maven/wagon/TransferFailedException.class -FILE|org/apache/maven/wagon/UnsupportedProtocolException.class -FILE|org/apache/maven/wagon/Wagon$1.class -FILE|org/apache/maven/wagon/Wagon.class -FILE|org/apache/maven/wagon/WagonConstants.class -FILE|org/apache/maven/wagon/WagonException.class -FILE|org/apache/maven/wagon/WagonUtils.class -FILE|org/apache/maven/wagon/authentication/ -FILE|org/apache/maven/wagon/authentication/AuthenticationException.class -FILE|org/apache/maven/wagon/authentication/AuthenticationInfo.class -FILE|org/apache/maven/wagon/authorization/ -FILE|org/apache/maven/wagon/authorization/AuthorizationException.class -FILE|org/apache/maven/wagon/events/ -FILE|org/apache/maven/wagon/events/SessionEvent.class -FILE|org/apache/maven/wagon/events/SessionEventSupport.class -FILE|org/apache/maven/wagon/events/SessionListener.class -FILE|org/apache/maven/wagon/events/TransferEvent.class -FILE|org/apache/maven/wagon/events/TransferEventSupport.class -FILE|org/apache/maven/wagon/events/TransferListener.class -FILE|org/apache/maven/wagon/events/WagonEvent.class -FILE|org/apache/maven/wagon/observers/ -FILE|org/apache/maven/wagon/observers/AbstractTransferListener.class -FILE|org/apache/maven/wagon/observers/ChecksumObserver.class -FILE|org/apache/maven/wagon/observers/Debug.class -FILE|org/apache/maven/wagon/proxy/ -FILE|org/apache/maven/wagon/proxy/ProxyInfo.class -FILE|org/apache/maven/wagon/repository/ -FILE|org/apache/maven/wagon/repository/Repository.class -FILE|org/apache/maven/wagon/repository/RepositoryPermissions.class -FILE|org/apache/maven/wagon/resource/ -FILE|org/apache/maven/wagon/resource/Resource.class diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexCreationTestCase.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexCreationTestCase.java deleted file mode 100644 index ace9bd543..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexCreationTestCase.java +++ /dev/null @@ -1,191 +0,0 @@ -package org.apache.maven.archiva.indexer; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.lucene.document.Document; -import org.apache.lucene.index.IndexReader; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; - -import java.io.File; -import java.io.IOException; -import java.text.ParseException; -import java.util.Collections; - -/** - * AbstractIndexCreationTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractIndexCreationTestCase extends AbstractIndexerTestCase -{ - protected abstract LuceneRepositoryContentRecord createSimpleRecord(); - - public void testIndexExists() throws Exception - { - assertFalse( "check index doesn't exist", index.exists() ); - - File indexLocation = index.getIndexDirectory(); - - // create empty directory - indexLocation.mkdirs(); - assertFalse( "check index doesn't exist even if directory does", index.exists() ); - - // create index, with no records - createEmptyIndex(); - assertTrue( "check index is considered to exist", index.exists() ); - - // Test non-directory - FileUtils.deleteDirectory( indexLocation ); - indexLocation.createNewFile(); - try - { - index.exists(); - fail( "Index operation should fail as the location is not valid" ); - } - catch ( RepositoryIndexException e ) - { - // great - } - finally - { - indexLocation.delete(); - } - } - - public void testAddRecordNoIndex() throws IOException, RepositoryIndexException, ParseException - { - LuceneRepositoryContentRecord record = createSimpleRecord(); - - index.indexRecords( Collections.singletonList( record ) ); - - IndexReader reader = IndexReader.open( index.getIndexDirectory() ); - try - { - assertEquals( "Check index size", 1, reader.numDocs() ); - - Document document = reader.document( 0 ); - assertRecord( record, document ); - } - finally - { - reader.close(); - } - } - - public void testAddRecordExistingEmptyIndex() throws IOException, RepositoryIndexException, ParseException - { - createEmptyIndex(); - - LuceneRepositoryContentRecord record = createSimpleRecord(); - - index.indexRecords( Collections.singletonList( record ) ); - - IndexReader reader = IndexReader.open( index.getIndexDirectory() ); - try - { - assertEquals( "Check index size", 1, reader.numDocs() ); - - Document document = reader.document( 0 ); - assertRecord( record, document ); - } - finally - { - reader.close(); - } - } - - public void testAddRecordInIndex() throws IOException, RepositoryIndexException, ParseException - { - createEmptyIndex(); - - LuceneRepositoryContentRecord record = createSimpleRecord(); - - index.indexRecords( Collections.singletonList( record ) ); - - // Do it again - record = createSimpleRecord(); - - index.indexRecords( Collections.singletonList( record ) ); - - IndexReader reader = IndexReader.open( index.getIndexDirectory() ); - try - { - assertEquals( "Check index size", 1, reader.numDocs() ); - - Document document = reader.document( 0 ); - assertRecord( record, document ); - } - finally - { - reader.close(); - } - } - - public void testDeleteRecordInIndex() throws IOException, RepositoryIndexException - { - createEmptyIndex(); - - LuceneRepositoryContentRecord record = createSimpleRecord(); - - index.indexRecords( Collections.singletonList( record ) ); - - index.deleteRecords( Collections.singletonList( record ) ); - - IndexReader reader = IndexReader.open( index.getIndexDirectory() ); - try - { - assertEquals( "No documents", 0, reader.numDocs() ); - } - finally - { - reader.close(); - } - } - - public void testDeleteRecordNotInIndex() throws IOException, RepositoryIndexException - { - createEmptyIndex(); - - LuceneRepositoryContentRecord record = createSimpleRecord(); - - index.deleteRecords( Collections.singletonList( record ) ); - - IndexReader reader = IndexReader.open( index.getIndexDirectory() ); - try - { - assertEquals( "No documents", 0, reader.numDocs() ); - } - finally - { - reader.close(); - } - } - - public void testDeleteRecordNoIndex() throws IOException, RepositoryIndexException - { - LuceneRepositoryContentRecord record = createSimpleRecord(); - - index.deleteRecords( Collections.singleton( record ) ); - - assertFalse( index.exists() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java deleted file mode 100644 index 541b96e12..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java +++ /dev/null @@ -1,236 +0,0 @@ -package org.apache.maven.archiva.indexer; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.lucene.document.Document; -import org.apache.lucene.index.IndexWriter; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.lucene.LuceneIndexHandlers; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; -import java.io.IOException; -import java.text.ParseException; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * AbstractIndexerTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractIndexerTestCase - extends PlexusInSpringTestCase -{ - protected RepositoryContentIndex index; - - protected LuceneIndexHandlers indexHandlers; - - private static final String TEST_DEFAULT_REPOSITORY_NAME = "Test Default Repository"; - - private static final String TEST_DEFAULT_REPO_ID = "testDefaultRepo"; - - public abstract String getIndexName(); - - protected void assertRecord( LuceneRepositoryContentRecord expectedRecord, Document luceneDocument ) - throws ParseException - { - LuceneRepositoryContentRecord actualRecord = indexHandlers.getConverter().convert( luceneDocument ); - assertRecord( expectedRecord, actualRecord ); - } - - protected void assertRecord( LuceneRepositoryContentRecord expectedRecord, - LuceneRepositoryContentRecord actualRecord ) - { - assertEquals( expectedRecord, actualRecord ); - } - - public abstract RepositoryContentIndex createIndex( RepositoryContentIndexFactory indexFactory, - ManagedRepositoryConfiguration repository ); - - public abstract LuceneIndexHandlers getIndexHandler(); - - protected void setUp() - throws Exception - { - super.setUp(); - - RepositoryContentIndexFactory indexFactory = - (RepositoryContentIndexFactory) lookup( RepositoryContentIndexFactory.class - .getName(), "lucene" ); - - ManagedRepositoryConfiguration repository = createTestIndex( getIndexName() ); - - index = createIndex( indexFactory, repository ); - - indexHandlers = getIndexHandler(); - } - - private ManagedRepositoryConfiguration createTestIndex( String indexName ) - throws Exception - { - File repoDir = new File( getBasedir(), "src/test/managed-repository" ); - File testIndexesDir = new File( getBasedir(), "target/test-indexes" ); - - if ( !testIndexesDir.exists() ) - { - testIndexesDir.mkdirs(); - } - - assertTrue( "Default Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() ); - - ManagedRepositoryConfiguration repository = createRepository( TEST_DEFAULT_REPO_ID, - TEST_DEFAULT_REPOSITORY_NAME, repoDir ); - - File indexLocation = new File( testIndexesDir, "/index-" + indexName + "-" + getName() + "/" ); - - MockConfiguration config = (MockConfiguration) lookup( ArchivaConfiguration.class.getName(), "mock" ); - - ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration(); - repoConfig.setId( TEST_DEFAULT_REPO_ID ); - repoConfig.setName( TEST_DEFAULT_REPOSITORY_NAME ); - repoConfig.setLocation( repoDir.getAbsolutePath() ); - repoConfig.setIndexDir( indexLocation.getAbsolutePath() ); - - if ( indexLocation.exists() ) - { - FileUtils.deleteDirectory( indexLocation ); - } - - config.getConfiguration().addManagedRepository( repoConfig ); - return repository; - } - - protected Map getArchivaArtifactDumpMap() - { - Map dumps = new HashMap(); - - // archiva-common-1.0.jar.txt - dumps.put( "archiva-common", - createArchivaArtifact( "org.apache.maven.archiva", "archiva-common", "1.0", "", "jar" ) ); - - // continuum-webapp-1.0.3-SNAPSHOT.war.txt - dumps.put( "continuum-webapp", createArchivaArtifact( "org.apache.maven.continuum", "continuum-webapp", - "1.0.3-SNAPSHOT", "", "war" ) ); - - // daytrader-ear-1.1.ear.txt - dumps.put( "daytrader-ear", createArchivaArtifact( "org.apache.geronimo", "daytrader-ear", "1.1", "", "ear" ) ); - - // maven-archetype-simple-1.0-alpha-4.jar.txt - dumps.put( "maven-archetype-simple", createArchivaArtifact( "org.apache.maven", "maven-archetype-simple", - "1.0-alpha-4", "", "maven-archetype" ) ); - - // maven-help-plugin-2.0.2-20070119.121239-2.jar.txt - dumps.put( "maven-help-plugin", createArchivaArtifact( "org.apache.maven.plugins", "maven-help-plugin", - "2.0.2-20070119.121239-2", "", "maven-plugin" ) ); - - // redback-authorization-open-1.0-alpha-1-SNAPSHOT.jar.txt - dumps.put( "redback-authorization-open", createArchivaArtifact( "org.codehaus.plexus.redback", - "redback-authorization-open", - "1.0-alpha-1-SNAPSHOT", "", "jar" ) ); - - // testng-5.1-jdk15.jar.txt - dumps.put( "testng", createArchivaArtifact( "org.testng", "testng", "5.1", "jdk15", "jar" ) ); - - // wagon-provider-api-1.0-beta-3-20070209.213958-2.jar.txt - dumps.put( "wagon-provider-api", createArchivaArtifact( "org.apache.maven.wagon", "wagon-provider-api", - "1.0-beta-3-20070209.213958-2", "", "jar" ) ); - - return dumps; - } - - protected File getDumpFile( ArchivaArtifact artifact ) - { - File dumpDir = new File( getBasedir(), "src/test/artifact-dumps" ); - StringBuffer filename = new StringBuffer(); - - filename.append( artifact.getArtifactId() ).append( "-" ).append( artifact.getVersion() ); - - if ( artifact.hasClassifier() ) - { - filename.append( "-" ).append( artifact.getClassifier() ); - } - - filename.append( "." ); - - // TODO: use the ArtifactExtensionMapping object - if ( "maven-plugin".equals( artifact.getType() ) || "maven-archetype".equals( artifact.getType() ) ) - { - filename.append( "jar" ); - } - else - { - filename.append( artifact.getType() ); - } - filename.append( ".txt" ); - - File dumpFile = new File( dumpDir, filename.toString() ); - - if ( !dumpFile.exists() ) - { - fail( "Dump file " + dumpFile.getAbsolutePath() + " does not exist (should it?)." ); - } - - return dumpFile; - } - - private ArchivaArtifact createArchivaArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - { - ArchivaArtifact artifact = new ArchivaArtifact( groupId, artifactId, version, classifier, type ); - return artifact; - } - - protected void createEmptyIndex() - throws IOException - { - createIndex( Collections.EMPTY_LIST ); - } - - protected void createIndex( List documents ) - throws IOException - { - IndexWriter writer = new IndexWriter( index.getIndexDirectory(), indexHandlers.getAnalyzer(), true ); - for ( Iterator i = documents.iterator(); i.hasNext(); ) - { - Document document = (Document) i.next(); - writer.addDocument( document ); - } - writer.optimize(); - writer.close(); - } - - 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; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractSearchTestCase.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractSearchTestCase.java deleted file mode 100644 index 58aeafdbf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractSearchTestCase.java +++ /dev/null @@ -1,195 +0,0 @@ -package org.apache.maven.archiva.indexer; - -/* - * 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.lucene.document.Document; -import org.apache.lucene.index.Term; -import org.apache.lucene.queryParser.ParseException; -import org.apache.lucene.queryParser.QueryParser; -import org.apache.lucene.search.Hit; -import org.apache.lucene.search.Hits; -import org.apache.lucene.search.Query; -import org.apache.lucene.search.Searcher; -import org.apache.lucene.search.TermQuery; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import junit.framework.ComparisonFailure; - -/** - * AbstractSearchTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractSearchTestCase - extends AbstractIndexerTestCase -{ - protected Map records; - - protected abstract Map createSampleRecordsMap(); - - protected void setUp() - throws Exception - { - super.setUp(); - - records = createSampleRecordsMap(); - - index.indexRecords( records.values() ); - } - - protected Query createExactMatchQuery( String field, String value ) - { - return new TermQuery( new Term( field, value ) ); - } - - protected Query createMatchQuery( String field, String value ) - throws ParseException - { - QueryParser queryParser = new QueryParser( field, indexHandlers.getAnalyzer() ); - queryParser.setLowercaseExpandedTerms( true ); - return queryParser.parse( value ); - } - - protected void assertResults( String expectedKeys[], List actualResults ) - { - if ( actualResults == null ) - { - fail( "Got null results, expected <" + expectedKeys.length + "> results." ); - } - - if ( actualResults.isEmpty() ) - { - fail( "Got empty results, expected <" + expectedKeys.length + "> results." ); - } - - if ( expectedKeys.length != actualResults.size() ) - { - dumpResults( actualResults ); - throw new ComparisonFailure( "Results count", String.valueOf( expectedKeys.length ), String - .valueOf( actualResults.size() ) ); - } - - assertEquals( "Results count", expectedKeys.length, actualResults.size() ); - - for ( int i = 0; i < expectedKeys.length; i++ ) - { - String key = expectedKeys[i]; - LuceneRepositoryContentRecord record = (LuceneRepositoryContentRecord) records.get( key ); - - if ( record == null ) - { - dumpResults( actualResults ); - fail( "Expected record <" + key - + "> not in records map (smack the unit test developer, tell them to fix method " + getName() + ")" ); - } - - if ( !actualResults.contains( record ) ) - { - dumpResults( actualResults ); - fail( "Results should contain expected record: " + record ); - } - } - } - - protected void dumpResults( List results ) - { - System.out.println( "Results <" + results.size() + "> - " + getName() ); - int i = 1; - for ( Iterator iter = results.iterator(); iter.hasNext(); ) - { - Object result = (Object) iter.next(); - System.out.println( "Result [" + ( i++ ) + "] : " + result ); - } - } - - protected void assertNoResults( List results ) - { - if ( results == null ) - { - return; - } - - if ( !results.isEmpty() ) - { - dumpResults( results ); - fail( "Expected no results, but actually got <" + results.size() + "> entries." ); - } - } - - protected void assertQueryExactMatchNoResults( String key, String term ) - throws Exception - { - Query query = createExactMatchQuery( key, term ); - List results = search( query ); - assertNoResults( results ); - } - - protected void assertQueryExactMatch( String key, String names[], String term ) - throws Exception - { - Query query = createExactMatchQuery( key, term ); - List results = search( query ); - assertResults( names, results ); - } - - protected void assertQueryMatch( String key, String names[], String term ) - throws Exception - { - Query query = createMatchQuery( key, term ); - List results = search( query ); - assertResults( names, results ); - } - - protected void assertQueryMatchNoResults( String key, String term ) - throws Exception - { - Query query = createMatchQuery( key, term ); - - List results = search( query ); - - assertNoResults( results ); - } - - protected List search( Query query ) - throws RepositoryIndexSearchException, IOException, java.text.ParseException - { - Searcher searcher = (Searcher) index.getSearchable();; // this shouldn't cause a problem. - - Hits hits = searcher.search( query ); - - List results = new ArrayList(); - Iterator it = hits.iterator(); - while ( it.hasNext() ) - { - Hit hit = (Hit) it.next(); - Document doc = hit.getDocument(); - LuceneRepositoryContentRecord record = index.getEntryConverter().convert( doc ); - results.add( record ); - } - return results; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/MockConfiguration.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/MockConfiguration.java deleted file mode 100644 index 89f19599c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/MockConfiguration.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.apache.maven.archiva.indexer; - -/* - * 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.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ConfigurationListener; -import org.codehaus.plexus.registry.Registry; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.registry.RegistryListener; -import org.easymock.MockControl; - -import java.util.HashSet; -import java.util.Set; - -/** - * MockConfiguration - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.configuration.ArchivaConfiguration" - * role-hint="mock" - */ -public class MockConfiguration implements ArchivaConfiguration -{ - private Configuration configuration = new Configuration(); - - private Set registryListeners = new HashSet(); - private Set configListeners = new HashSet(); - - private MockControl registryControl; - - private Registry registryMock; - - public MockConfiguration() - { - registryControl = MockControl.createNiceControl( Registry.class ); - registryMock = (Registry) registryControl.getMock(); - } - - public void addChangeListener( RegistryListener listener ) - { - registryListeners.add( listener ); - } - - public Configuration getConfiguration() - { - return configuration; - } - - public void save( Configuration configuration ) - throws RegistryException - { - /* do nothing */ - } - - public void triggerChange( String name, String value ) - { - for(RegistryListener listener: registryListeners) - { - try - { - listener.afterConfigurationChange( registryMock, name, value ); - } - catch ( Exception e ) - { - e.printStackTrace(); - } - } - } - - public void addListener( ConfigurationListener listener ) - { - configListeners.add(listener); - } - - public void removeListener( ConfigurationListener listener ) - { - configListeners.remove( listener ); - } - - public boolean isDefaulted() - { - return false; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListenerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListenerTest.java deleted file mode 100644 index a402c46e7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListenerTest.java +++ /dev/null @@ -1,167 +0,0 @@ -package org.apache.maven.archiva.indexer; - -/* - * 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 java.util.Map; - -import org.apache.commons.io.FileUtils; -import org.apache.lucene.search.Hits; -import org.apache.lucene.search.MatchAllDocsQuery; -import org.apache.lucene.search.Query; -import org.apache.lucene.search.Searcher; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.bytecode.BytecodeRecord; -import org.apache.maven.archiva.indexer.filecontent.FileContentRecord; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesRecord; -import org.apache.maven.archiva.indexer.search.BytecodeIndexPopulator; -import org.apache.maven.archiva.indexer.search.FileContentIndexPopulator; -import org.apache.maven.archiva.indexer.search.HashcodesIndexPopulator; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.events.RepositoryListener; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.codehaus.plexus.spring.PlexusToSpringUtils; - -public class RepositoryContentIndexEventListenerTest - extends PlexusInSpringTestCase -{ - private static final String TEST_DEFAULT_REPOSITORY_NAME = "Test Default Repository"; - - private static final String TEST_DEFAULT_REPO_ID = "test-repo"; - - private RepositoryListener listener; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - listener = (RepositoryListener) lookup( RepositoryListener.class.getName(), "indexer" ); - } - - public void testWiring() - { - List listeners = - PlexusToSpringUtils.lookupList( PlexusToSpringUtils.buildSpringId( RepositoryListener.class ), - getApplicationContext() ); - - assertEquals( 1, listeners.size() ); - assertEquals( listener, listeners.get( 0 ) ); - } - - public ArchivaArtifact createArtifact( String artifactId, String version ) - { - ArchivaArtifact artifact = - new ArchivaArtifact( "org.apache.maven.archiva.test", artifactId, version, "", "jar" ); - artifact.getModel().setRepositoryId( "testable_repo" ); - return artifact; - } - - public void testDeleteArtifact() - throws Exception - { - RepositoryContentIndexFactory indexFactory = - (RepositoryContentIndexFactory) lookup( RepositoryContentIndexFactory.class.getName(), "lucene" ); - - File repoDir = new File( getBasedir(), "src/test/managed-repository" ); - - assertTrue( "Default Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() ); - - ManagedRepositoryConfiguration repository = - createRepository( TEST_DEFAULT_REPO_ID, TEST_DEFAULT_REPOSITORY_NAME, repoDir ); - - File indexLocation = new File( "target/index-events-" + getName() + "/" ); - - MockConfiguration config = (MockConfiguration) lookup( ArchivaConfiguration.class.getName(), "mock" ); - - ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration(); - repoConfig.setId( TEST_DEFAULT_REPO_ID ); - repoConfig.setName( TEST_DEFAULT_REPOSITORY_NAME ); - repoConfig.setLocation( repoDir.getAbsolutePath() ); - repoConfig.setIndexDir( indexLocation.getAbsolutePath() ); - repoConfig.setScanned( true ); - - if ( indexLocation.exists() ) - { - FileUtils.deleteDirectory( indexLocation ); - } - - config.getConfiguration().addManagedRepository( repoConfig ); - - // Create the (empty) indexes. - RepositoryContentIndex indexHashcode = indexFactory.createHashcodeIndex( repository ); - RepositoryContentIndex indexBytecode = indexFactory.createBytecodeIndex( repository ); - RepositoryContentIndex indexContents = indexFactory.createFileContentIndex( repository ); - - // Now populate them. - Map hashcodesMap = new HashcodesIndexPopulator().populate( new File( getBasedir() ) ); - indexHashcode.indexRecords( hashcodesMap.values() ); - assertEquals( "Hashcode Key Count", hashcodesMap.size(), indexHashcode.getAllRecordKeys().size() ); - assertRecordCount( indexHashcode, hashcodesMap.size() ); - - Map bytecodeMap = new BytecodeIndexPopulator().populate( new File( getBasedir() ) ); - indexBytecode.indexRecords( bytecodeMap.values() ); - assertEquals( "Bytecode Key Count", bytecodeMap.size(), indexBytecode.getAllRecordKeys().size() ); - assertRecordCount( indexBytecode, bytecodeMap.size() ); - - Map contentMap = new FileContentIndexPopulator().populate( new File( getBasedir() ) ); - indexContents.indexRecords( contentMap.values() ); - assertEquals( "File Content Key Count", contentMap.size(), indexContents.getAllRecordKeys().size() ); - assertRecordCount( indexContents, contentMap.size() ); - - ManagedRepositoryContent repositoryContent = - (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class.getName(), "default" ); - repositoryContent.setRepository( repository ); - - ArchivaArtifact artifact = - new ArchivaArtifact( "org.apache.maven.archiva", "archiva-common", "1.0", "", "jar" ); - listener.deleteArtifact( repositoryContent, artifact ); - - artifact = - new ArchivaArtifact( "org.apache.maven.archiva.record", "test-pom", "1.0", "", "pom" ); - listener.deleteArtifact( repositoryContent, artifact ); - - assertRecordCount( indexHashcode, hashcodesMap.size() - 1 ); - assertRecordCount( indexBytecode, bytecodeMap.size() - 1 ); - assertRecordCount( indexContents, contentMap.size() - 1 ); - } - - 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; - } - - private void assertRecordCount( RepositoryContentIndex index, int expectedCount ) - throws Exception - { - Query query = new MatchAllDocsQuery(); - Searcher searcher = (Searcher) index.getSearchable(); - Hits hits = searcher.search( query ); - assertEquals( "Expected Record Count for " + index.getId(), expectedCount, hits.length() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/AllTests.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/AllTests.java deleted file mode 100644 index e9a1e6eda..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/AllTests.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.apache.maven.archiva.indexer.bytecode; - -/* - * 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 junit.framework.Test; -import junit.framework.TestSuite; - -/** - * AllTests - conveinence test suite for IDE users. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AllTests -{ - - public static Test suite() - { - TestSuite suite = new TestSuite( "Test for org.apache.maven.archiva.indexer.bytecode" ); - //$JUnit-BEGIN$ - suite.addTestSuite( BytecodeSearchTest.class ); - suite.addTestSuite( BytecodeIndexTest.class ); - //$JUnit-END$ - return suite; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeIndexTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeIndexTest.java deleted file mode 100644 index 2fbef172c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeIndexTest.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.maven.archiva.indexer.bytecode; - -/* - * 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.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.AbstractIndexCreationTestCase; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.lucene.LuceneIndexHandlers; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.io.File; -import java.util.Map; - -/** - * BytecodeIndexTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BytecodeIndexTest extends AbstractIndexCreationTestCase -{ - public String getIndexName() - { - return "bytecode"; - } - - public LuceneIndexHandlers getIndexHandler() - { - return new BytecodeHandlers(); - } - - public RepositoryContentIndex createIndex( RepositoryContentIndexFactory indexFactory, ManagedRepositoryConfiguration repository ) - { - return indexFactory.createBytecodeIndex( repository ); - } - - protected LuceneRepositoryContentRecord createSimpleRecord() - { - Map dumps = getArchivaArtifactDumpMap(); - ArchivaArtifact artifact = (ArchivaArtifact) dumps.get( "archiva-common" ); - - File dumpFile = getDumpFile( artifact ); - BytecodeRecord record = BytecodeRecordLoader.loadRecord( dumpFile, artifact ); - record.setRepositoryId( "test-repo" ); - return record; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeRecordLoader.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeRecordLoader.java deleted file mode 100644 index 9795215e1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeRecordLoader.java +++ /dev/null @@ -1,137 +0,0 @@ -package org.apache.maven.archiva.indexer.bytecode; - -/* - * 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 junit.framework.AssertionFailedError; - -import org.apache.commons.io.IOUtils; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactJavaDetails; -import org.apache.maven.archiva.model.platform.JavaArtifactHelper; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; - -/** - * BytecodeRecordLoader - Utility method for loading dump files into BytecordRecords. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BytecodeRecordLoader -{ -// private static Map cache = new HashMap(); - - public static BytecodeRecord loadRecord( File dumpFile, ArchivaArtifact artifact ) - { - BytecodeRecord record; -// record = (BytecodeRecord) cache.get( artifact ); -// if ( record != null ) -// { -// return record; -// } - - record = new BytecodeRecord(); - record.setArtifact( artifact ); - - record.setClasses( new ArrayList() ); - record.setMethods( new ArrayList() ); - record.setFiles( new ArrayList() ); - - FileReader freader = null; - BufferedReader reader = null; - - try - { - freader = new FileReader( dumpFile ); - reader = new BufferedReader( freader ); - - String line = reader.readLine(); - while ( line != null ) - { - if ( line.startsWith( "FILENAME|" ) ) - { - String filename = line.substring( "FILENAME|".length() ); - record.setFilename( filename ); - } - else if ( line.startsWith( "SIZE|" ) ) - { - String size = line.substring( "SIZE|".length() ); - record.getArtifact().getModel().setSize( Long.parseLong( size ) ); - } - else if ( line.startsWith( "HASH_MD5|" ) ) - { - String md5 = line.substring( "HASH_MD5|".length() ); - record.getArtifact().getModel().setChecksumMD5( md5 ); - } - else if ( line.startsWith( "HASH_SHA1|" ) ) - { - String sha1 = line.substring( "HASH_SHA1|".length() ); - record.getArtifact().getModel().setChecksumSHA1( sha1 ); - } - else if ( line.startsWith( "HASH_BYTECODE|" ) ) - { - String hash = line.substring( "HASH_BYTECODE|".length() ); - ArchivaArtifactJavaDetails javaDetails = JavaArtifactHelper.getJavaDetails( record.getArtifact() ); - javaDetails.setChecksumBytecode( hash ); - } - else if ( line.startsWith( "JDK|" ) ) - { - String jdk = line.substring( "JDK|".length() ); - ArchivaArtifactJavaDetails javaDetails = JavaArtifactHelper.getJavaDetails( record.getArtifact() ); - javaDetails.setJdk( jdk ); - } - else if ( line.startsWith( "CLASS|" ) ) - { - String classname = line.substring( "CLASS|".length() ); - record.getClasses().add( classname ); - } - else if ( line.startsWith( "METHOD|" ) ) - { - String methodName = line.substring( "METHOD|".length() ); - record.getMethods().add( methodName ); - } - else if ( line.startsWith( "FILE|" ) ) - { - String fileentry = line.substring( "FILE|".length() ); - record.getFiles().add( fileentry ); - } - - line = reader.readLine(); - } - } - catch ( IOException e ) - { - throw new AssertionFailedError( "Unable to load record " + dumpFile + " from disk: " + e.getMessage() ); - } - finally - { - IOUtils.closeQuietly( reader ); - IOUtils.closeQuietly( freader ); - } - -// cache.put( artifact, record ); - - return record; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeSearchTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeSearchTest.java deleted file mode 100644 index 2dba5a4b2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/bytecode/BytecodeSearchTest.java +++ /dev/null @@ -1,329 +0,0 @@ -package org.apache.maven.archiva.indexer.bytecode; - -/* - * 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.lucene.search.BooleanClause; -import org.apache.lucene.search.BooleanQuery; -import org.apache.lucene.search.MatchAllDocsQuery; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.AbstractSearchTestCase; -import org.apache.maven.archiva.indexer.ArtifactKeys; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.lucene.LuceneIndexHandlers; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.io.File; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * BytecodeSearchTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BytecodeSearchTest extends AbstractSearchTestCase -{ - public String getIndexName() - { - return "bytecode"; - } - - public LuceneIndexHandlers getIndexHandler() - { - return new BytecodeHandlers(); - } - - public RepositoryContentIndex createIndex( RepositoryContentIndexFactory indexFactory, ManagedRepositoryConfiguration repository ) - { - return indexFactory.createBytecodeIndex( repository ); - } - - protected Map createSampleRecordsMap() - { - Map records = new HashMap(); - - Map artifactDumps = getArchivaArtifactDumpMap(); - for ( Iterator iter = artifactDumps.entrySet().iterator(); iter.hasNext(); ) - { - Map.Entry entry = (Map.Entry) iter.next(); - ArchivaArtifact artifact = (ArchivaArtifact) entry.getValue(); - File dumpFile = getDumpFile( artifact ); - BytecodeRecord record = BytecodeRecordLoader.loadRecord( dumpFile, artifact ); - record.setRepositoryId( "test-repo" ); - records.put( entry.getKey(), record ); - } - - return records; - } - - public void testExactMatchVersionSimple() throws Exception - { - assertQueryExactMatch( ArtifactKeys.VERSION_EXACT, new String[] { "archiva-common" }, "1.0" ); - } - - public void testExactMatchVersionSnapshot() throws Exception - { - assertQueryExactMatch( ArtifactKeys.VERSION_EXACT, new String[] { "continuum-webapp" }, "1.0.3-SNAPSHOT" ); - } - - public void testExactMatchVersionAlphaSnapshot() throws Exception - { - assertQueryExactMatch( ArtifactKeys.VERSION_EXACT, new String[] { "redback-authorization-open" }, - "1.0-alpha-1-SNAPSHOT" ); - } - - public void testExactMatchVersionTimestampedSnapshot() throws Exception - { - assertQueryExactMatch( ArtifactKeys.VERSION_EXACT, new String[] { "wagon-provider-api" }, - "1.0-beta-3-20070209.213958-2" ); - } - - public void testExactMatchVersionInvalid() throws Exception - { - assertQueryExactMatchNoResults( ArtifactKeys.VERSION_EXACT, "foo" ); - } - - public void testExactMatchGroupIdOrgApacheMavenArchiva() throws Exception - { - assertQueryExactMatch( ArtifactKeys.GROUPID_EXACT, new String[] { "archiva-common" }, - "org.apache.maven.archiva" ); - } - - public void testExactMatchGroupIdOrgApacheMaven() throws Exception - { - assertQueryExactMatch( ArtifactKeys.GROUPID_EXACT, new String[] { "maven-archetype-simple" }, - "org.apache.maven" ); - } - - public void testExactMatchGroupIdInvalid() throws Exception - { - assertQueryExactMatchNoResults( ArtifactKeys.GROUPID_EXACT, "foo" ); - } - - public void testExactMatchArtifactIdArchivaCommon() throws Exception - { - assertQueryExactMatch( ArtifactKeys.ARTIFACTID_EXACT, new String[] { "archiva-common" }, "archiva-common" ); - } - - public void testExactMatchArtifactIdTestNg() throws Exception - { - assertQueryExactMatch( ArtifactKeys.ARTIFACTID_EXACT, new String[] { "testng" }, "testng" ); - } - - public void testExactMatchArtifactIdInvalid() throws Exception - { - assertQueryExactMatchNoResults( ArtifactKeys.ARTIFACTID_EXACT, "foo" ); - } - - public void testExactMatchTypeJar() throws Exception - { - assertQueryExactMatch( ArtifactKeys.TYPE, ( new String[] { "archiva-common", "redback-authorization-open", - "testng", "wagon-provider-api" } ), "jar" ); - } - - public void testExactMatchTypeWar() throws Exception - { - assertQueryExactMatch( ArtifactKeys.TYPE, ( new String[] { "continuum-webapp" } ), "war" ); - } - - /* TODO: Fix 'maven-plugin' type - public void testExactMatchTypePlugin() throws Exception - { - assertQueryExactMatch( ArtifactKeys.TYPE, ( new String[] { "maven-help-plugin" } ), "maven-plugin" ); - } */ - - /* TODO: Fix 'maven-archetype' type - public void testExactMatchTypeArchetype() throws Exception - { - assertQueryExactMatch( ArtifactKeys.TYPE, ( new String[] { "maven-archetype-simple" } ), "maven-archetype" ); - } - */ - - public void testExactMatchTypeInvalid() throws Exception - { - assertQueryExactMatchNoResults( ArtifactKeys.TYPE, "foo" ); - } - - public void testMatchGroupIdOrgApacheMaven() throws Exception - { - assertQueryMatch( ArtifactKeys.GROUPID, new String[] { "archiva-common", "continuum-webapp", - "maven-archetype-simple", "maven-help-plugin", "wagon-provider-api" }, "org.apache.maven" ); - } - - public void testMatchGroupIdMaven() throws Exception - { - assertQueryMatch( ArtifactKeys.GROUPID, new String[] { "archiva-common", "continuum-webapp", - "maven-archetype-simple", "maven-help-plugin", "wagon-provider-api" }, "maven" ); - } - - public void testMatchGroupIdMavenMixed() throws Exception - { - assertQueryMatch( ArtifactKeys.GROUPID, new String[] { "archiva-common", "continuum-webapp", - "maven-archetype-simple", "maven-help-plugin", "wagon-provider-api" }, "Maven" ); - } - - public void testMatchGroupIdInvalid() throws Exception - { - assertQueryMatchNoResults( ArtifactKeys.GROUPID, "foo" ); - } - - public void testMatchArtifactIdPlugin() throws Exception - { - assertQueryMatch( ArtifactKeys.ARTIFACTID, new String[] { "maven-help-plugin" }, "plugin" ); - } - - public void testMatchArtifactIdMaven() throws Exception - { - assertQueryMatch( ArtifactKeys.ARTIFACTID, new String[] { "maven-help-plugin", "maven-archetype-simple" }, - "maven" ); - } - - public void testMatchArtifactIdHelp() throws Exception - { - assertQueryMatch( ArtifactKeys.ARTIFACTID, new String[] { "maven-help-plugin" }, "help" ); - } - - public void testMatchVersionOne() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, new String[] { "daytrader-ear", "testng", "archiva-common", - "redback-authorization-open", "maven-archetype-simple", "continuum-webapp", "wagon-provider-api" }, "1" ); - } - - public void testMatchVersionOneOh() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, new String[] { "archiva-common", "continuum-webapp", - "maven-archetype-simple", "redback-authorization-open", "wagon-provider-api" }, "1.0" ); - } - - public void testMatchVersionSnapshotLower() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, new String[] { "continuum-webapp", "redback-authorization-open" }, - "snapshot" ); - } - - public void testMatchVersionSnapshotUpper() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, new String[] { "continuum-webapp", "redback-authorization-open" }, - "SNAPSHOT" ); - } - - public void testMatchVersionAlpha() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, - new String[] { "maven-archetype-simple", "redback-authorization-open" }, "alpha" ); - } - - public void testMatchVersionOneAlpha() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, new String[] { "redback-authorization-open" }, "1.0-alpha-1" ); - } - - public void testMatchVersionInvalid() throws Exception - { - assertQueryMatchNoResults( ArtifactKeys.VERSION, "255" ); - } - - public void testMatchClassifierNotJdk15() throws Exception - { - BooleanQuery bQuery = new BooleanQuery(); - bQuery.add( new MatchAllDocsQuery(), BooleanClause.Occur.MUST ); - bQuery.add( createMatchQuery( ArtifactKeys.CLASSIFIER, "jdk15" ), BooleanClause.Occur.MUST_NOT ); - List results = search( bQuery ); - - assertResults( new String[] { "archiva-common", "continuum-webapp", "redback-authorization-open", - "daytrader-ear", "maven-archetype-simple", "maven-help-plugin", "wagon-provider-api" }, results ); - } - - public void testMatchClassifierJdk15() throws Exception - { - assertQueryMatch( ArtifactKeys.CLASSIFIER, new String[] { "testng" }, "jdk15" ); - } - - public void testMatchClassifierInvalid() throws Exception - { - assertQueryMatchNoResults( ArtifactKeys.CLASSIFIER, "redo" ); - } - - public void testMatchClassSessionListener() throws Exception - { - assertQueryMatch( BytecodeKeys.CLASSES, new String[] { "wagon-provider-api" }, "wagon.events.SessionListener" ); - } - - /* TODO: Suffix searching does not seem to work. - public void testMatchClassUtil() throws Exception - { - assertQueryMatch( BytecodeKeys.CLASSES, new String[] { "archiva-common", "continuum-webapp", "testng", - "wagon-provider-api" }, "Util" ); - } - */ - - public void testMatchClassWagon() throws Exception - { - assertQueryMatch( BytecodeKeys.CLASSES, new String[] { "wagon-provider-api" }, "Wagon" ); - } - - /* TODO: Suffix searching does not seem to work. - public void testMatchClassMojoAllUpper() throws Exception - { - assertQueryMatch( BytecodeKeys.CLASSES, new String[] { "maven-help-plugin" }, "MOJO" ); - } - */ - - /* TODO: Suffix searching does not seem to work. - public void testMatchClassMojo() throws Exception - { - assertQueryMatch( BytecodeKeys.CLASSES, new String[] { "maven-help-plugin" }, "Mojo" ); - } - */ - - public void testMatchClassInvalid() throws Exception - { - assertQueryMatchNoResults( BytecodeKeys.CLASSES, "Destruct|Button" ); - } - - public void testMatchFilesManifestMf() throws Exception - { - assertQueryMatch( BytecodeKeys.FILES, new String[] { "daytrader-ear", "maven-archetype-simple", - "redback-authorization-open", "maven-help-plugin", "archiva-common", "wagon-provider-api", - "continuum-webapp", "testng" }, "MANIFEST.MF" ); - } - - public void testMatchFilesMetaInf() throws Exception - { - assertQueryMatch( BytecodeKeys.FILES, new String[] { "daytrader-ear", "maven-archetype-simple", - "redback-authorization-open", "maven-help-plugin", "archiva-common", "wagon-provider-api", - "continuum-webapp", "testng" }, "META-INF" ); - } - - public void testMatchFilesPluginXml() throws Exception - { - assertQueryMatch( BytecodeKeys.FILES, new String[] { "maven-help-plugin" }, "plugin.xml" ); - } - - public void testMatchFilesInvalid() throws Exception - { - assertQueryMatchNoResults( BytecodeKeys.FILES, "Veni Vidi Castratavi Illegitimos" ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/AllTests.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/AllTests.java deleted file mode 100644 index aa9dbcae2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/AllTests.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.apache.maven.archiva.indexer.hashcodes; - -/* - * 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 junit.framework.Test; -import junit.framework.TestSuite; - -/** - * AllTests - conveinence test suite for IDE users. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AllTests -{ - - public static Test suite() - { - TestSuite suite = new TestSuite( "Test for org.apache.maven.archiva.indexer.hashcodes" ); - //$JUnit-BEGIN$ - suite.addTestSuite( HashcodesIndexTest.class ); - suite.addTestSuite( HashcodesSearchTest.class ); - //$JUnit-END$ - return suite; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesIndexTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesIndexTest.java deleted file mode 100644 index 6f03d560d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesIndexTest.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.maven.archiva.indexer.hashcodes; - -/* - * 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.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.AbstractIndexCreationTestCase; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.lucene.LuceneIndexHandlers; -import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; - -/** - * HashcodesIndexTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class HashcodesIndexTest extends AbstractIndexCreationTestCase -{ - public String getIndexName() - { - return "hashcodes"; - } - - public LuceneIndexHandlers getIndexHandler() - { - return new HashcodesHandlers(); - } - - public RepositoryContentIndex createIndex( RepositoryContentIndexFactory indexFactory, ManagedRepositoryConfiguration repository ) - { - return indexFactory.createHashcodeIndex( repository ); - } - - protected LuceneRepositoryContentRecord createSimpleRecord() - { - ArchivaArtifact artifact = new ArchivaArtifact( "com.foo", "projfoo", "1.0", "", "jar" ); - - HashcodesRecord record = new HashcodesRecord(); - record.setRepositoryId( "test-repo" ); - record.setArtifact( artifact ); - - artifact.getModel().setChecksumSHA1( "c66f18bf192cb613fc2febb4da541a34133eedc2" ); - artifact.getModel().setChecksumMD5( "3a0adc365f849366cd8b633cad155cb7" ); - - return record; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesRecordLoader.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesRecordLoader.java deleted file mode 100644 index 4d9e0f74d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesRecordLoader.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.apache.maven.archiva.indexer.hashcodes; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.IOUtils; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactJavaDetails; -import org.apache.maven.archiva.model.platform.JavaArtifactHelper; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; - -import junit.framework.AssertionFailedError; - -/** - * HashcodesRecordLoader - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class HashcodesRecordLoader -{ - public static HashcodesRecord loadRecord( File dumpFile, ArchivaArtifact artifact ) - { - HashcodesRecord record = new HashcodesRecord(); - record.setArtifact( artifact ); - - FileReader freader = null; - BufferedReader reader = null; - - try - { - freader = new FileReader( dumpFile ); - reader = new BufferedReader( freader ); - - String line = reader.readLine(); - while ( line != null ) - { - if ( line.startsWith( "FILENAME|" ) ) - { - String filename = line.substring( "FILENAME|".length() ); - record.setFilename( filename ); - } - else if ( line.startsWith( "SIZE|" ) ) - { - String size = line.substring( "SIZE|".length() ); - record.getArtifact().getModel().setSize( Long.parseLong( size ) ); - } - else if ( line.startsWith( "HASH_MD5|" ) ) - { - String md5 = line.substring( "HASH_MD5|".length() ); - record.getArtifact().getModel().setChecksumMD5( md5 ); - } - else if ( line.startsWith( "HASH_SHA1|" ) ) - { - String sha1 = line.substring( "HASH_SHA1|".length() ); - record.getArtifact().getModel().setChecksumSHA1( sha1 ); - } - else if ( line.startsWith( "HASH_BYTECODE|" ) ) - { - String hash = line.substring( "HASH_BYTECODE|".length() ); - ArchivaArtifactJavaDetails javaDetails = JavaArtifactHelper.getJavaDetails( record.getArtifact() ); - javaDetails.setChecksumBytecode( hash ); - } - else if ( line.startsWith( "JDK|" ) ) - { - String jdk = line.substring( "JDK|".length() ); - ArchivaArtifactJavaDetails javaDetails = JavaArtifactHelper.getJavaDetails( record.getArtifact() ); - javaDetails.setJdk( jdk ); - } - - line = reader.readLine(); - } - } - catch ( IOException e ) - { - throw new AssertionFailedError( "Unable to load record " + dumpFile + " from disk: " + e.getMessage() ); - } - finally - { - IOUtils.closeQuietly( reader ); - IOUtils.closeQuietly( freader ); - } - - return record; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesSearchTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesSearchTest.java deleted file mode 100644 index b0d7b71ab..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/hashcodes/HashcodesSearchTest.java +++ /dev/null @@ -1,289 +0,0 @@ -package org.apache.maven.archiva.indexer.hashcodes; - -/* - * 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.lucene.search.BooleanClause; -import org.apache.lucene.search.BooleanQuery; -import org.apache.lucene.search.MatchAllDocsQuery; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.AbstractSearchTestCase; -import org.apache.maven.archiva.indexer.ArtifactKeys; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.lucene.LuceneIndexHandlers; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.io.File; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * HashcodesSearchTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class HashcodesSearchTest extends AbstractSearchTestCase -{ - public String getIndexName() - { - return "hashcodes"; - } - - public LuceneIndexHandlers getIndexHandler() - { - return new HashcodesHandlers(); - } - - public RepositoryContentIndex createIndex( RepositoryContentIndexFactory indexFactory, ManagedRepositoryConfiguration repository ) - { - return indexFactory.createHashcodeIndex( repository ); - } - - protected Map createSampleRecordsMap() - { - Map records = new HashMap(); - - Map artifactDumps = getArchivaArtifactDumpMap(); - for ( Iterator iter = artifactDumps.entrySet().iterator(); iter.hasNext(); ) - { - Map.Entry entry = (Map.Entry) iter.next(); - ArchivaArtifact artifact = (ArchivaArtifact) entry.getValue(); - File dumpFile = getDumpFile( artifact ); - HashcodesRecord record = HashcodesRecordLoader.loadRecord( dumpFile, artifact ); - record.setRepositoryId( "test-repo" ); - records.put( entry.getKey(), record ); - } - - return records; - } - - public void testExactMatchVersionSimple() throws Exception - { - assertQueryExactMatch( ArtifactKeys.VERSION_EXACT, new String[] { "archiva-common" }, "1.0" ); - } - - public void testExactMatchVersionSnapshot() throws Exception - { - assertQueryExactMatch( ArtifactKeys.VERSION_EXACT, new String[] { "continuum-webapp" }, "1.0.3-SNAPSHOT" ); - } - - public void testExactMatchVersionAlphaSnapshot() throws Exception - { - assertQueryExactMatch( ArtifactKeys.VERSION_EXACT, new String[] { "redback-authorization-open" }, - "1.0-alpha-1-SNAPSHOT" ); - } - - public void testExactMatchVersionTimestampedSnapshot() throws Exception - { - assertQueryExactMatch( ArtifactKeys.VERSION_EXACT, new String[] { "wagon-provider-api" }, - "1.0-beta-3-20070209.213958-2" ); - } - - public void testExactMatchVersionInvalid() throws Exception - { - assertQueryExactMatchNoResults( ArtifactKeys.VERSION_EXACT, "foo" ); - } - - public void testExactMatchGroupIdOrgApacheMavenArchiva() throws Exception - { - assertQueryExactMatch( ArtifactKeys.GROUPID_EXACT, new String[] { "archiva-common" }, - "org.apache.maven.archiva" ); - } - - public void testExactMatchGroupIdOrgApacheMaven() throws Exception - { - assertQueryExactMatch( ArtifactKeys.GROUPID_EXACT, new String[] { "maven-archetype-simple" }, - "org.apache.maven" ); - } - - public void testExactMatchGroupIdInvalid() throws Exception - { - assertQueryExactMatchNoResults( ArtifactKeys.GROUPID_EXACT, "foo" ); - } - - public void testExactMatchArtifactIdArchivaCommon() throws Exception - { - assertQueryExactMatch( ArtifactKeys.ARTIFACTID_EXACT, new String[] { "archiva-common" }, "archiva-common" ); - } - - public void testExactMatchArtifactIdTestNg() throws Exception - { - assertQueryExactMatch( ArtifactKeys.ARTIFACTID_EXACT, new String[] { "testng" }, "testng" ); - } - - public void testExactMatchArtifactIdInvalid() throws Exception - { - assertQueryExactMatchNoResults( ArtifactKeys.ARTIFACTID_EXACT, "foo" ); - } - - public void testExactMatchTypeJar() throws Exception - { - assertQueryExactMatch( ArtifactKeys.TYPE, ( new String[] { "archiva-common", "redback-authorization-open", - "testng", "wagon-provider-api" } ), "jar" ); - } - - public void testExactMatchTypeWar() throws Exception - { - assertQueryExactMatch( ArtifactKeys.TYPE, ( new String[] { "continuum-webapp" } ), "war" ); - } - - /* TODO: Fix 'maven-plugin' type - public void testExactMatchTypePlugin() throws Exception - { - assertQueryExactMatch( ArtifactKeys.TYPE, ( new String[] { "maven-help-plugin" } ), "maven-plugin" ); - } */ - - /* TODO: Fix 'maven-archetype' type - public void testExactMatchTypeArchetype() throws Exception - { - assertQueryExactMatch( ArtifactKeys.TYPE, ( new String[] { "maven-archetype-simple" } ), "maven-archetype" ); - } - */ - - public void testExactMatchTypeInvalid() throws Exception - { - assertQueryExactMatchNoResults( ArtifactKeys.TYPE, "foo" ); - } - - public void testExactMatchMd5() throws Exception - { - assertQueryExactMatch( HashcodesKeys.MD5, ( new String[] { "redback-authorization-open" } ), - "f42047fe2e177ac04d0df7aa44d408be" ); - } - - public void testExactMatchMd5Invalid() throws Exception - { - assertQueryExactMatchNoResults( HashcodesKeys.MD5, "foo" ); - } - - public void testExactMatchSha1() throws Exception - { - assertQueryExactMatch( HashcodesKeys.SHA1, ( new String[] { "archiva-common" } ), - "c2635a1b38bd4520a6604664c04b2b3c32330864" ); - } - - public void testExactMatchSha1Invalid() throws Exception - { - assertQueryExactMatchNoResults( HashcodesKeys.SHA1, "foo" ); - } - - public void testMatchGroupIdOrgApacheMaven() throws Exception - { - assertQueryMatch( ArtifactKeys.GROUPID, new String[] { "archiva-common", "continuum-webapp", - "maven-archetype-simple", "maven-help-plugin", "wagon-provider-api" }, "org.apache.maven" ); - } - - public void testMatchGroupIdMaven() throws Exception - { - assertQueryMatch( ArtifactKeys.GROUPID, new String[] { "archiva-common", "continuum-webapp", - "maven-archetype-simple", "maven-help-plugin", "wagon-provider-api" }, "maven" ); - } - - public void testMatchGroupIdMavenMixed() throws Exception - { - assertQueryMatch( ArtifactKeys.GROUPID, new String[] { "archiva-common", "continuum-webapp", - "maven-archetype-simple", "maven-help-plugin", "wagon-provider-api" }, "Maven" ); - } - - public void testMatchGroupIdInvalid() throws Exception - { - assertQueryMatchNoResults( ArtifactKeys.GROUPID, "foo" ); - } - - public void testMatchArtifactIdPlugin() throws Exception - { - assertQueryMatch( ArtifactKeys.ARTIFACTID, new String[] { "maven-help-plugin" }, "plugin" ); - } - - public void testMatchArtifactIdMaven() throws Exception - { - assertQueryMatch( ArtifactKeys.ARTIFACTID, new String[] { "maven-help-plugin", "maven-archetype-simple" }, - "maven" ); - } - - public void testMatchArtifactIdHelp() throws Exception - { - assertQueryMatch( ArtifactKeys.ARTIFACTID, new String[] { "maven-help-plugin" }, "help" ); - } - - public void testMatchVersionOne() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, new String[] { "daytrader-ear", "testng", "archiva-common", - "redback-authorization-open", "maven-archetype-simple", "continuum-webapp", "wagon-provider-api" }, "1" ); - } - - public void testMatchVersionOneOh() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, new String[] { "archiva-common", "continuum-webapp", - "maven-archetype-simple", "redback-authorization-open", "wagon-provider-api" }, "1.0" ); - } - - public void testMatchVersionSnapshotLower() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, new String[] { "continuum-webapp", "redback-authorization-open" }, - "snapshot" ); - } - - public void testMatchVersionSnapshotUpper() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, new String[] { "continuum-webapp", "redback-authorization-open" }, - "SNAPSHOT" ); - } - - public void testMatchVersionAlpha() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, - new String[] { "maven-archetype-simple", "redback-authorization-open" }, "alpha" ); - } - - public void testMatchVersionOneAlpha() throws Exception - { - assertQueryMatch( ArtifactKeys.VERSION, new String[] { "redback-authorization-open" }, "1.0-alpha-1" ); - } - - public void testMatchVersionInvalid() throws Exception - { - assertQueryMatchNoResults( ArtifactKeys.VERSION, "255" ); - } - - public void testMatchClassifierNotJdk15() throws Exception - { - BooleanQuery bQuery = new BooleanQuery(); - bQuery.add( new MatchAllDocsQuery(), BooleanClause.Occur.MUST ); - bQuery.add( createMatchQuery( ArtifactKeys.CLASSIFIER, "jdk15" ), BooleanClause.Occur.MUST_NOT ); - List results = search( bQuery ); - - assertResults( new String[] { "archiva-common", "continuum-webapp", "redback-authorization-open", - "daytrader-ear", "maven-archetype-simple", "maven-help-plugin", "wagon-provider-api" }, results ); - } - - public void testMatchClassifierJdk15() throws Exception - { - assertQueryMatch( ArtifactKeys.CLASSIFIER, new String[] { "testng" }, "jdk15" ); - } - - public void testMatchClassifierInvalid() throws Exception - { - assertQueryMatchNoResults( ArtifactKeys.CLASSIFIER, "redo" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/query/AllTests.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/query/AllTests.java deleted file mode 100644 index fb848fdf2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/query/AllTests.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.apache.maven.archiva.indexer.query; - -/* - * 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 junit.framework.Test; -import junit.framework.TestSuite; - -/** - * AllTests - conveinence test suite for IDE users. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AllTests -{ - - public static Test suite() - { - TestSuite suite = new TestSuite( "Test for org.apache.maven.archiva.indexer.query" ); - //$JUnit-BEGIN$ - suite.addTestSuite( QueryTest.class ); - //$JUnit-END$ - return suite; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/query/QueryTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/query/QueryTest.java deleted file mode 100644 index b0cc88e98..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/query/QueryTest.java +++ /dev/null @@ -1,159 +0,0 @@ -package org.apache.maven.archiva.indexer.query; - -/* - * 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 junit.framework.TestCase; - -import java.util.Iterator; - -/** - * @author Brett Porter - */ -public class QueryTest - extends TestCase -{ - private QueryTerm term1 = new QueryTerm( "field1", "value1" ); - - private QueryTerm term2 = new QueryTerm( "field2", "value2" ); - - private QueryTerm term3 = new QueryTerm( "field3", "value3" ); - - public void testQueryTerm() - { - QueryTerm query = new QueryTerm( "Field", "Value" ); - assertEquals( "check field setting", "Field", query.getField() ); - assertEquals( "check value setting", "Value", query.getValue() ); - } - - public void testSingleTermQuery() - { - SingleTermQuery query = new SingleTermQuery( "Field", "Value" ); - assertEquals( "check field setting", "Field", query.getField() ); - assertEquals( "check value setting", "Value", query.getValue() ); - - query = new SingleTermQuery( term1 ); - assertEquals( "check field setting", "field1", query.getField() ); - assertEquals( "check value setting", "value1", query.getValue() ); - } - - public void testRangeQueryOpen() - { - RangeQuery rangeQuery = RangeQuery.createOpenRange(); - assertNull( "Check range has no start", rangeQuery.getBegin() ); - assertNull( "Check range has no end", rangeQuery.getEnd() ); - } - - public void testRangeQueryExclusive() - { - RangeQuery rangeQuery = RangeQuery.createExclusiveRange( term1, term2 ); - assertEquals( "Check range start", term1, rangeQuery.getBegin() ); - assertEquals( "Check range end", term2, rangeQuery.getEnd() ); - assertFalse( "Check exclusive", rangeQuery.isInclusive() ); - } - - public void testRangeQueryInclusive() - { - RangeQuery rangeQuery = RangeQuery.createInclusiveRange( term1, term2 ); - assertEquals( "Check range start", term1, rangeQuery.getBegin() ); - assertEquals( "Check range end", term2, rangeQuery.getEnd() ); - assertTrue( "Check inclusive", rangeQuery.isInclusive() ); - } - - public void testRangeQueryOpenEnded() - { - RangeQuery rangeQuery = RangeQuery.createGreaterThanOrEqualToRange( term1 ); - assertEquals( "Check range start", term1, rangeQuery.getBegin() ); - assertNull( "Check range end", rangeQuery.getEnd() ); - assertTrue( "Check inclusive", rangeQuery.isInclusive() ); - - rangeQuery = RangeQuery.createGreaterThanRange( term1 ); - assertEquals( "Check range start", term1, rangeQuery.getBegin() ); - assertNull( "Check range end", rangeQuery.getEnd() ); - assertFalse( "Check exclusive", rangeQuery.isInclusive() ); - - rangeQuery = RangeQuery.createLessThanOrEqualToRange( term1 ); - assertNull( "Check range start", rangeQuery.getBegin() ); - assertEquals( "Check range end", term1, rangeQuery.getEnd() ); - assertTrue( "Check inclusive", rangeQuery.isInclusive() ); - - rangeQuery = RangeQuery.createLessThanRange( term1 ); - assertNull( "Check range start", rangeQuery.getBegin() ); - assertEquals( "Check range end", term1, rangeQuery.getEnd() ); - assertFalse( "Check exclusive", rangeQuery.isInclusive() ); - } - - public void testCompundQuery() - { - CompoundQuery query = new CompoundQuery(); - assertTrue( "check query is empty", query.getCompoundQueryTerms().isEmpty() ); - - query.and( term1 ); - query.or( term2 ); - query.not( term3 ); - - Iterator i = query.getCompoundQueryTerms().iterator(); - CompoundQueryTerm term = (CompoundQueryTerm) i.next(); - assertEquals( "Check first term", "field1", getQuery( term ).getField() ); - assertEquals( "Check first term", "value1", getQuery( term ).getValue() ); - assertTrue( "Check first term", term.isRequired() ); - assertFalse( "Check first term", term.isProhibited() ); - - term = (CompoundQueryTerm) i.next(); - assertEquals( "Check second term", "field2", getQuery( term ).getField() ); - assertEquals( "Check second term", "value2", getQuery( term ).getValue() ); - assertFalse( "Check second term", term.isRequired() ); - assertFalse( "Check second term", term.isProhibited() ); - - term = (CompoundQueryTerm) i.next(); - assertEquals( "Check third term", "field3", getQuery( term ).getField() ); - assertEquals( "Check third term", "value3", getQuery( term ).getValue() ); - assertFalse( "Check third term", term.isRequired() ); - assertTrue( "Check third term", term.isProhibited() ); - - CompoundQuery query2 = new CompoundQuery(); - query2.and( query ); - query2.or( new SingleTermQuery( term2 ) ); - query2.not( new SingleTermQuery( term3 ) ); - - i = query2.getCompoundQueryTerms().iterator(); - term = (CompoundQueryTerm) i.next(); - assertEquals( "Check first term", query, term.getQuery() ); - assertTrue( "Check first term", term.isRequired() ); - assertFalse( "Check first term", term.isProhibited() ); - - term = (CompoundQueryTerm) i.next(); - assertEquals( "Check second term", "field2", getQuery( term ).getField() ); - assertEquals( "Check second term", "value2", getQuery( term ).getValue() ); - assertFalse( "Check second term", term.isRequired() ); - assertFalse( "Check second term", term.isProhibited() ); - - term = (CompoundQueryTerm) i.next(); - assertEquals( "Check third term", "field3", getQuery( term ).getField() ); - assertEquals( "Check third term", "value3", getQuery( term ).getValue() ); - assertFalse( "Check third term", term.isRequired() ); - assertTrue( "Check third term", term.isProhibited() ); - } - - private static SingleTermQuery getQuery( CompoundQueryTerm term ) - { - return (SingleTermQuery) term.getQuery(); - } -} - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/BytecodeIndexPopulator.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/BytecodeIndexPopulator.java deleted file mode 100644 index 4587ef7a7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/BytecodeIndexPopulator.java +++ /dev/null @@ -1,141 +0,0 @@ -package org.apache.maven.archiva.indexer.search; - -/* - * 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.indexer.bytecode.BytecodeRecord; -import org.apache.maven.archiva.indexer.bytecode.BytecodeRecordLoader; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.io.File; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; - -import junit.framework.AssertionFailedError; - -/** - * BytecodeIndexPopulator - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BytecodeIndexPopulator - implements IndexPopulator -{ - - public Map getObjectMap() - { - - Map dumps = new HashMap(); - - // archiva-common-1.0.jar.txt - dumps.put( "archiva-common", - createArchivaArtifact( "org.apache.maven.archiva", "archiva-common", "1.0", "", "jar" ) ); - - // continuum-webapp-1.0.3-SNAPSHOT.war.txt - dumps.put( "continuum-webapp", createArchivaArtifact( "org.apache.maven.continuum", "continuum-webapp", - "1.0.3-SNAPSHOT", "", "war" ) ); - - // daytrader-ear-1.1.ear.txt - dumps.put( "daytrader-ear", createArchivaArtifact( "org.apache.geronimo", "daytrader-ear", "1.1", "", "ear" ) ); - - // maven-archetype-simple-1.0-alpha-4.jar.txt - dumps.put( "maven-archetype-simple", createArchivaArtifact( "org.apache.maven", "maven-archetype-simple", - "1.0-alpha-4", "", "maven-archetype" ) ); - - // maven-help-plugin-2.0.2-20070119.121239-2.jar.txt - dumps.put( "maven-help-plugin", createArchivaArtifact( "org.apache.maven.plugins", "maven-help-plugin", - "2.0.2-20070119.121239-2", "", "maven-plugin" ) ); - - // redback-authorization-open-1.0-alpha-1-SNAPSHOT.jar.txt - dumps.put( "redback-authorization-open", createArchivaArtifact( "org.codehaus.plexus.redback", - "redback-authorization-open", - "1.0-alpha-1-SNAPSHOT", "", "jar" ) ); - - // testng-5.1-jdk15.jar.txt - dumps.put( "testng", createArchivaArtifact( "org.testng", "testng", "5.1", "jdk15", "jar" ) ); - - // wagon-provider-api-1.0-beta-3-20070209.213958-2.jar.txt - dumps.put( "wagon-provider-api", createArchivaArtifact( "org.apache.maven.wagon", "wagon-provider-api", - "1.0-beta-3-20070209.213958-2", "", "jar" ) ); - - return dumps; - - } - - private ArchivaArtifact createArchivaArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - { - ArchivaArtifact artifact = new ArchivaArtifact( groupId, artifactId, version, classifier, type ); - return artifact; - } - - public Map populate( File basedir ) - { - Map records = new HashMap(); - - for ( Entry entry : getObjectMap().entrySet() ) - { - ArchivaArtifact artifact = entry.getValue(); - File dumpFile = getDumpFile( basedir, artifact ); - BytecodeRecord record = BytecodeRecordLoader.loadRecord( dumpFile, artifact ); - record.setRepositoryId( "test-repo" ); - records.put( entry.getKey(), record ); - } - - return records; - } - - protected File getDumpFile( File basedir, ArchivaArtifact artifact ) - { - File dumpDir = new File( basedir, "src/test/artifact-dumps" ); - StringBuffer filename = new StringBuffer(); - - filename.append( artifact.getArtifactId() ).append( "-" ).append( artifact.getVersion() ); - - if ( artifact.hasClassifier() ) - { - filename.append( "-" ).append( artifact.getClassifier() ); - } - - filename.append( "." ); - - // TODO: use the ArtifactExtensionMapping object - if ( "maven-plugin".equals( artifact.getType() ) || "maven-archetype".equals( artifact.getType() ) ) - { - filename.append( "jar" ); - } - else - { - filename.append( artifact.getType() ); - } - filename.append( ".txt" ); - - File dumpFile = new File( dumpDir, filename.toString() ); - - if ( !dumpFile.exists() ) - { - throw new AssertionFailedError( - "Dump file " + dumpFile.getAbsolutePath() + " does not exist (should it?)." ); - } - - return dumpFile; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java deleted file mode 100644 index 005e3e719..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java +++ /dev/null @@ -1,337 +0,0 @@ -package org.apache.maven.archiva.indexer.search; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.lucene.search.Hits; -import org.apache.lucene.search.MatchAllDocsQuery; -import org.apache.lucene.search.Query; -import org.apache.lucene.search.Searcher; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.indexer.MockConfiguration; -import org.apache.maven.archiva.indexer.RepositoryContentIndex; -import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory; -import org.apache.maven.archiva.indexer.bytecode.BytecodeRecord; -import org.apache.maven.archiva.indexer.filecontent.FileContentRecord; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesRecord; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -/** - * DefaultCrossRepositorySearchTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DefaultCrossRepositorySearchTest - extends PlexusInSpringTestCase -{ - private static final String TEST_DEFAULT_REPOSITORY_NAME = "Test Default Repository"; - - private static final String TEST_DEFAULT_REPO_ID = "testDefaultRepo"; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - RepositoryContentIndexFactory indexFactory = - (RepositoryContentIndexFactory) lookup( RepositoryContentIndexFactory.class - .getName(), "lucene" ); - - File repoDir = new File( getBasedir(), "src/test/managed-repository" ); - - assertTrue( "Default Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() ); - - ManagedRepositoryConfiguration repository = createRepository( TEST_DEFAULT_REPO_ID, TEST_DEFAULT_REPOSITORY_NAME, repoDir ); - - File indexLocation = new File( "target/index-crossrepo-" + getName() + "/" ); - - MockConfiguration config = (MockConfiguration) lookup( ArchivaConfiguration.class.getName(), "mock" ); - - ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration(); - repoConfig.setId( TEST_DEFAULT_REPO_ID ); - repoConfig.setName( TEST_DEFAULT_REPOSITORY_NAME ); - repoConfig.setLocation( repoDir.getAbsolutePath() ); - repoConfig.setIndexDir( indexLocation.getAbsolutePath() ); - repoConfig.setScanned( true ); - - if ( indexLocation.exists() ) - { - FileUtils.deleteDirectory( indexLocation ); - } - - config.getConfiguration().addManagedRepository( repoConfig ); - - // Create the (empty) indexes. - RepositoryContentIndex indexHashcode = indexFactory.createHashcodeIndex( repository ); - RepositoryContentIndex indexBytecode = indexFactory.createBytecodeIndex( repository ); - RepositoryContentIndex indexContents = indexFactory.createFileContentIndex( repository ); - - // Now populate them. - Map hashcodesMap = new HashcodesIndexPopulator().populate( new File( getBasedir() ) ); - indexHashcode.indexRecords( hashcodesMap.values() ); - assertEquals( "Hashcode Key Count", hashcodesMap.size(), indexHashcode.getAllRecordKeys().size() ); - assertRecordCount( indexHashcode, hashcodesMap.size() ); - - Map bytecodeMap = new BytecodeIndexPopulator().populate( new File( getBasedir() ) ); - indexBytecode.indexRecords( bytecodeMap.values() ); - assertEquals( "Bytecode Key Count", bytecodeMap.size(), indexBytecode.getAllRecordKeys().size() ); - assertRecordCount( indexBytecode, bytecodeMap.size() ); - - Map contentMap = new FileContentIndexPopulator().populate( new File( getBasedir() ) ); - indexContents.indexRecords( contentMap.values() ); - assertEquals( "File Content Key Count", contentMap.size(), indexContents.getAllRecordKeys().size() ); - assertRecordCount( indexContents, contentMap.size() ); - } - - private void assertRecordCount( RepositoryContentIndex index, int expectedCount ) - throws Exception - { - Query query = new MatchAllDocsQuery(); - Searcher searcher = (Searcher) index.getSearchable(); - Hits hits = searcher.search( query ); - assertEquals( "Expected Record Count for " + index.getId(), expectedCount, hits.length() ); - } - - private CrossRepositorySearch lookupCrossRepositorySearch() - throws Exception - { - CrossRepositorySearch search = - (CrossRepositorySearch) lookup( CrossRepositorySearch.class.getName(), "default" ); - assertNotNull( "CrossRepositorySearch:default should not be null.", search ); - return search; - } - - public void testSearchTerm_Org() - throws Exception - { - CrossRepositorySearch search = lookupCrossRepositorySearch(); - - String expectedRepos[] = new String[] { - TEST_DEFAULT_REPO_ID - }; - - String expectedResults[] = new String[] { - "org","org2","org3","org4","org5","org6","org7" - }; - - assertSearchResults( expectedRepos, expectedResults, search, "org", null, false ); - } - - public void testSearchTerm_Junit() - throws Exception - { - CrossRepositorySearch search = lookupCrossRepositorySearch(); - - String expectedRepos[] = new String[] { - TEST_DEFAULT_REPO_ID - }; - - String expectedResults[] = new String[] { - "junit","junit2","junit3" - }; - - assertSearchResults( expectedRepos, expectedResults, search, "junit", null, false ); - } - - public void testSearchInvalidTerm() - throws Exception - { - CrossRepositorySearch search = lookupCrossRepositorySearch(); - - String expectedRepos[] = new String[] { - TEST_DEFAULT_REPO_ID - }; - - String expectedResults[] = new String[] { - // Nothing. - }; - - assertSearchResults( expectedRepos, expectedResults, search, "monosodium", null, false ); - } - - public void testSearchWithinSearchResults() - throws Exception - { - CrossRepositorySearch search = lookupCrossRepositorySearch(); - - String expectedRepos[] = new String[] { - TEST_DEFAULT_REPO_ID - }; - - String expectedResults[] = new String[] { - "org","org2","org3","org4","org5","org6","org7" - }; - - // first search - assertSearchResults( expectedRepos, expectedResults, search, "org", null, false ); - - List previousSearchTerms = new ArrayList(); - previousSearchTerms.add( "org" ); - String secondSearchExpectedResults[] = new String[] { - "org.apache.maven.archiva.record", "org.apache.maven.archiva.record2", - "org.apache.maven.archiva.record3", "org.apache.maven.archiva.record4", - "org.apache.maven.archiva.record5", "org.apache.maven.archiva.record6", - "org.apache.maven.archiva.record7" - }; - - //second search - assertSearchResults( expectedRepos, secondSearchExpectedResults, search, "org.apache.maven.archiva.record", - previousSearchTerms, false ); - - previousSearchTerms.add( "org.apache.maven.archiva.record" ); - String thirdSearchExpectedResults[] = new String[] { - "junit", "junit2", "junit3" - }; - - //third search - assertSearchResults( expectedRepos, thirdSearchExpectedResults, search, "junit", previousSearchTerms, false ); - } - - public void testSearchForClassesAndPackages() - throws Exception - { - CrossRepositorySearch search = lookupCrossRepositorySearch(); - - String expectedRepos[] = new String[] { - TEST_DEFAULT_REPO_ID - }; - - String expectedResults[] = new String[] { - "archiva-common-1.0.jar" - }; - - // class with packagename search - assertSearchResults( expectedRepos, expectedResults, search, - "org.apache.maven.archiva.common.utils.BaseFile", null, true ); - // class name search - assertSearchResults( expectedRepos, expectedResults, search, - "BaseFile", null, true ); - - String expectedMethodSearchResults[] = new String[] { - "continuum-webapp-1.0.3-SNAPSHOT.war" - }; - - // method search - assertSearchResults( expectedRepos, expectedMethodSearchResults, search, - "org.apache.maven.continuum.web.action.BuildDefinitionAction.isBuildFresh", null, true ); - } - - public void testExecuteFilteredSearch() - throws Exception - { - CrossRepositorySearch search = lookupCrossRepositorySearch(); - - String expectedRepos[] = new String[] { TEST_DEFAULT_REPO_ID }; - - String expectedResults[] = new String[] { "org1", "org2", "org3", "org4", "org5", "org6", "org7", "org8" }; - - String secondExpectedResults[] = new String[] { "continuum-webapp" }; - - String thirdExpectedResults[] = new String[] { "archiva-common" }; - - // search for groupId - assertFilteredSearchResults( expectedRepos, expectedResults, search, "org", null, null, null, 30 ); - - // search for groupId and artifactId - assertFilteredSearchResults( expectedRepos, secondExpectedResults, search, "org.apache.maven", - "continuum-webapp", null, null, 30 ); - - // search for groupId , artifactId and version - assertFilteredSearchResults( expectedRepos, thirdExpectedResults, search, "org.apache.maven.archiva", - "archiva-common", "1.0", null, 30 ); - } - - private void assertFilteredSearchResults ( String expectedRepos[], String expectedResults[], CrossRepositorySearch search, - String groupId, String artifactId, String version, String className , int rowCount ) - { - SearchResultLimits limits = new SearchResultLimits( 0 ); - limits.setPageSize( rowCount ); - - List selectedRepos = new ArrayList(); - selectedRepos.addAll( Arrays.asList( expectedRepos ) ); - - SearchResults results = null; - - results = search.executeFilteredSearch( "guest" , selectedRepos, groupId, artifactId, version, className, limits ); - - assertNotNull( "Search Results should not be null.", results ); - assertEquals( "Repository Hits", expectedRepos.length, results.getRepositories().size() ); - assertEquals( expectedRepos.length, 1); - assertEquals( TEST_DEFAULT_REPO_ID , selectedRepos.get( 0 ) ); - assertEquals( "Search Result Hits", expectedResults.length, results.getHits().size() ); - } - - private void assertSearchResults( String expectedRepos[], String expectedResults[], CrossRepositorySearch search, - String term, List previousSearchTerms, boolean bytecode ) - throws Exception - { - SearchResultLimits limits = new SearchResultLimits( 0 ); - limits.setPageSize( 20 ); - - List selectedRepos = new ArrayList(); - selectedRepos.addAll( Arrays.asList( expectedRepos ) ); - - SearchResults results = null; - - if( previousSearchTerms == null ) - { - if( bytecode ) - { - results = search.searchForBytecode( "guest", selectedRepos, term, limits ); - } - else - { - results = search.searchForTerm( "guest", selectedRepos, term, limits ); - } - } - else - { - results = search.searchForTerm( "guest", selectedRepos, term, limits, previousSearchTerms ); - } - - - assertNotNull( "Search Results should not be null.", results ); - assertEquals( "Repository Hits", expectedRepos.length, results.getRepositories().size() ); - - // TODO: test the repository ids returned. - - assertEquals( "Search Result Hits", expectedResults.length, results.getHits().size() ); - // TODO: test the order of hits. - // TODO: test the value of the hits. - } - - 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; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/FileContentIndexPopulator.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/FileContentIndexPopulator.java deleted file mode 100644 index 326061d56..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/FileContentIndexPopulator.java +++ /dev/null @@ -1,94 +0,0 @@ -package org.apache.maven.archiva.indexer.search; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.indexer.filecontent.FileContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.io.File; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -import junit.framework.AssertionFailedError; - -/** - * FileContentIndexPopulator - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FileContentIndexPopulator - implements IndexPopulator -{ - public Map getObjectMap() - { - return null; - } - - public Map populate( File basedir ) - { - Map map = new HashMap(); - - File repoDir = new File( basedir, "src/test/managed-repository" ); - - String prefix = "org/apache/maven/archiva/record/"; - - map.put( "parent-pom-1", createFileContentRecord( repoDir, prefix + "parent-pom/1/parent-pom-1.pom" ) ); - map.put( "child-pom-1.0-SNAPSHOT", createFileContentRecord( repoDir, prefix - + "test-child-pom/1.0-SNAPSHOT/test-child-pom-1.0-20060728.121314-1.pom" ) ); - map.put( "test-archetype-1.0", createFileContentRecord( repoDir, prefix - + "test-archetype/1.0/test-archetype-1.0.pom" ) ); - map.put( "test-jar-and-pom-1.0-alpha-1", createFileContentRecord( repoDir, prefix - + "test-jar-and-pom/1.0-alpha-1/test-jar-and-pom-1.0-alpha-1.pom" ) ); - map.put( "test-plugin-1.0", createFileContentRecord( repoDir, prefix + "test-plugin/1.0/test-plugin-1.0.pom" ) ); - map.put( "test-pom-1.0", createFileContentRecord( repoDir, prefix + "test-pom/1.0/test-pom-1.0.pom" ) ); - map.put( "test-skin-1.0", createFileContentRecord( repoDir, prefix + "test-skin/1.0/test-skin-1.0.pom" ) ); - - return map; - } - - private FileContentRecord createFileContentRecord( File repoDir, String path ) - { - File pathToFile = new File( repoDir, path ); - - if ( !pathToFile.exists() ) - { - throw new AssertionFailedError( "Can't find test file: " + pathToFile.getAbsolutePath() ); - } - - FileContentRecord record = new FileContentRecord(); - record.setRepositoryId( "test-repo" ); - record.setFilename( path ); - - try - { - record.setContents( FileUtils.readFileToString( pathToFile, null ) ); - } - catch ( IOException e ) - { - e.printStackTrace(); - throw new AssertionFailedError( "Can't load test file contents: " + pathToFile.getAbsolutePath() ); - } - - return record; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/HashcodesIndexPopulator.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/HashcodesIndexPopulator.java deleted file mode 100644 index ad2c7dc41..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/HashcodesIndexPopulator.java +++ /dev/null @@ -1,139 +0,0 @@ -package org.apache.maven.archiva.indexer.search; - -/* - * 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.indexer.hashcodes.HashcodesRecord; -import org.apache.maven.archiva.indexer.hashcodes.HashcodesRecordLoader; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.io.File; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; - -import junit.framework.AssertionFailedError; - -/** - * HashcodesIndexPopulator - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class HashcodesIndexPopulator - implements IndexPopulator -{ - - public Map getObjectMap() - { - Map dumps = new HashMap(); - - // archiva-common-1.0.jar.txt - dumps.put( "archiva-common", - createArchivaArtifact( "org.apache.maven.archiva", "archiva-common", "1.0", "", "jar" ) ); - - // continuum-webapp-1.0.3-SNAPSHOT.war.txt - dumps.put( "continuum-webapp", createArchivaArtifact( "org.apache.maven.continuum", "continuum-webapp", - "1.0.3-SNAPSHOT", "", "war" ) ); - - // daytrader-ear-1.1.ear.txt - dumps.put( "daytrader-ear", createArchivaArtifact( "org.apache.geronimo", "daytrader-ear", "1.1", "", "ear" ) ); - - // maven-archetype-simple-1.0-alpha-4.jar.txt - dumps.put( "maven-archetype-simple", createArchivaArtifact( "org.apache.maven", "maven-archetype-simple", - "1.0-alpha-4", "", "maven-archetype" ) ); - - // maven-help-plugin-2.0.2-20070119.121239-2.jar.txt - dumps.put( "maven-help-plugin", createArchivaArtifact( "org.apache.maven.plugins", "maven-help-plugin", - "2.0.2-20070119.121239-2", "", "maven-plugin" ) ); - - // redback-authorization-open-1.0-alpha-1-SNAPSHOT.jar.txt - dumps.put( "redback-authorization-open", createArchivaArtifact( "org.codehaus.plexus.redback", - "redback-authorization-open", - "1.0-alpha-1-SNAPSHOT", "", "jar" ) ); - - // testng-5.1-jdk15.jar.txt - dumps.put( "testng", createArchivaArtifact( "org.testng", "testng", "5.1", "jdk15", "jar" ) ); - - // wagon-provider-api-1.0-beta-3-20070209.213958-2.jar.txt - dumps.put( "wagon-provider-api", createArchivaArtifact( "org.apache.maven.wagon", "wagon-provider-api", - "1.0-beta-3-20070209.213958-2", "", "jar" ) ); - - return dumps; - } - - public Map populate( File basedir ) - { - Map records = new HashMap(); - - for ( Entry entry : getObjectMap().entrySet() ) - { - ArchivaArtifact artifact = entry.getValue(); - File dumpFile = getDumpFile( basedir, artifact ); - HashcodesRecord record = HashcodesRecordLoader.loadRecord( dumpFile, artifact ); - record.setRepositoryId( "test-repo" ); - records.put( entry.getKey(), record ); - } - - return records; - } - - protected File getDumpFile( File basedir, ArchivaArtifact artifact ) - { - File dumpDir = new File( basedir, "src/test/artifact-dumps" ); - StringBuffer filename = new StringBuffer(); - - filename.append( artifact.getArtifactId() ).append( "-" ).append( artifact.getVersion() ); - - if ( artifact.hasClassifier() ) - { - filename.append( "-" ).append( artifact.getClassifier() ); - } - - filename.append( "." ); - - // TODO: use the ArtifactExtensionMapping object - if ( "maven-plugin".equals( artifact.getType() ) || "maven-archetype".equals( artifact.getType() ) ) - { - filename.append( "jar" ); - } - else - { - filename.append( artifact.getType() ); - } - filename.append( ".txt" ); - - File dumpFile = new File( dumpDir, filename.toString() ); - - if ( !dumpFile.exists() ) - { - throw new AssertionFailedError( - "Dump file " + dumpFile.getAbsolutePath() + " does not exist (should it?)." ); - } - - return dumpFile; - } - - private ArchivaArtifact createArchivaArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - { - ArchivaArtifact artifact = new ArchivaArtifact( groupId, artifactId, version, classifier, type ); - return artifact; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/IndexPopulator.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/IndexPopulator.java deleted file mode 100644 index 6f4892dac..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/IndexPopulator.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.apache.maven.archiva.indexer.search; - -/* - * 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.indexer.lucene.LuceneRepositoryContentRecord; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.io.File; -import java.util.Map; - -/** - * IndexPopulator - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface IndexPopulator -{ - public Map getObjectMap(); - - public Map populate( File basedir ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/parent-pom/1/parent-pom-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/parent-pom/1/parent-pom-1.pom deleted file mode 100644 index b4d864fdb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/parent-pom/1/parent-pom-1.pom +++ /dev/null @@ -1,41 +0,0 @@ - - - 4.0.0 - org.apache.maven.archiva.record - parent-pom - 1 - pom - Test Parent POM - Description - 2005 - - - junit - junit - 3.8.1 - test - - - - test-child-pom - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-archetype/1.0/test-archetype-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-archetype/1.0/test-archetype-1.0.jar deleted file mode 100644 index 6b5db4295628cddf9b2353c3b28b199e983b92ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4371 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 - - - 4.0.0 - org.apache.maven.archiva.record - test-archetype - 1.0 - Archetype - test-archetype - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-child-pom/1.0-SNAPSHOT/test-child-pom-1.0-20060728.121314-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-child-pom/1.0-SNAPSHOT/test-child-pom-1.0-20060728.121314-1.jar deleted file mode 100644 index b78be2eb81b2dae5b108881937300447b7d9ce7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 zcmWIWW@Zs#-~hrSYk!(BAOTJW76xC}5Jz24KR5kbe@5RzpESxi5 zO1@BAI!#4NGlOONGtD1qYT{4D!^NgAc_yY^@l5q~=BJ{MMT}s#?5<2%?FF<6gb{Ap zh~^P?psb@_a!z7#v8&%%zJmz@b8=TN?OG-N;K_4`M_wvQg+hEs{%XtrToSeNQyiaC z;RgmeuQ$&h8CmbPo;maT^Pfx?+|Ro5J+;wdjrbrNBFn-e)RIsp5Pq@SWzT!v%^^pB zGai&%6_KjkbTex`=QWj^UQVgYk}UVjIL}g-b-*&8CYx5*fVanB= z`@AphvY4w>nOCvlVZoyr5B@WYKXlA9GT9N*S1rV&``hr6S&v@6?>^!4NzWNyu^f|q z_EufXXxE=BcbZPVFf(%*>1g= z=kwpa_6*lJY9lyodTe?)rwHzG>GC-u-L(7a(!4U3?0q`~-t5?=l3 zRH|T_{)NkX*nO_g5WD>R?%@yoAn)5UoZ7bn==c*r4Dud!@3Vltmy9O>xS=YXVQIvg z>rjBe9N#n7e{`#F_!KO$AvA|6Y*A~{|G1h{!oCVF?^6|AYJW}gD%4faXc=zX@ z`|dHQz4*1^LdnHX0nWD_k2`u8@JG6FOjj=yz8JaWct-FOD_cL#Z$8U+&Dfk~a7Qq! za9eoGwV>r$rF%W5=C|5>K5{?hx=kQ=tdOYYRH<6Mp zC~qRbNgxxNQ$d=z7_dhv%;gY`Cm12=8{tflCCG^bl)@3<1z0^az2mb6HCT=VZB5b# kr6W{}kb@bNk`Uk}R0lL&1$eWvfh5_1um$LbXUrfT0LLw<`v3p{ diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-child-pom/1.0-SNAPSHOT/test-child-pom-1.0-20060728.121314-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-child-pom/1.0-SNAPSHOT/test-child-pom-1.0-20060728.121314-1.pom deleted file mode 100644 index 7c2b68f67..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-child-pom/1.0-SNAPSHOT/test-child-pom-1.0-20060728.121314-1.pom +++ /dev/null @@ -1,31 +0,0 @@ - - - - 4.0.0 - - org.apache.maven.archiva.record - parent-pom - 1 - - test-child-pom - 1.0-20060731-121314-1 - Child Project - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-corrupt-jar/1.0/test-corrupt-jar-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-corrupt-jar/1.0/test-corrupt-jar-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-dll/1.0.1.34/test-dll-1.0.1.34.dll b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-dll/1.0.1.34/test-dll-1.0.1.34.dll deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar-and-pom/1.0-alpha-1/test-jar-and-pom-1.0-alpha-1-jdk14.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar-and-pom/1.0-alpha-1/test-jar-and-pom-1.0-alpha-1-jdk14.jar deleted file mode 100644 index b78be2eb81b2dae5b108881937300447b7d9ce7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 zcmWIWW@Zs#-~hrSYk!(BAOTJW76xC}5Jz24KR5kbe@5RzpESxi5 zO1@BAI!#4NGlOONGtD1qYT{4D!^NgAc_yY^@l5q~=BJ{MMT}s#?5<2%?FF<6gb{Ap zh~^P?psb@_a!z7#v8&%%zJmz@b8=TN?OG-N;K_4`M_wvQg+hEs{%XtrToSeNQyiaC z;RgmeuQ$&h8CmbPo;maT^Pfx?+|Ro5J+;wdjrbrNBFn-e)RIsp5Pq@SWzT!v%^^pB zGai&%6_KjkbTex`=QWj^UQVgYk}UVjIL}g-b-*&8CYx5*fVanB= z`@AphvY4w>nOCvlVZoyr5B@WYKXlA9GT9N*S1rV&``hr6S&v@6?>^!4NzWNyu^f|q z_EufXXxE=BcbZPVFf(%*>1g= z=kwpa_6*lJY9lyodTe?)rwHzG>GC-u-L(7a(!4U3?0q`~-t5?=l3 zRH|T_{)NkX*nO_g5WD>R?%@yoAn)5UoZ7bn==c*r4Dud!@3Vltmy9O>xS=YXVQIvg z>rjBe9N#n7e{`#F_!KO$AvA|6Y*A~{|G1h{!oCVF?^6|AYJW}gD%4faXc=zX@ z`|dHQz4*1^LdnHX0nWD_k2`u8@JG6FOjj=yz8JaWct-FOD_cL#Z$8U+&Dfk~a7Qq! za9eoGwV>r$rF%W5=C|5>K5{?hx=kQ=tdOYYRH<6Mp zC~qRbNgxxNQ$d=z7_dhv%;gY`Cm12=8{tflCCG^bl)@3<1z0^az2mb6HCT=VZB5b# kr6W{}kb@bNk`Uk}R0lL&1$eWvfh5_1um$LbXUrfT0LLw<`v3p{ diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar-and-pom/1.0-alpha-1/test-jar-and-pom-1.0-alpha-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar-and-pom/1.0-alpha-1/test-jar-and-pom-1.0-alpha-1.jar deleted file mode 100644 index b78be2eb81b2dae5b108881937300447b7d9ce7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 zcmWIWW@Zs#-~hrSYk!(BAOTJW76xC}5Jz24KR5kbe@5RzpESxi5 zO1@BAI!#4NGlOONGtD1qYT{4D!^NgAc_yY^@l5q~=BJ{MMT}s#?5<2%?FF<6gb{Ap zh~^P?psb@_a!z7#v8&%%zJmz@b8=TN?OG-N;K_4`M_wvQg+hEs{%XtrToSeNQyiaC z;RgmeuQ$&h8CmbPo;maT^Pfx?+|Ro5J+;wdjrbrNBFn-e)RIsp5Pq@SWzT!v%^^pB zGai&%6_KjkbTex`=QWj^UQVgYk}UVjIL}g-b-*&8CYx5*fVanB= z`@AphvY4w>nOCvlVZoyr5B@WYKXlA9GT9N*S1rV&``hr6S&v@6?>^!4NzWNyu^f|q z_EufXXxE=BcbZPVFf(%*>1g= z=kwpa_6*lJY9lyodTe?)rwHzG>GC-u-L(7a(!4U3?0q`~-t5?=l3 zRH|T_{)NkX*nO_g5WD>R?%@yoAn)5UoZ7bn==c*r4Dud!@3Vltmy9O>xS=YXVQIvg z>rjBe9N#n7e{`#F_!KO$AvA|6Y*A~{|G1h{!oCVF?^6|AYJW}gD%4faXc=zX@ z`|dHQz4*1^LdnHX0nWD_k2`u8@JG6FOjj=yz8JaWct-FOD_cL#Z$8U+&Dfk~a7Qq! za9eoGwV>r$rF%W5=C|5>K5{?hx=kQ=tdOYYRH<6Mp zC~qRbNgxxNQ$d=z7_dhv%;gY`Cm12=8{tflCCG^bl)@3<1z0^az2mb6HCT=VZB5b# kr6W{}kb@bNk`Uk}R0lL&1$eWvfh5_1um$LbXUrfT0LLw<`v3p{ diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar-and-pom/1.0-alpha-1/test-jar-and-pom-1.0-alpha-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar-and-pom/1.0-alpha-1/test-jar-and-pom-1.0-alpha-1.pom deleted file mode 100644 index 4585fe6dd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar-and-pom/1.0-alpha-1/test-jar-and-pom-1.0-alpha-1.pom +++ /dev/null @@ -1,50 +0,0 @@ - - - - 4.0.0 - org.apache.maven.archiva.record - test-jar-and-pom - 1.0-alpha-1 - Test JAR and POM - - - org.apache.maven - maven-project - 2.0 - - - junit - junit - 3.8.1 - test - - - - - brett - Brett Porter - brett@apache.org - - Developer - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar/1.0/test-jar-1.0-jdk14.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar/1.0/test-jar-1.0-jdk14.jar deleted file mode 100644 index b78be2eb81b2dae5b108881937300447b7d9ce7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 zcmWIWW@Zs#-~hrSYk!(BAOTJW76xC}5Jz24KR5kbe@5RzpESxi5 zO1@BAI!#4NGlOONGtD1qYT{4D!^NgAc_yY^@l5q~=BJ{MMT}s#?5<2%?FF<6gb{Ap zh~^P?psb@_a!z7#v8&%%zJmz@b8=TN?OG-N;K_4`M_wvQg+hEs{%XtrToSeNQyiaC z;RgmeuQ$&h8CmbPo;maT^Pfx?+|Ro5J+;wdjrbrNBFn-e)RIsp5Pq@SWzT!v%^^pB zGai&%6_KjkbTex`=QWj^UQVgYk}UVjIL}g-b-*&8CYx5*fVanB= z`@AphvY4w>nOCvlVZoyr5B@WYKXlA9GT9N*S1rV&``hr6S&v@6?>^!4NzWNyu^f|q z_EufXXxE=BcbZPVFf(%*>1g= z=kwpa_6*lJY9lyodTe?)rwHzG>GC-u-L(7a(!4U3?0q`~-t5?=l3 zRH|T_{)NkX*nO_g5WD>R?%@yoAn)5UoZ7bn==c*r4Dud!@3Vltmy9O>xS=YXVQIvg z>rjBe9N#n7e{`#F_!KO$AvA|6Y*A~{|G1h{!oCVF?^6|AYJW}gD%4faXc=zX@ z`|dHQz4*1^LdnHX0nWD_k2`u8@JG6FOjj=yz8JaWct-FOD_cL#Z$8U+&Dfk~a7Qq! za9eoGwV>r$rF%W5=C|5>K5{?hx=kQ=tdOYYRH<6Mp zC~qRbNgxxNQ$d=z7_dhv%;gY`Cm12=8{tflCCG^bl)@3<1z0^az2mb6HCT=VZB5b# kr6W{}kb@bNk`Uk}R0lL&1$eWvfh5_1um$LbXUrfT0LLw<`v3p{ diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar/1.0/test-jar-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-jar/1.0/test-jar-1.0.jar deleted file mode 100644 index b78be2eb81b2dae5b108881937300447b7d9ce7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 zcmWIWW@Zs#-~hrSYk!(BAOTJW76xC}5Jz24KR5kbe@5RzpESxi5 zO1@BAI!#4NGlOONGtD1qYT{4D!^NgAc_yY^@l5q~=BJ{MMT}s#?5<2%?FF<6gb{Ap zh~^P?psb@_a!z7#v8&%%zJmz@b8=TN?OG-N;K_4`M_wvQg+hEs{%XtrToSeNQyiaC z;RgmeuQ$&h8CmbPo;maT^Pfx?+|Ro5J+;wdjrbrNBFn-e)RIsp5Pq@SWzT!v%^^pB zGai&%6_KjkbTex`=QWj^UQVgYk}UVjIL}g-b-*&8CYx5*fVanB= z`@AphvY4w>nOCvlVZoyr5B@WYKXlA9GT9N*S1rV&``hr6S&v@6?>^!4NzWNyu^f|q z_EufXXxE=BcbZPVFf(%*>1g= z=kwpa_6*lJY9lyodTe?)rwHzG>GC-u-L(7a(!4U3?0q`~-t5?=l3 zRH|T_{)NkX*nO_g5WD>R?%@yoAn)5UoZ7bn==c*r4Dud!@3Vltmy9O>xS=YXVQIvg z>rjBe9N#n7e{`#F_!KO$AvA|6Y*A~{|G1h{!oCVF?^6|AYJW}gD%4faXc=zX@ z`|dHQz4*1^LdnHX0nWD_k2`u8@JG6FOjj=yz8JaWct-FOD_cL#Z$8U+&Dfk~a7Qq! za9eoGwV>r$rF%W5=C|5>K5{?hx=kQ=tdOYYRH<6Mp zC~qRbNgxxNQ$d=z7_dhv%;gY`Cm12=8{tflCCG^bl)@3<1z0^az2mb6HCT=VZB5b# kr6W{}kb@bNk`Uk}R0lL&1$eWvfh5_1um$LbXUrfT0LLw<`v3p{ diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-plugin/1.0/test-plugin-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-plugin/1.0/test-plugin-1.0.jar deleted file mode 100644 index 1c0b105fe104533d7a743f776cfabce0d6694c74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4402 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 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-plugin/1.0/test-plugin-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-plugin/1.0/test-plugin-1.0.pom deleted file mode 100644 index a5d4a9043..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-plugin/1.0/test-plugin-1.0.pom +++ /dev/null @@ -1,41 +0,0 @@ - - - - 4.0.0 - org.apache.maven.archiva.record - test-plugin - maven-plugin - 1.0 - Maven Mojo Archetype - - - org.apache.maven - maven-plugin-api - 2.0 - - - junit - junit - 3.8.1 - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-pom/1.0/test-pom-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-pom/1.0/test-pom-1.0.pom deleted file mode 100644 index bff7d34cd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-pom/1.0/test-pom-1.0.pom +++ /dev/null @@ -1,30 +0,0 @@ - - - - 4.0.0 - org.apache.maven.archiva.record - test-pom - 1.0 - Maven Repository Manager Test POM - 2005 - Description - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-skin/1.0/test-skin-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-skin/1.0/test-skin-1.0.jar deleted file mode 100644 index 99bd1e78b9cc1ec2c08c0172aff92862fd25f269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3475 zcmbVO2{hDg7aue#WstE;2xA#ztSR)`-(lJTbI#n~?>_fA_xasxf@Ijk1X#DeEMCQp#gEs1 z+SgDAr6H|nq$^|c!)+g+m*%!)P4!8q{k=kaz(2bgY8dJ1>YPHs40X>&*D{5wvl3|8}q*}&ddHs>V~3ktR+t1h!Wc!@%PY+ z6}4<{eX6+=7-dcdld2eWOkPhVUMse&pu3gB26gHWCJ6rW{z&`-y(;9iof2Rp zC0Z8SwuiQI@bcRB*i8EJELK4u2mqL}0RZejJlxRU7yi>j^ zfAmoDGrscJNuxqvS39Ldo5;CV{+Uv+g~a~3AzfWDNJQP<#OpEKVpqfevY;jbQO>;d z?j}ITf^l!c9K@Vg(eAzBa2$v7MeEFhcusqWJmMATib9M_1h;|K3uWL}*0wGHJL@YE zO60X*%@%U$<1v$5$XquXF~kanWW|hHcY*iVCwJDj_9WnC1t$DvZq+#$Kk_9b&!|<~ zo~x?quRN08YxI#cjB+(un2nT(>>HxfYtIQ@`dbQe903%u053)s+fGFAh>Z$4$EzP; zmvaMCycjEyey%nYZo-&wnTMMzlMF7_li zE!+Qe>Njg9Q03DJ`P17SB&lhsNiuvN_BPw5? z#j7cNwX4r{piidp`{FZcm)~FRyyLh_a zp(5B|-g4N_foM0sP#*im3_9#OtRUByDIpvUHk6QUazyKTA33~I<(Z3d+c&)koVBiW zNpX{JP7coaWVQV?4B_Hrk|R6$1jTvF{DB6C$> zwpZCX7ZLZG^42$j(}@x)3*SVKBU5-5h&M~SrY|`uOya3)t<4%+tQhubSD)E=h3?|9OXIFmlUGrw`zQ%+(47)~eL7abZe za59c;pKQZE*WFwCs$4pY_VAR!A`E9ZmuSnR1Vnjg*@kgwC4WuN*yuws zzrlX0yI?a3@0`n0762clqaGiv#VXGsG1uTV?itBiZ!D%3)4#tYgc~PkR5)g*NnO|r zs#zH3y3KV@@lJsNbwFZLv}F168aeVy580MJ`XQ-x0y_{v5rY>&DA|G2^A8G&Yi7vx z<2o(HGC58UlwvznodjT%Mr8Sy&WE{pk1n2h$<*YQr1NLq%~QlxytKN4w))NPw!}h{ z-tD%up}*TYz1vxAw=>q$35Ld@9h@<+4K&Ql)x~{B>vwa&|8EXF#tSdKPPe_I&CU^g z{~hP-W5N*$D>^QaMtm97GRu9=u<{N8sU9hq&}heTup- zh!oHREzGt*Ct_68le{aa0jXX`Vk2h*dsS6JIt(HP>Q9`LmSaT`4Nzq_UWT_evD|n{ ze@tH>Bx&?4am0%FEa=L$(SYhkOYSIqOSV~&TlMX$D03rTO_rG6@jb%5elwr_7x8iNNBr4b<>CWQg-Wu z%#H(T)Ig!|uw*Nk{Y1vi!6*DePcImDCOMr~(l)narD(f8?#kTH*fCUKFwG(R{fPmc zmWFc$$n)MLhr3XIg0sN|OUFnT_It9g1V3ghG)G!Js!B~gGFda(9MVvc`d&Wfxs9W< zZ|k0sp|^>V)yN>>y;`^nzSjNzg0TlZI|$|6~KB#?Hr0Kk6QFPGLJ I+BeGfzkc{oH~;_u diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-skin/1.0/test-skin-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-skin/1.0/test-skin-1.0.pom deleted file mode 100644 index 48a67d622..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/org/apache/maven/archiva/record/test-skin/1.0/test-skin-1.0.pom +++ /dev/null @@ -1,27 +0,0 @@ - - - - 4.0.0 - org.apache.maven.archiva.record - test-skin - 1.0 - Skin - test-skin - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/2.0.1/maven-artifact-2.0.1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/2.0.1/maven-artifact-2.0.1.jar deleted file mode 100644 index 14fa95ab9fa752b55bb96734b14f083c55849a21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78377 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 - - - - - maven - org.apache.maven - 2.0.1 - - 4.0.0 - org.apache.maven - maven-artifact - Maven Artifact - 2.0.1 - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - org.codehaus.plexus - plexus-utils - 1.0.5 - - - org.codehaus.plexus - plexus-container-default - 1.0-alpha-9 - test - - - - deployed - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 2.0 - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/2.0.1/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/2.0.1/maven-metadata.xml deleted file mode 100644 index c66d54e12..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/2.0.1/maven-metadata.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - org.apache.maven - maven-artifact - 2.0.1 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/maven-metadata.xml deleted file mode 100644 index da270169f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-artifact/maven-metadata.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - org.apache.maven - maven-artifact - 2.0.1 - - 2.0.1 - - 2.0.1 - - 20051212044643 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-corrupt-jar/2.0/maven-corrupt-jar-2.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-corrupt-jar/2.0/maven-corrupt-jar-2.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-corrupt-jar/2.0/maven-corrupt-jar-2.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-corrupt-jar/2.0/maven-corrupt-jar-2.0.pom deleted file mode 100644 index 75e761b8c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-corrupt-jar/2.0/maven-corrupt-jar-2.0.pom +++ /dev/null @@ -1,114 +0,0 @@ - - - - - maven - org.apache.maven - 2.0 - - 4.0.0 - org.apache.maven - maven-corrupt-jar - Maven Model - 2.0 - Maven Model - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - - org.codehaus.modello - modello-maven-plugin - 2.0 - - - - xpp3-writer - java - xpp3-reader - xsd - - - - - 4.0.0 - maven.mdo - - - - - - - all-models - - - - org.codehaus.modello - modello-maven-plugin - - - v3 - - xpp3-writer - java - xpp3-reader - xsd - - - 3.0.0 - true - - - - - - maven-jar-plugin - - - package - - jar - - - all - - - - - - - - - - - org.codehaus.plexus - plexus-utils - 1.0.5 - - - - deployed - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-metadata.xml deleted file mode 100644 index fc9de9c04..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - org.apache.maven - - - org.apache.maven - org.apache.maven-maven-plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-model/2.0/maven-model-2.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-model/2.0/maven-model-2.0.jar deleted file mode 100644 index d6820d6fed75f9fd09858e8a93b9cd2675e6ee9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78476 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%0A%BN!@FoE#9ko8~~V6x!JFtm`$IQc}tkAVna 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 z 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 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-model/2.0/maven-model-2.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-model/2.0/maven-model-2.0.pom deleted file mode 100644 index 8579fd492..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/org/apache/maven/maven-model/2.0/maven-model-2.0.pom +++ /dev/null @@ -1,114 +0,0 @@ - - - - - maven - org.apache.maven - 2.0 - - 4.0.0 - org.apache.maven - maven-model - Maven Model - 2.0 - Maven Model - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - - org.codehaus.modello - modello-maven-plugin - 2.0 - - - - xpp3-writer - java - xpp3-reader - xsd - - - - - 4.0.0 - maven.mdo - - - - - - - all-models - - - - org.codehaus.modello - modello-maven-plugin - - - v3 - - xpp3-writer - java - xpp3-reader - xsd - - - 3.0.0 - true - - - - - - maven-jar-plugin - - - package - - jar - - - all - - - - - - - - - - - org.codehaus.plexus - plexus-utils - 1.0.5 - - - - deployed - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/inherited/test-inherited/1.0.15/test-inherited-1.0.15.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/inherited/test-inherited/1.0.15/test-inherited-1.0.15.pom deleted file mode 100644 index 20419b61a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/inherited/test-inherited/1.0.15/test-inherited-1.0.15.pom +++ /dev/null @@ -1,30 +0,0 @@ - - - - 4.0.0 - - test.inherited - 1.0.15 - test-inherited-parent - - - test-inherited - pom - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/maven-metadata.xml deleted file mode 100644 index 6846739d3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - test - - - - test-test-plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/test-artifactId/1.0/test-artifactId-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/test-artifactId/1.0/test-artifactId-1.0.jar deleted file mode 100644 index 00eb58b70ab2fe7e99c2dbefada0757a4fd6dd12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2467 zcmWIWW@h1H00HmvX~tj%l;8x?zOEsTx}JV+`TkkT8oesRvoKtCWTA+BzeYV|E=y+c=W95 z-NT}M_KROE++y2wVE7z`F%g?n9bu9i8Am}2{y1;3voK5a+)jZElioPuM)8s^KelY(D ze59fqvaou_@jWvuf2V!_{roexrA*>|7s1tRQW>uzj5qf2^3ImpCegLrXu?NH=XJ#w z(oe*%n3%A_!brfp(_Y}Bt$f9iD>9}};^w;>olQ@%tD7X;w&}5(7Uz2RZAY^^R-VctGF_K@=QW3RYR@uc~yUJQsi^@V9JOaEmxZmAO9+hS!K zPA9~2o)2EjE?T*GTbnJn?iNX}`Wl0f=dZRmZHP_J zpFEcDCw*%f&n{@qe0H&~_uL}Ui*Ai^Hn!dgD@(iBQq2^Vb!6%q_NJvyPBK(BouUzS zneC9#!p78)w8QE%B?|K+Rz1BpaX$BqmIZ}#k3CajTNRt zlDUaxsd@0&!c4z1n2JkMi%WFT;~7(@4gsBDV-kx>GSd>1OHfh_$iZ6sekU#mrj`g` zwgP1+GzX)&0o|m6{9L_?+?=Cf-o>{J1onLouh@~y_*QXp;GB~_vorZUH7?An5&Xoo z$nBDck?#L}lb*KcTyF6(etY)!zi*SnwQGLAp5X2tFpIO!c-FDWfh=>ndOp5A`{MSi zx*F46z8gZ4_^+tEU&JBr!uGRVeqv3B`bU<<%G=Ra?(BYaBLf znRRRBR70+ub5kcXtMEVJu=y2b@Jl&L>b2lq&0WmJlNthFK8#uIH)*AFDG!6FmVeo? z6WJ|%dci&_8y{{Ai0+wl(Q+;KwCSpEw~Mtd`Y=)R_V$3~PySiO)>h3}Zo6S+n2D{x zvCFoWLOs6{LycC=FgZQ%Y@3pJ*Ph7al6&W$7qtGK_T0fTmi1N43V$swW$w>KPToJn ze7uSmnMN%5yF={J<<~~jUa7s^$zr#a>HL~+MGIDnhE0vFi}JPW*_5X_o4vGn`zAiA zSRR4aTj7hf`d?Ru9R3p<+xzZm)4V^9f_oC@Jn7GyQ6>1eXhGEG^68ZuQ}?JIIPLiQ zpu+Uvbbl!h`Re`u=7bx5y>jl&RU=t_`S;IGpZ8yV&gA#C-B_@Y0B!>8#$L}JBD0)xAu~K zL?GWQlW*Op@-+5uN;|vgQ+Ut~UxjeqaQ00SpDq}0$K;?-??w^3B22#wVYdh!fP=Z)on8O|2=ekV9vTJ_wdcN@9Xzy zHLI?w()h;)%cvaSy2Enyj2DT(^j-|aR%E36f};F_RA8n`Eer~ zgRhSF*~d?V_)cns7I^xG85ji_m~1rKy1~dOgrkf<(7?#R;OSE>Z(Xf(XU=any<+^} zsh9pKeccZ}8+AQ(^)9v+RqPb%_AmymbW8 z@C=O5hP@gDDF%Thjp{%Wt_`VDM3{iR4gzZjTl@ydM3hu8=R)j7uah9UK=uj&Ybuy7 zcnyVYDYg<7Vd-RGu?2TFtbB#pjag2DN?3&E1DKjo$~t_`0F}51lYS8}3BA-rm<&mY z=p``B>?MsZ%orX-aU;6P(DE4F0`#Pgu)v0mbPEs(Kfs$6sGos>69{Jj1K}%}2LSRM BT`B+o diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/test-artifactId/1.0/test-artifactId-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/test-artifactId/1.0/test-artifactId-1.0.pom deleted file mode 100644 index f92a25607..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/repository/test/test-artifactId/1.0/test-artifactId-1.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - test - test-artifactId - 1.0 - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/META-INF/plexus/components.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/META-INF/plexus/components.xml deleted file mode 100644 index af15697a1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/META-INF/plexus/components.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.indexer.MockConfiguration - - - org.apache.maven.archiva.indexer.RepositoryContentIndexFactory - lucene - org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndexFactory - Factory for Lucene repository content index instances. - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - configuration - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/log4j.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/log4j.xml deleted file mode 100644 index a11494a31..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/log4j.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListenerTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListenerTest.xml deleted file mode 100644 index af15697a1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/RepositoryContentIndexEventListenerTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.indexer.MockConfiguration - - - org.apache.maven.archiva.indexer.RepositoryContentIndexFactory - lucene - org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndexFactory - Factory for Lucene repository content index instances. - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - configuration - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/bytecode/BytecodeIndexTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/bytecode/BytecodeIndexTest.xml deleted file mode 100644 index af15697a1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/bytecode/BytecodeIndexTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.indexer.MockConfiguration - - - org.apache.maven.archiva.indexer.RepositoryContentIndexFactory - lucene - org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndexFactory - Factory for Lucene repository content index instances. - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - configuration - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/bytecode/BytecodeSearchTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/bytecode/BytecodeSearchTest.xml deleted file mode 100644 index af15697a1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/bytecode/BytecodeSearchTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.indexer.MockConfiguration - - - org.apache.maven.archiva.indexer.RepositoryContentIndexFactory - lucene - org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndexFactory - Factory for Lucene repository content index instances. - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - configuration - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/hashcodes/HashcodesIndexTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/hashcodes/HashcodesIndexTest.xml deleted file mode 100644 index af15697a1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/hashcodes/HashcodesIndexTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.indexer.MockConfiguration - - - org.apache.maven.archiva.indexer.RepositoryContentIndexFactory - lucene - org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndexFactory - Factory for Lucene repository content index instances. - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - configuration - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/hashcodes/HashcodesSearchTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/hashcodes/HashcodesSearchTest.xml deleted file mode 100644 index af15697a1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/hashcodes/HashcodesSearchTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.indexer.MockConfiguration - - - org.apache.maven.archiva.indexer.RepositoryContentIndexFactory - lucene - org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndexFactory - Factory for Lucene repository content index instances. - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - configuration - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.xml deleted file mode 100644 index 61a859c7a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-indexer/src/test/resources/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.indexer.MockConfiguration - - - org.apache.maven.archiva.indexer.RepositoryContentIndexFactory - lucene - org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndexFactory - Factory for Lucene repository content index instances. - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - configuration - - - - - org.apache.maven.archiva.indexer.search.CrossRepositorySearch - default - org.apache.maven.archiva.indexer.search.DefaultCrossRepositorySearch - DefaultCrossRepositorySearch - - - org.apache.maven.archiva.indexer.RepositoryContentIndexFactory - lucene - indexFactory - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - configuration - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/pom.xml deleted file mode 100755 index 1318d53a2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/pom.xml +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - 4.0.0 - archiva-model - Archiva Base :: Model - - - commons-lang - commons-lang - - - commons-collections - commons-collections - - - org.apache.archiva - archiva-common - - - org.codehaus.plexus - plexus-spring - test - - - javax.jdo - jdo2-api - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - org.codehaus.modello - modello-maven-plugin - 1.0-alpha-17 - - 1.0.0 - false - src/main/mdo/archiva-base.xml - - - - archiva-base - - java - xsd - jpox-jdo-mapping - jpox-metadata-class - - - - - - - org.codehaus.mojo - jpox-maven-plugin - 1.1.7 - - - org.apache.derby - derby - 10.2.1.6 - - - - - - enhance - - enhance - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - - org/apache/maven/archiva/reporting/model/** - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractArtifactKey.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractArtifactKey.java deleted file mode 100644 index 7c6e2c9b5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractArtifactKey.java +++ /dev/null @@ -1,290 +0,0 @@ -package org.apache.maven.archiva.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 org.apache.commons.lang.StringUtils; - -import java.io.Serializable; - -/** - *

- * AbstractArtifactKey - a artifact reference to a versioned project. - * This refers to all artifacts of a specific version of a project. - * This type of reference is typically used by {@link ArchivaProjectModel} objects. - *

- * - *

- * If you don't require things like "Version" or "Type", consider the other keys below. - *

- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
Key TypeGroup IDArtifact IDVersionClassifierType
{@link AbstractProjectKey}YesYes   
{@link AbstractVersionedKey}YesYesYes  
{@link AbstractArtifactKey}YesYesYesYesYes
- * - *

- * NOTE: This is a jpox required compound key handler class. - *

- * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AbstractArtifactKey - implements CompoundKey, Serializable -{ - private static final long serialVersionUID = 1084250769223555422L; - - /** - * The Group ID. (JPOX Requires this remain public) - */ - public String groupId = ""; - - /** - * The Artifact ID. (JPOX Requires this remain public) - */ - public String artifactId = ""; - - /** - * The Version. (JPOX Requires this remain public) - */ - public String version = ""; - - /** - * The Classifier. (JPOX Requires this remain public) - */ - public String classifier = ""; - - /** - * The Type. (JPOX Requires this remain public) - */ - public String type = ""; - - /** - * Default Constructor. Required by JPOX. - */ - public AbstractArtifactKey() - { - /* do nothing */ - } - - /** - * Key Based Constructor. Required by JPOX. - * - * @param key the String representing this object's values. - */ - public AbstractArtifactKey( String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ":" ); - groupId = parts[0]; - artifactId = parts[1]; - version = parts[2]; - classifier = parts[3]; - type = parts[4]; - } - - /** - * Get the String representation of this object. - Required by JPOX. - */ - public String toString() - { - return StringUtils.join( new String[] { groupId, artifactId, version, classifier, type }, ':' ); - } - - /** - * Get the hashcode for this object's values - Required by JPOX. - */ - public int hashCode() - { - final int PRIME = 31; - int result = super.hashCode(); - result = PRIME * result + ( ( groupId == null ) ? 0 : groupId.hashCode() ); - result = PRIME * result + ( ( artifactId == null ) ? 0 : artifactId.hashCode() ); - result = PRIME * result + ( ( version == null ) ? 0 : version.hashCode() ); - result = PRIME * result + ( ( classifier == null ) ? 0 : classifier.hashCode() ); - result = PRIME * result + ( ( type == null ) ? 0 : type.hashCode() ); - return result; - } - - /** - * Get the equals for this object's values - Required by JPOX. - */ - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - - if ( !super.equals( obj ) ) - { - return false; - } - - if ( getClass() != obj.getClass() ) - { - return false; - } - - final AbstractArtifactKey other = (AbstractArtifactKey) obj; - - if ( groupId == null ) - { - if ( other.groupId != null ) - { - return false; - } - } - else if ( !groupId.equals( other.groupId ) ) - { - return false; - } - - if ( artifactId == null ) - { - if ( other.artifactId != null ) - { - return false; - } - } - else if ( !artifactId.equals( other.artifactId ) ) - { - return false; - } - - if ( version == null ) - { - if ( other.version != null ) - { - return false; - } - } - else if ( !version.equals( other.version ) ) - { - return false; - } - - if ( classifier == null ) - { - if ( other.classifier != null ) - { - return false; - } - } - else if ( !classifier.equals( other.classifier ) ) - { - return false; - } - - if ( type == null ) - { - if ( other.type != null ) - { - return false; - } - } - else if ( !type.equals( other.type ) ) - { - return false; - } - - return true; - } - - public void setGroupId( String groupId ) - { - if ( StringUtils.isBlank( groupId ) ) - { - throw new IllegalArgumentException( "A blank Group ID is not allowed." ); - } - - this.groupId = groupId; - } - - public void setArtifactId( String artifactId ) - { - if ( StringUtils.isBlank( artifactId ) ) - { - throw new IllegalArgumentException( "A blank Artifact ID is not allowed." ); - } - - this.artifactId = artifactId; - } - - public void setVersion( String version ) - { - if ( StringUtils.isBlank( artifactId ) ) - { - throw new IllegalArgumentException( "A blank version is not allowed." ); - } - - this.version = version; - } - - public void setClassifier( String classifier ) - { - this.classifier = ""; - - if ( StringUtils.isNotBlank( classifier ) ) - { - this.classifier = classifier; - } - } - - public void setType( String type ) - { - this.type = ""; - - if ( StringUtils.isNotBlank( type ) ) - { - this.type = type; - } - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractProjectKey.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractProjectKey.java deleted file mode 100644 index 982fba9de..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractProjectKey.java +++ /dev/null @@ -1,182 +0,0 @@ -package org.apache.maven.archiva.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 org.apache.commons.lang.StringUtils; - -import java.io.Serializable; - -/** - *

- * AbstractProjectKey - A versionless reference to a Project. - * This refers to all versions, and all artifacts of a project. - * This type of reference is typically used by {@link ArchivaRepositoryMetadata} objects. - *

- * - *

- * If you require things like "Version" or "Type", consider the other keys below. - *

- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
Key TypeGroup IDArtifact IDVersionClassifierType
{@link AbstractProjectKey}YesYes   
{@link AbstractVersionedKey}YesYesYes  
{@link AbstractArtifactKey}YesYesYesYesYes
- * - *

- * NOTE: This is a jpox required compound key handler class. - *

- * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AbstractProjectKey - implements CompoundKey, Serializable -{ - private static final long serialVersionUID = 4949927971768396064L; - - /** - * The Group ID. (JPOX Requires this remain public) - */ - public String groupId = ""; - - /** - * The Artifact ID. (JPOX Requires this remain public) - */ - public String artifactId = ""; - - /** - * Default Constructor. Required by JPOX. - */ - public AbstractProjectKey() - { - /* do nothing */ - } - - /** - * Key Based Constructor. Required by JPOX. - * - * @param key the String representing this object's values. - */ - public AbstractProjectKey( String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ":" ); - groupId = parts[0]; - artifactId = parts[1]; - } - - /** - * Get the String representation of this object. - Required by JPOX. - */ - public String toString() - { - return StringUtils.join( new String[] { groupId, artifactId } ); - } - - /** - * Get the hashcode for this object's values - Required by JPOX. - */ - public int hashCode() - { - final int PRIME = 31; - int result = super.hashCode(); - result = PRIME * result + ( ( groupId == null ) ? 0 : groupId.hashCode() ); - result = PRIME * result + ( ( artifactId == null ) ? 0 : artifactId.hashCode() ); - return result; - } - - /** - * Get the equals for this object's values - Required by JPOX. - */ - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - - if ( !super.equals( obj ) ) - { - return false; - } - - if ( getClass() != obj.getClass() ) - { - return false; - } - - final AbstractProjectKey other = (AbstractProjectKey) obj; - - if ( groupId == null ) - { - if ( other.groupId != null ) - { - return false; - } - } - else if ( !groupId.equals( other.groupId ) ) - { - return false; - } - - if ( artifactId == null ) - { - if ( other.artifactId != null ) - { - return false; - } - } - else if ( !artifactId.equals( other.artifactId ) ) - { - return false; - } - - return true; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractVersionedKey.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractVersionedKey.java deleted file mode 100644 index f536b4506..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractVersionedKey.java +++ /dev/null @@ -1,201 +0,0 @@ -package org.apache.maven.archiva.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 org.apache.commons.lang.StringUtils; - -import java.io.Serializable; - -/** - *

- * AbstractVersionedKey - a versioned reference to a Project. - * This refers to all artifacts of a specific version of a project. - * This type of reference is typically used by {@link ArchivaProjectModel} objects. - *

- * - *

- * If you require things like "Version" or "Type", consider the other keys below. - *

- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
Key TypeGroup IDArtifact IDVersionClassifierType
{@link AbstractProjectKey}YesYes   
{@link AbstractVersionedKey}YesYesYes  
{@link AbstractArtifactKey}YesYesYesYesYes
- * - *

- * NOTE: This is a jpox required compound key handler class. - *

- * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AbstractVersionedKey - implements CompoundKey, Serializable -{ - private static final long serialVersionUID = -5389698374243146150L; - - /** - * The Group ID. (JPOX Requires this remain public) - */ - public String groupId = ""; - - /** - * The Artifact ID. (JPOX Requires this remain public) - */ - public String artifactId = ""; - - /** - * The Version. (JPOX Requires this remain public) - */ - public String version = ""; - - /** - * Default Constructor. Required by JPOX. - */ - public AbstractVersionedKey() - { - /* do nothing */ - } - - /** - * Key Based Constructor. Required by JPOX. - * - * @param key the String representing this object's values. - */ - public AbstractVersionedKey( String key ) - { - String parts[] = StringUtils.splitPreserveAllTokens( key, ":" ); - groupId = parts[0]; - artifactId = parts[1]; - version = parts[2]; - } - - /** - * Get the String representation of this object. - Required by JPOX. - */ - public String toString() - { - return StringUtils.join( new String[] { groupId, artifactId, version }, ':' ); - } - - /** - * Get the hashcode for this object's values - Required by JPOX. - */ - public int hashCode() - { - final int PRIME = 31; - int result = super.hashCode(); - result = PRIME * result + ( ( groupId == null ) ? 0 : groupId.hashCode() ); - result = PRIME * result + ( ( artifactId == null ) ? 0 : artifactId.hashCode() ); - result = PRIME * result + ( ( version == null ) ? 0 : version.hashCode() ); - return result; - } - - /** - * Get the equals for this object's values - Required by JPOX. - */ - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - - if ( !super.equals( obj ) ) - { - return false; - } - - if ( getClass() != obj.getClass() ) - { - return false; - } - - final AbstractVersionedKey other = (AbstractVersionedKey) obj; - - if ( groupId == null ) - { - if ( other.groupId != null ) - { - return false; - } - } - else if ( !groupId.equals( other.groupId ) ) - { - return false; - } - - if ( artifactId == null ) - { - if ( other.artifactId != null ) - { - return false; - } - } - else if ( !artifactId.equals( other.artifactId ) ) - { - return false; - } - - if ( version == null ) - { - if ( other.version != null ) - { - return false; - } - } - else if ( !version.equals( other.version ) ) - { - return false; - } - - return true; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java deleted file mode 100644 index d7ce2a155..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java +++ /dev/null @@ -1,228 +0,0 @@ -package org.apache.maven.archiva.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 org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.common.utils.VersionUtil; - -/** - * ArchivaArtifact - Mutable artifact object. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaArtifact -{ - private ArchivaArtifactModel model; - - private ArchivaArtifactPlatformDetails platformDetails; - - private String baseVersion; - - public ArchivaArtifact( String groupId, String artifactId, String version, - String classifier, String type ) - { - if ( empty( groupId ) ) - { - throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty groupId [" - + Keys.toKey( groupId, artifactId, version, classifier, type ) + "]" ); - } - - if ( empty( artifactId ) ) - { - throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty artifactId [" - + Keys.toKey( groupId, artifactId, version, classifier, type ) + "]" ); - } - - if ( empty( version ) ) - { - throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty version [" - + Keys.toKey( groupId, artifactId, version, classifier, type ) + "]" ); - } - - if ( empty( type ) ) - { - throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty type [" - + Keys.toKey( groupId, artifactId, version, classifier, type ) + "]" ); - } - - model = new ArchivaArtifactModel(); - - model.setGroupId( groupId ); - model.setArtifactId( artifactId ); - model.setVersion( version ); - model.setClassifier( StringUtils.defaultString( classifier ) ); - model.setType( type ); - model.setSnapshot( VersionUtil.isSnapshot( version ) ); - - this.baseVersion = VersionUtil.getBaseVersion( version ); - } - - public ArchivaArtifact( ArchivaArtifactModel artifactModel ) - { - this.model = artifactModel; - model.setSnapshot( VersionUtil.isSnapshot( model.getVersion() ) ); - this.baseVersion = VersionUtil.getBaseVersion( model.getVersion() ); - } - - public ArchivaArtifact( ArtifactReference ref ) - { - this( ref.getGroupId(), ref.getArtifactId(), ref.getVersion(), ref.getClassifier(), ref.getType() ); - } - - public ArchivaArtifactModel getModel() - { - return model; - } - - public String getGroupId() - { - return model.getGroupId(); - } - - public String getArtifactId() - { - return model.getArtifactId(); - } - - public String getVersion() - { - return model.getVersion(); - } - - public String getBaseVersion() - { - return baseVersion; - } - - public boolean isSnapshot() - { - return model.isSnapshot(); - } - - public String getClassifier() - { - return model.getClassifier(); - } - - public String getType() - { - return model.getType(); - } - - public boolean hasClassifier() - { - return StringUtils.isNotEmpty( model.getClassifier() ); - } - - public int hashCode() - { - final int PRIME = 31; - int result = 1; - if ( model != null ) - { - result = PRIME * result + ( ( model.getGroupId() == null ) ? 0 : model.getGroupId().hashCode() ); - result = PRIME * result + ( ( model.getArtifactId() == null ) ? 0 : model.getArtifactId().hashCode() ); - result = PRIME * result + ( ( model.getVersion() == null ) ? 0 : model.getVersion().hashCode() ); - result = PRIME * result + ( ( model.getClassifier() == null ) ? 0 : model.getClassifier().hashCode() ); - result = PRIME * result + ( ( model.getType() == null ) ? 0 : model.getType().hashCode() ); - } - return result; - } - - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - - if ( obj == null ) - { - return false; - } - - if ( getClass() != obj.getClass() ) - { - return false; - } - - final ArchivaArtifact other = (ArchivaArtifact) obj; - - if ( model == null ) - { - if ( other.model != null ) - { - return false; - } - } - if ( !model.equals( other.model ) ) - { - return false; - } - - return true; - } - - public String toString() - { - StringBuffer sb = new StringBuffer(); - if ( model.getGroupId() != null ) - { - sb.append( model.getGroupId() ); - sb.append( ":" ); - } - appendArtifactTypeClassifierString( sb ); - sb.append( ":" ); - if ( model.getVersion() != null ) - { - sb.append( model.getVersion() ); - } - - return sb.toString(); - } - - private void appendArtifactTypeClassifierString( StringBuffer sb ) - { - sb.append( model.getArtifactId() ); - sb.append( ":" ); - sb.append( getType() ); - if ( hasClassifier() ) - { - sb.append( ":" ); - sb.append( getClassifier() ); - } - } - - private boolean empty( String value ) - { - return ( value == null ) || ( value.trim().length() < 1 ); - } - - public ArchivaArtifactPlatformDetails getPlatformDetails() - { - return platformDetails; - } - - public void setPlatformDetails( ArchivaArtifactPlatformDetails platformDetails ) - { - this.platformDetails = platformDetails; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifactPlatformDetails.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifactPlatformDetails.java deleted file mode 100644 index f124ce873..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifactPlatformDetails.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.apache.maven.archiva.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. - */ - -/** - * A tag for objects that are considered ArchivaArtifactPlatformDetails. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ArchivaArtifactPlatformDetails -{ - public String getPlatform(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java deleted file mode 100644 index 796353f02..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java +++ /dev/null @@ -1,472 +0,0 @@ -package org.apache.maven.archiva.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.Enumeration; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; - -/** - * Utility methods for cloning various Archiva Model objects. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaModelCloner -{ - public static ArchivaProjectModel clone( ArchivaProjectModel model ) - { - if ( model == null ) - { - return null; - } - - ArchivaProjectModel cloned = new ArchivaProjectModel(); - - cloned.setGroupId( model.getGroupId() ); - cloned.setArtifactId( model.getArtifactId() ); - cloned.setVersion( model.getVersion() ); - - cloned.setParentProject( clone( model.getParentProject() ) ); - - cloned.setName( model.getName() ); - cloned.setDescription( model.getDescription() ); - cloned.setUrl( model.getUrl() ); - cloned.setPackaging( model.getPackaging() ); - cloned.setOrigin( model.getOrigin() ); - - cloned.setMailingLists( cloneMailingLists( model.getMailingLists() ) ); - cloned.setCiManagement( clone( model.getCiManagement() ) ); - cloned.setIndividuals( cloneIndividuals( model.getIndividuals() ) ); - cloned.setIssueManagement( clone( model.getIssueManagement() ) ); - cloned.setLicenses( cloneLicenses( model.getLicenses() ) ); - cloned.setOrganization( clone( model.getOrganization() ) ); - cloned.setScm( clone( model.getScm() ) ); - cloned.setRepositories( cloneRepositories( model.getRepositories() ) ); - cloned.setDependencies( cloneDependencies( model.getDependencies() ) ); - cloned.setPlugins( clonePlugins( model.getPlugins() ) ); - cloned.setReports( cloneReports( model.getReports() ) ); - cloned.setDependencyManagement( cloneDependencies( model.getDependencyManagement() ) ); - - return cloned; - } - - public static ArtifactReference clone( ArtifactReference artifactReference ) - { - if ( artifactReference == null ) - { - return null; - } - - ArtifactReference cloned = new ArtifactReference(); - - cloned.setGroupId( artifactReference.getGroupId() ); - cloned.setArtifactId( artifactReference.getArtifactId() ); - cloned.setVersion( artifactReference.getVersion() ); - cloned.setClassifier( artifactReference.getClassifier() ); - cloned.setType( artifactReference.getType() ); - - return cloned; - } - - public static CiManagement clone( CiManagement ciManagement ) - { - if ( ciManagement == null ) - { - return null; - } - - CiManagement cloned = new CiManagement(); - - cloned.setSystem( ciManagement.getSystem() ); - cloned.setUrl( ciManagement.getUrl() ); - - return cloned; - } - - public static Dependency clone( Dependency dependency ) - { - if ( dependency == null ) - { - return null; - } - - Dependency cloned = new Dependency(); - - // Identification - cloned.setGroupId( dependency.getGroupId() ); - cloned.setArtifactId( dependency.getArtifactId() ); - cloned.setVersion( dependency.getVersion() ); - cloned.setClassifier( dependency.getClassifier() ); - cloned.setType( dependency.getType() ); - - // The rest. - cloned.setTransitive( dependency.isTransitive() ); - cloned.setScope( dependency.getScope() ); - cloned.setOptional( dependency.isOptional() ); - cloned.setSystemPath( dependency.getSystemPath() ); - cloned.setUrl( dependency.getUrl() ); - cloned.setExclusions( cloneExclusions( dependency.getExclusions() ) ); - - return cloned; - } - - public static IssueManagement clone( IssueManagement issueManagement ) - { - if ( issueManagement == null ) - { - return null; - } - - IssueManagement cloned = new IssueManagement(); - - cloned.setSystem( issueManagement.getSystem() ); - cloned.setUrl( issueManagement.getUrl() ); - - return cloned; - } - - public static MailingList clone( MailingList mailingList ) - { - if ( mailingList == null ) - { - return null; - } - - MailingList cloned = new MailingList(); - - cloned.setName( mailingList.getName() ); - cloned.setSubscribeAddress( mailingList.getSubscribeAddress() ); - cloned.setUnsubscribeAddress( mailingList.getUnsubscribeAddress() ); - cloned.setPostAddress( mailingList.getPostAddress() ); - cloned.setMainArchiveUrl( mailingList.getMainArchiveUrl() ); - cloned.setOtherArchives( cloneSimpleStringList( mailingList.getOtherArchives() ) ); - - return cloned; - } - - public static Organization clone( Organization organization ) - { - if ( organization == null ) - { - return null; - } - - Organization cloned = new Organization(); - - cloned.setFavicon( organization.getFavicon() ); - cloned.setName( organization.getName() ); - cloned.setUrl( organization.getUrl() ); - - return cloned; - } - - public static Properties clone( Properties properties ) - { - if ( properties == null ) - { - return null; - } - - Properties cloned = new Properties(); - - Enumeration keys = properties.propertyNames(); - while ( keys.hasMoreElements() ) - { - String key = (String) keys.nextElement(); - String value = properties.getProperty( key ); - cloned.setProperty( key, value ); - } - - return cloned; - } - - public static Scm clone( Scm scm ) - { - if ( scm == null ) - { - return null; - } - - Scm cloned = new Scm(); - - cloned.setConnection( scm.getConnection() ); - cloned.setDeveloperConnection( scm.getDeveloperConnection() ); - cloned.setUrl( scm.getUrl() ); - - return cloned; - } - - public static SnapshotVersion clone( SnapshotVersion snapshotVersion ) - { - if ( snapshotVersion == null ) - { - return null; - } - - SnapshotVersion cloned = new SnapshotVersion(); - - cloned.setTimestamp( snapshotVersion.getTimestamp() ); - cloned.setBuildNumber( snapshotVersion.getBuildNumber() ); - - return cloned; - } - - public static VersionedReference clone( VersionedReference versionedReference ) - { - if ( versionedReference == null ) - { - return null; - } - - VersionedReference cloned = new VersionedReference(); - - cloned.setGroupId( versionedReference.getGroupId() ); - cloned.setArtifactId( versionedReference.getArtifactId() ); - cloned.setVersion( versionedReference.getVersion() ); - - return cloned; - } - - public static List cloneArtifactReferences( List artifactReferenceList ) - { - if ( artifactReferenceList == null ) - { - return null; - } - - List ret = new ArrayList(); - - Iterator it = artifactReferenceList.iterator(); - while ( it.hasNext() ) - { - ArtifactReference artifactReference = (ArtifactReference) it.next(); - ret.add( clone( artifactReference ) ); - } - - return ret; - } - - public static List cloneDependencies( List dependencies ) - { - if ( dependencies == null ) - { - return null; - } - - List ret = new ArrayList(); - - Iterator it = dependencies.iterator(); - while ( it.hasNext() ) - { - Dependency dep = (Dependency) it.next(); - - if ( dep == null ) - { - // Skip null dependency. - continue; - } - - ret.add( clone( dep ) ); - } - - return ret; - } - - public static List cloneExclusions( List exclusions ) - { - if ( exclusions == null ) - { - return null; - } - - List ret = new ArrayList(); - - Iterator it = exclusions.iterator(); - while ( it.hasNext() ) - { - Exclusion exclusion = (Exclusion) it.next(); - Exclusion cloned = new Exclusion(); - - cloned.setGroupId( exclusion.getGroupId() ); - cloned.setArtifactId( exclusion.getArtifactId() ); - - ret.add( cloned ); - } - - return ret; - } - - public static List cloneIndividuals( List individuals ) - { - if ( individuals == null ) - { - return individuals; - } - - List ret = new ArrayList(); - - Iterator it = individuals.iterator(); - while ( it.hasNext() ) - { - Individual individual = (Individual) it.next(); - Individual cloned = new Individual(); - - cloned.setPrincipal( individual.getPrincipal() ); - - cloned.setEmail( individual.getEmail() ); - cloned.setName( individual.getName() ); - cloned.setOrganization( individual.getOrganization() ); - cloned.setOrganizationUrl( individual.getOrganizationUrl() ); - cloned.setUrl( individual.getUrl() ); - cloned.setTimezone( individual.getTimezone() ); - - cloned.setRoles( cloneRoles( individual.getRoles() ) ); - cloned.setProperties( clone( individual.getProperties() ) ); - - ret.add( cloned ); - } - - return ret; - } - - public static List cloneLicenses( List licenses ) - { - if ( licenses == null ) - { - return null; - } - - List ret = new ArrayList(); - - Iterator it = licenses.iterator(); - while ( it.hasNext() ) - { - License license = (License) it.next(); - License cloned = new License(); - - cloned.setId( license.getId() ); - cloned.setName( license.getName() ); - cloned.setUrl( license.getUrl() ); - cloned.setComments( license.getComments() ); - - ret.add( cloned ); - } - - return ret; - } - - public static List cloneMailingLists( List mailingLists ) - { - if ( mailingLists == null ) - { - return null; - } - - List ret = new ArrayList(); - - Iterator it = mailingLists.iterator(); - while ( it.hasNext() ) - { - MailingList mailingList = (MailingList) it.next(); - - if ( mailingList == null ) - { - // Skip null mailing list. - continue; - } - - ret.add( clone( mailingList ) ); - } - - return ret; - } - - public static List clonePlugins( List plugins ) - { - return cloneArtifactReferences( plugins ); - } - - public static List cloneReports( List reports ) - { - return cloneArtifactReferences( reports ); - } - - public static List cloneRepositories( List repositories ) - { - if ( repositories == null ) - { - return null; - } - - List ret = new ArrayList(); - - Iterator it = repositories.iterator(); - while ( it.hasNext() ) - { - ProjectRepository repository = (ProjectRepository) it.next(); - ProjectRepository cloned = new ProjectRepository(); - - cloned.setId( repository.getId() ); - cloned.setName( repository.getName() ); - cloned.setUrl( repository.getUrl() ); - cloned.setLayout( repository.getLayout() ); - cloned.setPlugins( repository.isPlugins() ); - cloned.setReleases( repository.isReleases() ); - cloned.setSnapshots( repository.isSnapshots() ); - - ret.add( cloned ); - } - - return ret; - } - - public static List cloneRoles( List roles ) - { - return cloneSimpleStringList( roles ); - } - - private static List cloneSimpleStringList( List simple ) - { - if ( simple == null ) - { - return null; - } - - List ret = new ArrayList(); - - Iterator it = simple.iterator(); - - while ( it.hasNext() ) - { - String txt = (String) it.next(); - ret.add( txt ); - } - - return ret; - } - - public static List cloneAvailableVersions( List availableVersions ) - { - return cloneSimpleStringList( availableVersions ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/CompoundKey.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/CompoundKey.java deleted file mode 100644 index b09230d37..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/CompoundKey.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.apache.maven.archiva.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. - */ - -/** - * Tag for identifying a Compound Key - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface CompoundKey -{ - public String toString(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/DependencyScope.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/DependencyScope.java deleted file mode 100644 index 7cda4f8ac..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/DependencyScope.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.apache.maven.archiva.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 org.apache.commons.collections.map.MultiValueMap; -import org.apache.commons.lang.StringUtils; - -/** - * DependencyScope - utility methods and constants for working with scopes. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyScope -{ - public static final String SYSTEM = "system"; - - public static final String COMPILE = "compile"; - - public static final String PROVIDED = "provided"; - - public static final String RUNTIME = "runtime"; - - public static final String TEST = "test"; - - private static final MultiValueMap scopeMap; - - static - { - // Store the map of scopes to what other scopes are 'within' that scope. - scopeMap = new MultiValueMap(); - - scopeMap.put( COMPILE, COMPILE ); - scopeMap.put( COMPILE, RUNTIME ); - scopeMap.put( COMPILE, PROVIDED ); - scopeMap.put( COMPILE, SYSTEM ); - - scopeMap.put( TEST, COMPILE ); - scopeMap.put( TEST, RUNTIME ); - scopeMap.put( TEST, PROVIDED ); - scopeMap.put( TEST, SYSTEM ); - scopeMap.put( TEST, TEST ); - - scopeMap.put( RUNTIME, RUNTIME ); - scopeMap.put( RUNTIME, PROVIDED ); - scopeMap.put( RUNTIME, SYSTEM ); - - scopeMap.put( PROVIDED, RUNTIME ); - scopeMap.put( PROVIDED, PROVIDED ); - scopeMap.put( PROVIDED, SYSTEM ); - - scopeMap.put( SYSTEM, SYSTEM ); - } - - public static boolean isSystemScoped( Dependency dep ) - { - return StringUtils.equals( SYSTEM, dep.getScope() ); - } - - /** - * Test the provided scope against the desired scope to see if it is - * within that scope's pervue. - * - * Examples: - * actual:compile, desired:test = true - * actual:compile, desired:compile = true - * actual:test, desired:compile = false - * actual:provided, desired:compile = false - * - * @param actualScope - * @param desiredScope - * @return - */ - public static boolean isWithinScope( String actualScope, String desiredScope ) - { - if ( StringUtils.isBlank( desiredScope ) ) - { - // nothing desired? everything should fail. - return false; - } - - String scope = StringUtils.defaultIfEmpty( actualScope, COMPILE ); - - return scopeMap.containsValue( desiredScope, scope ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/Keys.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/Keys.java deleted file mode 100644 index db8277492..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/Keys.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.apache.maven.archiva.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 org.apache.commons.lang.StringUtils; - -/** - * Keys - utility methods for converting common objects into string keys. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class Keys -{ - public static String toKey( ArchivaProjectModel model ) - { - return toKey( model.getGroupId(), model.getArtifactId(), model.getVersion() ); - } - - public static String toKey( String groupId, String artifactId, String version, String classifier, String type ) - { - StringBuffer key = new StringBuffer(); - - key.append( groupId ).append( ":" ); - key.append( artifactId ).append( ":" ); - key.append( version ).append( ":" ); - key.append( StringUtils.defaultString( classifier ) ).append( ":" ); - key.append( type ); - - return key.toString(); - } - - public static String toKey( ArtifactReference ref ) - { - return toKey( ref.getGroupId(), ref.getArtifactId(), ref.getVersion(), ref.getClassifier(), ref.getType() ); - } - - public static String toKey( ProjectReference ref ) - { - StringBuffer key = new StringBuffer(); - - key.append( ref.getGroupId() ).append( ":" ); - key.append( ref.getArtifactId() ); - - return key.toString(); - } - - public static String toKey( String groupId, String artifactId, String version ) - { - StringBuffer key = new StringBuffer(); - - key.append( groupId ).append( ":" ); - key.append( artifactId ).append( ":" ); - key.append( version ); - - return key.toString(); - } - - public static String toKey( VersionedReference ref ) - { - return toKey( ref.getGroupId(), ref.getArtifactId(), ref.getVersion() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java deleted file mode 100644 index e34665e38..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryProblemReport.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.apache.maven.archiva.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. - */ - -/** - * RepositoryProblemReport - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryProblemReport - extends RepositoryProblem -{ - private static final long serialVersionUID = 4990893576717148324L; - - protected String groupURL; - - protected String artifactURL; - - protected String versionURL; - - public RepositoryProblemReport( RepositoryProblem repositoryProblem ) - { - setGroupId( repositoryProblem.getGroupId() ); - setArtifactId( repositoryProblem.getArtifactId() ); - setVersion( repositoryProblem.getVersion() ); - setMessage( repositoryProblem.getMessage() ); - setOrigin( repositoryProblem.getOrigin() ); - setPath( repositoryProblem.getPath() ); - setType( repositoryProblem.getType() ); - setRepositoryId( repositoryProblem.getRepositoryId() ); - } - - public void setGroupURL( String groupURL ) - { - this.groupURL = groupURL; - } - - public String getGroupURL() - { - return groupURL; - } - - public void setArtifactURL( String artifactURL ) - { - this.artifactURL = artifactURL; - } - - public String getArtifactURL() - { - return artifactURL; - } - - public void setVersionURL( String versionURL ) - { - this.versionURL = versionURL; - } - - public String getVersionURL() - { - return versionURL; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryURL.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryURL.java deleted file mode 100644 index e0ddde87c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryURL.java +++ /dev/null @@ -1,170 +0,0 @@ -package org.apache.maven.archiva.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. - */ - -/** - * RepositoryURL - Mutable (and protocol forgiving) URL object. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryURL -{ - private String url; - - private String protocol; - - private String host; - - private String port; - - private String username; - - private String password; - - private String path; - - public RepositoryURL( String url ) - { - this.url = url; - - // .\ Parse the URL \.____________________________________________ - - int pos; - - pos = url.indexOf( ":/" ); - if ( pos == ( -1 ) ) - { - throw new IllegalArgumentException( "Invalid URL, unable to parse protocol:// from " + url ); - } - - protocol = url.substring( 0, pos ); - - // Determine the post protocol position. - int postProtocolPos = protocol.length() + 1; - while ( url.charAt( postProtocolPos ) == '/' ) - { - postProtocolPos++; - } - - // Handle special case with file protocol (which has no host, port, username, or password) - if ( "file".equals( protocol ) ) - { - path = "/" + url.substring( postProtocolPos ); - - return; - } - - // attempt to find the start of the 'path' - pos = url.indexOf( "/", postProtocolPos ); - - // no path specified - ex "http://localhost" - if ( pos == ( -1 ) ) - { - // set pos to end of string. (needed for 'middle section') - pos = url.length(); - // default path - path = "/"; - } - else - { - // get actual path. - path = url.substring( pos ); - } - - // get the middle section ( username : password @ hostname : port ) - String middle = url.substring( postProtocolPos, pos ); - - pos = middle.indexOf( '@' ); - - // we have an authentication section. - if ( pos > 0 ) - { - String authentication = middle.substring( 0, pos ); - middle = middle.substring( pos + 1 ); // lop off authentication for host:port search - - pos = authentication.indexOf( ':' ); - - // we have a password. - if ( pos > 0 ) - { - username = authentication.substring( 0, pos ); - password = authentication.substring( pos + 1 ); - } - else - { - username = authentication; - } - } - - pos = middle.indexOf( ':' ); - - // we have a defined port - if ( pos > 0 ) - { - host = middle.substring( 0, pos ); - port = middle.substring( pos + 1 ); - } - else - { - host = middle; - } - } - - public String toString() - { - return url; - } - - public String getUsername() - { - return username; - } - - public String getPassword() - { - return password; - } - - public String getHost() - { - return host; - } - - public String getPath() - { - return path; - } - - public String getPort() - { - return port; - } - - public String getProtocol() - { - return protocol; - } - - public String getUrl() - { - return url; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/functors/UnprocessedArtifactPredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/functors/UnprocessedArtifactPredicate.java deleted file mode 100644 index b535b6bd8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/functors/UnprocessedArtifactPredicate.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.apache.maven.archiva.model.functors; - -/* - * 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.collections.Predicate; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; - -/** - * Allows for selection of unprocessed artifacts. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UnprocessedArtifactPredicate - implements Predicate -{ - private static UnprocessedArtifactPredicate INSTANCE = new UnprocessedArtifactPredicate(); - - public static UnprocessedArtifactPredicate getInstance() - { - return INSTANCE; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof ArchivaArtifact ) - { - ArchivaArtifact artifact = (ArchivaArtifact) object; - satisfies = !artifact.getModel().isProcessed(); - } - else if ( object instanceof ArchivaArtifactModel ) - { - ArchivaArtifactModel model = (ArchivaArtifactModel) object; - satisfies = !model.isProcessed(); - } - - return satisfies; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaArtifactJavaDetailsKey.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaArtifactJavaDetailsKey.java deleted file mode 100644 index 6ad012f44..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaArtifactJavaDetailsKey.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.apache.maven.archiva.model.jpox; - -/* - * 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.model.AbstractArtifactKey; - -import java.io.Serializable; - -/** - * ArchivaArtifactJavaDetailsKey - unique classid-key for JPOX. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaArtifactJavaDetailsKey - extends AbstractArtifactKey - implements Serializable -{ - private static final long serialVersionUID = -2565748477203220905L; - - public ArchivaArtifactJavaDetailsKey() - { - } - - public ArchivaArtifactJavaDetailsKey( String key ) - { - super( key ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaArtifactModelKey.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaArtifactModelKey.java deleted file mode 100644 index 8988d4967..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaArtifactModelKey.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.apache.maven.archiva.model.jpox; - -/* - * 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.model.AbstractArtifactKey; - -import java.io.Serializable; - -/** - * ArchivaArtifactModelKey - unique classid-key for JPOX. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaArtifactModelKey - extends AbstractArtifactKey - implements Serializable -{ - private static final long serialVersionUID = -6381910527697704289L; - - public ArchivaArtifactModelKey() - { - super(); - } - - public ArchivaArtifactModelKey( String key ) - { - super( key ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaProjectModelKey.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaProjectModelKey.java deleted file mode 100644 index 0d9614e2e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaProjectModelKey.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.apache.maven.archiva.model.jpox; - -/* - * 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.model.AbstractVersionedKey; - -import java.io.Serializable; - -/** - * ArchivaProjectModelKey - unique classid-key for JPOX. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaProjectModelKey - extends AbstractVersionedKey - implements Serializable -{ - private static final long serialVersionUID = 7789859208617327581L; - - public ArchivaProjectModelKey() - { - } - - public ArchivaProjectModelKey( String key ) - { - super( key ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaRepositoryMetadataKey.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaRepositoryMetadataKey.java deleted file mode 100644 index 1542f5381..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArchivaRepositoryMetadataKey.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.apache.maven.archiva.model.jpox; - -/* - * 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.model.AbstractVersionedKey; - -import java.io.Serializable; - -/** - * ArchivaRepositoryMetadataKey - unique classid-key for JPOX. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaRepositoryMetadataKey - extends AbstractVersionedKey - implements Serializable -{ - private static final long serialVersionUID = -7288079965200698253L; - - public ArchivaRepositoryMetadataKey() - { - } - - public ArchivaRepositoryMetadataKey( String key ) - { - super( key ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArtifactReferenceKey.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArtifactReferenceKey.java deleted file mode 100644 index 121ebc7d0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ArtifactReferenceKey.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.apache.maven.archiva.model.jpox; - -/* - * 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.model.AbstractArtifactKey; - -import java.io.Serializable; - -/** - * ArtifactReferenceKey - unique classid-key for JPOX. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArtifactReferenceKey - extends AbstractArtifactKey - implements Serializable -{ - private static final long serialVersionUID = 2107985498806534183L; - - public ArtifactReferenceKey() - { - } - - public ArtifactReferenceKey( String key ) - { - super( key ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ProjectReferenceKey.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ProjectReferenceKey.java deleted file mode 100644 index 85156ffb5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/ProjectReferenceKey.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.apache.maven.archiva.model.jpox; - -/* - * 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.model.AbstractProjectKey; - -import java.io.Serializable; - -/** - * ProjectReferenceKey - unique classid-key for JPOX. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectReferenceKey - extends AbstractProjectKey - implements Serializable -{ - private static final long serialVersionUID = 7803774484166902823L; - - public ProjectReferenceKey() - { - super(); - } - - public ProjectReferenceKey( String key ) - { - super( key ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/VersionedReferenceKey.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/VersionedReferenceKey.java deleted file mode 100644 index f002f61d6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/jpox/VersionedReferenceKey.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.model.jpox; - -/* - * 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.model.AbstractVersionedKey; - -import java.io.Serializable; - -/** - * VersionedReferenceKey - unique classid-key for JPOX. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class VersionedReferenceKey - extends AbstractVersionedKey - implements Serializable -{ - private static final long serialVersionUID = -5040195285240958302L; - - public VersionedReferenceKey() - { - - } - - public VersionedReferenceKey( String key ) - { - super( key ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/platform/JavaArtifactHelper.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/platform/JavaArtifactHelper.java deleted file mode 100644 index 2b021b63a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/platform/JavaArtifactHelper.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.apache.maven.archiva.model.platform; - -/* - * 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.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactJavaDetails; - -/** - * Utility methods for working with java platform specific ArchivaArtifacts. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class JavaArtifactHelper -{ - public static ArchivaArtifactJavaDetails getJavaDetails( ArchivaArtifact artifact ) - { - ArchivaArtifactJavaDetails javaDetails = (ArchivaArtifactJavaDetails) artifact.getPlatformDetails(); - if ( javaDetails == null ) - { - javaDetails = new ArchivaArtifactJavaDetails(); - artifact.setPlatformDetails( javaDetails ); - } - - return javaDetails; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/mdo/archiva-base.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/mdo/archiva-base.xml deleted file mode 100644 index b7e03b5af..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/main/mdo/archiva-base.xml +++ /dev/null @@ -1,2400 +0,0 @@ - - - archiva-base-model - ArchivaBaseModel - 1.0.0 - Archiva Model - - - package - org.apache.maven.archiva.model - - - - - - ArchivaAll - 1.0.0+ - - This object is only used for the XML backup / restore features of Archiva. - This object is not serialized to the Database. - - - - - artifacts - 1.0.0+ - - ArchivaArtifactModel - * - - - - repositoryMetadata - 1.0.0+ - - ArchivaRepositoryMetadata - * - - - - projects - 1.0.0+ - - ArchivaProjectModel - * - - - - repositoryProblems - 1.0.0+ - - RepositoryProblem - * - - - - repositoryContentStatistics - 1.0.0+ - - RepositoryContentStatistics - * - - - - - - 1.0.0+ - - - - - - - - - - - - ArchivaArtifactModel - 1.0.0+ - - - - groupId - true - 1.0.0+ - String - true - - The Group ID of the repository content. - - - - artifactId - true - 1.0.0+ - String - true - - The Artifact ID of the repository content. - - - - version - true - 1.0.0+ - String - true - - The version of the repository content. - - - - classifier - true - 1.0.0+ - String - true - - The classifier for this artifact. - - - - type - true - 1.0.0+ - String - true - - The type of artifact. - - - - repositoryId - false - 1.0.0+ - false - String - - The repository associated with this content. - - - - snapshot - false - 1.0.0+ - boolean - true - - True if this is a snapshot. - - false - - - checksumMD5 - false - 1.0.0+ - String - false - - The MD5 checksum for the artifact file. - - - - checksumSHA1 - false - 1.0.0+ - String - false - - The SHA1 checksum for the artifact file. - - - - lastModified - false - 1.0.0+ - Date - true - - The Last Modified Timestamp of this artifact. - - - - size - false - 1.0.0+ - long - true - - The size of the artifact on disk. - - - - platform - false - 1.0.0+ - String - true - - The platform of this artifact. (default: "java") - - java - - - whenIndexed - false - 1.0.0+ - Date - false - - The timestamp when this artifact was indexed. - - - - whenProcessed - false - 1.0.0+ - Date - false - - When this artifact's contents was processed. - - - - origin - false - 1.0.0+ - String - false - - The origin of this artifact. (Filesystem, Proxy, Deploy) - - - - whenGathered - false - 1.0.0+ - Date - false - - When this artifact was gathered or disovered from the repository. - - - - - - 1.0.0+ - - - - 1.0.0+ - - - - - - ArchivaArtifactJavaDetails - - org.apache.maven.archiva.model.ArchivaArtifactPlatformDetails - - 1.0.0+ - - - groupId - true - 1.0.0+ - String - true - - The Group ID of the repository content. - - - - artifactId - true - 1.0.0+ - String - true - - The Artifact ID of the repository content. - - - - version - true - 1.0.0+ - String - true - - The version of the repository content. - - - - classifier - true - 1.0.0+ - String - true - - The classifier for this artifact. - - - - type - true - 1.0.0+ - String - true - - The type of artifact. - - - - checksumBytecode - false - 1.0.0+ - String - false - - The SHA1 checksum for the bytecode in the artifact file. (Can be empty if - the artifact contains no bytecode) - - - - jdk - false - 1.0.0+ - String - false - - The JDK revision of the bytecode. (Can be empty if the artifact contains no bytecode) - - - - - - 1.0.0+ - - - - 1.0.0+ - - - - - - - - - ArchivaRepositoryMetadata - 1.0.0+ - - - groupId - true - 1.0.0+ - String - true - - The Group ID of the metadata. - - - - artifactId - true - 1.0.0+ - String - true - - The Artifact ID of the metadata. - - - - version - true - 1.0.0+ - String - true - - The Version of the metadata. - - - - latestVersion - false - 1.0.0+ - false - String - - The latest version id. - - - - releasedVersion - false - 1.0.0+ - false - String - - The released version id. - - - - snapshotVersion - false - 1.0.0+ - false - - The snapshot version id. - - - SnapshotVersion - 1 - - - - plugins - false - 1.0.0+ - false - - The available plugins. - - - Plugin - * - - - - availableVersions - false - 1.0.0+ - false - - String - * - - - The list of available version ids. - - - - lastUpdated - false - 1.0.0+ - String - true - - When the metadata was last updated. - - - - fileLastModified - false - 1.0.0+ - Date - true - - The Last Modified Timestamp of this file. - - - - fileSize - false - 1.0.0+ - long - true - - The size of the artifact on disk. - - - - whenIndexed - false - 1.0.0+ - Date - false - - The timestamp when this artifact was indexed. - - - - origin - false - 1.0.0+ - String - false - - The origin of this artifact. (Filesystem, Proxy, Deploy) - - - - - - 1.0.0+ - - - - 1.0.0 - - public void updateTimestamp() - { - setLastUpdatedTimestamp( new java.util.Date() ); - } - - public void setLastUpdatedTimestamp( java.util.Date date ) - { - java.util.TimeZone timezone = java.util.TimeZone.getTimeZone( "UTC" ); - java.text.DateFormat fmt = new java.text.SimpleDateFormat( "yyyyMMddHHmmss" ); - fmt.setTimeZone( timezone ); - setLastUpdated( fmt.format( date ) ); - } - - - - - - - SnapshotVersion - The Snapshot Version - 1.0.0+ - - - timestamp - String - false - true - - The unique timestamp for the snapshot version. - - - - buildNumber - int - false - true - The incremental build number of the snapshot. - - - - - 1.0.0+ - - - - - - - Plugin - The Plugin - 1.0.0+ - - - prefix - String - false - true - - The prefix for a plugin - - - - artifactId - String - true - true - - The artifactId for a plugin - - - - name - String - false - true - - The name for a plugin - - - - - - - - - - ProjectReference - A reference to another (unversioned) Project - 1.0.0+ - - - groupId - false - 1.0.0+ - String - true - - The Group ID of the project reference. - - - - artifactId - false - 1.0.0+ - String - true - - The Artifact ID of the project reference. - - - - - - 1.0.0+ - - - - 1.0.0+ - - - - - - - VersionedReference - A reference to another Versioned Project - 1.0.0+ - - - groupId - false - 1.0.0+ - String - true - - The Group ID of the repository content. - - - - artifactId - false - 1.0.0+ - String - true - - The Artifact ID of the repository content. - - - - version - false - 1.0.0+ - String - false - - The version of the repository content. - - - - - - 1.0.0+ - - - - 1.0.0+ - - - - - - - ArtifactReference - 1.0.0+ - - - groupId - false - 1.0.0+ - String - true - - The Group ID of the repository content. - - - - artifactId - false - 1.0.0+ - String - true - - The Artifact ID of the repository content. - - - - version - false - 1.0.0+ - String - false - - The version of the repository content. - - - - classifier - false - 1.0.0+ - String - true - - The classifier for this artifact. - - - - type - false - 1.0.0+ - String - true - - The type of artifact. - - - - - - 1.0.0+ - - - - 1.0.0+ - - - - 1.0.0+ - - - - - - - - - ArchivaProjectModel - 1.0.0+ - - - groupId - true - 1.0.0+ - String - true - - The Group ID of the repository content. - - - - artifactId - true - 1.0.0+ - String - true - - The Artifact ID of the repository content. - - - - version - true - 1.0.0+ - String - true - - The version of the repository content. - - - - parentProject - false - 1.0.0+ - false - - VersionedReference - 1 - - - The content key for a parent reference. - - - - packaging - false - 1.0.0+ - true - String - - The declared packaging for this project model. - - - - name - false - 1.0.0+ - false - String - - The name of this project. - - - - description - false - 1.0.0+ - false - String - - The description of this project. - - - - origin - false - 1.0.0+ - true - String - - The Origin of this Model. (Filesystem, Proxy, or Deploy) - - - - whenIndexed - false - 1.0.0+ - false - Date - - The timestamp when this model was indexed. - - - - url - false - 1.0.0+ - false - String - - The URL for the project's homepage. - - - - organization - false - 1.0.0+ - false - - Organization - - - - licenses - false - 1.0.0+ - false - - License - * - - - - mailingLists - 1.0.0+ - The mailing lists. - false - - MailingList - * - - - - issueManagement - 1.0.0+ - - - IssueManagement - - - - ciManagement - 1.0.0+ - - - CiManagement - - - - scm - 1.0.0+ - - - - Scm - - - - individuals - 1.0.0+ - - The list of individuals around this project. - - - Individual - * - - - - dependencies - 1.0.0+ - - - Dependency - * - - - - dependencyManagement - 1.0.0+ - - The list of dependency management settings. - - - Dependency - * - - - - repositories - 1.0.0+ - - The list project repositories in use by this project. - - - ProjectRepository - * - - - - plugins - 1.0.0+ - - The list of plugins that this project uses. - - - ArtifactReference - * - - - - reports - 1.0.0+ - - The list of reports that this project uses. - - - ArtifactReference - * - - - - buildExtensions - 1.0.0+ - - The list of build extensions that this project uses. - - - ArtifactReference - * - - - - properties - 1.0.0+ - - Properties - - String - * - - - - relocation - 1.0.0+ - If relocated, this is the new location reference - - VersionedReference - 1 - - - - - - 1.0.0+ - - - - 1.0.0+ - - - - - - - MailingList - A Mailing List - 1.0.0+ - - - name - 1.0.0+ - The name of the mailing list. - String - - - subscribeAddress - 1.0.0+ - The email address to subscribe to this mailing list. - String - - - unsubscribeAddress - 1.0.0+ - The email address to unsubscribe to this mailing list. - String - - - postAddress - 1.0.0+ - The email address to post to this mailing list. - String - - - mainArchiveUrl - 1.0.0+ - The url to the archive for this mailing list. - String - - - otherArchives - 1.0.0+ - The email address to subscribe to this mailing list. - - String - * - - - - - - 1.0.0+ - - - - - - - Organization - Specifies the organization that produces this project. - 1.0.0+ - - - name - true - 1.0.0+ - - String - - - url - 1.0.0+ - - String - - - favicon - 1.0.0+ - /images/org-logo.png) or an absolute URL - (e.g., http://my.corp/logo.png). This value is used - when generating the project documentation. - ]]> - String - - - - - 1.0.0+ - - - - - - - License - - 1.0.0+ - - - id - true - 1.0.0+ - int - - The type of license. - - - - name - 1.0.0+ - - String - - - url - 1.0.0+ - - String - - - comments - - Addendum information pertaining to this license. - - 1.0.0+ - String - - - - - 1.0.0+ - - - - - - - IssueManagement - - Information about the issue tracking (or bug tracking) system used to manage this project. - - 1.0.0+ - - - url - true - 1.0.0+ - - String - - - system - 1.0.0+ - - String - - - - - 1.0.0+ - - - - - - - CiManagement - 1.0.0+ - - - url - true - 1.0.0+ - - - String - - - system - 1.0.0+ - - continuum.]]> - String - - - - - 1.0.0+ - - - - - - - Individual - - Description of a person who has contributed to the project. - This includes contributors and commitors. - - 1.0.0+ - - - email - true - 1.0.0+ - - String - - - name - 1.0.0+ - - String - - - principal - 1.0.0+ - - The RedBack (plexus security) principal associated with this Invididual. - - String - - - commitor - 1.0.0+ - - The flag if this user is a developer and/or commitor. - - boolean - - - url - 1.0.0+ - - String - - - - organization - organisation - 1.0.0+ - - String - - - organizationUrl - organisationUrl - 1.0.0+ - - String - - - roles - 1.0.0+ - role element, the body of which is a - role name. This can also be used to describe the contribution. - ]]> - - String - * - - - - timezone - 1.0.0+ - - String - - - properties - 1.0.0+ - - Properties - - String - * - - - - - - 1.0.0+ - - - - - - - Dependency - 1.0.0+ - - - groupId - 1.0.0+ - String - true - - The Group ID of the repository content. - - - - artifactId - 1.0.0+ - String - true - - The Artifact ID of the repository content. - - - - version - 1.0.0+ - String - false - - The version of the repository content. - - - - classifier - 1.0.0+ - String - false - - jdk14 and jdk15. - ]]> - - - type - 1.0.0+ - String - true - jar. While it usually represents the extension on - the filename of the dependency, that is not always the case. A type can be mapped to a different - extension and a classifier. - The type often correspongs to the packaging used, though this is also not always the case. - Some examples are jar, war, ejb-client and test-jar. - New types can be defined by plugins that set - extensions to true, so this is not a complete list. - ]]> - jar - - - transitive - 1.0.0+ - false - True if the dependency is only here due a transitive resolution - boolean - - - - fromParent - 1.0.0+ - false - True if the dependency is only here due a parent pom - boolean - - - - url - 1.0.0+ - - String - - - scope - 1.0.0+ - compile, runtime, test, - system, and provided. Used to - calculate the various classpaths used for compilation, testing, and so on. It also assists in determining - which artifacts to include in a distribution of this project. For more information, see - the - dependency mechanism. - ]]> - - String - - - systemPath - 1.0.0+ - discouraged
and may be replaced in later - versions. This specifies the path on the filesystem for this dependency. - Requires an absolute path for the value, not relative. - Use a property that gives the machine specific absolute path, - e.g. ${java.home}. - ]]> - String - - - exclusions - 1.0.0+ - - Lists a set of artifacts that should be excluded from this dependency's artifact list when it comes to - calculating transitive dependencies. - - - Exclusion - * - - - - optional - 1.0.0+ - - Indicates the dependency is optional for use of this library. While the version of the dependency will be - taken into account for dependency calculation if the library is used elsewhere, it will not be passed on - transitively. - - boolean - false - - - - - 1.0.0+ - - - - 1.0.0+ - - - - - - - Exclusion - 1.0.0+ - - - groupId - 1.0.0+ - - String - true - - - artifactId - 1.0.0+ - - String - true - - - - - 1.0.0+ - - - - - - - Scm - 1.0.0+ - - - connection - 1.0.0+ - URL format - and list of supported SCMs. - This connection is read-only. - ]]> - String - - - developerConnection - 1.0.0+ - connection, but for developers, i.e. this scm connection - will not be read only. - ]]> - String - - - url - 1.0.0+ - - - String - - - - - 1.0.0+ - - - - - - - ProjectRepository - 1.0.0+ - - - id - 1.0.0+ - settings.xml file, for example. - ]]> - String - - - name - 1.0.0+ - - String - - - url - 1.0.0+ - protocol://hostname/path. - ]]> - String - - - layout - 1.0.0+ - legacy or - default. - ]]> - String - default - - - plugins - 1.0.0+ - - Flag indicating if this repository is for plugin resolution. - - boolean - - - releases - 1.0.0+ - - Flag indicating if this repository has release versioned artifacts. - - boolean - - - snapshots - 1.0.0+ - - Flag indicating if this repository has snapshot versioned artifacts. - - boolean - - - - - 1.0.0+ - - - - - - - - - RepositoryProblem - 1.0.0+ - - - repositoryId - 1.0.0+ - true - String - - The repository associated with this path and problem. - - - - path - 1.0.0+ - String - true - - The path into the repository for the problem. - - - - groupId - 1.0.0+ - String - false - - The Group ID of the repository content with the problem. - - - - artifactId - 1.0.0+ - String - false - - The Artifact ID of the repository content with the problem. - - - - version - 1.0.0+ - String - false - - The version of the repository content with the problem. - - - - type - false - 1.0.0+ - true - String - - The type of health problem. - - - - origin - false - 1.0.0+ - true - String - - The origin of the health problem. - - - - message - false - 1.0.0+ - true - String - - The origin of the health problem. - - - - - - 1.0.0+ - - - - - - - - - RepositoryContentStatistics - 1.0.0+ - - - repositoryId - 1.0.0+ - false - true - String - - The repository id the statistics belong to. - - - - whenGathered - 1.0.0+ - false - true - Date - - The timestamp on when this set of statistics was gathered. - - - - duration - 1.0.0+ - false - true - long - - The duration (in milliseconds) for the gathering of the statistics. - - - - totalFileCount - 1.0.0+ - false - true - long - - The total number of files in the repository. - - - - newFileCount - 1.0.0+ - false - true - long - - The number of new files discovered. - - - - totalProjectCount - 1.0.0+ - false - true - long - - The total number of unique projects in the repository. - - - - totalGroupCount - 1.0.0+ - false - true - long - - The total number of unique groups in the repository. - - - - totalArtifactCount - 1.0.0+ - false - true - long - - The total number of artifacts in the repository. - - - - totalSize - 1.0.0+ - false - true - long - - The total size in bytes of the repository. - - - - - - 1.0.0+ - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaArtifactTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaArtifactTest.java deleted file mode 100644 index a3564207c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaArtifactTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.apache.maven.archiva.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; - -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * ArchivaModelClonerTest - * - * @author Joakim Erdfelt - * @version $Id: ArchivaModelClonerTest.java 525951 2007-04-05 20:11:19Z joakime $ - */ -public class ArchivaArtifactTest - extends PlexusInSpringTestCase -{ - public void testArtifactModelProcessed() - { - ArchivaArtifactModel model = new ArchivaArtifactModel(); - - assertNull( "whenProcessed", model.getWhenProcessed() ); - assertFalse( "isProcessed", model.isProcessed() ); - - model.setWhenProcessed( new Date() ); - - assertTrue( "isProcessed", model.isProcessed() ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java deleted file mode 100644 index 79225aa97..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.apache.maven.archiva.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 org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * ArchivaModelClonerTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaModelClonerTest - extends PlexusInSpringTestCase -{ - public void testCloneProjectModelWithParent() - { - ArchivaProjectModel actualModel = new ArchivaProjectModel(); - actualModel.setGroupId( null ); - actualModel.setArtifactId( "archiva-common" ); - actualModel.setVersion( null ); - actualModel.setParentProject( new VersionedReference() ); - actualModel.getParentProject().setGroupId( "org.apache.maven.archiva" ); - actualModel.getParentProject().setArtifactId( "archiva-parent" ); - actualModel.getParentProject().setVersion( "1.0" ); - - ArchivaProjectModel clonedModel = ArchivaModelCloner.clone( actualModel ); - - // Should not be the same object (in memory) - assertNotSame( clonedModel, actualModel ); - - // Should be equal in value. - assertEquals( clonedModel, actualModel ); - - // Test specific fields. - assertNull( "Group Id", clonedModel.getGroupId() ); - assertNull( "Version", clonedModel.getVersion() ); - assertNotNull( "Parent Reference", clonedModel.getParentProject() ); - assertEquals( "Parent Group Id", "org.apache.maven.archiva", clonedModel.getParentProject().getGroupId() ); - assertEquals( "Parent Artifact Id", "archiva-parent", clonedModel.getParentProject().getArtifactId() ); - assertEquals( "Parent Version", "1.0", clonedModel.getParentProject().getVersion() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/DependencyScopeTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/DependencyScopeTest.java deleted file mode 100644 index 9bf308dd4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/DependencyScopeTest.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.apache.maven.archiva.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 junit.framework.TestCase; - -/** - * DependencyScopeTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyScopeTest - extends TestCase -{ - public void testIsWithinScope() - { - // Test on blank / empty desired scopes. - assertFalse( DependencyScope.isWithinScope( "compile", null ) ); - assertFalse( DependencyScope.isWithinScope( "test", null ) ); - assertFalse( DependencyScope.isWithinScope( "runtime", null ) ); - assertFalse( DependencyScope.isWithinScope( "provided", null ) ); - assertFalse( DependencyScope.isWithinScope( "compile", "" ) ); - assertFalse( DependencyScope.isWithinScope( "test", "" ) ); - assertFalse( DependencyScope.isWithinScope( "runtime", "" ) ); - assertFalse( DependencyScope.isWithinScope( "provided", "" ) ); - - // Tests on blank / empty actual scopes. - assertTrue( DependencyScope.isWithinScope( "", DependencyScope.COMPILE ) ); - assertTrue( DependencyScope.isWithinScope( null, DependencyScope.COMPILE ) ); - assertTrue( DependencyScope.isWithinScope( "", DependencyScope.TEST ) ); - assertTrue( DependencyScope.isWithinScope( null, DependencyScope.TEST ) ); - assertFalse( DependencyScope.isWithinScope( "", DependencyScope.PROVIDED ) ); - assertFalse( DependencyScope.isWithinScope( null, DependencyScope.PROVIDED ) ); - assertFalse( DependencyScope.isWithinScope( "", DependencyScope.RUNTIME ) ); - assertFalse( DependencyScope.isWithinScope( null, DependencyScope.RUNTIME ) ); - - // Tests on compile desired scopes. - assertTrue( DependencyScope.isWithinScope( "compile", DependencyScope.COMPILE ) ); - assertFalse( DependencyScope.isWithinScope( "test", DependencyScope.COMPILE ) ); - - // Tests on test desired scopes. - assertTrue( DependencyScope.isWithinScope( "compile", DependencyScope.TEST ) ); - assertTrue( DependencyScope.isWithinScope( "test", DependencyScope.TEST ) ); - - // Tests on oddball scopes. - assertFalse( DependencyScope.isWithinScope( "compile", DependencyScope.PROVIDED ) ); - assertFalse( DependencyScope.isWithinScope( "test", DependencyScope.PROVIDED ) ); - assertTrue( DependencyScope.isWithinScope( "provided", DependencyScope.PROVIDED ) ); - - assertFalse( DependencyScope.isWithinScope( "compile", DependencyScope.RUNTIME ) ); - assertFalse( DependencyScope.isWithinScope( "test", DependencyScope.RUNTIME ) ); - assertTrue( DependencyScope.isWithinScope( "provided", DependencyScope.RUNTIME ) ); - assertTrue( DependencyScope.isWithinScope( "runtime", DependencyScope.RUNTIME ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/RepositoryURLTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/RepositoryURLTest.java deleted file mode 100644 index 8c7a2dfc0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/RepositoryURLTest.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.apache.maven.archiva.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 junit.framework.TestCase; - -/** - * RepositoryURLTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryURLTest - extends TestCase -{ - private static final String NO_HOST = null; - - private static final String NO_PORT = null; - - private static final String NO_USER = null; - - private static final String NO_PASS = null; - - private void assertURL( String url, String expectedProtocol, String expectedHost, String expectedPort, - String expectedPath, String expectedUsername, String expectedPassword ) - { - RepositoryURL rurl = new RepositoryURL( url ); - assertEquals( "Protocol", expectedProtocol, rurl.getProtocol() ); - assertEquals( "Host", expectedHost, rurl.getHost() ); - assertEquals( "Port", expectedPort, rurl.getPort() ); - assertEquals( "Path", expectedPath, rurl.getPath() ); - assertEquals( "Username", expectedUsername, rurl.getUsername() ); - assertEquals( "Password", expectedPassword, rurl.getPassword() ); - } - - public void testFileUrlNormal() - { - assertURL( "file:///home/joakim/code/test/this/", "file", NO_HOST, NO_PORT, "/home/joakim/code/test/this/", - NO_USER, NO_PASS ); - } - - public void testFileUrlShort() - { - assertURL( "file:/home/joakim/code/test/this/", "file", NO_HOST, NO_PORT, "/home/joakim/code/test/this/", - NO_USER, NO_PASS ); - } - - public void testHttpUrlPathless() - { - assertURL( "http://machine", "http", "machine", NO_PORT, "/", NO_USER, NO_PASS ); - } - - public void testHttpUrlWithPort() - { - assertURL( "http://machine:8080/", "http", "machine", "8080", "/", NO_USER, NO_PASS ); - } - - public void testHttpUrlWithUsernamePassword() - { - assertURL( "http://user:pass@machine/secured/", "http", "machine", NO_PORT, "/secured/", "user", "pass" ); - } - - public void testHttpUrlWithUsernameNoPassword() - { - assertURL( "http://user@machine/secured/", "http", "machine", NO_PORT, "/secured/", "user", NO_PASS ); - } - - public void testHttpUrlWithUsernamePasswordAndPort() - { - assertURL( "http://user:pass@machine:9090/secured/", "http", "machine", "9090", "/secured/", "user", "pass" ); - } - - public void testBogusWithPath() - { - // This should not fail. The intent of RepositoryURL is to have it support oddball protocols that - // are used by maven-scm and maven-wagon (unlike java.net.URL) - assertURL( "bogus://a.machine.name.com/path/to/resource/file.txt", "bogus", "a.machine.name.com", NO_PORT, - "/path/to/resource/file.txt", NO_USER, NO_PASS ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/resources/log4j.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/resources/log4j.xml deleted file mode 100644 index 395941ac3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-model/src/test/resources/log4j.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/pom.xml deleted file mode 100644 index 7489f08bc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/pom.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - 4.0.0 - archiva-policies - Archiva Base :: Policies - - - org.apache.archiva - archiva-common - - - org.apache.archiva - archiva-checksum - - - org.codehaus.plexus - plexus-spring - test - - - commons-lang - commons-lang - - - org.codehaus.plexus.cache - plexus-cache-ehcache - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - merge - - merge-descriptors - - - ${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml - - ${basedir}/src/main/resources/META-INF/plexus/components-fragment.xml - ${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/AbstractUpdatePolicy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/AbstractUpdatePolicy.java deleted file mode 100644 index 0b44c7c67..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/AbstractUpdatePolicy.java +++ /dev/null @@ -1,209 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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.Calendar; -import java.util.List; -import java.util.Properties; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.common.utils.VersionUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * AbstractUpdatePolicy - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractUpdatePolicy - implements PreDownloadPolicy -{ - private Logger log = LoggerFactory.getLogger( AbstractUpdatePolicy.class ); - - /** - * The ALWAYS policy setting means that the artifact is always uipdated from the remote repo. - */ - public static final String ALWAYS = "always"; - - /** - * The NEVER policy setting means that the artifact is never updated from the remote repo. - */ - public static final String NEVER = "never"; - - /** - *

- * The DAILY policy means that the artifact retrieval occurs only if one of - * the following conditions are met... - *

- *
    - *
  • The local artifact is not present.
  • - *
  • The local artifact has a last modified timestamp older than (now - 1 day).
  • - *
- */ - public static final String DAILY = "daily"; - - /** - *

- * The HOURLY policy means that the artifact retrieval occurs only if one of - * the following conditions are met... - *

- *
    - *
  • The local artifact is not present.
  • - *
  • The local artifact has a last modified timestamp older than (now - 1 hour).
  • - *
- */ - public static final String HOURLY = "hourly"; - - /** - * The ONCE policy means that the artifact retrieval occurs only if the - * local artifact is not present. This means that the retreival can only - * occur once. - */ - public static final String ONCE = "once"; - - private List options = new ArrayList(); - - public AbstractUpdatePolicy() - { - options.add( ALWAYS ); - options.add( HOURLY ); - options.add( DAILY ); - options.add( ONCE ); - options.add( NEVER ); - } - - protected abstract boolean isSnapshotPolicy(); - - protected abstract String getUpdateMode(); - - public List getOptions() - { - return options; - } - - public void applyPolicy( String policySetting, Properties request, File localFile ) - throws PolicyViolationException, PolicyConfigurationException - { - if ( !StringUtils.equals( request.getProperty( "filetype" ), "artifact" ) ) - { - // Only process artifact file types. - return; - } - - String version = request.getProperty( "version", "" ); - boolean isSnapshotVersion = false; - - if ( StringUtils.isNotBlank( version ) ) - { - isSnapshotVersion = VersionUtil.isSnapshot( version ); - } - - if ( !options.contains( policySetting ) ) - { - // Not a valid code. - throw new PolicyConfigurationException( "Unknown " + getUpdateMode() + " policy setting [" + policySetting - + "], valid settings are [" + StringUtils.join( options.iterator(), "," ) + "]" ); - } - - if ( ALWAYS.equals( policySetting ) ) - { - // Skip means ok to update. - log.debug( "OK to update, " + getUpdateMode() + " policy set to ALWAYS." ); - return; - } - - // Test for mismatches. - if ( !isSnapshotVersion && isSnapshotPolicy() ) - { - log.debug( "OK to update, snapshot policy does not apply for non-snapshot versions." ); - return; - } - - if ( isSnapshotVersion && !isSnapshotPolicy() ) - { - log.debug( "OK to update, release policy does not apply for snapshot versions." ); - return; - } - - if ( NEVER.equals( policySetting ) ) - { - // Reject means no. - throw new PolicyViolationException( "NO to update, " + getUpdateMode() + " policy set to NEVER." ); - } - - if ( !localFile.exists() ) - { - // No file means it's ok. - log.debug( "OK to update " + getUpdateMode() + ", local file does not exist." ); - return; - } - - if ( ONCE.equals( policySetting ) ) - { - // File exists, but policy is once. - throw new PolicyViolationException( "NO to update " + getUpdateMode() + ", policy is ONCE, and local file exist." ); - } - - if ( DAILY.equals( policySetting ) ) - { - Calendar cal = Calendar.getInstance(); - cal.add( Calendar.DAY_OF_MONTH, -1 ); - Calendar fileCal = Calendar.getInstance(); - fileCal.setTimeInMillis( localFile.lastModified() ); - - if( cal.after( fileCal ) ) - { - // Its ok. - return; - } - else - { - throw new PolicyViolationException( "NO to update " + getUpdateMode() - + ", policy is DAILY, local file exist, and has been updated within the last day." ); - } - } - - if ( HOURLY.equals( policySetting ) ) - { - Calendar cal = Calendar.getInstance(); - cal.add( Calendar.HOUR, -1 ); - Calendar fileCal = Calendar.getInstance(); - fileCal.setTimeInMillis( localFile.lastModified() ); - - if( cal.after( fileCal ) ) - { - // Its ok. - return; - } - else - { - throw new PolicyViolationException( "NO to update " + getUpdateMode() - + ", policy is HOURLY, local file exist, and has been updated within the last hour." ); - } - } - - throw new PolicyConfigurationException( "Unable to process " + getUpdateMode() - + " policy of [" + policySetting + "], please file a bug report." ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/CachedFailuresPolicy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/CachedFailuresPolicy.java deleted file mode 100644 index a69227ce9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/CachedFailuresPolicy.java +++ /dev/null @@ -1,120 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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.List; -import java.util.Properties; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.policies.urlcache.UrlFailureCache; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * {@link PreDownloadPolicy} to check if the requested url has failed before. - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.policies.PreDownloadPolicy" - * role-hint="cache-failures" - */ -public class CachedFailuresPolicy - implements PreDownloadPolicy -{ - private Logger log = LoggerFactory.getLogger( CachedFailuresPolicy.class ); - - /** - * The NO policy setting means that the the existence of old failures is not checked. - * All resource requests are allowed thru to the remote repo. - */ - public static final String NO = "no"; - - /** - * The YES policy setting means that the existence of old failures is checked, and will - * prevent the request from being performed against the remote repo. - */ - public static final String YES = "yes"; - - /** - * @plexus.requirement - */ - private UrlFailureCache urlFailureCache; - - private List options = new ArrayList(); - - public CachedFailuresPolicy() - { - options.add( NO ); - options.add( YES ); - } - - public void applyPolicy( String policySetting, Properties request, File localFile ) - throws PolicyViolationException, PolicyConfigurationException - { - if ( !options.contains( policySetting ) ) - { - // Not a valid code. - throw new PolicyConfigurationException( "Unknown cache-failues policy setting [" + policySetting + - "], valid settings are [" + StringUtils.join( options.iterator(), "," ) + "]" ); - } - - if ( NO.equals( policySetting ) ) - { - // Skip. - log.debug( "OK to fetch, check-failures policy set to NO." ); - return; - } - - String url = request.getProperty( "url" ); - - if ( StringUtils.isNotBlank( url ) ) - { - if ( urlFailureCache.hasFailedBefore( url ) ) - { - throw new PolicyViolationException( - "NO to fetch, check-failures detected previous failure on url: " + url ); - } - } - - log.debug( "OK to fetch, check-failures detected no issues." ); - } - - public String getDefaultOption() - { - return NO; - } - - public String getId() - { - return "cache-failures"; - } - - public String getName() - { - return "Cache failures"; - } - - public List getOptions() - { - return options; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ChecksumPolicy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ChecksumPolicy.java deleted file mode 100644 index fe89822fe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ChecksumPolicy.java +++ /dev/null @@ -1,169 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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.List; -import java.util.Properties; - -import org.apache.archiva.checksum.ChecksumAlgorithm; -import org.apache.archiva.checksum.ChecksummedFile; -import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ChecksumPolicy - a policy applied after the download to see if the file has been downloaded - * successfully and completely (or not). - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.policies.PostDownloadPolicy" - * role-hint="checksum" - */ -public class ChecksumPolicy - implements PostDownloadPolicy -{ - private Logger log = LoggerFactory.getLogger( ChecksumPolicy.class ); - - /** - * The IGNORE policy indicates that if the checksum policy is ignored, and - * the state of, contents of, or validity of the checksum files are not - * checked. - */ - public static final String IGNORE = "ignore"; - - /** - * The FAIL policy indicates that if the checksum does not match the - * downloaded file, then remove the downloaded artifact, and checksum - * files, and fail the transfer to the client side. - */ - public static final String FAIL = "fail"; - - /** - * The FIX policy indicates that if the checksum does not match the - * downloaded file, then fix the checksum file locally, and return - * to the client side the corrected checksum. - */ - public static final String FIX = "fix"; - - private ChecksumAlgorithm[] algorithms = new ChecksumAlgorithm[] { ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 }; - - private List options = new ArrayList(); - - public ChecksumPolicy() - { - options.add( FAIL ); - options.add( FIX ); - options.add( IGNORE ); - } - - public void applyPolicy( String policySetting, Properties request, File localFile ) - throws PolicyViolationException, PolicyConfigurationException - { - if ( "resource".equals( request.getProperty( "filetype" ) ) ) - { - return; - } - - if ( !options.contains( policySetting ) ) - { - // Not a valid code. - throw new PolicyConfigurationException( "Unknown checksum policy setting [" + policySetting - + "], valid settings are [" + StringUtils.join( options.iterator(), "," ) + "]" ); - } - - if ( IGNORE.equals( policySetting ) ) - { - // Ignore. - log.debug( "Checksum policy set to IGNORE." ); - return; - } - - if ( !localFile.exists() ) - { - // Local File does not exist. - throw new PolicyViolationException( "Checksum policy failure, local file " + localFile.getAbsolutePath() - + " does not exist to check." ); - } - - if ( FAIL.equals( policySetting ) ) - { - ChecksummedFile checksum = new ChecksummedFile( localFile ); - if ( checksum.isValidChecksums( algorithms ) ) - { - return; - } - - for ( ChecksumAlgorithm algorithm : algorithms ) - { - File file = new File( localFile.getAbsolutePath() + "." + algorithm.getExt() ); - if ( file.exists() ) - { - file.delete(); - } - } - - localFile.delete(); - throw new PolicyViolationException( "Checksums do not match, policy set to FAIL, " - + "deleting checksum files and local file " + localFile.getAbsolutePath() + "." ); - } - - if ( FIX.equals( policySetting ) ) - { - ChecksummedFile checksum = new ChecksummedFile( localFile ); - if( checksum.fixChecksums( algorithms ) ) - { - log.debug( "Checksum policy set to FIX, checksum files have been updated." ); - return; - } - else - { - throw new PolicyViolationException( "Checksum policy set to FIX, " - + "yet unable to update checksums for local file " + localFile.getAbsolutePath() + "." ); - } - } - - throw new PolicyConfigurationException( "Unable to process checksum policy of [" + policySetting - + "], please file a bug report." ); - } - - public String getDefaultOption() - { - return FIX; - } - - public String getId() - { - return "checksum"; - } - - public String getName() - { - return "Checksum"; - } - - public List getOptions() - { - return options; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/DownloadErrorPolicy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/DownloadErrorPolicy.java deleted file mode 100644 index b5c209c6c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/DownloadErrorPolicy.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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.Map; -import java.util.Properties; - -/** - * Policy to apply after the download has completed, but before the - * resource is made available to the calling client. - * - * @author Brett Porter - * @version $Id$ - */ -public interface DownloadErrorPolicy - extends Policy -{ - /** - * Apply the download error policy. - * - * @param policySetting the policy setting. - * @param request the list of request properties that the policy might use. - * @param localFile - * @param exception the exception that triggered the error - * @param previousExceptions any previously triggered exceptions - * @return whether to process the exception or not - * @throws PolicyConfigurationException if the policy is improperly configured - */ - public boolean applyPolicy( String policySetting, Properties request, File localFile, Exception exception, - Map previousExceptions ) - throws PolicyConfigurationException; -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/DownloadPolicy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/DownloadPolicy.java deleted file mode 100644 index 68036d9e8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/DownloadPolicy.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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.Properties; - -/** - * DownloadPolicy - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface DownloadPolicy - extends Policy -{ - - /** - * Apply the download policy. - * - * @param policySetting the policy setting. - * @param request the list of request properties that the policy might use. - * @param localFile - * - * @throws PolicyViolationException if the policy has been violated. - */ - public void applyPolicy( String policySetting, Properties request, File localFile ) - throws PolicyViolationException, PolicyConfigurationException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/Policy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/Policy.java deleted file mode 100644 index f7add1b73..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/Policy.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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; - -public interface Policy -{ - /** - * Get the list of options for this policy. - * - * @return the list of options for this policy. - */ - List getOptions(); - - /** - * Get the default option for this policy. - * - * @return the default policy for this policy. - */ - String getDefaultOption(); - - /** - * Get the id for this policy. - * - * @return the id for this policy. - */ - String getId(); - - /** - * Get the display name for this policy. - * - * @todo i18n - * - * @return the name for this policy - */ - String getName(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PolicyConfigurationException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PolicyConfigurationException.java deleted file mode 100644 index 0d705e1db..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PolicyConfigurationException.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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; - -/** - * PolicyConfigurationException is thrown when a policy cannot be executed due to a - * configuration issue. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class PolicyConfigurationException - extends ArchivaException -{ - - public PolicyConfigurationException( String message, Throwable cause ) - { - super( message, cause ); - } - - public PolicyConfigurationException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PolicyViolationException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PolicyViolationException.java deleted file mode 100644 index 0de36ec76..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PolicyViolationException.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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; - -/** - * PolicyViolationException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class PolicyViolationException - extends ArchivaException -{ - public PolicyViolationException( String message, Throwable cause ) - { - super( message, cause ); - } - - public PolicyViolationException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PostDownloadPolicy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PostDownloadPolicy.java deleted file mode 100644 index 12bb6b416..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PostDownloadPolicy.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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. - */ - -/** - * Policy to apply after the download has completed, but before the - * resource is made available to the calling client. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface PostDownloadPolicy - extends DownloadPolicy -{ -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PreDownloadPolicy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PreDownloadPolicy.java deleted file mode 100644 index 1faf52025..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PreDownloadPolicy.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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. - */ - - -/** - * Policy to apply before the download is attempted. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface PreDownloadPolicy extends DownloadPolicy -{ -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PropagateErrorsDownloadPolicy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PropagateErrorsDownloadPolicy.java deleted file mode 100644 index cca1c6750..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PropagateErrorsDownloadPolicy.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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.codehaus.plexus.logging.AbstractLogEnabled; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -/** - * PropagateErrorsPolicy - a policy applied on error to determine how to treat the error. - * - * @plexus.component role="org.apache.maven.archiva.policies.DownloadErrorPolicy" - * role-hint="propagate-errors" - */ -public class PropagateErrorsDownloadPolicy - extends AbstractLogEnabled - implements DownloadErrorPolicy -{ - /** - * Signifies any error should stop searching for other proxies. - */ - public static final String STOP = "stop"; - - /** - * Propagate errors at the end after all are gathered, if there was no successful download from other proxies. - */ - public static final String QUEUE = "queue error"; - - /** - * Ignore errors and treat as if it were not found. - */ - public static final String IGNORE = "ignore"; - - private List options = new ArrayList(); - - public PropagateErrorsDownloadPolicy() - { - options.add( STOP ); - options.add( QUEUE ); - options.add( IGNORE ); - } - - public boolean applyPolicy( String policySetting, Properties request, File localFile, Exception exception, - Map previousExceptions ) - throws PolicyConfigurationException - { - if ( !options.contains( policySetting ) ) - { - // Not a valid code. - throw new PolicyConfigurationException( "Unknown error policy setting [" + policySetting + - "], valid settings are [" + StringUtils.join( options.iterator(), "," ) + "]" ); - } - - if ( IGNORE.equals( policySetting ) ) - { - // Ignore. - getLogger().debug( "Error policy set to IGNORE." ); - return false; - } - - String repositoryId = request.getProperty( "remoteRepositoryId" ); - if ( STOP.equals( policySetting ) ) - { - return true; - } - - if ( QUEUE.equals( policySetting ) ) - { - previousExceptions.put( repositoryId, exception ); - return true; - } - - throw new PolicyConfigurationException( - "Unable to process checksum policy of [" + policySetting + "], please file a bug report." ); - } - - public String getDefaultOption() - { - return QUEUE; - } - - public String getId() - { - return "propagate-errors"; - } - - public String getName() - { - return "On remote error"; - } - - public List getOptions() - { - return options; - } -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PropagateErrorsOnUpdateDownloadPolicy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PropagateErrorsOnUpdateDownloadPolicy.java deleted file mode 100644 index d2b471af3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/PropagateErrorsOnUpdateDownloadPolicy.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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.codehaus.plexus.logging.AbstractLogEnabled; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -/** - * PropagateErrorsPolicy - a policy applied on error to determine how to treat the error. - * - * @plexus.component role="org.apache.maven.archiva.policies.DownloadErrorPolicy" - * role-hint="propagate-errors-on-update" - */ -public class PropagateErrorsOnUpdateDownloadPolicy - extends AbstractLogEnabled - implements DownloadErrorPolicy -{ - /** - * Signifies any error should cause a failure whether the artifact is already present or not. - */ - public static final String ALWAYS = "always"; - - /** - * Signifies any error should cause a failure only if the artifact is not already present. - */ - public static final String NOT_PRESENT = "artifact not already present"; - - private List options = new ArrayList(); - - public PropagateErrorsOnUpdateDownloadPolicy() - { - options.add( ALWAYS ); - options.add( NOT_PRESENT ); - } - - public boolean applyPolicy( String policySetting, Properties request, File localFile, Exception exception, - Map previousExceptions ) - throws PolicyConfigurationException - { - if ( !options.contains( policySetting ) ) - { - // Not a valid code. - throw new PolicyConfigurationException( "Unknown error policy setting [" + policySetting - + "], valid settings are [" + StringUtils.join( options.iterator(), "," ) + "]" ); - } - - if ( ALWAYS.equals( policySetting ) ) - { - // throw ther exception regardless - return true; - } - - if ( NOT_PRESENT.equals( policySetting ) ) - { - // cancel the exception if the file exists - return !localFile.exists(); - } - - throw new PolicyConfigurationException( "Unable to process checksum policy of [" + policySetting - + "], please file a bug report." ); - } - - public String getDefaultOption() - { - return NOT_PRESENT; - } - - public String getId() - { - return "propagate-errors-on-update"; - } - - public String getName() - { - return "Return error when"; - } - - public List getOptions() - { - return options; - } -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ProxyDownloadException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ProxyDownloadException.java deleted file mode 100644 index 9d328c6b7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ProxyDownloadException.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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 java.util.Collections; -import java.util.Map; - -/** - * One or more exceptions occurred downloading from a remote repository during the proxy phase. - */ -public class ProxyDownloadException - extends ArchivaException -{ - /** - * A list of failures keyed by repository ID. - */ - private final Map failures; - - public ProxyDownloadException( String message, String repositoryId, Exception cause ) - { - super( constructMessage( message, Collections.singletonMap( repositoryId, cause ) ), cause ); - - failures = Collections.singletonMap( repositoryId, cause ); - } - - public ProxyDownloadException( String message, Map failures ) - { - super( constructMessage( message, failures ) ); - - this.failures = failures; - } - - private static String constructMessage( String message, Map failures ) - { - String msg = message + ":"; - for ( Map.Entry entry : failures.entrySet() ) - { - msg += "\n\t" + entry.getKey() + ": " + entry.getValue().getMessage(); - } - return msg; - } - - public Map getFailures() - { - return failures; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ReleasesPolicy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ReleasesPolicy.java deleted file mode 100644 index 86ad7c3fc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/ReleasesPolicy.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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. - */ - - -/** - * {@link PreDownloadPolicy} to apply for released versions. - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.policies.PreDownloadPolicy" - * role-hint="releases" - */ -public class ReleasesPolicy - extends AbstractUpdatePolicy - implements PreDownloadPolicy -{ - /** - * Defaults to {@link AbstractUpdatePolicy#HOURLY} - */ - public String getDefaultOption() - { - return AbstractUpdatePolicy.HOURLY; - } - - protected boolean isSnapshotPolicy() - { - return false; - } - - protected String getUpdateMode() - { - return "releases"; - } - - public String getId() - { - return "releases"; - } - - public String getName() - { - return "Releases"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/SnapshotsPolicy.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/SnapshotsPolicy.java deleted file mode 100644 index ea10023c3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/SnapshotsPolicy.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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. - */ - - -/** - * {@link PreDownloadPolicy} to apply for snapshot versions. - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.policies.PreDownloadPolicy" - * role-hint="snapshots" - */ -public class SnapshotsPolicy - extends AbstractUpdatePolicy - implements PreDownloadPolicy -{ - /** - * Defaults to {@link AbstractUpdatePolicy#HOURLY} - */ - public String getDefaultOption() - { - return AbstractUpdatePolicy.HOURLY; - } - - protected boolean isSnapshotPolicy() - { - return true; - } - - protected String getUpdateMode() - { - return "snapshots"; - } - - public String getId() - { - return "snapshots"; - } - - public String getName() - { - return "Snapshots"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/DefaultUrlFailureCache.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/DefaultUrlFailureCache.java deleted file mode 100644 index cb2c66e71..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/DefaultUrlFailureCache.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.apache.maven.archiva.policies.urlcache; - -/* - * 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 java.util.Date; - -/** - * DefaultUrlFailureCache - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DefaultUrlFailureCache - implements UrlFailureCache -{ - /** - * @todo spring cache instead - */ - private Cache urlCache; - - public DefaultUrlFailureCache( Cache urlCache ) - { - this.urlCache = urlCache; - } - - public void cacheFailure( String url ) - { - urlCache.register( url, new Date() ); - } - - public boolean hasFailedBefore( String url ) - { - if ( urlCache.hasKey( url ) ) - { - urlCache.register( url, new Date() ); - return true; - } - - return false; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/UrlFailureCache.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/UrlFailureCache.java deleted file mode 100644 index 3a28da384..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/UrlFailureCache.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.policies.urlcache; - -/* - * 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. - */ - - -/** - * Cache for requested URLs that cannot be fetched. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface UrlFailureCache -{ - /** - * Store a URL in the cache as failed. - * - * @param url the url to store. - */ - public void cacheFailure( String url ); - - /** - * Test if a specified URL has failed before. - * - * NOTE: If the provided URL has failed, then making this call - * should refresh the expiration time on that URL entry. - * - * @param url the URL to test. - * @return true if it has failed before, false if not. - */ - public boolean hasFailedBefore( String url ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/plexus/components-fragment.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/plexus/components-fragment.xml deleted file mode 100644 index b66220612..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/plexus/components-fragment.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - true - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/spring-context.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/spring-context.xml deleted file mode 100644 index 75a5d41c0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/spring-context.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.java deleted file mode 100644 index c7083d93d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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.Properties; - -import org.apache.maven.archiva.policies.urlcache.UrlFailureCache; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * CachedFailuresPolicyTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class CachedFailuresPolicyTest - extends PlexusInSpringTestCase -{ - private DownloadPolicy lookupPolicy() - throws Exception - { - return (DownloadPolicy) lookup( PreDownloadPolicy.class, "cache-failures" ); - } - - private File getFile() - { - return new File( "target/cache-failures/" + getName() + ".txt" ); - } - - private Properties createRequest() - { - Properties request = new Properties(); - - return request; - } - - public void testPolicyNo() - throws Exception - { - DownloadPolicy policy = lookupPolicy(); - File localFile = getFile(); - Properties request = createRequest(); - - request.setProperty( "url", "http://a.bad.hostname.maven.org/path/to/resource.txt" ); - - policy.applyPolicy( CachedFailuresPolicy.NO, request, localFile ); - } - - public void testPolicyYesNotInCache() - throws Exception - { - DownloadPolicy policy = lookupPolicy(); - File localFile = getFile(); - Properties request = createRequest(); - - request.setProperty( "url", "http://a.bad.hostname.maven.org/path/to/resource.txt" ); - - policy.applyPolicy( CachedFailuresPolicy.YES, request, localFile ); - } - - public void testPolicyYesInCache() - throws Exception - { - DownloadPolicy policy = lookupPolicy(); - File localFile = getFile(); - Properties request = createRequest(); - - String url = "http://a.bad.hostname.maven.org/path/to/resource.txt"; - - UrlFailureCache urlFailureCache = (UrlFailureCache) lookup( "urlFailureCache" ); - urlFailureCache.cacheFailure( url ); - - request.setProperty( "url", url ); - - try - { - policy.applyPolicy( CachedFailuresPolicy.YES, request, localFile ); - fail( "Expected a PolicyViolationException." ); - } - catch ( PolicyViolationException e ) - { - // expected path. - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/ChecksumPolicyTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/ChecksumPolicyTest.java deleted file mode 100644 index 81f140237..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/ChecksumPolicyTest.java +++ /dev/null @@ -1,332 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.util.Properties; - -import org.apache.commons.io.FileUtils; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * ChecksumPolicyTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ChecksumPolicyTest - extends PlexusInSpringTestCase -{ - private static final String GOOD = "good"; - - private static final String BAD = "bad"; - - public void testFailOnFileOnly() - throws Exception - { - assertFailSetting( false, null, null ); - } - - public void testFailOnFileWithBadMd5AndBadSha1() - throws Exception - { - assertFailSetting( false, BAD, BAD ); - } - - public void testFailOnFileWithBadMd5AndGoodSha1() - throws Exception - { - assertFailSetting( false, BAD, GOOD ); - } - - public void testFailOnFileWithBadMd5Only() - throws Exception - { - assertFailSetting( false, BAD, null ); - } - - public void testFailOnFileWithBadSha1Only() - throws Exception - { - assertFailSetting( false, null, BAD ); - } - - public void testFailOnFileWithGoodMd5AndBadSha1() - throws Exception - { - assertFailSetting( false, GOOD, BAD ); - } - - public void testFailOnFileWithGoodMd5AndGoodSha1() - throws Exception - { - assertFailSetting( true, GOOD, GOOD ); - } - - public void testFailOnFileWithGoodMd5Only() - throws Exception - { - assertFailSetting( true, GOOD, null ); - } - - public void testFailOnFileWithGoodSha1Only() - throws Exception - { - assertFailSetting( true, null, GOOD ); - } - - public void testFixOnFileOnly() - throws Exception - { - assertFixSetting( true, null, null ); - } - - public void testFixOnFileWithBadMd5AndBadSha1() - throws Exception - { - assertFixSetting( true, BAD, BAD ); - } - - public void testFixOnFileWithBadMd5AndGoodSha1() - throws Exception - { - assertFixSetting( true, BAD, GOOD ); - } - - public void testFixOnFileWithBadMd5Only() - throws Exception - { - assertFixSetting( true, BAD, null ); - } - - public void testFixOnFileWithBadSha1Only() - throws Exception - { - assertFixSetting( true, null, BAD ); - } - - public void testFixOnFileWithGoodMd5AndBadSha1() - throws Exception - { - assertFixSetting( true, GOOD, BAD ); - } - - public void testFixOnFileWithGoodMd5AndGoodSha1() - throws Exception - { - assertFixSetting( true, GOOD, GOOD ); - } - - public void testFixOnFileWithGoodMd5Only() - throws Exception - { - assertFixSetting( true, GOOD, null ); - } - - public void testFixOnFileWithGoodSha1Only() - throws Exception - { - assertFixSetting( true, null, GOOD ); - } - - public void testIgnore() - throws Exception - { - PostDownloadPolicy policy = lookupPolicy(); - File localFile = createTestableFiles( null, null ); - Properties request = createRequest(); - - policy.applyPolicy( ChecksumPolicy.IGNORE, request, localFile ); - } - - private void assertFailSetting( boolean expectedResult, String md5State, String sha1State ) - throws Exception - { - PostDownloadPolicy policy = lookupPolicy(); - File localFile = createTestableFiles( md5State, sha1State ); - Properties request = createRequest(); - - boolean actualResult; - - try - { - policy.applyPolicy( ChecksumPolicy.FAIL, request, localFile ); - actualResult = true; - } - catch ( PolicyViolationException e ) - { - actualResult = false; - String msg = createMessage( ChecksumPolicy.FAIL, md5State, sha1State ); - - assertFalse( msg + " local file should not exist:", localFile.exists() ); - File md5File = new File( localFile.getAbsolutePath() + ".sha1" ); - File sha1File = new File( localFile.getAbsolutePath() + ".md5" ); - assertFalse( msg + " local md5 file should not exist:", md5File.exists() ); - assertFalse( msg + " local sha1 file should not exist:", sha1File.exists() ); - } - - assertEquals( createMessage( ChecksumPolicy.FAIL, md5State, sha1State ), expectedResult, actualResult ); - } - - private void assertFixSetting( boolean expectedResult, String md5State, String sha1State ) - throws Exception - { - PostDownloadPolicy policy = lookupPolicy(); - File localFile = createTestableFiles( md5State, sha1State ); - Properties request = createRequest(); - - boolean actualResult; - - try - { - policy.applyPolicy( ChecksumPolicy.FIX, request, localFile ); - actualResult = true; - } - catch ( PolicyViolationException e ) - { - actualResult = false; - } - - assertEquals( createMessage( ChecksumPolicy.FIX, md5State, sha1State ), expectedResult, actualResult ); - - // End result should be legitimate SHA1 and MD5 files. - File md5File = new File( localFile.getAbsolutePath() + ".md5" ); - File sha1File = new File( localFile.getAbsolutePath() + ".sha1" ); - - assertTrue( "ChecksumPolicy.apply(FIX) md5 should exist.", md5File.exists() && md5File.isFile() ); - assertTrue( "ChecksumPolicy.apply(FIX) sha1 should exist.", sha1File.exists() && sha1File.isFile() ); - - String actualMd5Contents = readChecksumFile( md5File ); - String actualSha1Contents = readChecksumFile( sha1File ); - - String expectedMd5Contents = "360ccd01d8a0a2d94b86f9802c2fc548 artifact.jar"; - String expectedSha1Contents = "7dd8929150664f182db60ad15f20359d875f059f artifact.jar"; - - assertEquals( "ChecksumPolicy.apply(FIX) md5 contents:", expectedMd5Contents, actualMd5Contents ); - assertEquals( "ChecksumPolicy.apply(FIX) sha1 contents:", expectedSha1Contents, actualSha1Contents ); - } - - /** - * Read the first line from the checksum file, and return it (trimmed). - */ - private String readChecksumFile( File checksumFile ) - throws Exception - { - FileReader freader = null; - BufferedReader buf = null; - - try - { - freader = new FileReader( checksumFile ); - buf = new BufferedReader( freader ); - return buf.readLine(); - } - finally - { - if ( buf != null ) - { - buf.close(); - } - - if ( freader != null ) - { - freader.close(); - } - } - } - - private String createMessage( String settingType, String md5State, String sha1State ) - { - StringBuffer msg = new StringBuffer(); - msg.append( "Expected result of ChecksumPolicy.apply(" ); - msg.append( settingType.toUpperCase() ); - msg.append( ") when working with " ); - if ( md5State == null ) - { - msg.append( "NO" ); - } - else - { - msg.append( "a " ).append( md5State.toUpperCase() ); - } - - msg.append( " MD5 and " ); - - if ( sha1State == null ) - { - msg.append( "NO" ); - } - else - { - msg.append( "a " ).append( sha1State.toUpperCase() ); - } - msg.append( " SHA1:" ); - - return msg.toString(); - } - - private Properties createRequest() - { - Properties request = new Properties(); - - request.setProperty( "url", "http://a.bad.hostname.maven.org/path/to/resource.txt" ); - - return request; - } - - private File createTestableFiles( String md5State, String sha1State ) - throws Exception - { - File sourceDir = getTestFile( "src/test/resources/checksums/" ); - File destDir = getTestFile( "target/checksum-tests/" + getName() + "/" ); - - FileUtils.copyFileToDirectory( new File( sourceDir, "artifact.jar" ), destDir ); - - if ( md5State != null ) - { - File md5File = new File( sourceDir, "artifact.jar.md5-" + md5State ); - assertTrue( "Testable file exists: " + md5File.getName() + ":", md5File.exists() && md5File.isFile() ); - File destFile = new File( destDir, "artifact.jar.md5" ); - FileUtils.copyFile( md5File, destFile ); - } - - if ( sha1State != null ) - { - File sha1File = new File( sourceDir, "artifact.jar.sha1-" + sha1State ); - assertTrue( "Testable file exists: " + sha1File.getName() + ":", sha1File.exists() && sha1File.isFile() ); - File destFile = new File( destDir, "artifact.jar.sha1" ); - FileUtils.copyFile( sha1File, destFile ); - } - - File localFile = new File( destDir, "artifact.jar" ); - return localFile; - } - - private PostDownloadPolicy lookupPolicy() - throws Exception - { - PostDownloadPolicy policy = (PostDownloadPolicy) lookup( PostDownloadPolicy.class.getName(), "checksum" ); - assertNotNull( policy ); - return policy; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/ReleasePolicyTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/ReleasePolicyTest.java deleted file mode 100644 index 044c7220e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/ReleasePolicyTest.java +++ /dev/null @@ -1,347 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; -import java.util.Properties; - -/** - * ReleasePolicyTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ReleasePolicyTest - extends PlexusInSpringTestCase -{ - private static final String PATH_VERSION_METADATA = "org/apache/archiva/archiva-testable/1.0-SNAPSHOT/maven-metadata.xml"; - - private static final String PATH_PROJECT_METADATA = "org/apache/archiva/archiva-testable/maven-metadata.xml"; - - private static final String PATH_SNAPSHOT_ARTIFACT = "org/apache/archiva/archiva-testable/1.0-SNAPSHOT/archiva-testable-1.0-SNAPSHOT.jar"; - - private static final String PATH_RELEASE_ARTIFACT = "org/apache/archiva/archiva-testable/2.0/archiva-testable-2.0.jar"; - - private static final boolean WITH_LOCAL = true; - - private static final boolean NO_LOCAL = false; - - protected static final long ONE_SECOND = ( 1000 /* milliseconds */); - - protected static final long ONE_MINUTE = ( ONE_SECOND * 60 ); - - protected static final long ONE_HOUR = ( ONE_MINUTE * 60 ); - - protected static final long ONE_DAY = ( ONE_HOUR * 24 ); - - protected static final long OVER_ONE_HOUR = ( ONE_HOUR + ONE_MINUTE ); - - protected static final long OVER_ONE_DAY = ( ONE_DAY + ONE_HOUR ); - - protected static final long OLDER = ( -1 ); - - protected static final long NEWER = 0; - - private long generatedLocalFileUpdateDelta = 0; - - public void testReleasePolicyDailyProjectMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_PROJECT_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_DAY; - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_PROJECT_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_HOUR * 22 ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_PROJECT_METADATA, WITH_LOCAL ); - } - - public void testReleasePolicyDailyReleaseArtifact() - throws Exception - { - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertReleasesPolicyViolation( ReleasesPolicy.DAILY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_DAY; - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_HOUR * 22 ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertReleasesPolicyViolation( ReleasesPolicy.DAILY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - } - - public void testReleasePolicyDailySnapshotArtifact() - throws Exception - { - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_DAY; - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_HOUR * 22 ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - } - - public void testReleasePolicyDailyVersionedMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_VERSION_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_VERSION_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_DAY; - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_VERSION_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_VERSION_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_HOUR * 22 ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_VERSION_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.DAILY, PATH_VERSION_METADATA, WITH_LOCAL ); - } - - public void testReleasePolicyRejectProjectMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertReleasesPolicy( ReleasesPolicy.NEVER, PATH_PROJECT_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.NEVER, PATH_PROJECT_METADATA, WITH_LOCAL ); - } - - public void testReleasePolicyRejectReleaseArtifact() - throws Exception - { - assertReleasesPolicyViolation( ReleasesPolicy.NEVER, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertReleasesPolicyViolation( ReleasesPolicy.NEVER, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - } - - public void testReleasePolicyRejectSnapshotArtifact() - throws Exception - { - assertReleasesPolicy( ReleasesPolicy.NEVER, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.NEVER, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - } - - public void testReleasePolicyRejectVersionedMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertReleasesPolicy( ReleasesPolicy.NEVER, PATH_VERSION_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.NEVER, PATH_VERSION_METADATA, WITH_LOCAL ); - } - - public void testReleasePolicyHourlyProjectMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_PROJECT_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_HOUR; - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_PROJECT_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_MINUTE * 45 ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_PROJECT_METADATA, WITH_LOCAL ); - } - - public void testReleasePolicyHourlyReleaseArtifact() - throws Exception - { - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertReleasesPolicyViolation( ReleasesPolicy.HOURLY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_HOUR; - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_MINUTE * 45 ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertReleasesPolicyViolation( ReleasesPolicy.HOURLY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - } - - public void testReleasePolicyHourlySnapshotArtifact() - throws Exception - { - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_HOUR; - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_MINUTE * 45 ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - } - - public void testReleasePolicyHourlyVersionedMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_VERSION_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_VERSION_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_HOUR; - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_VERSION_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_VERSION_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_MINUTE * 45 ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_VERSION_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.HOURLY, PATH_VERSION_METADATA, WITH_LOCAL ); - } - - public void testReleasePolicyAlwaysProjectMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertReleasesPolicy( ReleasesPolicy.ALWAYS, PATH_PROJECT_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.ALWAYS, PATH_PROJECT_METADATA, WITH_LOCAL ); - } - - public void testReleasePolicyAlwaysReleaseArtifact() - throws Exception - { - assertReleasesPolicy( ReleasesPolicy.ALWAYS, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.ALWAYS, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - } - - public void testReleasePolicyAlwaysSnapshotArtifact() - throws Exception - { - assertReleasesPolicy( ReleasesPolicy.ALWAYS, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.ALWAYS, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - } - - public void testReleasePolicyAlwaysVersionedMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertReleasesPolicy( ReleasesPolicy.ALWAYS, PATH_VERSION_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.ALWAYS, PATH_VERSION_METADATA, WITH_LOCAL ); - } - - public void testReleasePolicyOnceProjectMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertReleasesPolicy( ReleasesPolicy.ONCE, PATH_PROJECT_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.ONCE, PATH_PROJECT_METADATA, WITH_LOCAL ); - } - - public void testReleasePolicyOnceReleaseArtifact() - throws Exception - { - assertReleasesPolicy( ReleasesPolicy.ONCE, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertReleasesPolicyViolation( ReleasesPolicy.ONCE, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - } - - public void testReleasePolicyOnceSnapshotArtifact() - throws Exception - { - assertReleasesPolicy( ReleasesPolicy.ONCE, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.ONCE, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - } - - public void testReleasePolicyOnceVersionedMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertReleasesPolicy( ReleasesPolicy.ONCE, PATH_VERSION_METADATA, NO_LOCAL ); - assertReleasesPolicy( ReleasesPolicy.ONCE, PATH_VERSION_METADATA, WITH_LOCAL ); - } - - private void assertReleasesPolicy( String setting, String path, boolean createLocalFile ) - throws Exception - { - PreDownloadPolicy policy = lookupPolicy(); - Properties request = new Properties(); - request.setProperty( "filetype", path.endsWith( "/maven-metadata.xml" ) ? "metadata" : "artifact" ); - - if ( path.contains( "1.0-SNAPSHOT" ) ) - { - request.setProperty( "version", "1.0-SNAPSHOT" ); - } - - if ( path.contains( "2.0" ) ) - { - request.setProperty( "version", "2.0" ); - } - - File targetDir = getTestFile( "target/test-policy/" ); - File localFile = new File( targetDir, path ); - - if ( localFile.exists() ) - { - localFile.delete(); - } - - if ( createLocalFile ) - { - localFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( localFile, "random-junk" ); - localFile.setLastModified( localFile.lastModified() - generatedLocalFileUpdateDelta ); - } - - policy.applyPolicy( setting, request, localFile ); - } - - private void assertReleasesPolicyViolation( String setting, String path, boolean createLocalFile ) - throws Exception - { - try - { - assertReleasesPolicy( setting, path, createLocalFile ); - fail( "Expected a PolicyViolationException." ); - } - catch ( PolicyViolationException e ) - { - // expected path. - } - } - - private PreDownloadPolicy lookupPolicy() - throws Exception - { - PreDownloadPolicy policy = (PreDownloadPolicy) lookup( PreDownloadPolicy.class.getName(), "releases" ); - assertNotNull( policy ); - return policy; - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - // reset delta to 0. - generatedLocalFileUpdateDelta = 0; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/SnapshotsPolicyTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/SnapshotsPolicyTest.java deleted file mode 100644 index 330db534b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/SnapshotsPolicyTest.java +++ /dev/null @@ -1,347 +0,0 @@ -package org.apache.maven.archiva.policies; - -/* - * 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.Properties; - -import org.apache.commons.io.FileUtils; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * SnapshotsPolicyTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class SnapshotsPolicyTest - extends PlexusInSpringTestCase -{ - private static final String PATH_VERSION_METADATA = "org/apache/archiva/archiva-testable/1.0-SNAPSHOT/maven-metadata.xml"; - - private static final String PATH_PROJECT_METADATA = "org/apache/archiva/archiva-testable/maven-metadata.xml"; - - private static final String PATH_SNAPSHOT_ARTIFACT = "org/apache/archiva/archiva-testable/1.0-SNAPSHOT/archiva-testable-1.0-SNAPSHOT.jar"; - - private static final String PATH_RELEASE_ARTIFACT = "org/apache/archiva/archiva-testable/2.0/archiva-testable-2.0.jar"; - - private static final boolean WITH_LOCAL = true; - - private static final boolean NO_LOCAL = false; - - protected static final long ONE_SECOND = ( 1000 /* milliseconds */); - - protected static final long ONE_MINUTE = ( ONE_SECOND * 60 ); - - protected static final long ONE_HOUR = ( ONE_MINUTE * 60 ); - - protected static final long ONE_DAY = ( ONE_HOUR * 24 ); - - protected static final long OVER_ONE_HOUR = ( ONE_HOUR + ONE_MINUTE ); - - protected static final long OVER_ONE_DAY = ( ONE_DAY + ONE_HOUR ); - - protected static final long OLDER = ( -1 ); - - protected static final long NEWER = 0; - - private long generatedLocalFileUpdateDelta = 0; - - public void testSnapshotPolicyDailyProjectMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_PROJECT_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_DAY; - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_PROJECT_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_HOUR * 22 ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_PROJECT_METADATA, WITH_LOCAL ); - } - - public void testSnapshotPolicyDailyReleaseArtifact() - throws Exception - { - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_DAY; - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_HOUR * 22 ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - } - - public void testSnapshotPolicyDailySnapshotArtifact() - throws Exception - { - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicyViolation( SnapshotsPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_DAY; - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_HOUR * 22 ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicyViolation( SnapshotsPolicy.DAILY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - } - - public void testSnapshotPolicyDailyVersionedMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_VERSION_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_VERSION_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_DAY; - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_VERSION_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_VERSION_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_HOUR * 22 ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_VERSION_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.DAILY, PATH_VERSION_METADATA, WITH_LOCAL ); - } - - public void testSnapshotPolicyRejectProjectMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertSnapshotPolicy( SnapshotsPolicy.NEVER, PATH_PROJECT_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.NEVER, PATH_PROJECT_METADATA, WITH_LOCAL ); - } - - public void testSnapshotPolicyRejectReleaseArtifact() - throws Exception - { - assertSnapshotPolicy( SnapshotsPolicy.NEVER, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.NEVER, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - } - - public void testSnapshotPolicyRejectSnapshotArtifact() - throws Exception - { - assertSnapshotPolicyViolation( SnapshotsPolicy.NEVER, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicyViolation( SnapshotsPolicy.NEVER, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - } - - public void testSnapshotPolicyRejectVersionedMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertSnapshotPolicy( SnapshotsPolicy.NEVER, PATH_VERSION_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.NEVER, PATH_VERSION_METADATA, WITH_LOCAL ); - } - - public void testSnapshotPolicyHourlyProjectMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_PROJECT_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_HOUR; - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_PROJECT_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_MINUTE * 45 ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_PROJECT_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_PROJECT_METADATA, WITH_LOCAL ); - } - - public void testSnapshotPolicyHourlyReleaseArtifact() - throws Exception - { - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_HOUR; - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_MINUTE * 45 ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - } - - public void testSnapshotPolicyHourlySnapshotArtifact() - throws Exception - { - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicyViolation( SnapshotsPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_HOUR; - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_MINUTE * 45 ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicyViolation( SnapshotsPolicy.HOURLY, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - } - - public void testSnapshotPolicyHourlyVersionedMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_VERSION_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_VERSION_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = OVER_ONE_HOUR; - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_VERSION_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_VERSION_METADATA, WITH_LOCAL ); - - generatedLocalFileUpdateDelta = ( ONE_MINUTE * 45 ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_VERSION_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.HOURLY, PATH_VERSION_METADATA, WITH_LOCAL ); - } - - public void testSnapshotPolicyAlwaysProjectMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertSnapshotPolicy( SnapshotsPolicy.ALWAYS, PATH_PROJECT_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.ALWAYS, PATH_PROJECT_METADATA, WITH_LOCAL ); - } - - public void testSnapshotPolicyAlwaysReleaseArtifact() - throws Exception - { - assertSnapshotPolicy( SnapshotsPolicy.ALWAYS, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.ALWAYS, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - } - - public void testSnapshotPolicyAlwaysSnapshotArtifact() - throws Exception - { - assertSnapshotPolicy( SnapshotsPolicy.ALWAYS, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.ALWAYS, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - } - - public void testSnapshotPolicyAlwaysVersionedMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertSnapshotPolicy( SnapshotsPolicy.ALWAYS, PATH_VERSION_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.ALWAYS, PATH_VERSION_METADATA, WITH_LOCAL ); - } - - public void testSnapshotPolicyOnceProjectMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertSnapshotPolicy( SnapshotsPolicy.ONCE, PATH_PROJECT_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.ONCE, PATH_PROJECT_METADATA, WITH_LOCAL ); - } - - public void testSnapshotPolicyOnceReleaseArtifact() - throws Exception - { - assertSnapshotPolicy( SnapshotsPolicy.ONCE, PATH_RELEASE_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.ONCE, PATH_RELEASE_ARTIFACT, WITH_LOCAL ); - } - - public void testSnapshotPolicyOnceSnapshotArtifact() - throws Exception - { - assertSnapshotPolicy( SnapshotsPolicy.ONCE, PATH_SNAPSHOT_ARTIFACT, NO_LOCAL ); - assertSnapshotPolicyViolation( SnapshotsPolicy.ONCE, PATH_SNAPSHOT_ARTIFACT, WITH_LOCAL ); - } - - public void testSnapshotPolicyOnceVersionedMetadata() - throws Exception - { - // Pass the policy when working with metadata, no matter what. - assertSnapshotPolicy( SnapshotsPolicy.ONCE, PATH_VERSION_METADATA, NO_LOCAL ); - assertSnapshotPolicy( SnapshotsPolicy.ONCE, PATH_VERSION_METADATA, WITH_LOCAL ); - } - - private void assertSnapshotPolicy( String setting, String path, boolean createLocalFile ) - throws Exception - { - PreDownloadPolicy policy = lookupPolicy(); - Properties request = new Properties(); - request.setProperty( "filetype", path.endsWith( "/maven-metadata.xml" ) ? "metadata" : "artifact" ); - - if ( path.contains( "1.0-SNAPSHOT" ) ) - { - request.setProperty( "version", "1.0-SNAPSHOT" ); - } - - if ( path.contains( "2.0" ) ) - { - request.setProperty( "version", "2.0" ); - } - - File targetDir = getTestFile( "target/test-policy/" ); - File localFile = new File( targetDir, path ); - - if ( localFile.exists() ) - { - localFile.delete(); - } - - if ( createLocalFile ) - { - localFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( localFile, "random-junk" ); - localFile.setLastModified( localFile.lastModified() - generatedLocalFileUpdateDelta ); - } - - policy.applyPolicy( setting, request, localFile ); - } - - private void assertSnapshotPolicyViolation( String setting, String path, boolean createLocalFile ) - throws Exception - { - try - { - assertSnapshotPolicy( setting, path, createLocalFile ); - fail( "Expected a PolicyViolationException." ); - } - catch ( PolicyViolationException e ) - { - // expected path. - } - } - - private PreDownloadPolicy lookupPolicy() - throws Exception - { - PreDownloadPolicy policy = (PreDownloadPolicy) lookup( PreDownloadPolicy.class.getName(), "snapshots" ); - assertNotNull( policy ); - return policy; - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - // reset delta to 0. - generatedLocalFileUpdateDelta = 0; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar deleted file mode 100644 index d1b610e5ec784ce3e22b3c40775c522bf8797743..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2422 zcmWIWW@h1H0DuQ}lbAEG>!4=~NPm6TC&YjTl)^*}wf3hTOikS8R zm5QBnx`TwhgMv%uYONKK;TD=~93)yJd^+eeP{zx+*z3Tf$e*1zXYLf3C=$DVO3s9j z%c|HuvWe}9*%QM6a~P)k`H>x#n^=~b2loZ0Vl7O?`97 zrKP!e%yA~k9Jqmdfnk*}1A`ZJEGWp& z)vL(O*&E^8f7?u8@B8%u;#Ps@tB_=jSfZ_3pE{qj-JEbT^mOy(KR*4VDrRYG+lEZJ&5 zSWoRK?(ll>e)|2i`)LOqRkwfaeeP;GZOZFUf?^R_-VDR*{0nDuediJIn)fY(bM z^OtB8MKD&bJ+6`a&27c88M4({q7{PYn|J>IQLw%0&xfDuIj&y1BvZ0U{gjK-W&Lld zPorC`HqG9ww){(gM!cB9iH!SSIv)2N`)+zGIyB?`d8ydFdWD>4HT^Zzd$e9VDqBf4 zTJvyDeVu&%=eo6G7yC6ELf9Kw{nZgGpWsqOx!QTvU4S(k{^_nT(oCrII$Un;xEa#N)4tbN9suMZaz_aaB}Z zm@?f+G&|BkC927+Ym!rWYi?n5)GnQZRlAI|dp8D|L@)nh(if6sZsz%F)4F2?sS{!( zlwZ&4l_}fal6!n%h5bff#lriiPu!}%)Uu#V(x@Xy%U5j-L_7eFrnbUghJJo zPfts)oV{)9>4gccU(K#XGO+h+dT^|8=snXv7{$%$K4fmjC^-lZ|?oB z#2R{>^YuRC#ufHE+P)T8P261m^>E$6`3~{y#^Or6x4W+|^u4CS5296-d>@u4S3Y!V z&zUu;#q)vSrwnG9S^5DAFK-)6*LVD7_9WGK&as-TztHs=kp6aI$_k1pEy)^Gu5@%m^6oZl`$5)Zxv&}BQT+wJSx24Qw=9}e9 zyhJ7ioCrF%`f(-iwOA#mA3A!vwa*RS=C#gwtL1ce=98x#mu4RHBkDd1X z@@pYunkei3bc3IL<^}F&KRw#%feuN_OOBzQlj&Ie7Uv>ShVy3 zaUk`In1Z7Gg4Cjt%+zArGkduX8HhMMwDm7sSnPD!NwbxYZxLUVVr^q~RW9?hb`#BC z->x0~`naG=*s^OzM$>Wjbvq^|ADzL;Hg~}^h1u)!cCTt(EVWSUbX%@S_~Tgp)+evZ zcC7wvu*ve5j9&2j$2tZJ;yiBL_s)1fsn9aI&2Xmrt1aR6Pae9y-}7lk`GzC=0=yZS zM3`~cbwFPOfdIo>M-Yuv^TD)XulqoXL10OvI*^2GL#he!Sq!SAAOK|X0U#4@0<6k{ zS&zNaLTG-AsTpq-hTB|FB?bW?N0~BWI0}!sc&ap*h1e@Kn3YQ!r%}g3XcdPDee5Y6 fVed~?s(2J+FCyIsc(byBtY8PiGA0IwS706hN(Y&# diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.md5-bad b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.md5-bad deleted file mode 100644 index aafbb1c77..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.md5-bad +++ /dev/null @@ -1 +0,0 @@ -444ccc111aaa222999888eee222fff00 artifact.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.md5-good b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.md5-good deleted file mode 100644 index 1c8465238..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.md5-good +++ /dev/null @@ -1 +0,0 @@ -360ccd01d8a0a2d94b86f9802c2fc548 artifact.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.sha1-bad b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.sha1-bad deleted file mode 100644 index 2d809c29b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.sha1-bad +++ /dev/null @@ -1 +0,0 @@ -ddd888999000444888bbbaaa555333999777eee0 artifact.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.sha1-good b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.sha1-good deleted file mode 100644 index 0f10d257e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/checksums/artifact.jar.sha1-good +++ /dev/null @@ -1 +0,0 @@ -7dd8929150664f182db60ad15f20359d875f059f artifact.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/log4j.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/log4j.xml deleted file mode 100644 index 9bb5e1e5a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/log4j.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.xml deleted file mode 100644 index a42cdec07..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/ChecksumPolicyTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/ChecksumPolicyTest.xml deleted file mode 100644 index a42cdec07..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/ChecksumPolicyTest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/ReleasePolicyTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/ReleasePolicyTest.xml deleted file mode 100644 index a42cdec07..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/ReleasePolicyTest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/SnapshotsPolicyTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/SnapshotsPolicyTest.xml deleted file mode 100644 index a42cdec07..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/SnapshotsPolicyTest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/pom.xml deleted file mode 100644 index f4b39942a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/pom.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - 4.0.0 - archiva-proxy - Archiva Base :: Proxy - - - org.codehaus.plexus - plexus-spring - test - - - org.apache.archiva - archiva-configuration - - - org.apache.archiva - archiva-repository-layer - - - commons-io - commons-io - - - org.apache.maven.wagon - wagon-file - test - - - org.apache.maven.wagon - wagon-provider-api - - - org.codehaus.plexus - plexus-digest - - - org.codehaus.plexus - plexus-component-api - - - org.codehaus.plexus.registry - plexus-registry-commons - test - - - xmlunit - xmlunit - test - - - org.mortbay.jetty - jetty - 6.1.11 - test - - - org.apache.maven.wagon - wagon-http-lightweight - ${wagon.version} - test - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - **/Abstract* - **/*TestCase.java - **/*Tests.java - **/*TestSuite.java - **/RelocateTransfer* - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java deleted file mode 100644 index 68406c1de..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java +++ /dev/null @@ -1,1154 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.ArrayList; -import java.util.Collections; -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 org.apache.commons.collections.CollectionUtils; -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationNames; -import org.apache.maven.archiva.configuration.NetworkProxyConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.Keys; -import org.apache.maven.archiva.model.RepositoryURL; -import org.apache.maven.archiva.policies.DownloadErrorPolicy; -import org.apache.maven.archiva.policies.DownloadPolicy; -import org.apache.maven.archiva.policies.PolicyConfigurationException; -import org.apache.maven.archiva.policies.PolicyViolationException; -import org.apache.maven.archiva.policies.PostDownloadPolicy; -import org.apache.maven.archiva.policies.PreDownloadPolicy; -import org.apache.maven.archiva.policies.ProxyDownloadException; -import org.apache.maven.archiva.policies.urlcache.UrlFailureCache; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.RemoteRepositoryContent; -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.metadata.MetadataTools; -import org.apache.maven.archiva.repository.metadata.RepositoryMetadataException; -import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers; -import org.apache.maven.wagon.ConnectionException; -import org.apache.maven.wagon.ResourceDoesNotExistException; -import org.apache.maven.wagon.Wagon; -import org.apache.maven.wagon.WagonException; -import org.apache.maven.wagon.authentication.AuthenticationException; -import org.apache.maven.wagon.authentication.AuthenticationInfo; -import org.apache.maven.wagon.proxy.ProxyInfo; -import org.apache.maven.wagon.repository.Repository; -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; -import org.codehaus.plexus.util.SelectorUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * DefaultRepositoryProxyConnectors - * - * @author Joakim Erdfelt - * @version $Id$ - * @todo exception handling needs work - "not modified" is not really an exceptional case, and it has more layers than your average brown onion - * @plexus.component role-hint="default" - */ -public class DefaultRepositoryProxyConnectors - implements RepositoryProxyConnectors, RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( DefaultRepositoryProxyConnectors.class ); - - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement - */ - private MetadataTools metadataTools; - - /** - * @plexus.requirement role="org.apache.maven.archiva.policies.PreDownloadPolicy" - */ - private Map preDownloadPolicies; - - /** - * @plexus.requirement role="org.apache.maven.archiva.policies.PostDownloadPolicy" - */ - private Map postDownloadPolicies; - - /** - * @plexus.requirement role="org.apache.maven.archiva.policies.DownloadErrorPolicy" - */ - private Map downloadErrorPolicies; - - /** - * @plexus.requirement role-hint="default" - */ - private UrlFailureCache urlFailureCache; - - private Map> proxyConnectorMap = new HashMap>(); - - private Map networkProxyMap = new HashMap(); - - /** - * @plexus.requirement - */ - private RepositoryContentConsumers consumers; - - /** - * @plexus.requirement - */ - private WagonFactory wagonFactory; - - public File fetchFromProxies( ManagedRepositoryContent repository, ArtifactReference artifact ) - throws ProxyDownloadException - { - File workingDirectory = createWorkingDirectory(repository); - try - { - File localFile = toLocalFile( repository, artifact ); - - Properties requestProperties = new Properties(); - requestProperties.setProperty( "filetype", "artifact" ); - requestProperties.setProperty( "version", artifact.getVersion() ); - requestProperties.setProperty( "managedRepositoryId", repository.getId() ); - - List connectors = getProxyConnectors( repository ); - Map previousExceptions = new LinkedHashMap(); - for ( ProxyConnector connector : connectors ) - { - if (connector.isDisabled()) - { - continue; - } - - RemoteRepositoryContent targetRepository = connector.getTargetRepository(); - requestProperties.setProperty( "remoteRepositoryId", targetRepository.getId() ); - - String targetPath = targetRepository.toPath( artifact ); - - try - { - File downloadedFile = - transferFile( connector, targetRepository, targetPath, repository, workingDirectory, localFile, requestProperties, - true ); - - if ( fileExists( downloadedFile ) ) - { - log.debug( "Successfully transferred: " + downloadedFile.getAbsolutePath() ); - return downloadedFile; - } - } - catch ( NotFoundException e ) - { - log.debug( "Artifact " + Keys.toKey( artifact ) + " not found on repository \"" - + targetRepository.getRepository().getId() + "\"." ); - } - catch ( NotModifiedException e ) - { - log.debug( "Artifact " + Keys.toKey( artifact ) + " not updated on repository \"" - + targetRepository.getRepository().getId() + "\"." ); - } - catch ( ProxyException e ) - { - validatePolicies( this.downloadErrorPolicies, connector.getPolicies(), requestProperties, artifact, - targetRepository, localFile, e, previousExceptions ); - } - } - - if ( !previousExceptions.isEmpty() ) - { - throw new ProxyDownloadException( "Failures occurred downloading from some remote repositories", - previousExceptions ); - } - - log.debug( "Exhausted all target repositories, artifact " + Keys.toKey( artifact ) + " not found." ); - } - finally - { - FileUtils.deleteQuietly(workingDirectory); - } - - return null; - } - - public File fetchFromProxies( ManagedRepositoryContent repository, String path ) - { - File workingDir = createWorkingDirectory(repository); - try - { - File localFile = new File( repository.getRepoRoot(), path ); - - // no update policies for these paths - if ( localFile.exists() ) - { - return null; - } - - Properties requestProperties = new Properties(); - requestProperties.setProperty( "filetype", "resource" ); - requestProperties.setProperty( "managedRepositoryId", repository.getId() ); - - List connectors = getProxyConnectors( repository ); - for ( ProxyConnector connector : connectors ) - { - if (connector.isDisabled()) - { - continue; - } - - RemoteRepositoryContent targetRepository = connector.getTargetRepository(); - requestProperties.setProperty( "remoteRepositoryId", targetRepository.getId() ); - - String targetPath = path; - - try - { - File downloadedFile = - transferFile( connector, targetRepository, targetPath, repository, workingDir, localFile, requestProperties, false ); - - if ( fileExists( downloadedFile ) ) - { - log.debug( "Successfully transferred: " + downloadedFile.getAbsolutePath() ); - return downloadedFile; - } - } - catch ( NotFoundException e ) - { - log.debug( "Resource " + path + " not found on repository \"" - + targetRepository.getRepository().getId() + "\"." ); - } - catch ( NotModifiedException e ) - { - log.debug( "Resource " + path + " not updated on repository \"" - + targetRepository.getRepository().getId() + "\"." ); - } - catch ( ProxyException e ) - { - log.warn( "Transfer error from repository \"" + targetRepository.getRepository().getId() - + "\" for resource " + path + ", continuing to next repository. Error message: " + e.getMessage() ); - log.debug( "Full stack trace", e ); - } - } - - log.debug( "Exhausted all target repositories, resource " + path + " not found." ); - } - finally - { - FileUtils.deleteQuietly(workingDir); - } - - return null; - } - - public File fetchMetatadaFromProxies(ManagedRepositoryContent repository, String logicalPath) - { - File workingDir = createWorkingDirectory(repository); - try - { - File localFile = new File(repository.getRepoRoot(), logicalPath); - - Properties requestProperties = new Properties(); - requestProperties.setProperty( "filetype", "metadata" ); - boolean metadataNeedsUpdating = false; - long originalTimestamp = getLastModified( localFile ); - - List connectors = getProxyConnectors( repository ); - for ( ProxyConnector connector : connectors ) - { - if (connector.isDisabled()) - { - continue; - } - - RemoteRepositoryContent targetRepository = connector.getTargetRepository(); - - File localRepoFile = toLocalRepoFile( repository, targetRepository, logicalPath ); - long originalMetadataTimestamp = getLastModified( localRepoFile ); - - try - { - transferFile( connector, targetRepository, logicalPath, repository, workingDir, localRepoFile, requestProperties, true ); - - if ( hasBeenUpdated( localRepoFile, originalMetadataTimestamp ) ) - { - metadataNeedsUpdating = true; - } - } - catch ( NotFoundException e ) - { - log.debug( "Metadata " + logicalPath - + " not found on remote repository \"" - + targetRepository.getRepository().getId() + "\".", e ); - } - catch ( NotModifiedException e ) - { - log.debug( "Metadata " + logicalPath - + " not updated on remote repository \"" - + targetRepository.getRepository().getId() + "\".", e ); - } - catch ( ProxyException e ) - { - log.warn( "Transfer error from repository \"" + targetRepository.getRepository().getId() + - "\" for versioned Metadata " + logicalPath + - ", continuing to next repository. Error message: " + e.getMessage() ); - log.debug( "Full stack trace", e ); - } - } - - if ( hasBeenUpdated( localFile, originalTimestamp ) ) - { - metadataNeedsUpdating = true; - } - - if ( metadataNeedsUpdating || !localFile.exists()) - { - try - { - metadataTools.updateMetadata( repository, logicalPath ); - } - catch ( RepositoryMetadataException e ) - { - log.warn( "Unable to update metadata " + localFile.getAbsolutePath() + ": " + e.getMessage(), e ); - } - } - - if ( fileExists( localFile ) ) - { - return localFile; - } - } - finally - { - FileUtils.deleteQuietly(workingDir); - } - - return null; - } - - private long getLastModified( File file ) - { - if ( !file.exists() || !file.isFile() ) - { - return 0; - } - - return file.lastModified(); - } - - private boolean hasBeenUpdated( File file, long originalLastModified ) - { - if ( !file.exists() || !file.isFile() ) - { - return false; - } - - long currentLastModified = getLastModified( file ); - return ( currentLastModified > originalLastModified ); - } - - private File toLocalRepoFile( ManagedRepositoryContent repository, RemoteRepositoryContent targetRepository, - String targetPath ) - { - String repoPath = metadataTools.getRepositorySpecificName( targetRepository, targetPath ); - return new File( repository.getRepoRoot(), repoPath ); - } - - /** - * Test if the provided ManagedRepositoryContent has any proxies configured for it. - */ - public boolean hasProxies( ManagedRepositoryContent repository ) - { - synchronized ( this.proxyConnectorMap ) - { - return this.proxyConnectorMap.containsKey( repository.getId() ); - } - } - - private File toLocalFile( ManagedRepositoryContent repository, ArtifactReference artifact ) - { - return repository.toFile( artifact ); - } - - /** - * Simple method to test if the file exists on the local disk. - * - * @param file the file to test. (may be null) - * @return true if file exists. false if the file param is null, doesn't exist, or is not of type File. - */ - private boolean fileExists( File file ) - { - if ( file == null ) - { - return false; - } - - if ( !file.exists() ) - { - return false; - } - - if ( !file.isFile() ) - { - return false; - } - - return true; - } - - /** - * Perform the transfer of the file. - * - * @param connector the connector configuration to use. - * @param remoteRepository the remote repository get the resource from. - * @param remotePath the path in the remote repository to the resource to get. - * @param repository the managed repository that will hold the file - * @param resource the local file to place the downloaded resource into - * @param requestProperties the request properties to utilize for policy handling. - * @param executeConsumers whether to execute the consumers after proxying - * @return the local file that was downloaded, or null if not downloaded. - * @throws NotFoundException if the file was not found on the remote repository. - * @throws NotModifiedException if the localFile was present, and the resource was present on remote repository, - * but the remote resource is not newer than the local File. - * @throws ProxyException if transfer was unsuccessful. - */ - private File transferFile( ProxyConnector connector, RemoteRepositoryContent remoteRepository, String remotePath, - ManagedRepositoryContent repository, File workingDirectory, File resource, Properties requestProperties, - boolean executeConsumers ) - throws ProxyException, NotModifiedException - { - String url = remoteRepository.getURL().getUrl(); - if ( !url.endsWith( "/" ) ) - { - url = url + "/"; - } - url = url + remotePath; - requestProperties.setProperty( "url", url ); - - // Is a whitelist defined? - if ( CollectionUtils.isNotEmpty( connector.getWhitelist() ) ) - { - // Path must belong to whitelist. - if ( !matchesPattern( remotePath, connector.getWhitelist() ) ) - { - log.debug( "Path [" + remotePath + - "] is not part of defined whitelist (skipping transfer from repository [" + - remoteRepository.getRepository().getName() + "])." ); - return null; - } - } - - // Is target path part of blacklist? - if ( matchesPattern( remotePath, connector.getBlacklist() ) ) - { - log.debug( "Path [" + remotePath + "] is part of blacklist (skipping transfer from repository [" + - remoteRepository.getRepository().getName() + "])." ); - return null; - } - - // Handle pre-download policy - try - { - validatePolicies( this.preDownloadPolicies, connector.getPolicies(), requestProperties, resource ); - } - catch ( PolicyViolationException e ) - { - String emsg = "Transfer not attempted on " + url + " : " + e.getMessage(); - if ( fileExists( resource ) ) - { - log.info( emsg + ": using already present local file." ); - return resource; - } - - log.info( emsg ); - return null; - } - - // MRM-631 - the lightweight wagon does not reset these - remove if we switch to httpclient based wagon - String previousHttpProxyHost = System.getProperty( "http.proxyHost" ); - String previousHttpProxyPort = System.getProperty( "http.proxyPort" ); - String previousProxyExclusions = System.getProperty( "http.nonProxyHosts" ); - - File tmpMd5 = null; - File tmpSha1 = null; - File tmpResource = null; - - Wagon wagon = null; - try - { - RepositoryURL repoUrl = remoteRepository.getURL(); - String protocol = repoUrl.getProtocol(); - wagon = (Wagon) wagonFactory.getWagon( "wagon#" + protocol ); - if ( wagon == null ) - { - throw new ProxyException( "Unsupported target repository protocol: " + protocol ); - } - - boolean connected = connectToRepository( connector, wagon, remoteRepository ); - if ( connected ) - { - tmpResource = transferSimpleFile( wagon, remoteRepository, remotePath, repository, workingDirectory, resource ); - - // TODO: these should be used to validate the download based on the policies, not always downloaded to - // save on connections since md5 is rarely used - tmpSha1 = transferChecksum( wagon, remoteRepository, remotePath, repository, workingDirectory, resource, ".sha1" ); - tmpMd5 = transferChecksum( wagon, remoteRepository, remotePath, repository, workingDirectory, resource, ".md5" ); - } - } - catch ( NotFoundException e ) - { - urlFailureCache.cacheFailure( url ); - throw e; - } - catch ( NotModifiedException e ) - { - // Do not cache url here. - throw e; - } - catch ( ProxyException e ) - { - urlFailureCache.cacheFailure( url ); - throw e; - } - finally - { - if ( wagon != null ) - { - try - { - wagon.disconnect(); - - // MRM-631 - the lightweight wagon does not reset these - remove if we switch to httpclient based wagon - if ( previousHttpProxyHost != null ) - { - System.setProperty( "http.proxyHost", previousHttpProxyHost ); - } - else - { - System.getProperties().remove( "http.proxyHost" ); - } - if ( previousHttpProxyPort != null ) - { - System.setProperty( "http.proxyPort", previousHttpProxyPort ); - } - else - { - System.getProperties().remove( "http.proxyPort" ); - } - if ( previousProxyExclusions != null ) - { - System.setProperty( "http.nonProxyHosts", previousProxyExclusions ); - } - else - { - System.getProperties().remove( "http.nonProxyHosts" ); - } - } - catch ( ConnectionException e ) - { - log.warn( "Unable to disconnect wagon.", e ); - } - } - } - - // Handle post-download policies. - try - { - validatePolicies( this.postDownloadPolicies, connector.getPolicies(), requestProperties, tmpResource ); - } - catch ( PolicyViolationException e ) - { - log.info( "Transfer invalidated from " + url + " : " + e.getMessage() ); - executeConsumers = false; - if ( !fileExists( tmpResource ) ) - { - resource = null; - } - } - - if (resource != null) - { - synchronized (resource.getAbsolutePath().intern()) - { - File directory = resource.getParentFile(); - moveFileIfExists(tmpMd5, directory); - moveFileIfExists(tmpSha1, directory); - moveFileIfExists(tmpResource, directory); - } - } - - if ( executeConsumers ) - { - // Just-in-time update of the index and database by executing the consumers for this artifact - consumers.executeConsumers( connector.getSourceRepository().getRepository(), resource ); - } - - return resource; - } - - - - /** - * Moves the file into repository location if it exists - * - * @param fileToMove this could be either the main artifact, sha1 or md5 checksum file. - * @param directory directory to write files to - */ - private void moveFileIfExists(File fileToMove, File directory) throws ProxyException - { - if (fileToMove != null && fileToMove.exists()) - { - File newLocation = new File(directory, fileToMove.getName()); - moveTempToTarget(fileToMove, newLocation); - } - } - - /** - *

- * Quietly transfer the checksum file from the remote repository to the local file. - *

- * - * @param wagon the wagon instance (should already be connected) to use. - * @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") - * @throws ProxyException if copying the downloaded file into place did not succeed. - */ - private File transferChecksum( Wagon wagon, RemoteRepositoryContent remoteRepository, String remotePath, - ManagedRepositoryContent repository, File workingDirectory, File localFile, String type ) - throws ProxyException - { - File hashFile = new File( localFile.getAbsolutePath() + type ); - File tmpChecksum = new File(workingDirectory, hashFile.getName()); - String url = remoteRepository.getURL().getUrl() + remotePath; - - // Transfer checksum does not use the policy. - if ( urlFailureCache.hasFailedBefore( url + type ) ) - { - return null; - } - - try - { - transferSimpleFile( wagon, remoteRepository, remotePath + type, repository, workingDirectory, hashFile ); - log.debug( "Checksum" + type + " Downloaded: " + hashFile ); - } - catch ( NotFoundException e ) - { - urlFailureCache.cacheFailure( url + type ); - log.debug( "Transfer failed, checksum not found: " + url ); - // Consume it, do not pass this on. - } - catch ( NotModifiedException e ) - { - log.debug( "Transfer skipped, checksum not modified: " + url ); - // Consume it, do not pass this on. - } - catch ( ProxyException e ) - { - urlFailureCache.cacheFailure( url + type ); - log.warn( "Transfer failed on checksum: " + url + " : " + e.getMessage(), e ); - // Critical issue, pass it on. - throw e; - } - return tmpChecksum; - } - - /** - * Perform the transfer of the remote file to the local file specified. - * - * @param wagon the wagon instance to use. - * @param remoteRepository the remote repository to use - * @param remotePath the remote path to attempt to get - * @param repository the managed repository that will hold the file - * @param localFile the local file to save to - * @return The local file that was transfered. - * @throws ProxyException if there was a problem moving the downloaded file into place. - * @throws WagonException if there was a problem tranfering the file. - */ - private File transferSimpleFile( Wagon wagon, RemoteRepositoryContent remoteRepository, String remotePath, - ManagedRepositoryContent repository, File workingDirectory, File localFile ) - throws ProxyException - { - assert ( remotePath != null ); - - // Transfer the file. - File temp = null; - - try - { - temp = new File(workingDirectory, localFile.getName()); - - boolean success = false; - - if ( !localFile.exists() ) - { - log.debug( "Retrieving " + remotePath + " from " + remoteRepository.getRepository().getName() ); - wagon.get( remotePath, temp ); - success = true; - - // You wouldn't get here on failure, a WagonException would have been thrown. - log.debug( "Downloaded successfully." ); - } - else - { - log.debug( "Retrieving " + remotePath + " from " + remoteRepository.getRepository().getName() - + " if updated" ); - success = wagon.getIfNewer( remotePath, temp, localFile.lastModified() ); - if ( !success ) - { - throw new NotModifiedException( - "Not downloaded, as local file is newer than remote side: " + localFile.getAbsolutePath() ); - } - - if ( temp.exists() ) - { - log.debug( "Downloaded successfully." ); - } - } - - return temp; - } - catch ( ResourceDoesNotExistException e ) - { - throw new NotFoundException( - "Resource [" + remoteRepository.getURL() + "/" + remotePath + "] does not exist: " + e.getMessage(), - e ); - } - catch ( WagonException e ) - { - // TODO: shouldn't have to drill into the cause, but TransferFailedException is often not descriptive enough - - String msg = - "Download failure on resource [" + remoteRepository.getURL() + "/" + remotePath + "]:" + e.getMessage(); - if ( e.getCause() != null ) - { - msg += " (cause: " + e.getCause() + ")"; - } - throw new ProxyException( msg, e ); - } - } - - /** - * Apply the policies. - * - * @param policies the map of policies to execute. (Map of String policy keys, to {@link DownloadPolicy} objects) - * @param settings the map of settings for the policies to execute. (Map of String policy keys, to String policy setting) - * @param request the request properties (utilized by the {@link DownloadPolicy#applyPolicy(String,Properties,File)}) - * @param localFile the local file (utilized by the {@link DownloadPolicy#applyPolicy(String,Properties,File)}) - */ - private void validatePolicies( Map policies, Map settings, - Properties request, File localFile ) - throws PolicyViolationException - { - for ( Entry entry : policies.entrySet() ) - { - String key = entry.getKey(); - DownloadPolicy policy = entry.getValue(); - String defaultSetting = policy.getDefaultOption(); - String setting = StringUtils.defaultString( settings.get( key ), defaultSetting ); - - log.debug( "Applying [" + key + "] policy with [" + setting + "]" ); - try - { - policy.applyPolicy( setting, request, localFile ); - } - catch ( PolicyConfigurationException e ) - { - log.error( e.getMessage(), e ); - } - } - } - - private void validatePolicies( Map policies, Map settings, - Properties request, ArtifactReference artifact, RemoteRepositoryContent content, - File localFile, ProxyException exception, Map previousExceptions ) - throws ProxyDownloadException - { - boolean process = true; - for ( Entry entry : policies.entrySet() ) - { - String key = entry.getKey(); - DownloadErrorPolicy policy = entry.getValue(); - String defaultSetting = policy.getDefaultOption(); - String setting = StringUtils.defaultString( settings.get( key ), defaultSetting ); - - log.debug( "Applying [" + key + "] policy with [" + setting + "]" ); - try - { - // all policies must approve the exception, any can cancel - process = policy.applyPolicy( setting, request, localFile, exception, previousExceptions ); - if ( !process ) - { - break; - } - } - catch ( PolicyConfigurationException e ) - { - log.error( e.getMessage(), e ); - } - } - - if ( process ) - { - // if the exception was queued, don't throw it - if ( !previousExceptions.containsKey( content.getId() ) ) - { - throw new ProxyDownloadException( - "An error occurred in downloading from the remote repository, and the policy is to fail immediately", - content.getId(), exception ); - } - } - else - { - // if the exception was queued, but cancelled, remove it - previousExceptions.remove( content.getId() ); - } - - log.warn( "Transfer error from repository \"" + content.getRepository().getId() + "\" for artifact " + - Keys.toKey( artifact ) + ", continuing to next repository. Error message: " + exception.getMessage() ); - log.debug( "Full stack trace", exception ); - } - - /** - * Creates a working directory in the repository root for this request - * @param repository - * @return file location of working directory - */ - private File createWorkingDirectory(ManagedRepositoryContent repository) - { - //TODO: This is ugly - lets actually clean this up when we get the new repository api - try - { - File tmpDir = File.createTempFile(".workingdirectory", null, new File(repository.getRepoRoot())); - tmpDir.delete(); - tmpDir.mkdirs(); - return tmpDir; - } - catch (IOException e) - { - throw new RuntimeException("Could not create working directory for this request", e); - } - } - - /** - * Used to move the temporary file to its real destination. This is patterned from the way WagonManager handles - * its downloaded files. - * - * @param temp The completed download file - * @param target The final location of the downloaded file - * @throws ProxyException when the temp file cannot replace the target file - */ - private void moveTempToTarget( File temp, File target ) - throws ProxyException - { - if ( target.exists() && !target.delete() ) - { - throw new ProxyException( "Unable to overwrite existing target file: " + target.getAbsolutePath() ); - } - - target.getParentFile().mkdirs(); - if ( !temp.renameTo( target ) ) - { - log.warn( "Unable to rename tmp file to its final name... resorting to copy command." ); - - try - { - FileUtils.copyFile( temp, target ); - } - catch ( IOException e ) - { - if (target.exists()) - { - log.debug("Tried to copy file " + temp.getName() + " to " + target.getAbsolutePath() + " but file with this name already exists."); - } - else - { - throw new ProxyException( "Cannot copy tmp file " + temp.getAbsolutePath() + " to its final location", e ); - } - } - finally - { - FileUtils.deleteQuietly(temp); - } - } - } - - /** - * Using wagon, connect to the remote repository. - * - * @param connector the connector configuration to utilize (for obtaining network proxy configuration from) - * @param wagon the wagon instance to establish the connection on. - * @param remoteRepository the remote repository to connect to. - * @return true if the connection was successful. false if not connected. - */ - private boolean connectToRepository( ProxyConnector connector, Wagon wagon, - RemoteRepositoryContent remoteRepository ) - { - boolean connected = false; - - final ProxyInfo networkProxy; - synchronized ( this.networkProxyMap ) - { - networkProxy = (ProxyInfo) this.networkProxyMap.get( connector.getProxyId() ); - } - - if ( log.isDebugEnabled() ) - { - if ( networkProxy != null ) - { - // TODO: move to proxyInfo.toString() - String msg = - "Using network proxy " + networkProxy.getHost() + ":" + networkProxy.getPort() - + " to connect to remote repository " + remoteRepository.getURL(); - if ( networkProxy.getNonProxyHosts() != null ) - { - msg += "; excluding hosts: " + networkProxy.getNonProxyHosts(); - } - if ( StringUtils.isNotBlank( networkProxy.getUserName() ) ) - { - msg += "; as user: " + networkProxy.getUserName(); - } - log.debug( msg ); - } - } - - AuthenticationInfo authInfo = null; - String username = remoteRepository.getRepository().getUsername(); - String password = remoteRepository.getRepository().getPassword(); - - if ( StringUtils.isNotBlank( username ) && StringUtils.isNotBlank( password ) ) - { - log.debug( "Using username " + username + " to connect to remote repository " - + remoteRepository.getURL() ); - authInfo = new AuthenticationInfo(); - authInfo.setUserName( username ); - authInfo.setPassword( password ); - } - - //Convert seconds to milliseconds - int timeoutInMilliseconds = remoteRepository.getRepository().getTimeout() * 1000; - - //Set timeout - wagon.setTimeout(timeoutInMilliseconds); - - try - { - Repository wagonRepository = new Repository( remoteRepository.getId(), remoteRepository.getURL().toString() ); - wagon.connect( wagonRepository, authInfo, networkProxy ); - connected = true; - } - catch ( ConnectionException e ) - { - log.warn( - "Could not connect to " + remoteRepository.getRepository().getName() + ": " + e.getMessage() ); - connected = false; - } - catch ( AuthenticationException e ) - { - log.warn( - "Could not connect to " + remoteRepository.getRepository().getName() + ": " + e.getMessage() ); - connected = false; - } - - return connected; - } - - /** - * Tests whitelist and blacklist patterns against path. - * - * @param path the path to test. - * @param patterns the list of patterns to check. - * @return true if the path matches at least 1 pattern in the provided patterns list. - */ - private boolean matchesPattern( String path, List patterns ) - { - if ( CollectionUtils.isEmpty( patterns ) ) - { - return false; - } - - for ( String pattern : patterns ) - { - if ( SelectorUtils.matchPath( pattern, path, false ) ) - { - return true; - } - } - - return false; - } - - /** - * TODO: Ensure that list is correctly ordered based on configuration. See MRM-477 - */ - public List getProxyConnectors( ManagedRepositoryContent repository ) - { - synchronized ( this.proxyConnectorMap ) - { - List ret = (List) this.proxyConnectorMap.get( repository.getId() ); - if ( ret == null ) - { - return Collections.emptyList(); - } - - Collections.sort( ret, ProxyConnectorOrderComparator.getInstance() ); - return ret; - } - } - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isNetworkProxy( propertyName ) || - ConfigurationNames.isManagedRepositories( propertyName ) || - ConfigurationNames.isRemoteRepositories( propertyName ) || - ConfigurationNames.isProxyConnector( propertyName ) ) - { - initConnectorsAndNetworkProxies(); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* do nothing */ - } - - @SuppressWarnings("unchecked") - private void initConnectorsAndNetworkProxies() - { - synchronized ( this.proxyConnectorMap ) - { - ProxyConnectorOrderComparator proxyOrderSorter = new ProxyConnectorOrderComparator(); - this.proxyConnectorMap.clear(); - - List proxyConfigs = archivaConfiguration.getConfiguration() - .getProxyConnectors(); - for ( ProxyConnectorConfiguration proxyConfig : proxyConfigs ) - { - String key = proxyConfig.getSourceRepoId(); - - try - { - // Create connector object. - ProxyConnector connector = new ProxyConnector(); - - connector.setSourceRepository( repositoryFactory.getManagedRepositoryContent( proxyConfig - .getSourceRepoId() ) ); - connector.setTargetRepository( repositoryFactory.getRemoteRepositoryContent( proxyConfig - .getTargetRepoId() ) ); - - connector.setProxyId( proxyConfig.getProxyId() ); - connector.setPolicies( proxyConfig.getPolicies() ); - connector.setOrder( proxyConfig.getOrder() ); - connector.setDisabled( proxyConfig.isDisabled() ); - - // Copy any blacklist patterns. - List blacklist = new ArrayList(); - if ( CollectionUtils.isNotEmpty( proxyConfig.getBlackListPatterns() ) ) - { - blacklist.addAll( proxyConfig.getBlackListPatterns() ); - } - connector.setBlacklist( blacklist ); - - // Copy any whitelist patterns. - List whitelist = new ArrayList(); - if ( CollectionUtils.isNotEmpty( proxyConfig.getWhiteListPatterns() ) ) - { - whitelist.addAll( proxyConfig.getWhiteListPatterns() ); - } - connector.setWhitelist( whitelist ); - - // Get other connectors - List connectors = this.proxyConnectorMap.get( key ); - if ( connectors == null ) - { - // Create if we are the first. - connectors = new ArrayList(); - } - - // Add the connector. - connectors.add( connector ); - - // Ensure the list is sorted. - Collections.sort( connectors, proxyOrderSorter ); - - // Set the key to the list of connectors. - this.proxyConnectorMap.put( key, connectors ); - } - catch ( RepositoryNotFoundException e ) - { - log.warn( "Unable to use proxy connector: " + e.getMessage(), e ); - } - catch ( RepositoryException e ) - { - log.warn( "Unable to use proxy connector: " + e.getMessage(), e ); - } - } - - } - - synchronized ( this.networkProxyMap ) - { - this.networkProxyMap.clear(); - - List networkProxies = archivaConfiguration.getConfiguration().getNetworkProxies(); - for ( NetworkProxyConfiguration networkProxyConfig : networkProxies ) - { - String key = networkProxyConfig.getId(); - - ProxyInfo proxy = new ProxyInfo(); - - proxy.setType( networkProxyConfig.getProtocol() ); - proxy.setHost( networkProxyConfig.getHost() ); - proxy.setPort( networkProxyConfig.getPort() ); - proxy.setUserName( networkProxyConfig.getUsername() ); - proxy.setPassword( networkProxyConfig.getPassword() ); - - this.networkProxyMap.put( key, proxy ); - } - } - } - - public void initialize() - throws InitializationException - { - initConnectorsAndNetworkProxies(); - archivaConfiguration.addChangeListener( this ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/NotFoundException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/NotFoundException.java deleted file mode 100644 index c4ab4c9cd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/NotFoundException.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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. - */ - -/** - * NotFoundException - thrown when the resource requested was not found on the remote repository. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class NotFoundException - extends ProxyException -{ - public NotFoundException( String message, Throwable t ) - { - super( message, t ); - } - - public NotFoundException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/NotModifiedException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/NotModifiedException.java deleted file mode 100644 index 06dd3e79a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/NotModifiedException.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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. - */ - -/** - *

- * NotModifiedException - thrown when the resource requested was found on the remote repository, but - * the remote repository reported that the copy we have in our managed repository is newer than - * the one present on the remote repository. - *

- *

- * Similar in scope to the HTTP 304 Not Modified response code. - *

- * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class NotModifiedException - extends ProxyException -{ - - public NotModifiedException( String message ) - { - super( message ); - } - - public NotModifiedException( String message, Throwable t ) - { - super( message, t ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java deleted file mode 100644 index 8bf9d4548..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java +++ /dev/null @@ -1,162 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.RemoteRepositoryContent; -import org.apache.maven.archiva.repository.connector.RepositoryConnector; - -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * This represents a connector for a repository to repository proxy. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProxyConnector - implements RepositoryConnector -{ - private ManagedRepositoryContent sourceRepository; - - private RemoteRepositoryContent targetRepository; - - private List blacklist; - - private List whitelist; - - private String proxyId; - - private int order; - - private Map policies; - - private boolean disabled; - - public boolean isDisabled() - { - return disabled; - } - - public void setDisabled(boolean disabled) - { - this.disabled = disabled; - } - - public List getBlacklist() - { - return blacklist; - } - - public void setBlacklist( List blacklist ) - { - this.blacklist = blacklist; - } - - public ManagedRepositoryContent getSourceRepository() - { - return sourceRepository; - } - - public void setSourceRepository( ManagedRepositoryContent sourceRepository ) - { - this.sourceRepository = sourceRepository; - } - - public RemoteRepositoryContent getTargetRepository() - { - return targetRepository; - } - - public void setTargetRepository( RemoteRepositoryContent targetRepository ) - { - this.targetRepository = targetRepository; - } - - public List getWhitelist() - { - return whitelist; - } - - public void setWhitelist( List whitelist ) - { - this.whitelist = whitelist; - } - - public Map getPolicies() - { - return policies; - } - - public void setPolicies( Map policies ) - { - this.policies = policies; - } - - public String getProxyId() - { - return proxyId; - } - - public void setProxyId( String proxyId ) - { - this.proxyId = proxyId; - } - - @Override - public String toString() - { - StringBuffer sb = new StringBuffer(); - - sb.append( "ProxyConnector[\n" ); - sb.append( " source: [managed] " ).append( this.sourceRepository.getRepoRoot() ).append( "\n" ); - sb.append( " target: [remote] " ).append( this.targetRepository.getRepository().getUrl() ).append( "\n" ); - sb.append( " proxyId:" ).append( this.proxyId ).append( "\n" ); - - Iterator keys = this.policies.keySet().iterator(); - while ( keys.hasNext() ) - { - String name = keys.next(); - sb.append( " policy[" ).append( name ).append( "]:" ); - sb.append( this.policies.get( name ) ).append( "\n" ); - } - - sb.append( "]" ); - - return sb.toString(); - } - - public void setPolicy( String policyId, String policySetting ) - { - this.policies.put( policyId, policySetting ); - } - - public int getOrder() - { - return order; - } - - public void setOrder( int order ) - { - this.order = order; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnectorOrderComparator.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnectorOrderComparator.java deleted file mode 100644 index 05c8e9aa0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnectorOrderComparator.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.Comparator; - -/** - * ProxyConnectorOrderComparator - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProxyConnectorOrderComparator - implements Comparator -{ - private static ProxyConnectorOrderComparator INSTANCE = new ProxyConnectorOrderComparator(); - - public static ProxyConnectorOrderComparator getInstance() - { - return INSTANCE; - } - - public int compare( ProxyConnector o1, ProxyConnector o2 ) - { - if ( o1 == null && o2 == null ) - { - return 0; - } - - // Ensure null goes to end of list. - if ( o1 == null && o2 != null ) - { - return 1; - } - - if ( o1 != null && o2 == null ) - { - return -1; - } - - // Ensure 0 (unordered) goes to end of list. - if ( o1.getOrder() == 0 && o2.getOrder() != 0 ) - { - return 1; - } - - if ( o1.getOrder() != 0 && o2.getOrder() == 0 ) - { - return -1; - } - - return o1.getOrder() - o2.getOrder(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyException.java deleted file mode 100644 index 1704bd326..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyException.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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. - */ - -/** - * @author Edwin Punzalan - */ -public class ProxyException - extends Exception -{ - public ProxyException( String message ) - { - super( message ); - } - - public ProxyException( String message, Throwable t ) - { - super( message, t ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/RepositoryProxyConnectors.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/RepositoryProxyConnectors.java deleted file mode 100644 index 760688db0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/RepositoryProxyConnectors.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.policies.ProxyDownloadException; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; - -import java.io.File; -import java.util.List; - -/** - * Handler for potential repository proxy connectors. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface RepositoryProxyConnectors -{ - /** - * Performs the artifact fetch operation against the target repositories - * of the provided source repository. - * - * If the artifact is found, it is downloaded and placed into the source repository - * filesystem. - * - * @param repository the source repository to use. (must be a managed repository) - * @param artifact the artifact to fetch. - * @return the file that was obtained, or null if no content was obtained - * @throws ProxyDownloadException if there was a problem fetching the content from the target repositories. - */ - public File fetchFromProxies( ManagedRepositoryContent repository, ArtifactReference artifact ) - throws ProxyDownloadException; - - /** - * Performs the metadata fetch operation against the target repositories - * of the provided source repository. - * - * If the metadata is found, it is downloaded and placed into the source repository - * filesystem. - * - * @param repository the source repository to use. (must be a managed repository) - * @param metadata the metadata to fetch. - * @return the file that was obtained, or null if no content was obtained - */ - public File fetchMetatadaFromProxies( ManagedRepositoryContent repository, String logicalPath ); - - /** - * Performs the fetch operation against the target repositories - * of the provided source repository. - * - * @param repository the source repository to use. (must be a managed repository) - * @param path the path of the resource to fetch - * @return the file that was obtained, or null if no content was obtained - */ - public File fetchFromProxies( ManagedRepositoryContent managedRepository, String path ); - - /** - * Get the List of {@link ProxyConnector} objects of the source repository. - * - * @param repository the source repository to look for. - * @return the List of {@link ProxyConnector} objects. - */ - public List getProxyConnectors( ManagedRepositoryContent repository ); - - /** - * Tests to see if the provided repository is a source repository for - * any {@link ProxyConnector} objects. - * - * @param repository the source repository to look for. - * @return true if there are proxy connectors that use the provided - * repository as a source repository. - */ - public boolean hasProxies( ManagedRepositoryContent repository ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/WagonFactory.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/WagonFactory.java deleted file mode 100644 index a32d1550d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/WagonFactory.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.wagon.Wagon; - -/** - * Create a Wagon instance for the given protocol. Implementation will be provided by a Spring service locator. - * - * @author Brett Porter - */ -public interface WagonFactory -{ - /** - * Create a new Wagon instance for the given protocol. - * - * @param protocol the protocol to find the Wagon for, which must be prefixed with wagon#, for example - * wagon#http. - * @return the Wagon instance - */ - Wagon getWagon( String protocol ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/resources/META-INF/spring-context.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/resources/META-INF/spring-context.xml deleted file mode 100644 index baae58725..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/main/resources/META-INF/spring-context.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java deleted file mode 100644 index eed4394e6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java +++ /dev/null @@ -1,629 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.Locale; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.ArrayUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.PropagateErrorsDownloadPolicy; -import org.apache.maven.archiva.policies.PropagateErrorsOnUpdateDownloadPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.wagon.Wagon; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.ArgumentsMatcher; -import org.easymock.MockControl; - -/** - * AbstractProxyTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractProxyTestCase - extends PlexusInSpringTestCase -{ - protected static final String ID_LEGACY_PROXIED = "legacy-proxied"; - - protected static final String ID_PROXIED1 = "proxied1"; - - protected static final String ID_PROXIED1_TARGET = "proxied1-target"; - - protected static final String ID_PROXIED2 = "proxied2"; - - protected static final String ID_PROXIED2_TARGET = "proxied2-target"; - - protected static final String ID_DEFAULT_MANAGED = "default-managed-repository"; - - protected static final String ID_LEGACY_MANAGED = "legacy-managed-repository"; - - protected static final String REPOPATH_PROXIED_LEGACY = "src/test/repositories/legacy-proxied"; - - protected static final String REPOPATH_PROXIED1 = "src/test/repositories/proxied1"; - - protected static final String REPOPATH_PROXIED1_TARGET = "target/test-repository/proxied1"; - - protected static final String REPOPATH_PROXIED2 = "src/test/repositories/proxied2"; - - protected static final String REPOPATH_PROXIED2_TARGET = "target/test-repository/proxied2"; - - protected static final String REPOPATH_DEFAULT_MANAGED = "src/test/repositories/managed"; - - // protected static final String REPOPATH_DEFAULT_MANAGED_TARGET = "target/test-repository/managed"; - - protected static final String REPOPATH_LEGACY_MANAGED = "src/test/repositories/legacy-managed"; - - protected static final String REPOPATH_LEGACY_MANAGED_TARGET = "target/test-repository/legacy-managed"; - - protected static final ArgumentsMatcher customWagonGetIfNewerMatcher = new ArgumentsMatcher() { - - public boolean matches(Object[] expected, Object[] actual) { - if (expected.length < 1 || actual.length < 1) - { - return false; - } - return MockControl.ARRAY_MATCHER.matches(ArrayUtils.remove(expected, 1), ArrayUtils.remove(actual, 1)); - } - - public String toString(Object[] arguments) { - return ArrayUtils.toString(arguments); - } - }; - - protected static final ArgumentsMatcher customWagonGetMatcher = new ArgumentsMatcher() { - - public boolean matches(Object[] expected, Object[] actual) - { - if (expected.length == 2 && actual.length == 2) - { - if (expected[0] == null && actual[0] == null) - { - return true; - } - - if (expected[0] == null) - { - return actual[0] == null; - } - - if (actual[0] == null) - { - return expected[0] == null; - } - - return expected[0].equals(actual[0]); - } - return false; - } - - public String toString(Object[] arguments) - { - return ArrayUtils.toString(arguments); - } - }; - - protected MockControl wagonMockControl; - - protected Wagon wagonMock; - - protected RepositoryProxyConnectors proxyHandler; - - protected ManagedRepositoryContent managedDefaultRepository; - - protected File managedDefaultDir; - - protected ManagedRepositoryContent managedLegacyRepository; - - protected File managedLegacyDir; - - protected MockConfiguration config; - - protected void assertChecksums( File expectedFile, String expectedSha1Contents, String expectedMd5Contents ) - throws Exception - { - File sha1File = new File( expectedFile.getAbsolutePath() + ".sha1" ); - File md5File = new File( expectedFile.getAbsolutePath() + ".md5" ); - - if ( expectedSha1Contents == null ) - { - assertFalse( "SHA1 File should NOT exist: " + sha1File.getPath(), sha1File.exists() ); - } - else - { - assertTrue( "SHA1 File should exist: " + sha1File.getPath(), sha1File.exists() ); - String actualSha1Contents = readChecksumFile( sha1File ); - assertEquals( "SHA1 File contents: " + sha1File.getPath(), expectedSha1Contents, actualSha1Contents ); - } - - if ( expectedMd5Contents == null ) - { - assertFalse( "MD5 File should NOT exist: " + md5File.getPath(), md5File.exists() ); - } - else - { - assertTrue( "MD5 File should exist: " + md5File.getPath(), md5File.exists() ); - String actualMd5Contents = readChecksumFile( md5File ); - assertEquals( "MD5 File contents: " + md5File.getPath(), expectedMd5Contents, actualMd5Contents ); - } - } - - protected void assertFileEquals( File expectedFile, File actualFile, File sourceFile ) - throws Exception - { - assertNotNull( "Expected File should not be null.", expectedFile ); - assertNotNull( "Actual File should not be null.", actualFile ); - - assertTrue( "Check actual file exists.", actualFile.exists() ); - assertEquals( "Check filename path is appropriate.", expectedFile.getCanonicalPath(), actualFile.getCanonicalPath() ); - assertEquals( "Check file path matches.", expectedFile.getAbsolutePath(), actualFile.getAbsolutePath() ); - - String expectedContents = FileUtils.readFileToString( sourceFile, null ); - String actualContents = FileUtils.readFileToString( actualFile, null ); - assertEquals( "Check file contents.", expectedContents, actualContents ); - } - - protected void assertNotDownloaded( File downloadedFile ) - { - assertNull( "Found file: " + downloadedFile + "; but was expecting a failure", downloadedFile ); - } - - protected void assertNoTempFiles( File expectedFile ) - { - File workingDir = expectedFile.getParentFile(); - if ( ( workingDir == null ) || !workingDir.isDirectory() ) - { - return; - } - - Collection tmpFiles = FileUtils.listFiles( workingDir, new String[] { "tmp" }, false ); - if ( !tmpFiles.isEmpty() ) - { - StringBuffer emsg = new StringBuffer(); - emsg.append( "Found Temp Files in dir: " ).append( workingDir.getPath() ); - for ( File tfile : tmpFiles ) - { - emsg.append( "\n " ).append( tfile.getName() ); - } - fail( emsg.toString() ); - } - } - - /** - * A faster recursive copy that omits .svn directories. - * - * @param sourceDirectory the source directory to copy - * @param destDirectory the target location - * @throws java.io.IOException if there is a copying problem - * @todo get back into plexus-utils, share with converter module - */ - protected void copyDirectoryStructure( File sourceDirectory, File destDirectory ) - throws IOException - { - if ( !sourceDirectory.exists() ) - { - throw new IOException( "Source directory doesn't exists (" + sourceDirectory.getAbsolutePath() + ")." ); - } - - File[] files = sourceDirectory.listFiles(); - - String sourcePath = sourceDirectory.getAbsolutePath(); - - for ( int i = 0; i < files.length; i++ ) - { - File file = files[i]; - - String dest = file.getAbsolutePath(); - - dest = dest.substring( sourcePath.length() + 1 ); - - File destination = new File( destDirectory, dest ); - - if ( file.isFile() ) - { - destination = destination.getParentFile(); - - FileUtils.copyFile( file, new File( destination, file.getName() ), false ); - // TODO: Change when there is a FileUtils.copyFileToDirectory(file, destination, boolean) option - //FileUtils.copyFileToDirectory( file, destination ); - } - else if ( file.isDirectory() ) - { - if ( !".svn".equals( file.getName() ) ) - { - if ( !destination.exists() && !destination.mkdirs() ) - { - throw new IOException( "Could not create destination directory '" - + destination.getAbsolutePath() + "'." ); - } - - copyDirectoryStructure( file, destination ); - } - } - else - { - throw new IOException( "Unknown file type: " + file.getAbsolutePath() ); - } - } - } - - protected ManagedRepositoryContent createManagedLegacyRepository() - throws Exception - { - return createRepository( "testManagedLegacyRepo", "Test Managed (Legacy) Repository", - "src/test/repositories/legacy-managed", "legacy" ); - } - - protected ManagedRepositoryContent createProxiedLegacyRepository() - throws Exception - { - return createRepository( "testProxiedLegacyRepo", "Test Proxied (Legacy) Repository", - "src/test/repositories/legacy-proxied", "legacy" ); - } - - protected ManagedRepositoryContent createRepository( String id, String name, String path, String layout ) - throws Exception - { - ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration(); - repo.setId( id ); - repo.setName( name ); - repo.setLocation( path ); - repo.setLayout( layout ); - - ManagedRepositoryContent repoContent = (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class, - layout ); - repoContent.setRepository( repo ); - return repoContent; - } - - /** - * Read the first line from the checksum file, and return it (trimmed). - */ - protected String readChecksumFile( File checksumFile ) - throws Exception - { - FileReader freader = null; - BufferedReader buf = null; - - try - { - freader = new FileReader( checksumFile ); - buf = new BufferedReader( freader ); - return buf.readLine(); - } - finally - { - if ( buf != null ) - { - buf.close(); - } - - if ( freader != null ) - { - freader.close(); - } - } - } - - protected void saveConnector( String sourceRepoId, String targetRepoId, boolean disabled ) - { - saveConnector( sourceRepoId, targetRepoId, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, disabled ); - } - - protected void saveConnector( String sourceRepoId, String targetRepoId, String checksumPolicy, String releasePolicy, - String snapshotPolicy, String cacheFailuresPolicy, boolean disabled ) - { - saveConnector( sourceRepoId, targetRepoId, checksumPolicy, releasePolicy, snapshotPolicy, cacheFailuresPolicy, - PropagateErrorsDownloadPolicy.QUEUE, disabled ); - } - - protected void saveConnector( String sourceRepoId, String targetRepoId, String checksumPolicy, String releasePolicy, - String snapshotPolicy, String cacheFailuresPolicy, String errorPolicy, boolean disabled ) - { - saveConnector( sourceRepoId, targetRepoId, checksumPolicy, releasePolicy, snapshotPolicy, cacheFailuresPolicy, - errorPolicy, PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT, disabled ); - } - - protected void saveConnector( String sourceRepoId, String targetRepoId, String checksumPolicy, String releasePolicy, - String snapshotPolicy, String cacheFailuresPolicy, String errorPolicy, - String errorOnUpdatePolicy, boolean disabled ) - { - ProxyConnectorConfiguration connectorConfig = new ProxyConnectorConfiguration(); - connectorConfig.setSourceRepoId( sourceRepoId ); - connectorConfig.setTargetRepoId( targetRepoId ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_CHECKSUM, checksumPolicy ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_RELEASES, releasePolicy ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_SNAPSHOTS, snapshotPolicy ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_CACHE_FAILURES, cacheFailuresPolicy ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS, errorPolicy ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS_ON_UPDATE, errorOnUpdatePolicy ); - connectorConfig.setDisabled(disabled); - - int count = config.getConfiguration().getProxyConnectors().size(); - config.getConfiguration().addProxyConnector( connectorConfig ); - - // Proper Triggering ... - String prefix = "proxyConnectors.proxyConnector(" + count + ")"; - config.triggerChange( prefix + ".sourceRepoId", connectorConfig.getSourceRepoId() ); - config.triggerChange( prefix + ".targetRepoId", connectorConfig.getTargetRepoId() ); - config.triggerChange( prefix + ".proxyId", connectorConfig.getProxyId() ); - config.triggerChange( prefix + ".policies.releases", connectorConfig.getPolicy( "releases", "" ) ); - config.triggerChange( prefix + ".policies.checksum", connectorConfig.getPolicy( "checksum", "" ) ); - config.triggerChange( prefix + ".policies.snapshots", connectorConfig.getPolicy( "snapshots", "" ) ); - config.triggerChange( prefix + ".policies.cache-failures", connectorConfig.getPolicy( "cache-failures", "" ) ); - config.triggerChange( prefix + ".policies.propagate-errors", - connectorConfig.getPolicy( "propagate-errors", "" ) ); - config.triggerChange( prefix + ".policies.propagate-errors-on-update", - connectorConfig.getPolicy( "propagate-errors-on-update", "" ) ); - } - - protected void saveManagedRepositoryConfig( String id, String name, String path, String layout ) - { - ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration(); - - repoConfig.setId( id ); - repoConfig.setName( name ); - repoConfig.setLayout( layout ); - - repoConfig.setLocation( path ); - - int count = config.getConfiguration().getManagedRepositories().size(); - config.getConfiguration().addManagedRepository( repoConfig ); - - String prefix = "managedRepositories.managedRepository(" + count + ")"; - config.triggerChange( prefix + ".id", repoConfig.getId() ); - config.triggerChange( prefix + ".name", repoConfig.getName() ); - config.triggerChange( prefix + ".location", repoConfig.getLocation() ); - config.triggerChange( prefix + ".layout", repoConfig.getLayout() ); - } - - protected void saveRemoteRepositoryConfig( String id, String name, String url, String layout ) - { - RemoteRepositoryConfiguration repoConfig = new RemoteRepositoryConfiguration(); - - repoConfig.setId( id ); - repoConfig.setName( name ); - repoConfig.setLayout( layout ); - repoConfig.setUrl( url ); - - int count = config.getConfiguration().getRemoteRepositories().size(); - config.getConfiguration().addRemoteRepository( repoConfig ); - - String prefix = "remoteRepositories.remoteRepository(" + count + ")"; - config.triggerChange( prefix + ".id", repoConfig.getId() ); - config.triggerChange( prefix + ".name", repoConfig.getName() ); - config.triggerChange( prefix + ".url", repoConfig.getUrl() ); - config.triggerChange( prefix + ".layout", repoConfig.getLayout() ); - } - - protected File saveTargetedRepositoryConfig( String id, String originalPath, String targetPath, String layout ) - throws IOException - { - File repoLocation = getTestFile( targetPath ); - FileUtils.deleteDirectory( repoLocation ); - copyDirectoryStructure( getTestFile( originalPath ), repoLocation ); - - saveRemoteRepositoryConfig( id, "Target Repo-" + id, targetPath, layout ); - - return repoLocation; - } - - /** - * {@inheritDoc} - * @see org.codehaus.plexus.spring.PlexusInSpringTestCase#getConfigLocation() - */ - @Override - protected String getSpringConfigLocation() - { - return "org/apache/maven/archiva/proxy/spring-context.xml"; - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - config = (MockConfiguration) lookup( ArchivaConfiguration.class.getName(), "mock" ); - - // Setup source repository (using default layout) - String repoPath = "target/test-repository/managed/" + getName(); - File repoLocation = getTestFile( repoPath ); - - managedDefaultRepository = createRepository( ID_DEFAULT_MANAGED, "Default Managed Repository", repoPath, - "default" ); - - managedDefaultDir = new File( managedDefaultRepository.getRepoRoot() ); - - ManagedRepositoryConfiguration repoConfig = managedDefaultRepository.getRepository(); - - config.getConfiguration().addManagedRepository( repoConfig ); - - // Setup source repository (using legacy layout) - repoLocation = getTestFile( REPOPATH_LEGACY_MANAGED_TARGET ); - FileUtils.deleteDirectory( repoLocation ); - copyDirectoryStructure( getTestFile( REPOPATH_LEGACY_MANAGED ), repoLocation ); - - managedLegacyRepository = createRepository( ID_LEGACY_MANAGED, "Legacy Managed Repository", - REPOPATH_LEGACY_MANAGED_TARGET, "legacy" ); - - managedLegacyDir = new File( managedLegacyRepository.getRepoRoot() ); - - repoConfig = managedLegacyRepository.getRepository(); - - config.getConfiguration().addManagedRepository( repoConfig ); - - // Setup target (proxied to) repository. - saveRemoteRepositoryConfig( ID_PROXIED1, "Proxied Repository 1", new File( REPOPATH_PROXIED1 ).toURL() - .toExternalForm(), "default" ); - - // Setup target (proxied to) repository. - saveRemoteRepositoryConfig( ID_PROXIED2, "Proxied Repository 2", new File( REPOPATH_PROXIED2 ).toURL() - .toExternalForm(), "default" ); - - // Setup target (proxied to) repository using legacy layout. - saveRemoteRepositoryConfig( ID_LEGACY_PROXIED, "Proxied Legacy Repository", new File( REPOPATH_PROXIED_LEGACY ) - .toURL().toExternalForm(), "legacy" ); - - // Setup the proxy handler. - proxyHandler = (RepositoryProxyConnectors) lookup( RepositoryProxyConnectors.class.getName() ); - - // Setup the wagon mock. - wagonMockControl = MockControl.createNiceControl( Wagon.class ); - wagonMock = (Wagon) wagonMockControl.getMock(); - WagonDelegate delegate = (WagonDelegate) lookup( Wagon.ROLE, "test" ); - delegate.setDelegate( wagonMock ); - - System.out.println( "\n.\\ " + getName() + "() \\._________________________________________\n" ); - } - - /** - * Copy the specified resource directory from the src/test/repository/managed/ to - * the testable directory under target/test-repository/managed/${testName}/ - * - * @param resourceDir - * @throws IOException - */ - protected void setupTestableManagedRepository( String resourcePath ) - throws IOException - { - String resourceDir = resourcePath; - - if ( !resourcePath.endsWith( "/" ) ) - { - int idx = resourcePath.lastIndexOf( '/' ); - resourceDir = resourcePath.substring( 0, idx ); - } - - File sourceRepoDir = new File( REPOPATH_DEFAULT_MANAGED ); - File sourceDir = new File( sourceRepoDir, resourceDir ); - - File destRepoDir = managedDefaultDir; - File destDir = new File( destRepoDir, resourceDir ); - - // Cleanout destination dirs. - if ( destDir.exists() ) - { - FileUtils.deleteDirectory( destDir ); - } - - // Make the destination dir. - destDir.mkdirs(); - - // Test the source dir. - if ( !sourceDir.exists() ) - { - // This is just a warning. - System.err.println( "[WARN] Skipping setup of testable managed repository, source dir does not exist: " - + sourceDir ); - } - else - { - - // Test that the source is a dir. - if ( !sourceDir.isDirectory() ) - { - fail( "Unable to setup testable managed repository, source is not a directory: " + sourceDir ); - } - - // Copy directory structure. - copyDirectoryStructure( sourceDir, destDir ); - } - } - - protected void setManagedNewerThanRemote( File managedFile, File remoteFile ) - { - assertTrue( "Managed File should exist: ", managedFile.exists() ); - assertTrue( "Remote File should exist: ", remoteFile.exists() ); - - managedFile.setLastModified( remoteFile.lastModified() + 55000 ); - } - - protected void setManagedOlderThanRemote( File managedFile, File remoteFile ) - { - assertTrue( "Managed File should exist: ", managedFile.exists() ); - assertTrue( "Remote File should exist: ", remoteFile.exists() ); - - managedFile.setLastModified( remoteFile.lastModified() - 55000 ); - } - - protected void assertNotModified( File file, long expectedModificationTime ) - { - assertEquals( "File <" + file.getAbsolutePath() + "> not have been modified.", - expectedModificationTime, file.lastModified() ); - } - - protected void assertNotExistsInManagedLegacyRepo( File file ) - throws Exception - { - String managedLegacyPath = managedLegacyDir.getCanonicalPath(); - String testFile = file.getCanonicalPath(); - - assertTrue( "Unit Test Failure: File <" + testFile - + "> should be have been defined within the legacy managed path of <" + managedLegacyPath + ">", testFile - .startsWith( managedLegacyPath ) ); - - assertFalse( "File < " + testFile + "> should not exist in managed legacy repository.", file.exists() ); - } - - protected void assertNotExistsInManagedDefaultRepo( File file ) - throws Exception - { - String managedDefaultPath = managedDefaultDir.getCanonicalPath(); - String testFile = file.getCanonicalPath(); - - assertTrue( "Unit Test Failure: File <" + testFile - + "> should be have been defined within the managed default path of <" + managedDefaultPath + ">", testFile - .startsWith( managedDefaultPath ) ); - - assertFalse( "File < " + testFile + "> should not exist in managed default repository.", file.exists() ); - } - - protected static Date getFutureDate() - throws ParseException - { - Calendar cal = Calendar.getInstance(); - cal.add( Calendar.YEAR, 1 ); - return cal.getTime(); - } - - protected static Date getPastDate() - throws ParseException - { - return new SimpleDateFormat( "yyyy-MM-dd", Locale.US ).parse( "2000-01-01" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java deleted file mode 100644 index 6a509570a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java +++ /dev/null @@ -1,175 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.utils.PathUtil; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; -import org.apache.maven.archiva.policies.urlcache.UrlFailureCache; -import org.apache.maven.wagon.ResourceDoesNotExistException; - -import java.io.File; - -/** - * CacheFailuresTransferTest - * - * @author Brett Porter - * @author Joakim Erdfelt - * @version $Id$ - */ -public class CacheFailuresTransferTest - extends AbstractProxyTestCase -{ - // TODO: test some hard failures (eg TransferFailedException) - // TODO: test the various combinations of fetchFrom* (note: need only test when caching is enabled) - - public void testGetWithCacheFailuresOn() - throws Exception - { - String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar"; - File expectedFile = new File( managedDefaultDir.getAbsoluteFile(), path ); - setupTestableManagedRepository( path ); - - assertNotExistsInManagedDefaultRepo( expectedFile ); - - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - // Configure Repository (usually done within archiva.xml configuration) - saveRemoteRepositoryConfig( "badproxied1", "Bad Proxied 1", "test://bad.machine.com/repo/", "default" ); - saveRemoteRepositoryConfig( "badproxied2", "Bad Proxied 2", "test://bad.machine.com/anotherrepo/", "default" ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "badproxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES, false ); - saveConnector( ID_DEFAULT_MANAGED, "badproxied2", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES, false ); - - wagonMock.get( path, new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ) ); - - wagonMockControl.setMatcher(customWagonGetMatcher); - - wagonMockControl.setThrowable( new ResourceDoesNotExistException( "resource does not exist." ), 2 ); - - wagonMockControl.replay(); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - wagonMockControl.verify(); - - // Second attempt to download same artifact use cache - wagonMockControl.reset(); - wagonMockControl.replay(); - downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - wagonMockControl.verify(); - - assertNotDownloaded( downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testGetWithCacheFailuresOff() - throws Exception - { - String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar"; - File expectedFile = new File( managedDefaultDir.getAbsoluteFile(), path ); - setupTestableManagedRepository( path ); - - assertNotExistsInManagedDefaultRepo( expectedFile ); - - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - // Configure Repository (usually done within archiva.xml configuration) - saveRemoteRepositoryConfig( "badproxied1", "Bad Proxied 1", "test://bad.machine.com/repo/", "default" ); - saveRemoteRepositoryConfig( "badproxied2", "Bad Proxied 2", "test://bad.machine.com/anotherrepo/", "default" ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "badproxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - saveConnector( ID_DEFAULT_MANAGED, "badproxied2", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - wagonMock.get( path, new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ) ); - - wagonMockControl.setMatcher(customWagonGetMatcher); - wagonMockControl.setThrowable( new ResourceDoesNotExistException( "resource does not exist." ), 2 ); - - wagonMockControl.replay(); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - wagonMockControl.verify(); - - // Second attempt to download same artifact DOES NOT use cache - wagonMockControl.reset(); - wagonMock.get( path, new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ) ); - - wagonMockControl.setMatcher(customWagonGetMatcher); - wagonMockControl.setThrowable( new ResourceDoesNotExistException( "resource does not exist." ), 2 ); - wagonMockControl.replay(); - - downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - wagonMockControl.verify(); - - assertNotDownloaded( downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testGetWhenInBothProxiedButFirstCacheFailure() - throws Exception - { - String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar"; - setupTestableManagedRepository( path ); - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - expectedFile.delete(); - assertFalse( expectedFile.exists() ); - - String url = PathUtil.toUrl( REPOPATH_PROXIED1 + "/" + path ); - - // Intentionally set failure on url in proxied1 (for test) - UrlFailureCache failurlCache = lookupUrlFailureCache(); - failurlCache.cacheFailure( url ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES, false ); - saveConnector( ID_DEFAULT_MANAGED, "proxied2", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - // Validate that file actually came from proxied2 (as intended). - File proxied2File = new File( REPOPATH_PROXIED2, path ); - assertFileEquals( expectedFile, downloadedFile, proxied2File ); - assertNoTempFiles( expectedFile ); - } - - protected UrlFailureCache lookupUrlFailureCache() - throws Exception - { - UrlFailureCache urlFailureCache = (UrlFailureCache) lookup( "urlFailureCache" ); - assertNotNull( "URL Failure Cache cannot be null.", urlFailureCache ); - return urlFailureCache; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ChecksumTransferTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ChecksumTransferTest.java deleted file mode 100644 index 13d23dab3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ChecksumTransferTest.java +++ /dev/null @@ -1,527 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; -import org.apache.maven.wagon.ResourceDoesNotExistException; - -import java.io.File; - -/** - * ChecksumTransferTest - * - * @author Brett Porter - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ChecksumTransferTest - extends AbstractProxyTestCase -{ - public void testGetChecksumWhenConnectorIsDisabled() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, true ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertNull(downloadedFile); - } - - public void testGetChecksumBothCorrect() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, "066d76e459f7782c312c31e8a11b3c0f1e3e43a7 *get-checksum-both-right-1.0.jar", - "e58f30c6a150a2e843552438d18e15cb *get-checksum-both-right-1.0.jar" ); - } - - public void testGetChecksumCorrectSha1NoMd5() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, "748a3a013bf5eacf2bbb40a2ac7d37889b728837 *get-checksum-sha1-only-1.0.jar", - null ); - } - - public void testGetChecksumNoSha1CorrectMd5() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, null, "f3af5201bf8da801da37db8842846e1c *get-checksum-md5-only-1.0.jar" ); - } - - public void testGetWithNoChecksumsUsingIgnoredSetting() - throws Exception - { - String path = "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, null, null ); - } - - public void testGetChecksumBadSha1BadMd5IgnoredSetting() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, "invalid checksum file", "invalid checksum file" ); - } - - public void testGetChecksumBadSha1BadMd5FailSetting() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - assertChecksums( expectedFile, null, null ); - } - - public void testGetChecksumBadSha1BadMd5FixSetting() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, "4ec20a12dc91557330bd0b39d1805be5e329ae56 get-checksum-both-bad-1.0.jar", - "a292491a35925465e693a44809a078b5 get-checksum-both-bad-1.0.jar" ); - } - - public void testGetChecksumCorrectSha1BadMd5UsingFailSetting() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - assertChecksums( expectedFile, null, null ); - } - - public void testGetChecksumNoSha1CorrectMd5UsingFailSetting() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - // This is a success situation. No SHA1 with a Good MD5. - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, null, "f3af5201bf8da801da37db8842846e1c *get-checksum-md5-only-1.0.jar" ); - } - - public void testGetWithNoChecksumsUsingFailSetting() - throws Exception - { - String path = "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - assertChecksums( expectedFile, null, null ); - } - - public void testGetChecksumCorrectSha1BadMd5UsingIgnoredSetting() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, "3dd1a3a57b807d3ef3fbc6013d926c891cbb8670 *get-checksum-sha1-bad-md5-1.0.jar", - "invalid checksum file" ); - } - - public void testGetChecksumCorrectSha1BadMd5UsingFixSetting() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, "3dd1a3a57b807d3ef3fbc6013d926c891cbb8670 *get-checksum-sha1-bad-md5-1.0.jar", - "c35f3b76268b73a4ba617f6f275c49ab get-checksum-sha1-bad-md5-1.0.jar" ); - } - - public void testGetChecksumNoSha1CorrectMd5UsingFixSetting() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, "71f7dc3f72053a3f2d9fdd6fef9db055ef957ffb get-checksum-md5-only-1.0.jar", - "f3af5201bf8da801da37db8842846e1c *get-checksum-md5-only-1.0.jar" ); - } - - public void testGetWithNoChecksumsUsingFixSetting() - throws Exception - { - String path = "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, "1f12821c5e43e1a0b76b9564a6ddb0548ccb9486 get-default-layout-1.0.jar", - "3f7341545f21226b6f49a3c2704cb9be get-default-layout-1.0.jar" ); - } - - public void testGetChecksumNotFoundOnRemote() - throws Exception - { - String path = "org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - FileUtils.deleteDirectory( expectedFile.getParentFile() ); - assertFalse( expectedFile.getParentFile().exists() ); - assertFalse( expectedFile.exists() ); - - saveRemoteRepositoryConfig( "badproxied", "Bad Proxied", "test://bad.machine.com/repo/", "default" ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "badproxied", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - wagonMock.get( path, new File( expectedFile.getAbsolutePath() + ".tmp" ) ); - wagonMockControl.setMatcher(customWagonGetMatcher); - wagonMockControl.setVoidCallable(); - wagonMock.get( path + ".sha1", new File( expectedFile.getAbsolutePath() + ".sha1.tmp" ) ); - wagonMockControl.setMatcher(customWagonGetMatcher); - wagonMockControl.setVoidCallable(); - wagonMock.get( path + ".md5", new File( expectedFile.getAbsolutePath() + ".md5.tmp" ) ); - wagonMockControl.setMatcher(customWagonGetMatcher); - wagonMockControl.setThrowable( new ResourceDoesNotExistException( "Resource does not exist." ) ); - wagonMockControl.replay(); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - wagonMockControl.verify(); - - // Do what the mock doesn't do. - String proxyPath = new File( REPOPATH_PROXIED1, path ).getAbsolutePath(); - String localPath = new File( managedDefaultDir, path ).getAbsolutePath(); - FileUtils.copyFile( new File( proxyPath ), new File( localPath ) ); - FileUtils.copyFile( new File( proxyPath + ".sha1" ), new File( localPath + ".sha1" ) ); - - // Test results. - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, "748a3a013bf5eacf2bbb40a2ac7d37889b728837 *get-checksum-sha1-only-1.0.jar", - null ); - } - - public void testGetAlwaysBadChecksumPresentLocallyAbsentRemoteUsingIgnoredSetting() - throws Exception - { - String path = "org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - File remoteFile = new File( REPOPATH_PROXIED1, path ); - - setManagedOlderThanRemote( expectedFile, remoteFile ); - - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO , false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - // There are no hashcodes on the proxy side to download, hence the local ones should remain invalid. - assertChecksums( expectedFile, "invalid checksum file", "invalid checksum file" ); - } - - public void testGetAlwaysBadChecksumPresentLocallyAbsentRemoteUsingFailSetting() - throws Exception - { - String path = "org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - File remoteFile = new File( REPOPATH_PROXIED1, path ); - - setManagedOlderThanRemote( expectedFile, remoteFile ); - - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO , false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - assertNoTempFiles( expectedFile ); - // There are no hashcodes on the proxy side to download. - // The FAIL policy will delete the checksums as bad. - - assertChecksums( expectedFile, "invalid checksum file", "invalid checksum file" ); - } - - public void testGetAlwaysBadChecksumPresentLocallyAbsentRemoteUsingFixSetting() - throws Exception - { - String path = "org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - File remoteFile = new File( REPOPATH_PROXIED1, path ); - - setManagedOlderThanRemote( expectedFile, remoteFile ); - - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO , false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - assertChecksums( expectedFile, "96a08dc80a108cba8efd3b20aec91b32a0b2cbd4 get-bad-local-checksum-1.0.jar", - "46fdd6ca55bf1d7a7eb0c858f41e0ccd get-bad-local-checksum-1.0.jar" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ErrorHandlingTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ErrorHandlingTest.java deleted file mode 100644 index 9a9c03bd4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ErrorHandlingTest.java +++ /dev/null @@ -1,629 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.PropagateErrorsDownloadPolicy; -import org.apache.maven.archiva.policies.PropagateErrorsOnUpdateDownloadPolicy; -import org.apache.maven.archiva.policies.ProxyDownloadException; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; -import org.apache.maven.archiva.repository.layout.LayoutException; -import org.apache.maven.wagon.ResourceDoesNotExistException; -import org.apache.maven.wagon.TransferFailedException; -import org.apache.maven.wagon.authorization.AuthorizationException; - -import java.io.File; - -/** - * ErrorHandlingTest - * - * @author Brett Porter - * @version $Id$ - */ -public class ErrorHandlingTest - extends AbstractProxyTestCase -{ - private static final String PATH_IN_BOTH_REMOTES_NOT_LOCAL = - "org/apache/maven/test/get-in-both-proxies/1.0/get-in-both-proxies-1.0.jar"; - - private static final String PATH_IN_BOTH_REMOTES_AND_LOCAL = - "org/apache/maven/test/get-on-multiple-repos/1.0/get-on-multiple-repos-1.0.pom"; - - private static final String ID_MOCKED_PROXIED1 = "badproxied1"; - - private static final String NAME_MOCKED_PROXIED1 = "Bad Proxied 1"; - - private static final String ID_MOCKED_PROXIED2 = "badproxied2"; - - private static final String NAME_MOCKED_PROXIED2 = "Bad Proxied 2"; - - public void testPropagateErrorImmediatelyWithErrorThenSuccess() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.STOP ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false ); - - simulateGetError( path, expectedFile, createTransferException() ); - - confirmSingleFailure( path, ID_MOCKED_PROXIED1 ); - } - - public void testPropagateErrorImmediatelyWithNotFoundThenError() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.STOP ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.STOP ); - - simulateGetError( path, expectedFile, createResourceNotFoundException() ); - - simulateGetError( path, expectedFile, createTransferException() ); - - confirmSingleFailure( path, ID_MOCKED_PROXIED2 ); - } - - public void testPropagateErrorImmediatelyWithSuccessThenError() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false ); - - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.STOP ); - - confirmSuccess( path, expectedFile, REPOPATH_PROXIED1 ); - } - - public void testPropagateErrorImmediatelyWithNotFoundThenSuccess() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.STOP ); - - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false ); - - simulateGetError( path, expectedFile, createResourceNotFoundException() ); - - confirmSuccess( path, expectedFile, REPOPATH_PROXIED2 ); - } - - public void testPropagateErrorAtEndWithErrorThenSuccess() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.STOP ); - - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false ); - - simulateGetError( path, expectedFile, createTransferException() ); - - confirmSingleFailure( path, ID_MOCKED_PROXIED1 ); - } - - public void testPropagateErrorAtEndWithSuccessThenError() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false ); - - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.QUEUE ); - - confirmSuccess( path, expectedFile, REPOPATH_PROXIED1 ); - } - - public void testPropagateErrorAtEndWithNotFoundThenError() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.QUEUE ); - - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.QUEUE ); - - simulateGetError( path, expectedFile, createResourceNotFoundException() ); - - simulateGetError( path, expectedFile, createTransferException() ); - - confirmSingleFailure( path, ID_MOCKED_PROXIED2 ); - } - - public void testPropagateErrorAtEndWithErrorThenNotFound() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.QUEUE ); - - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.QUEUE ); - - simulateGetError( path, expectedFile, createTransferException() ); - - simulateGetError( path, expectedFile, createResourceNotFoundException() ); - - confirmSingleFailure( path, ID_MOCKED_PROXIED1 ); - } - - public void testPropagateErrorAtEndWithErrorThenError() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.QUEUE ); - - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.QUEUE ); - - simulateGetError( path, expectedFile, createTransferException() ); - - simulateGetError( path, expectedFile, createTransferException() ); - - confirmFailures( path, new String[]{ID_MOCKED_PROXIED1, ID_MOCKED_PROXIED2} ); - } - - public void testPropagateErrorAtEndWithNotFoundThenSuccess() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.QUEUE ); - - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false ); - - simulateGetError( path, expectedFile, createResourceNotFoundException() ); - - confirmSuccess( path, expectedFile, REPOPATH_PROXIED2 ); - } - - public void testIgnoreErrorWithErrorThenSuccess() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.IGNORE ); - - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false ); - - simulateGetError( path, expectedFile, createTransferException() ); - - confirmSuccess( path, expectedFile, REPOPATH_PROXIED2 ); - } - - public void testIgnoreErrorWithSuccessThenError() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false ); - - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.IGNORE ); - - confirmSuccess( path, expectedFile, REPOPATH_PROXIED1 ); - } - - public void testIgnoreErrorWithNotFoundThenError() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.IGNORE ); - - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.IGNORE ); - - simulateGetError( path, expectedFile, createResourceNotFoundException() ); - - simulateGetError( path, expectedFile, createTransferException() ); - - confirmNotDownloadedNoError( path ); - } - - public void testIgnoreErrorWithErrorThenNotFound() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.IGNORE ); - - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.IGNORE ); - - simulateGetError( path, expectedFile, createTransferException() ); - - simulateGetError( path, expectedFile, createResourceNotFoundException() ); - - confirmNotDownloadedNoError( path ); - } - - public void testIgnoreErrorWithErrorThenError() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.IGNORE ); - - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.IGNORE ); - - simulateGetError( path, expectedFile, createTransferException() ); - - simulateGetError( path, expectedFile, createTransferException() ); - - confirmNotDownloadedNoError( path ); - } - - public void testPropagateOnUpdateAlwaysArtifactNotPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.STOP, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.STOP, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - - simulateGetError( path, expectedFile, createTransferException() ); - - confirmSingleFailure( path, ID_MOCKED_PROXIED1 ); - } - - public void testPropagateOnUpdateAlwaysArtifactPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_AND_LOCAL; - File expectedFile = setupRepositoriesWithLocalFilePresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.STOP, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.STOP, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - - simulateGetIfNewerError( path, expectedFile, createTransferException() ); - - confirmSingleFailure( path, ID_MOCKED_PROXIED1 ); - } - - public void testPropagateOnUpdateAlwaysQueueArtifactNotPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.QUEUE, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.QUEUE, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - - simulateGetError( path, expectedFile, createTransferException() ); - simulateGetError( path, expectedFile, createTransferException() ); - - confirmFailures( path, new String[] { ID_MOCKED_PROXIED1, ID_MOCKED_PROXIED2 } ); - } - - public void testPropagateOnUpdateAlwaysQueueArtifactPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_AND_LOCAL; - File expectedFile = setupRepositoriesWithLocalFilePresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.QUEUE, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.QUEUE, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - - simulateGetIfNewerError( path, expectedFile, createTransferException() ); - simulateGetIfNewerError( path, expectedFile, createTransferException() ); - - confirmFailures( path, new String[] { ID_MOCKED_PROXIED1, ID_MOCKED_PROXIED2 } ); - } - - public void testPropagateOnUpdateAlwaysIgnoreArtifactNotPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.IGNORE, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.IGNORE, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - - simulateGetError( path, expectedFile, createTransferException() ); - simulateGetError( path, expectedFile, createTransferException() ); - - confirmNotDownloadedNoError( path ); - } - - public void testPropagateOnUpdateAlwaysIgnoreArtifactPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_AND_LOCAL; - File expectedFile = setupRepositoriesWithLocalFilePresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.IGNORE, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.IGNORE, - PropagateErrorsOnUpdateDownloadPolicy.ALWAYS ); - - simulateGetIfNewerError( path, expectedFile, createTransferException() ); - simulateGetIfNewerError( path, expectedFile, createTransferException() ); - - confirmNotDownloadedNoError( path ); - assertTrue( expectedFile.exists() ); - } - - public void testPropagateOnUpdateNotPresentArtifactNotPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.STOP, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.STOP, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - - simulateGetError( path, expectedFile, createTransferException() ); - - confirmSingleFailure( path, ID_MOCKED_PROXIED1 ); - } - - public void testPropagateOnUpdateNotPresentArtifactPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_AND_LOCAL; - File expectedFile = setupRepositoriesWithLocalFilePresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.STOP, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.STOP, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - - simulateGetIfNewerError( path, expectedFile, createTransferException() ); - - confirmNotDownloadedNoError( path ); - assertTrue( expectedFile.exists() ); - } - - public void testPropagateOnUpdateNotPresentQueueArtifactNotPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.QUEUE, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.QUEUE, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - - simulateGetError( path, expectedFile, createTransferException() ); - simulateGetError( path, expectedFile, createTransferException() ); - - confirmFailures( path, new String[] { ID_MOCKED_PROXIED1, ID_MOCKED_PROXIED2 } ); - } - - public void testPropagateOnUpdateNotPresentQueueArtifactPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_AND_LOCAL; - File expectedFile = setupRepositoriesWithLocalFilePresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.QUEUE, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.QUEUE, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - - simulateGetIfNewerError( path, expectedFile, createTransferException() ); - simulateGetIfNewerError( path, expectedFile, createTransferException() ); - - confirmNotDownloadedNoError( path ); - assertTrue( expectedFile.exists() ); - } - - public void testPropagateOnUpdateNotPresentIgnoreArtifactNotPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL; - File expectedFile = setupRepositoriesWithLocalFileNotPresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.IGNORE, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.IGNORE, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - - simulateGetError( path, expectedFile, createTransferException() ); - simulateGetError( path, expectedFile, createTransferException() ); - - confirmNotDownloadedNoError( path ); - } - - public void testPropagateOnUpdateNotPresentIgnoreArtifactPresent() - throws Exception - { - String path = PATH_IN_BOTH_REMOTES_AND_LOCAL; - File expectedFile = setupRepositoriesWithLocalFilePresent( path ); - - createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.IGNORE, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.IGNORE, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - - simulateGetIfNewerError( path, expectedFile, createTransferException() ); - simulateGetIfNewerError( path, expectedFile, createTransferException() ); - - confirmNotDownloadedNoError( path ); - assertTrue( expectedFile.exists() ); - } - - // ------------------------------------------ - // HELPER METHODS - // ------------------------------------------ - - private void createMockedProxyConnector( String id, String name, String errorPolicy ) - { - saveRemoteRepositoryConfig( id, name, "test://bad.machine.com/repo/", "default" ); - saveConnector( ID_DEFAULT_MANAGED, id, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, SnapshotsPolicy.ALWAYS, - CachedFailuresPolicy.NO, errorPolicy, false ); - } - - private void createMockedProxyConnector( String id, String name, String errorPolicy, String errorOnUpdatePolicy ) - { - saveRemoteRepositoryConfig( id, name, "test://bad.machine.com/repo/", "default" ); - saveConnector( ID_DEFAULT_MANAGED, id, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, SnapshotsPolicy.ALWAYS, - CachedFailuresPolicy.NO, errorPolicy, errorOnUpdatePolicy, false ); - } - - private File setupRepositoriesWithLocalFileNotPresent( String path ) - throws Exception - { - setupTestableManagedRepository( path ); - - File file = new File( managedDefaultDir, path ); - - assertNotExistsInManagedDefaultRepo( file ); - - return file; - } - - private File setupRepositoriesWithLocalFilePresent( String path ) - throws Exception - { - setupTestableManagedRepository( path ); - - File file = new File( managedDefaultDir, path ); - - assertTrue( file.exists() ); - - return file; - } - - private void simulateGetError( String path, File expectedFile, Exception throwable ) - throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException - { - wagonMock.get( path, createExpectedTempFile( expectedFile ) ); - wagonMockControl.setMatcher(customWagonGetMatcher); - wagonMockControl.setThrowable( throwable, 1 ); - } - - private void simulateGetIfNewerError( String path, File expectedFile, TransferFailedException exception ) - throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException - { - wagonMock.getIfNewer( path, createExpectedTempFile( expectedFile ), expectedFile.lastModified() ); - wagonMockControl.setMatcher(customWagonGetIfNewerMatcher); - wagonMockControl.setThrowable( exception, 1 ); - } - - private File createExpectedTempFile( File expectedFile ) - { - return new File( managedDefaultDir, expectedFile.getName() + ".tmp" ).getAbsoluteFile(); - } - - private void confirmSingleFailure( String path, String id ) - throws LayoutException - { - confirmFailures( path, new String[]{id} ); - } - - private void confirmFailures( String path, String[] ids ) - throws LayoutException - { - wagonMockControl.replay(); - - // Attempt the proxy fetch. - File downloadedFile = null; - try - { - downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, - managedDefaultRepository.toArtifactReference( path ) ); - fail( "Proxy should not have succeeded" ); - } - catch ( ProxyDownloadException e ) - { - assertEquals( ids.length, e.getFailures().size() ); - for ( String id : ids ) - { - assertTrue( e.getFailures().keySet().contains( id ) ); - } - } - - wagonMockControl.verify(); - - assertNotDownloaded( downloadedFile ); - } - - private void confirmSuccess( String path, File expectedFile, String basedir ) - throws Exception - { - File downloadedFile = performDownload( path ); - - File proxied1File = new File( basedir, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - } - - private void confirmNotDownloadedNoError( String path ) - throws Exception - { - File downloadedFile = performDownload( path ); - - assertNotDownloaded( downloadedFile ); - } - - private File performDownload( String path ) - throws ProxyDownloadException, LayoutException - { - wagonMockControl.replay(); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, - managedDefaultRepository.toArtifactReference( path ) ); - - wagonMockControl.verify(); - return downloadedFile; - } - - private static TransferFailedException createTransferException() - { - return new TransferFailedException( "test download exception" ); - } - - private static ResourceDoesNotExistException createResourceNotFoundException() - { - return new ResourceDoesNotExistException( "test download not found" ); - } -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/HttpProxyTransferTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/HttpProxyTransferTest.java deleted file mode 100644 index 1c2aa9a20..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/HttpProxyTransferTest.java +++ /dev/null @@ -1,215 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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 javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.NetworkProxyConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.PropagateErrorsDownloadPolicy; -import org.apache.maven.archiva.policies.PropagateErrorsOnUpdateDownloadPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.mortbay.jetty.Handler; -import org.mortbay.jetty.Request; -import org.mortbay.jetty.Server; -import org.mortbay.jetty.handler.AbstractHandler; - -/** - * Integration test for connecting over a HTTP proxy. - * - * @author Brett Porter - * @version $Id: ManagedDefaultTransferTest.java 677852 2008-07-18 08:16:24Z brett $ - */ -public class HttpProxyTransferTest - extends PlexusInSpringTestCase -{ - private static final String PROXY_ID = "proxy"; - - private static final String MANAGED_ID = "default-managed-repository"; - - private static final String PROXIED_ID = "proxied1"; - - private static final String PROXIED_BASEDIR = "src/test/repositories/proxied1"; - - private RepositoryProxyConnectors proxyHandler; - - private ArchivaConfiguration config; - - private ManagedRepositoryContent managedDefaultRepository; - - private Server server; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - // Setup source repository (using default layout) - String repoPath = "target/test-repository/managed/" + getName(); - - File destRepoDir = new File( repoPath ); - - // Cleanout destination dirs. - if ( destRepoDir.exists() ) - { - FileUtils.deleteDirectory( destRepoDir ); - } - - // Make the destination dir. - destRepoDir.mkdirs(); - - ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration(); - repo.setId( MANAGED_ID ); - repo.setName( "Default Managed Repository" ); - repo.setLocation( repoPath ); - repo.setLayout( "default" ); - - ManagedRepositoryContent repoContent = - (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class, "default" ); - repoContent.setRepository( repo ); - managedDefaultRepository = repoContent; - - config = (MockConfiguration) lookup( ArchivaConfiguration.class.getName(), "mock" ); - config.getConfiguration().addManagedRepository( repo ); - - Handler handler = new AbstractHandler() - { - public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch ) - throws IOException, ServletException - { - response.setContentType( "text/plain" ); - response.setStatus( HttpServletResponse.SC_OK ); - response.getWriter().println( "get-default-layout-1.0.jar" ); - response.getWriter().println(); - assertNotNull( request.getHeader( "Proxy-Connection" ) ); - - ( (Request) request ).setHandled( true ); - } - }; - - server = new Server( 0 ); - server.setHandler( handler ); - server.start(); - - int port = server.getConnectors()[0].getLocalPort(); - - NetworkProxyConfiguration proxyConfig = new NetworkProxyConfiguration(); - proxyConfig.setHost( "localhost" ); - proxyConfig.setPort( port ); - proxyConfig.setProtocol( "http" ); - proxyConfig.setId( PROXY_ID ); - config.getConfiguration().addNetworkProxy( proxyConfig ); - - // Setup target (proxied to) repository. - RemoteRepositoryConfiguration repoConfig = new RemoteRepositoryConfiguration(); - - repoConfig.setId( PROXIED_ID ); - repoConfig.setName( "Proxied Repository 1" ); - repoConfig.setLayout( "default" ); - repoConfig.setUrl( "http://www.example.com/" ); - - config.getConfiguration().addRemoteRepository( repoConfig ); - - // Setup the proxy handler. - proxyHandler = (RepositoryProxyConnectors) lookup( RepositoryProxyConnectors.class.getName() ); - } - - @Override - protected void tearDown() - throws Exception - { - super.tearDown(); - - server.stop(); - } - - public void testGetOverHttpProxy() - throws Exception - { - assertNull( System.getProperty( "http.proxyHost" ) ); - assertNull( System.getProperty( "http.proxyPort" ) ); - - String path = "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"; - - // Configure Connector (usually done within archiva.xml configuration) - addConnector(); - - File expectedFile = new File( new File( managedDefaultRepository.getRepoRoot() ), path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File sourceFile = new File( PROXIED_BASEDIR, path ); - assertNotNull( "Expected File should not be null.", expectedFile ); - assertNotNull( "Actual File should not be null.", downloadedFile ); - - assertTrue( "Check actual file exists.", downloadedFile.exists() ); - assertEquals( "Check filename path is appropriate.", expectedFile.getCanonicalPath(), - downloadedFile.getCanonicalPath() ); - assertEquals( "Check file path matches.", expectedFile.getAbsolutePath(), downloadedFile.getAbsolutePath() ); - - String expectedContents = FileUtils.readFileToString( sourceFile, null ); - String actualContents = FileUtils.readFileToString( downloadedFile, null ); - assertEquals( "Check file contents.", expectedContents, actualContents ); - - assertNull( System.getProperty( "http.proxyHost" ) ); - assertNull( System.getProperty( "http.proxyPort" ) ); - } - - private void addConnector() - { - ProxyConnectorConfiguration connectorConfig = new ProxyConnectorConfiguration(); - connectorConfig.setProxyId( PROXY_ID ); - connectorConfig.setSourceRepoId( MANAGED_ID ); - connectorConfig.setTargetRepoId( PROXIED_ID ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_CHECKSUM, ChecksumPolicy.FIX ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_RELEASES, ReleasesPolicy.ONCE ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_SNAPSHOTS, SnapshotsPolicy.ONCE ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_CACHE_FAILURES, CachedFailuresPolicy.NO ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS, - PropagateErrorsDownloadPolicy.QUEUE ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS_ON_UPDATE, - PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT ); - - int count = config.getConfiguration().getProxyConnectors().size(); - config.getConfiguration().addProxyConnector( connectorConfig ); - - // Proper Triggering ... - String prefix = "proxyConnectors.proxyConnector(" + count + ")"; - ( (MockConfiguration) config ).triggerChange( prefix + ".sourceRepoId", connectorConfig.getSourceRepoId() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.java deleted file mode 100644 index bb3a1c793..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.java +++ /dev/null @@ -1,549 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; -import org.apache.maven.wagon.ResourceDoesNotExistException; - -import java.io.File; - -/** - * ManagedDefaultTransferTest - * - * @author Brett Porter - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ManagedDefaultTransferTest - extends AbstractProxyTestCase -{ - public void testGetDefaultLayoutNotPresentConnectorOffline() - throws Exception - { - String path = "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - // Ensure file isn't present first. - assertNotExistsInManagedDefaultRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE, - CachedFailuresPolicy.NO, true ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - assertNull("File should not have been downloaded", downloadedFile); - } - - public void testGetDefaultLayoutNotPresent() - throws Exception - { - String path = "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - // Ensure file isn't present first. - assertNotExistsInManagedDefaultRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE, - CachedFailuresPolicy.NO, false ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File sourceFile = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, sourceFile ); - assertNoTempFiles( expectedFile ); - } - - public void testGetDefaultLayoutNotPresentPassthrough() - throws Exception - { - String path = "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar.asc"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - - // Ensure file isn't present first. - assertNotExistsInManagedDefaultRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE, - CachedFailuresPolicy.NO, false ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, path ); - - File sourceFile = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, sourceFile ); - assertFalse( new File( downloadedFile.getParentFile(), downloadedFile.getName() + ".sha1" ).exists() ); - assertFalse( new File( downloadedFile.getParentFile(), downloadedFile.getName() + ".md5" ).exists() ); - assertFalse( new File( downloadedFile.getParentFile(), downloadedFile.getName() + ".asc" ).exists() ); - assertNoTempFiles( expectedFile ); - } - - /** - * The attempt here should result in no file being transferred. - *

- * The file exists locally, and the policy is ONCE. - * - * @throws Exception - */ - public void testGetDefaultLayoutAlreadyPresentPolicyOnce() - throws Exception - { - String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertTrue( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE, - CachedFailuresPolicy.NO, false ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertFileEquals( expectedFile, downloadedFile, expectedFile ); - assertNoTempFiles( expectedFile ); - } - - /** - * The attempt here should result in no file being transferred. - *

- * The file exists locally, and the policy is ONCE. - * - * @throws Exception - */ - public void testGetDefaultLayoutAlreadyPresentPassthrough() - throws Exception - { - String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar.asc"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - File remoteFile = new File( REPOPATH_PROXIED1, path ); - - assertTrue( expectedFile.exists() ); - - // Set the managed File to be newer than local. - setManagedOlderThanRemote( expectedFile, remoteFile ); - long originalModificationTime = expectedFile.lastModified(); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE, - CachedFailuresPolicy.NO, false ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, path ); - - assertNotDownloaded( downloadedFile ); - assertNotModified( expectedFile, originalModificationTime ); - assertNoTempFiles( expectedFile ); - } - - /** - *

- * Request a file, that exists locally, and remotely. - *

- *

- * All policies are set to IGNORE. - *

- *

- * Managed file is newer than remote file. - *

- *

- * Transfer should not have occured, as managed file is newer. - *

- * - * @throws Exception - */ - public void testGetDefaultLayoutAlreadyPresentNewerThanRemotePolicyIgnored() - throws Exception - { - String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - File remoteFile = new File( REPOPATH_PROXIED1, path ); - - // Set the managed File to be newer than local. - setManagedNewerThanRemote( expectedFile, remoteFile ); - - long originalModificationTime = expectedFile.lastModified(); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertTrue( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - assertNotModified( expectedFile, originalModificationTime ); - assertNoTempFiles( expectedFile ); - } - - /** - *

- * Request a file, that exists locally, and remotely. - *

- *

- * All policies are set to IGNORE. - *

- *

- * Managed file is older than Remote file. - *

- *

- * Transfer should have occured, as managed file is older than remote. - *

- * - * @throws Exception - */ - public void testGetDefaultLayoutAlreadyPresentOlderThanRemotePolicyIgnored() - throws Exception - { - String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - File remoteFile = new File( REPOPATH_PROXIED1, path ); - - // Set the managed file to be newer than remote file. - setManagedOlderThanRemote( expectedFile, remoteFile ); - - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertTrue( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } - - /** - * The attempt here should result in file being transferred. - *

- * The file exists locally, is over 6 years old, and the policy is DAILY. - * - * @throws Exception - */ - public void testGetDefaultLayoutRemoteUpdate() - throws Exception - { - String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertTrue( expectedFile.exists() ); - expectedFile.setLastModified( getPastDate().getTime() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.DAILY, SnapshotsPolicy.DAILY, - CachedFailuresPolicy.NO, false ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testGetWhenInBothProxiedRepos() - throws Exception - { - String path = "org/apache/maven/test/get-in-both-proxies/1.0/get-in-both-proxies-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertNotExistsInManagedDefaultRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1 , false ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 , false ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied1File = new File( REPOPATH_PROXIED1, path ); - File proxied2File = new File( REPOPATH_PROXIED2, path ); - assertFileEquals( expectedFile, downloadedFile, proxied1File ); - assertNoTempFiles( expectedFile ); - - // TODO: is this check even needed if it passes above? - String actualContents = FileUtils.readFileToString( downloadedFile, null ); - String badContents = FileUtils.readFileToString( proxied2File, null ); - assertFalse( "Downloaded file contents should not be that of proxy 2", - StringUtils.equals( actualContents, badContents ) ); - } - - public void testGetInSecondProxiedRepo() - throws Exception - { - String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertNotExistsInManagedDefaultRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxied2File = new File( REPOPATH_PROXIED2, path ); - assertFileEquals( expectedFile, downloadedFile, proxied2File ); - assertNoTempFiles( expectedFile ); - } - - public void testNotFoundInAnyProxies() - throws Exception - { - String path = "org/apache/maven/test/does-not-exist/1.0/does-not-exist-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertNotExistsInManagedDefaultRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false ); - saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertNull( "File returned was: " + downloadedFile + "; should have got a not found exception", - downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testGetInSecondProxiedRepoFirstFails() - throws Exception - { - String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertNotExistsInManagedDefaultRepo( expectedFile ); - - // Configure Repository (usually done within archiva.xml configuration) - saveRemoteRepositoryConfig( "badproxied", "Bad Proxied", "test://bad.machine.com/repo/", "default" ); - - wagonMock.get( path, new File( expectedFile.getAbsolutePath() + ".tmp" ) ); - wagonMockControl.setMatcher(customWagonGetMatcher); - wagonMockControl.setThrowable( new ResourceDoesNotExistException( "transfer failed" ) ); - wagonMockControl.replay(); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "badproxied", false ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false ); - - // Attempt the proxy fetch. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - wagonMockControl.verify(); - - File proxied2File = new File( REPOPATH_PROXIED2, path ); - assertFileEquals( expectedFile, downloadedFile, proxied2File ); - assertNoTempFiles( expectedFile ); - } - - public void testGetAllRepositoriesFail() - throws Exception - { - String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir.getAbsoluteFile(), path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertNotExistsInManagedDefaultRepo( expectedFile ); - - // Configure Repository (usually done within archiva.xml configuration) - saveRemoteRepositoryConfig( "badproxied1", "Bad Proxied 1", "test://bad.machine.com/repo/", "default" ); - saveRemoteRepositoryConfig( "badproxied2", "Bad Proxied 2", "test://dead.machine.com/repo/", "default" ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "badproxied1", false ); - saveConnector( ID_DEFAULT_MANAGED, "badproxied2", false ); - - File tmpFile = new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ); - wagonMock.get( path, tmpFile ); - - wagonMockControl.setMatcher(customWagonGetMatcher); - wagonMockControl.setThrowable( new ResourceDoesNotExistException( "Can't find resource." ) ); - - wagonMock.get( path, tmpFile ); - - wagonMockControl.setMatcher(customWagonGetMatcher); - wagonMockControl.setThrowable( new ResourceDoesNotExistException( "Can't find resource." ) ); - - wagonMockControl.replay(); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - - wagonMockControl.verify(); - assertNoTempFiles( expectedFile ); - - // TODO: do not want failures to present as a not found [MRM-492] - // TODO: How much information on each failure should we pass back to the user vs. logging in the proxy? - } - - public void testGetFromLegacyProxyAlreadyPresentInManaged_NewerThanRemote() - throws Exception - { - String legacyPath = "org.apache.maven.test/jars/get-default-layout-present-1.0.jar"; - String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - File remoteFile = new File( REPOPATH_PROXIED_LEGACY, legacyPath ); - - // Set the managed file to be newer than remote. - setManagedNewerThanRemote( expectedFile, remoteFile ); - long expectedTimestamp = expectedFile.lastModified(); - - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertTrue( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - assertNotModified( expectedFile, expectedTimestamp ); - assertNoTempFiles( expectedFile ); - } - - public void testGetFromLegacyProxyAlreadyPresentInManaged_OlderThanRemote() - throws Exception - { - String legacyPath = "org.apache.maven.test/jars/get-default-layout-present-1.0.jar"; - String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - File remoteFile = new File( REPOPATH_PROXIED_LEGACY, legacyPath ); - - // Set the managed file to be older than remote. - setManagedOlderThanRemote( expectedFile, remoteFile ); - - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertTrue( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED_LEGACY, legacyPath ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testGetFromLegacyProxyNotPresentInManaged() - throws Exception - { - String legacyPath = "org.apache.maven.test/jars/example-lib-2.2.jar"; - String path = "org/apache/maven/test/example-lib/2.2/example-lib-2.2.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertNotExistsInManagedDefaultRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED_LEGACY, legacyPath ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testGetFromLegacyProxyPluginNotPresentInManaged() - throws Exception - { - String legacyPath = "org.apache.maven.test/maven-plugins/example-maven-plugin-0.42.jar"; - String path = "org/apache/maven/test/example-maven-plugin/0.42/example-maven-plugin-0.42.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertNotExistsInManagedDefaultRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED_LEGACY, legacyPath ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.java deleted file mode 100644 index 5940ef682..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.java +++ /dev/null @@ -1,225 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; - -import java.io.File; - -/** - * ManagedLegacyTransferTest - * - * @author Brett Porter - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ManagedLegacyTransferTest - extends AbstractProxyTestCase -{ - /** - * Incoming request on a Managed Legacy repository, for content that does not - * exist in the managed legacy repository, but does exist on a remote default layout repository. - */ - public void testManagedLegacyNotPresentRemoteDefaultPresent() - throws Exception - { - String path = "org.apache.maven.test/jars/get-default-layout-1.0.jar"; - File expectedFile = new File( managedLegacyDir, path ); - ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path ); - - assertNotExistsInManagedLegacyRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact ); - - File proxied2File = new File( REPOPATH_PROXIED1, - "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar" ); - assertFileEquals( expectedFile, downloadedFile, proxied2File ); - assertNoTempFiles( expectedFile ); - } - - /** - * Incoming request on a Managed Legacy repository, for content that already - * exist in the managed legacy repository, and also exist on a remote default layout repository. - */ - public void testManagedLegacyPresentRemoteDefaultPresent() - throws Exception - { - String path = "org.apache.maven.test/jars/get-default-layout-present-1.0.jar"; - String remotePath = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar"; - - File expectedFile = new File( managedLegacyDir, path ); - File remoteFile = new File( REPOPATH_PROXIED1, remotePath ); - - setManagedOlderThanRemote( expectedFile, remoteFile ); - - ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact ); - - assertFileEquals( expectedFile, downloadedFile, remoteFile ); - assertNoTempFiles( expectedFile ); - } - - /** - * Incoming request on a Managed Legacy repository, for content that does not - * exist in the managed legacy repository, and does not exist on a remote legacy layout repository. - */ - public void testManagedLegacyNotPresentRemoteLegacyPresent() - throws Exception - { - String path = "org.apache.maven.test/plugins/get-legacy-plugin-1.0.jar"; - File expectedFile = new File( managedLegacyDir, path ); - ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path ); - - assertNotExistsInManagedLegacyRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED_LEGACY, path ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } - - /** - * Incoming request on a Managed Legacy repository, for content that does exist in the - * managed legacy repository, and also exists on a remote legacy layout repository. - */ - public void testManagedLegacyPresentRemoteLegacyPresent() - throws Exception - { - String path = "org.apache.maven.test/jars/get-default-layout-present-1.0.jar"; - File expectedFile = new File( managedLegacyDir, path ); - File remoteFile = new File( REPOPATH_PROXIED_LEGACY, path ); - - setManagedOlderThanRemote( expectedFile, remoteFile ); - - ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact ); - - assertFileEquals( expectedFile, downloadedFile, remoteFile ); - assertNoTempFiles( expectedFile ); - } - - /** - * Incoming request on a Managed Legacy repository, for content that does exist in the - * managed legacy repository, and does not exist on a remote legacy layout repository. - */ - public void testManagedLegacyPresentRemoteLegacyNotPresent() - throws Exception - { - String path = "org.apache.maven.test/jars/managed-only-lib-2.1.jar"; - File expectedFile = new File( managedLegacyDir, path ); - ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path ); - - assertTrue( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - /** - * Incoming request on a Managed Legacy repository, for content that does exist in the - * managed legacy repository, and does not exists on a remote default layout repository. - */ - public void testManagedLegacyPresentRemoteDefaultNotPresent() - throws Exception - { - String path = "org.apache.maven.test/jars/managed-only-lib-2.1.jar"; - File expectedFile = new File( managedLegacyDir, path ); - ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path ); - - assertTrue( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - /** - * Incoming request on a Managed Legacy repository, for content that does not exist in the - * managed legacy repository, and does not exists on a remote legacy layout repository. - */ - public void testManagedLegacyNotPresentRemoteLegacyNotPresent() - throws Exception - { - String path = "org.apache.archiva.test/jars/mystery-lib-1.0.jar"; - File expectedFile = new File( managedLegacyDir, path ); - ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path ); - - assertNotExistsInManagedLegacyRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - /** - * Incoming request on a Managed Legacy repository, for content that does not exist in the - * managed legacy repository, and does not exists on a remote default layout repository. - */ - public void testManagedLegacyNotPresentRemoteDefaultNotPresent() - throws Exception - { - String path = "org.apache.archiva.test/jars/mystery-lib-2.1.jar"; - File expectedFile = new File( managedLegacyDir, path ); - ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path ); - - assertNotExistsInManagedLegacyRepo( expectedFile ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, false ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - assertNoTempFiles( expectedFile ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/MetadataTransferTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/MetadataTransferTest.java deleted file mode 100644 index fa6a4b968..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/MetadataTransferTest.java +++ /dev/null @@ -1,1352 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.common.utils.VersionUtil; -import org.apache.maven.archiva.model.ArchivaRepositoryMetadata; -import org.apache.maven.archiva.model.Plugin; -import org.apache.maven.archiva.model.ProjectReference; -import org.apache.maven.archiva.model.SnapshotVersion; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; -import org.apache.maven.archiva.repository.metadata.MetadataTools; -import org.apache.maven.archiva.repository.metadata.RepositoryMetadataException; -import org.apache.maven.archiva.repository.metadata.RepositoryMetadataReader; -import org.apache.maven.archiva.repository.metadata.RepositoryMetadataWriter; -import org.apache.maven.wagon.TransferFailedException; -import org.custommonkey.xmlunit.DetailedDiff; -import org.custommonkey.xmlunit.Diff; - -import java.io.File; -import java.io.StringWriter; -import java.util.Arrays; - -/** - * MetadataTransferTest - Tests the various fetching / merging concepts surrounding the maven-metadata.xml files - * present in the repository. - * - * Test Case Naming is as follows. - * - * - * public void testGet[Release|Snapshot|Project]Metadata[Not]Proxied[Not|On]Local[Not|On|Multiple]Remote - * - * - *

- * Which should leave the following matrix of test cases.
- *
- *   Metadata  | Proxied  | Local | Remote
- *   ----------+----------+-------+---------
- *   Release   | Not      | Not   | n/a (1)
- *   Release   | Not      | On    | n/a (1)
- *   Release   |          | Not   | Not
- *   Release   |          | Not   | On
- *   Release   |          | Not   | Multiple
- *   Release   |          | On    | Not
- *   Release   |          | On    | On
- *   Release   |          | On    | Multiple
- *   Snapshot  | Not      | Not   | n/a (1)
- *   Snapshot  | Not      | On    | n/a (1)
- *   Snapshot  |          | Not   | Not
- *   Snapshot  |          | Not   | On
- *   Snapshot  |          | Not   | Multiple
- *   Snapshot  |          | On    | Not
- *   Snapshot  |          | On    | On
- *   Snapshot  |          | On    | Multiple
- *   Project   | Not      | Not   | n/a (1)
- *   Project   | Not      | On    | n/a (1)
- *   Project   |          | Not   | Not
- *   Project   |          | Not   | On
- *   Project   |          | Not   | Multiple
- *   Project   |          | On    | Not
- *   Project   |          | On    | On
- *   Project   |          | On    | Multiple
- *
- * (1) If it isn't proxied, no point in having a remote.
- * 
- * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class MetadataTransferTest - extends AbstractProxyTestCase -{ - /** - * @plexus.requirement - */ - private MetadataTools metadataTools; - - public void testGetProjectMetadataProxiedNotLocalOnRemoteConnectoDisabled() - throws Exception - { - // New project metadata that does not exist locally but exists on remote. - String requestedResource = "org/apache/maven/test/get-found-in-proxy/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, true); - - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - - File expectedFile = new File( managedDefaultDir, requestedResource ); - - ProjectReference metadata = createProjectReference( requestedResource ); - - File downloadedFile = proxyHandler.fetchMetatadaFromProxies( managedDefaultRepository, managedDefaultRepository.toMetadataPath(metadata) ); - - assertNull( "Should not have downloaded a file.", downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - // TODO: same test for other fetch* methods - public void testFetchFromTwoProxiesWhenFirstConnectionFails() - throws Exception - { - // Project metadata that does not exist locally, but has multiple versions in remote repos - String requestedResource = "org/apache/maven/test/get-default-layout/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - saveRemoteRepositoryConfig( "badproxied1", "Bad Proxied 1", "test://bad.machine.com/repo/", "default" ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, "badproxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( "badproxied1", requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // ensure that a hard failure in the first proxy connector is skipped and the second repository checked - File expectedFile = new File( managedDefaultDir.getAbsoluteFile(), - metadataTools.getRepositorySpecificName( "badproxied1", requestedResource ) ); - wagonMock.get( requestedResource, new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ) ); - - wagonMockControl.setMatcher(customWagonGetMatcher); - - wagonMockControl.setThrowable( new TransferFailedException( "can't connect" ) ); - - wagonMockControl.replay(); - - assertFetchProjectOrGroup( requestedResource ); - - wagonMockControl.verify(); - - assertProjectMetadataContents( requestedResource, new String[] { "1.0.1" }, "1.0.1", "1.0.1" ); - assertNoRepoMetadata( "badproxied1", requestedResource ); - assertRepoProjectMetadata( ID_PROXIED2, requestedResource, new String[] { "1.0.1" } ); - } - - /** - * Attempt to get the project metadata for non-existant artifact. - * - * Expected result: the maven-metadata.xml file is not created on the managed repository, nor returned - * to the requesting client. - */ - public void testGetProjectMetadataNotProxiedNotLocal() - throws Exception - { - // The artifactId "get-default-metadata-nonexistant" does not exist (intentionally). - String requestedResource = "org/apache/maven/test/get-default-metadata-nonexistant/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - assertResourceNotFound( requestedResource ); - - // No proxy setup, nothing fetched, failure expected. - assertFetchProjectOrGroupFailed( requestedResource ); - - // No local artifactId, and no fetch, should equal no metadata file downloaded / created / updated. - assertResourceNotFound( requestedResource ); - } - - public void testGetProjectMetadataNotProxiedOnLocal() - throws Exception - { - // Project metadata that exists and has multiple versions - String requestedResource = "org/apache/maven/test/get-project-metadata/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - assertResourceExists( requestedResource ); - - // No proxy setup, nothing fetched from remote, but local exists. - assertFetchProjectOrGroup( requestedResource ); - - // Nothing fetched. Should only contain contents of what is in the repository. - // A metadata update is not performed in this use case. Local metadata content is only - // updated via the metadata updater consumer. - assertProjectMetadataContents( requestedResource, new String[] { "1.0" }, null, null ); - } - - public void testGetProjectMetadataProxiedNotLocalMultipleRemotes() - throws Exception - { - // Project metadata that does not exist locally, but has multiple versions in remote repos - String requestedResource = "org/apache/maven/test/get-default-layout/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // Two proxies setup, metadata fetched from both remotes. - assertFetchProjectOrGroup( requestedResource ); - - // Nothing fetched. Should only contain contents of what is in the repository. - assertProjectMetadataContents( requestedResource, new String[] { "1.0", "1.0.1" }, "1.0.1", "1.0.1" ); - assertRepoProjectMetadata( ID_PROXIED1, requestedResource, new String[] { "1.0" } ); - assertRepoProjectMetadata( ID_PROXIED2, requestedResource, new String[] { "1.0.1" } ); - } - - public void testGetProjectMetadataProxiedNotLocalNotRemote() - throws Exception - { - // Non-existant project metadata that does not exist locally and doesn't exist on remotes. - String requestedResource = "org/apache/maven/test/get-bogus-artifact/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // Two proxies setup, nothing fetched from remotes, local does not exist. - assertFetchProjectOrGroupFailed( requestedResource ); - - // Nothing fetched. Nothing should exist. - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - } - - public void testGetProjectMetadataProxiedNotLocalOnRemote() - throws Exception - { - // New project metadata that does not exist locally but exists on remote. - String requestedResource = "org/apache/maven/test/get-found-in-proxy/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - - // One proxy setup, metadata fetched from remote, local does not exist. - assertFetchProjectOrGroup( requestedResource ); - - // Remote fetched. Local created/updated. - assertProjectMetadataContents( requestedResource, new String[] { "1.0.5" }, "1.0.5", "1.0.5" ); - assertRepoProjectMetadata( ID_PROXIED1, requestedResource, new String[] { "1.0.5" } ); - } - - public void testGetProjectMetadataProxiedOnLocalMultipleRemote() - throws Exception - { - // Project metadata that exist locally, and has multiple versions in remote repos - String requestedResource = "org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertProjectMetadataContents( requestedResource, new String[] { "1.0" }, null, null ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // Two proxies setup, metadata fetched from both remotes. - assertFetchProjectOrGroup( requestedResource ); - - // metadata fetched from both repos, and merged with local version. - assertProjectMetadataContents( requestedResource, new String[] { "1.0", "1.0.1", "2.0" }, "2.0", "2.0" ); - assertRepoProjectMetadata( ID_PROXIED1, requestedResource, new String[] { "1.0", "2.0" } ); - assertRepoProjectMetadata( ID_PROXIED2, requestedResource, new String[] { "1.0", "1.0.1" } ); - } - - public void testGetProjectMetadataProxiedOnLocalNotRemote() - throws Exception - { - // Project metadata that exist locally, and does not exist in remote repos. - String requestedResource = "org/apache/maven/test/get-not-on-remotes/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertProjectMetadataContents( requestedResource, new String[] { "1.0-beta-2" }, null, null ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // Two proxies setup, metadata fetch from remotes fail (because they dont exist). - assertFetchProjectOrGroup( requestedResource ); - - // metadata not fetched from both repos, and local version exists. - // Since there was no updated metadata content from a remote/proxy, a metadata update on - // the local file never ran. Local only updates are performed via the metadata updater consumer. - assertProjectMetadataContents( requestedResource, new String[] { "1.0-beta-2" }, null, null ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - } - - public void testGetProjectMetadataProxiedOnLocalOnRemote() - throws Exception - { - // Project metadata that exist locally and exists on remote. - String requestedResource = "org/apache/maven/test/get-on-local-on-remote/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertProjectMetadataContents( requestedResource, new String[] { "1.0.8", "1.0.22" }, null, null ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - - // One proxy setup, metadata fetched from remote, local exists. - assertFetchProjectOrGroup( requestedResource ); - - // Remote fetched. Local updated. - assertProjectMetadataContents( requestedResource, new String[] { "1.0.8", "1.0.22", "2.0" }, "2.0", "2.0" ); - assertRepoProjectMetadata( ID_PROXIED1, requestedResource, new String[] { "1.0.22", "2.0" } ); - } - - /** - * A request for a release maven-metadata.xml file that does not exist locally, and the managed - * repository has no proxied repositories set up. - * - * Expected result: the maven-metadata.xml file is not created on the managed repository, nor returned - * to the requesting client. - */ - public void testGetReleaseMetadataNotProxiedNotLocal() - throws Exception - { - // The artifactId "get-default-metadata-nonexistant" does not exist (intentionally). - String requestedResource = "org/apache/maven/test/get-default-metadata-nonexistant/1.0/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - assertNoMetadata( requestedResource ); - - // No proxy setup, nothing fetched, failure expected. - assertFetchVersionedFailed( requestedResource ); - - // No local artifactId, and no fetch, should equal no metadata file downloaded / created / updated. - assertNoMetadata( requestedResource ); - } - - /** - * A request for a maven-metadata.xml file that does exist locally, and the managed - * repository has no proxied repositories set up. - * - * Expected result: the maven-metadata.xml file is updated locally, based off of the managed repository - * information, and then returned to the client. - */ - public void testGetReleaseMetadataNotProxiedOnLocal() - throws Exception - { - String requestedResource = "org/apache/maven/test/get-default-metadata/1.0/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - assertResourceExists( requestedResource ); - - assertFetchVersioned( requestedResource ); - - assertReleaseMetadataContents( requestedResource ); - } - - /** - * A request for a release maven-metadata.xml file that does not exist on the managed repository, but - * exists on multiple remote repositories. - * - * Expected result: the maven-metadata.xml file is downloaded from the remote into the repository specific - * file location on the managed repository, a merge of the contents to the requested - * maven-metadata.xml is performed, and then the merged maven-metadata.xml file is - * returned to the client. - */ - public void testGetReleaseMetadataProxiedNotLocalMultipleRemotes() - throws Exception - { - String requestedResource = "org/apache/maven/test/get-default-layout/1.0/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - assertFetchVersioned( requestedResource ); - - assertReleaseMetadataContents( requestedResource ); - assertRepoReleaseMetadataContents( ID_PROXIED1, requestedResource ); - assertRepoReleaseMetadataContents( ID_PROXIED2, requestedResource ); - } - - /** - * A request for a maven-metadata.xml file that does not exist locally, nor does it exist in a remote - * proxied repository. - * - * Expected result: the maven-metadata.xml file is created locally, based off of managed repository - * information, and then return to the client. - */ - public void testGetReleaseMetadataProxiedNotLocalNotRemote() - throws Exception - { - String requestedResource = "org/apache/maven/test/get-bad-metadata/1.0/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertResourceNotFound( requestedResource ); - - assertFetchProjectOrGroupFailed( requestedResource ); - - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - } - - /** - * A request for a maven-metadata.xml file that does not exist on the managed repository, but - * exists on 1 remote repository. - * - * Expected result: the maven-metadata.xml file is downloaded from the remote into the repository specific - * file location on the managed repository, a merge of the contents to the requested - * maven-metadata.xml is performed, and then the merged maven-metadata.xml file is - * returned to the client. - */ - public void testGetReleaseMetadataProxiedNotLocalOnRemote() - throws Exception - { - String requestedResource = "org/apache/maven/test/get-default-layout/1.0/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - - assertFetchVersioned( requestedResource ); - - assertReleaseMetadataContents( requestedResource ); - assertRepoReleaseMetadataContents( ID_PROXIED1, requestedResource ); - } - - /** - * A request for a maven-metadata.xml file that exists in the managed repository, but - * not on any remote repository. - * - * Expected result: the maven-metadata.xml file does not exist on the remote proxied repository and - * is not downloaded. There is no repository specific metadata file on the managed - * repository. The managed repository maven-metadata.xml is returned to the - * client as-is. - */ - public void testGetReleaseMetadataProxiedOnLocalNotRemote() - throws Exception - { - String requestedResource = "org/apache/maven/test/get-not-on-remotes/1.0-beta-2/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertReleaseMetadataContents( requestedResource ); - - assertFetchVersioned( requestedResource ); - - assertReleaseMetadataContents( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - } - - /** - * A request for a maven-metadata.xml file that exists in the managed repository, and on multiple - * remote repositories. - * - * Expected result: the maven-metadata.xml file on the remote proxied repository is downloaded - * and merged into the contents of the existing managed repository copy of - * the maven-metadata.xml file. - */ - public void testGetReleaseMetadataProxiedOnLocalMultipleRemote() - throws Exception - { - String requestedResource = "org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertReleaseMetadataContents( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - assertFetchVersioned( requestedResource ); - - assertReleaseMetadataContents( requestedResource ); - assertRepoReleaseMetadataContents( ID_PROXIED1, requestedResource ); - assertRepoReleaseMetadataContents( ID_PROXIED2, requestedResource ); - } - - /** - * A request for a maven-metadata.xml file that exists in the managed repository, and on one - * remote repository. - * - * Expected result: the maven-metadata.xml file on the remote proxied repository is downloaded - * and merged into the contents of the existing managed repository copy of - * the maven-metadata.xml file. - */ - public void testGetReleaseMetadataProxiedOnLocalOnRemote() - throws Exception - { - String requestedResource = "org/apache/maven/test/get-on-local-on-remote/1.0.22/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertReleaseMetadataContents( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - - assertFetchVersioned( requestedResource ); - - assertReleaseMetadataContents( requestedResource ); - assertRepoReleaseMetadataContents( ID_PROXIED1, requestedResource ); - } - - public void testGetSnapshotMetadataNotProxiedNotLocal() - throws Exception - { - // The artifactId "get-default-metadata-nonexistant" does not exist (intentionally). - String requestedResource = "org/apache/maven/test/get-default-metadata-nonexistant/1.0-SNAPSHOT/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - assertNoMetadata( requestedResource ); - - // No proxy setup, nothing fetched, no local file, failure expected. - assertFetchVersionedFailed( requestedResource ); - - // No local artifactId, and no fetch, should equal no metadata file downloaded / created / updated. - assertNoMetadata( requestedResource ); - } - - public void testGetSnapshotMetadataNotProxiedOnLocal() - throws Exception - { - // The artifactId exists locally (but not on a remote repo) - String requestedResource = "org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - assertResourceExists( requestedResource ); - - // No proxy setup, nothing fetched from remote, local file exists, fetch should succeed. - assertFetchVersioned( requestedResource ); - - // Local metadata exists, should be updated to reflect the latest release. - assertSnapshotMetadataContents( requestedResource, "20070821", "220304", 2 ); - } - - public void testGetSnapshotMetadataProxiedNotLocalMultipleRemotes() - throws Exception - { - String requestedResource = "org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // Proxying 2 repos, both have content, local file updated. - assertFetchVersioned( requestedResource ); - - assertSnapshotMetadataContents( requestedResource, "20070101", "000103", 2 ); - assertRepoSnapshotMetadataContents( ID_PROXIED1, requestedResource, "20061227", "112101", 2 ); - assertRepoSnapshotMetadataContents( ID_PROXIED2, requestedResource, "20070101", "000103", 2 ); - } - - public void testGetSnapshotMetadataProxiedNotLocalNotRemote() - throws Exception - { - // The artifactId "get-default-metadata-nonexistant" does not exist (intentionally). - String requestedResource = "org/apache/maven/test/get-default-metadata-nonexistant/1.0-SNAPSHOT/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertNoMetadata( requestedResource ); - - // One proxy setup, nothing fetched, no local file, failure expected. - assertFetchVersionedFailed( requestedResource ); - - // No local artifactId, and no fetch, should equal no metadata file downloaded / created / updated. - assertNoMetadata( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - } - - public void testGetSnapshotMetadataProxiedNotLocalOnRemote() - throws Exception - { - // Artifact exists only in the proxied1 location. - String requestedResource = "org/apache/maven/test/get-metadata-snapshot/1.0-SNAPSHOT/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertResourceNotFound( requestedResource ); - - // One proxy setup, one metadata fetched, local file created/updated. - assertFetchVersioned( requestedResource ); - - // Local artifact Id should contain latest (which in this case is from proxied download) - assertSnapshotMetadataContents( requestedResource, "20050831", "101112", 1 ); - assertRepoSnapshotMetadataContents( ID_PROXIED1, requestedResource, "20050831", "101112", 1 ); - } - - public void testGetSnapshotMetadataProxiedOnLocalMultipleRemote() - throws Exception - { - String requestedResource = "org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertSnapshotMetadataContents( requestedResource, "20070822", "021008", 3 ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // Proxying 2 repos, both have content, local file updated. - assertFetchVersioned( requestedResource ); - - assertSnapshotMetadataContents( requestedResource, "20070823", "212711", 6 ); - assertRepoSnapshotMetadataContents( ID_PROXIED1, requestedResource, "20070822", "145534", 9 ); - assertRepoSnapshotMetadataContents( ID_PROXIED2, requestedResource, "20070823", "212711", 6 ); - } - - public void testGetSnapshotMetadataProxiedOnLocalNotRemote() - throws Exception - { - // The artifactId exists locally (but not on a remote repo) - String requestedResource = "org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertResourceExists( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // two proxies setup, nothing fetched from either remote, local file exists, fetch should succeed. - assertFetchVersioned( requestedResource ); - - // Local metadata exists, repo metadatas should not exist, local file updated. - assertSnapshotMetadataContents( requestedResource, "20070821", "220304", 2 ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - } - - public void testGetSnapshotMetadataProxiedOnLocalOnRemote() - throws Exception - { - // The artifactId exists locally (but not on a remote repo) - String requestedResource = "org/apache/maven/test/get-present-metadata-snapshot/1.0-SNAPSHOT/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertSnapshotMetadataContents( requestedResource, "20050831", "101112", 1 ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - - // two proxies setup, nothing fetched from either remote, local file exists, fetch should succeed. - assertFetchVersioned( requestedResource ); - - // Local metadata exists, repo metadata exists, local file updated. - assertSnapshotMetadataContents( requestedResource, "20050831", "101112", 1 ); - assertRepoSnapshotMetadataContents( ID_PROXIED1, requestedResource, "20050831", "101112", 1 ); - } - - public void testGetGroupMetadataNotProxiedNotLocal() - throws Exception - { - // The artifactId "get-default-metadata-nonexistant" does not exist (intentionally). - String requestedResource = "org/apache/maven/test/groups/get-default-metadata-nonexistant/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - assertResourceNotFound( requestedResource ); - - // No proxy setup, nothing fetched, failure expected. - assertFetchProjectOrGroupFailed( requestedResource ); - - // No local artifactId, and no fetch, should equal no metadata file downloaded / created / updated. - assertResourceNotFound( requestedResource ); - } - - public void testGetGroupMetadataNotProxiedOnLocal() - throws Exception - { - // Project metadata that exists and has multiple versions - String requestedResource = "org/apache/maven/test/groups/get-project-metadata/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - assertResourceExists( requestedResource ); - - // No proxy setup, nothing fetched from remote, but local exists. - assertFetchProjectOrGroup( requestedResource ); - - // Nothing fetched. Should only contain contents of what is in the repository. - // A metadata update is not performed in this use case. Local metadata content is only - // updated via the metadata updater consumer. - assertGroupMetadataContents( requestedResource, new String[] { "plugin1" } ); - } - - public void testGetGroupMetadataProxiedNotLocalMultipleRemotes() - throws Exception - { - // Project metadata that does not exist locally, but has multiple versions in remote repos - String requestedResource = "org/apache/maven/test/groups/get-default-layout/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // Two proxies setup, metadata fetched from both remotes. - assertFetchProjectOrGroup( requestedResource ); - - // Nothing fetched. Should only contain contents of what is in the repository. - assertGroupMetadataContents( requestedResource, new String[] { "plugin2", "plugin1" } ); - assertRepoGroupMetadataContents( ID_PROXIED1, requestedResource, new String[] { "plugin1" } ); - assertRepoGroupMetadataContents( ID_PROXIED2, requestedResource, new String[] { "plugin2" } ); - } - - public void testGetGroupsMetadataProxiedNotLocalNotRemote() - throws Exception - { - // Non-existant project metadata that does not exist locally and doesn't exist on remotes. - String requestedResource = "org/apache/maven/test/groups/get-bogus-artifact/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // Two proxies setup, nothing fetched from remotes, local does not exist. - assertFetchProjectOrGroupFailed( requestedResource ); - - // Nothing fetched. Nothing should exist. - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - } - - public void testGetGroupMetadataProxiedNotLocalOnRemote() - throws Exception - { - // New project metadata that does not exist locally but exists on remote. - String requestedResource = "org/apache/maven/test/groups/get-found-in-proxy/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - assertResourceNotFound( requestedResource ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - - // One proxy setup, metadata fetched from remote, local does not exist. - assertFetchProjectOrGroup( requestedResource ); - - // Remote fetched. Local created/updated. - assertGroupMetadataContents( requestedResource, new String[] { "plugin3" } ); - assertRepoGroupMetadataContents( ID_PROXIED1, requestedResource, new String[] { "plugin3" } ); - } - - public void testGetGroupMetadataProxiedOnLocalMultipleRemote() - throws Exception - { - // Project metadata that exist locally, and has multiple versions in remote repos - String requestedResource = "org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - assertGroupMetadataContents( requestedResource, new String[] { "plugin1" } ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // Two proxies setup, metadata fetched from both remotes. - assertFetchProjectOrGroup( requestedResource ); - - // metadata fetched from both repos, and merged with local version. - assertGroupMetadataContents( requestedResource, new String[] { "plugin1", "plugin2", "plugin4" } ); - assertRepoGroupMetadataContents( ID_PROXIED1, requestedResource, new String[] { "plugin1", "plugin4" } ); - assertRepoGroupMetadataContents( ID_PROXIED2, requestedResource, new String[] { "plugin1", "plugin2" } ); - } - - public void testGetGroupMetadataProxiedOnLocalNotRemote() - throws Exception - { - // Project metadata that exist locally, and does not exist in remote repos. - String requestedResource = "org/apache/maven/test/groups/get-not-on-remotes/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - assertGroupMetadataContents( requestedResource, new String[] { "plugin5" } ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - - // Two proxies setup, metadata fetch from remotes fail (because they dont exist). - assertFetchProjectOrGroup( requestedResource ); - - // metadata not fetched from both repos, and local version exists. - // Since there was no updated metadata content from a remote/proxy, a metadata update on - // the local file never ran. Local only updates are performed via the metadata updater consumer. - assertGroupMetadataContents( requestedResource, new String[] { "plugin5" } ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - assertNoRepoMetadata( ID_PROXIED2, requestedResource ); - } - - public void testGetGroupMetadataProxiedOnLocalOnRemote() - throws Exception - { - // Project metadata that exist locally and exists on remote. - String requestedResource = "org/apache/maven/test/groups/get-on-local-on-remote/maven-metadata.xml"; - setupTestableManagedRepository( requestedResource ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false ); - - assertGroupMetadataContents( requestedResource, new String[] { "plugin6", "plugin7" } ); - assertNoRepoMetadata( ID_PROXIED1, requestedResource ); - - // One proxy setup, metadata fetched from remote, local exists. - assertFetchProjectOrGroup( requestedResource ); - - // Remote fetched. Local updated. - assertGroupMetadataContents( requestedResource, new String[] { "plugin6", "plugin7", "plugin4" } ); - assertRepoGroupMetadataContents( ID_PROXIED1, requestedResource, new String[] { "plugin7", "plugin4" } ); - } - - /** - * Transfer the metadata file. - * - * @param requestedResource the requested resource - * @throws Exception - */ - private void assertFetchProjectOrGroup( String requestedResource ) - throws Exception - { - File expectedFile = new File( managedDefaultDir, requestedResource ); - - ProjectReference metadata = createProjectReference( requestedResource ); - - File downloadedFile = proxyHandler.fetchMetatadaFromProxies( managedDefaultRepository, managedDefaultRepository.toMetadataPath(metadata) ); - - assertNotNull( "Should have downloaded a file.", downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - private ProjectReference createProjectReference( String path ) - throws RepositoryMetadataException - { - return metadataTools.toProjectReference( path ); - } - - /** - * Transfer the metadata file, not expected to succeed. - * - * @param requestedResource the requested resource - * @throws Exception - */ - private void assertFetchProjectOrGroupFailed( String requestedResource ) - throws Exception - { - File expectedFile = new File( managedDefaultDir, requestedResource ); - ProjectReference metadata = createProjectReference( requestedResource ); - - File downloadedFile = proxyHandler.fetchMetatadaFromProxies( managedDefaultRepository, managedDefaultRepository.toMetadataPath(metadata) ); - - assertNull( downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - /** - * Transfer the metadata file. - * - * @param requestedResource the requested resource - * @throws Exception - */ - private void assertFetchVersioned( String requestedResource ) - throws Exception - { - File expectedFile = new File( managedDefaultDir, requestedResource ); - - VersionedReference metadata = createVersionedReference( requestedResource ); - - File downloadedFile = proxyHandler.fetchMetatadaFromProxies( managedDefaultRepository, managedDefaultRepository.toMetadataPath(metadata) ); - - assertNotNull( "Should have downloaded a file.", downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - private VersionedReference createVersionedReference( String path ) - throws RepositoryMetadataException - { - return metadataTools.toVersionedReference( path ); - } - - /** - * Transfer the metadata file, not expected to succeed. - * - * @param requestedResource the requested resource - * @throws Exception - */ - private void assertFetchVersionedFailed( String requestedResource ) - throws Exception - { - File expectedFile = new File( managedDefaultDir, requestedResource ); - VersionedReference metadata = createVersionedReference( requestedResource ); - - File downloadedFile = proxyHandler.fetchMetatadaFromProxies( managedDefaultRepository, managedDefaultRepository.toMetadataPath(metadata) ); - - assertNull( downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - /** - * Test for the existance of the requestedResource in the default managed repository. - * - * @param requestedResource the requested resource - * @throws Exception - */ - private void assertResourceExists( String requestedResource ) - throws Exception - { - File actualFile = new File( managedDefaultDir, requestedResource ); - assertTrue( "Resource should exist: " + requestedResource, actualFile.exists() ); - } - - private void assertMetadataEquals( String expectedMetadataXml, File actualFile ) - throws Exception - { - assertNotNull( "Actual File should not be null.", actualFile ); - - assertTrue( "Actual file exists.", actualFile.exists() ); - - StringWriter actualContents = new StringWriter(); - ArchivaRepositoryMetadata metadata = RepositoryMetadataReader.read( actualFile ); - RepositoryMetadataWriter.write( metadata, actualContents ); - - DetailedDiff detailedDiff = new DetailedDiff( new Diff( expectedMetadataXml, actualContents.toString() ) ); - if ( !detailedDiff.similar() ) - { - assertEquals( expectedMetadataXml, actualContents ); - } - - // assertEquals( "Check file contents.", expectedMetadataXml, actualContents ); - } - - /** - * Ensures that the requested resource is not present in the managed repository. - * - * @param requestedResource the requested resource - * @throws Exception - */ - private void assertNoMetadata( String requestedResource ) - throws Exception - { - File expectedFile = new File( managedDefaultDir, requestedResource ); - assertFalse( "metadata should not exist: " + expectedFile, expectedFile.exists() ); - } - - /** - * Ensures that the proxied repository specific maven metadata file does NOT exist in the - * managed repository. - * @param proxiedRepoId the proxied repository id to validate with. - * @param requestedResource the resource requested. - */ - private void assertNoRepoMetadata( String proxiedRepoId, String requestedResource ) - { - String proxiedFile = metadataTools.getRepositorySpecificName( proxiedRepoId, requestedResource ); - - File actualFile = new File( managedDefaultDir, proxiedFile ); - assertFalse( "Repo specific metadata should not exist: " + actualFile, actualFile.exists() ); - } - - private void assertGroupMetadataContents( String requestedResource, String expectedPlugins[] ) - throws Exception - { - File actualFile = new File( managedDefaultDir, requestedResource ); - assertTrue( "Snapshot Metadata should exist: " + requestedResource, actualFile.exists() ); - - ProjectReference actualMetadata = createGroupReference( requestedResource ); - - assertGroupMetadata( actualFile, actualMetadata, expectedPlugins ); - } - - private ProjectReference createGroupReference( String requestedResource ) - throws RepositoryMetadataException - { - ProjectReference projectReference = createProjectReference( requestedResource ); - projectReference.setGroupId( projectReference.getGroupId() + "." + projectReference.getArtifactId() ); - projectReference.setArtifactId( null ); - return projectReference; - } - - private void assertRepoGroupMetadataContents( String proxiedRepoId, String requestedResource, - String expectedPlugins[] ) - throws Exception - { - String proxiedFile = metadataTools.getRepositorySpecificName( proxiedRepoId, requestedResource ); - - File actualFile = new File( managedDefaultDir, proxiedFile ); - assertTrue( "Repo Specific Group Metadata should exist: " + requestedResource, actualFile.exists() ); - - ProjectReference actualMetadata = createGroupReference( requestedResource ); - - assertGroupMetadata( actualFile, actualMetadata, expectedPlugins ); - } - - private void assertGroupMetadata( File actualFile, ProjectReference actualMetadata, String expectedPlugins[] ) - throws Exception - { - // Build expected metadata XML - StringWriter expectedMetadataXml = new StringWriter(); - ArchivaRepositoryMetadata m = new ArchivaRepositoryMetadata(); - m.setGroupId( actualMetadata.getGroupId() ); - - for ( String pluginId : expectedPlugins ) - { - Plugin p = new Plugin(); - p.setPrefix( pluginId ); - p.setArtifactId( pluginId + "-maven-plugin" ); - p.setName( "The " + pluginId + " Plugin" ); - m.getPlugins().add( p ); - } - - m.setModelEncoding( null ); - RepositoryMetadataWriter.write( m, expectedMetadataXml ); - - // Compare the file to the actual contents. - assertMetadataEquals( expectedMetadataXml.toString(), actualFile ); - } - - /** - * Test for the existance of the requestedResource in the default managed repository, and if it exists, - * does it contain the specified list of expected versions? - * - * @param requestedResource the requested resource - * @throws Exception - */ - private void assertProjectMetadataContents( String requestedResource, String expectedVersions[], - String latestVersion, String releaseVersion ) - throws Exception - { - File actualFile = new File( managedDefaultDir, requestedResource ); - assertTrue( actualFile.exists() ); - - ProjectReference metadata = createProjectReference( requestedResource ); - - // Build expected metadata XML - StringWriter expectedMetadataXml = new StringWriter(); - ArchivaRepositoryMetadata m = new ArchivaRepositoryMetadata(); - m.setGroupId( metadata.getGroupId() ); - m.setArtifactId( metadata.getArtifactId() ); - m.setLatestVersion( latestVersion ); - m.setReleasedVersion( releaseVersion ); - - if ( expectedVersions != null ) - { - m.getAvailableVersions().addAll( Arrays.asList( expectedVersions ) ); - } - - m.setModelEncoding( null ); - RepositoryMetadataWriter.write( m, expectedMetadataXml ); - - // Compare the file to the actual contents. - assertMetadataEquals( expectedMetadataXml.toString(), actualFile ); - } - - /** - * Test for the existance of the requestedResource in the default managed repository, and if it exists, - * does it contain the expected release maven-metadata.xml contents? - * - * @param requestedResource the requested resource - * @throws Exception - */ - private void assertReleaseMetadataContents( String requestedResource ) - throws Exception - { - File actualFile = new File( managedDefaultDir, requestedResource ); - assertTrue( "Release Metadata should exist: " + requestedResource, actualFile.exists() ); - - VersionedReference metadata = createVersionedReference( requestedResource ); - - // Build expected metadata XML - StringWriter expectedMetadataXml = new StringWriter(); - ArchivaRepositoryMetadata m = new ArchivaRepositoryMetadata(); - m.setGroupId( metadata.getGroupId() ); - m.setArtifactId( metadata.getArtifactId() ); - m.setVersion( metadata.getVersion() ); - m.setModelEncoding( null ); - RepositoryMetadataWriter.write( m, expectedMetadataXml ); - - // Compare the file to the actual contents. - assertMetadataEquals( expectedMetadataXml.toString(), actualFile ); - } - - /** - * Test for the existance of the snapshot metadata in the default managed repository, and if it exists, - * does it contain the expected release maven-metadata.xml contents? - * - * @param requestedResource the requested resource - * @param expectedDate the date in "yyyyMMdd" format - * @param expectedTime the time in "hhmmss" format - * @param expectedBuildnumber the build number - * - * @throws Exception - */ - private void assertSnapshotMetadataContents( String requestedResource, String expectedDate, String expectedTime, - int expectedBuildnumber ) - throws Exception - { - File actualFile = new File( managedDefaultDir, requestedResource ); - assertTrue( "Snapshot Metadata should exist: " + requestedResource, actualFile.exists() ); - - VersionedReference actualMetadata = createVersionedReference( requestedResource ); - - assertSnapshotMetadata( actualFile, actualMetadata, expectedDate, expectedTime, expectedBuildnumber ); - } - - /** - * Test for the existance of the proxied repository specific snapshot metadata in the default managed - * repository, and if it exists, does it contain the expected release maven-metadata.xml contents? - * - * @param proxiedRepoId the repository id of the proxied repository. - * @param requestedResource the requested resource - * @param expectedDate the date in "yyyyMMdd" format - * @param expectedTime the time in "hhmmss" format - * @param expectedBuildnumber the build number - * - * @throws Exception - */ - private void assertRepoSnapshotMetadataContents( String proxiedRepoId, String requestedResource, - String expectedDate, String expectedTime, int expectedBuildnumber ) - throws Exception - { - String proxiedFile = metadataTools.getRepositorySpecificName( proxiedRepoId, requestedResource ); - - File actualFile = new File( managedDefaultDir, proxiedFile ); - assertTrue( "Repo Specific Snapshot Metadata should exist: " + requestedResource, actualFile.exists() ); - - VersionedReference actualMetadata = createVersionedReference( requestedResource ); - - assertSnapshotMetadata( actualFile, actualMetadata, expectedDate, expectedTime, expectedBuildnumber ); - } - - private void assertSnapshotMetadata( File actualFile, VersionedReference actualMetadata, String expectedDate, - String expectedTime, int expectedBuildnumber ) - throws RepositoryMetadataException, Exception - { - // Build expected metadata XML - StringWriter expectedMetadataXml = new StringWriter(); - ArchivaRepositoryMetadata m = new ArchivaRepositoryMetadata(); - m.setGroupId( actualMetadata.getGroupId() ); - m.setArtifactId( actualMetadata.getArtifactId() ); - m.setVersion( VersionUtil.getBaseVersion( actualMetadata.getVersion() ) ); - - m.setSnapshotVersion( new SnapshotVersion() ); - - if ( StringUtils.isNotBlank( expectedDate ) && StringUtils.isNotBlank( expectedTime ) ) - { - m.getSnapshotVersion().setTimestamp( expectedDate + "." + expectedTime ); - } - - m.getSnapshotVersion().setBuildNumber( expectedBuildnumber ); - - m.setLastUpdated( expectedDate + expectedTime ); - - m.setModelEncoding( null ); - RepositoryMetadataWriter.write( m, expectedMetadataXml ); - - // Compare the file to the actual contents. - assertMetadataEquals( expectedMetadataXml.toString(), actualFile ); - } - - /** - * Ensures that the repository specific maven metadata file exists, and contains the appropriate - * list of expected versions within. - * @param proxiedRepoId - * @param requestedResource - * @param expectedProxyVersions - */ - private void assertRepoProjectMetadata( String proxiedRepoId, String requestedResource, - String[] expectedProxyVersions ) - throws Exception - { - String proxiedFile = metadataTools.getRepositorySpecificName( proxiedRepoId, requestedResource ); - - File actualFile = new File( managedDefaultDir, proxiedFile ); - assertTrue( actualFile.exists() ); - - ProjectReference metadata = createProjectReference( requestedResource ); - - // Build expected metadata XML - StringWriter expectedMetadataXml = new StringWriter(); - ArchivaRepositoryMetadata m = new ArchivaRepositoryMetadata(); - m.setGroupId( metadata.getGroupId() ); - m.setArtifactId( metadata.getArtifactId() ); - - if ( expectedProxyVersions != null ) - { - m.getAvailableVersions().addAll( Arrays.asList( expectedProxyVersions ) ); - } - - m.setModelEncoding( null ); - RepositoryMetadataWriter.write( m, expectedMetadataXml ); - - // Compare the file to the actual contents. - assertMetadataEquals( expectedMetadataXml.toString(), actualFile ); - } - - /** - * Ensures that the repository specific maven metadata file exists, and contains the appropriate - * list of expected versions within. - * - * @param proxiedRepoId - * @param requestedResource - */ - private void assertRepoReleaseMetadataContents( String proxiedRepoId, String requestedResource ) - throws Exception - { - String proxiedFile = metadataTools.getRepositorySpecificName( proxiedRepoId, requestedResource ); - - File actualFile = new File( managedDefaultDir, proxiedFile ); - assertTrue( "Release metadata for repo should exist: " + actualFile, actualFile.exists() ); - - VersionedReference metadata = createVersionedReference( requestedResource ); - - // Build expected metadata XML - StringWriter expectedMetadataXml = new StringWriter(); - ArchivaRepositoryMetadata m = new ArchivaRepositoryMetadata(); - m.setGroupId( metadata.getGroupId() ); - m.setArtifactId( metadata.getArtifactId() ); - m.setVersion( metadata.getVersion() ); - m.setModelEncoding( null ); - RepositoryMetadataWriter.write( m, expectedMetadataXml ); - - // Compare the file to the actual contents. - assertMetadataEquals( expectedMetadataXml.toString(), actualFile ); - } - - /** - * Test for the non-existance of the requestedResource in the default managed repository. - * - * @param requestedResource the requested resource - * @throws Exception - */ - private void assertResourceNotFound( String requestedResource ) - throws Exception - { - File actualFile = new File( managedDefaultDir, requestedResource ); - assertFalse( "Resource should not exist: " + requestedResource, actualFile.exists() ); - } - - protected void setUp() - throws Exception - { - super.setUp(); - - metadataTools = (MetadataTools) lookup( MetadataTools.class ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/MockConfiguration.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/MockConfiguration.java deleted file mode 100644 index 32d3ee3a6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/MockConfiguration.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ConfigurationListener; -import org.codehaus.plexus.registry.Registry; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.registry.RegistryListener; -import org.easymock.MockControl; - -import java.util.HashSet; -import java.util.Set; - -/** - * MockConfiguration - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.configuration.ArchivaConfiguration" - * role-hint="mock" - */ -public class MockConfiguration - implements ArchivaConfiguration -{ - private Configuration configuration = new Configuration(); - - private Set registryListeners = new HashSet(); - private Set configListeners = new HashSet(); - - private MockControl registryControl; - - private Registry registryMock; - - public MockConfiguration() - { - registryControl = MockControl.createNiceControl( Registry.class ); - registryMock = (Registry) registryControl.getMock(); - } - - public void addChangeListener( RegistryListener listener ) - { - registryListeners.add( listener ); - } - - public Configuration getConfiguration() - { - return configuration; - } - - public void save( Configuration configuration ) - throws RegistryException - { - /* do nothing */ - } - - public void triggerChange( String name, String value ) - { - for(RegistryListener listener: registryListeners) - { - try - { - listener.afterConfigurationChange( registryMock, name, value ); - } - catch ( Exception e ) - { - e.printStackTrace(); - } - } - } - - public void addListener( ConfigurationListener listener ) - { - configListeners.add(listener); - } - - public void removeListener( ConfigurationListener listener ) - { - configListeners.remove( listener ); - } - - public boolean isDefaulted() - { - return false; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/SnapshotTransferTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/SnapshotTransferTest.java deleted file mode 100644 index d610dbab9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/SnapshotTransferTest.java +++ /dev/null @@ -1,314 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; - -import java.io.File; - -/** - * SnapshotTransferTest - * - * @author Brett Porter - * @author Joakim Erdfelt - * @version $Id$ - */ -public class SnapshotTransferTest - extends AbstractProxyTestCase -{ - public void testSnapshotNonExistant() - throws Exception - { - String path = "org/apache/maven/test/does-not-exist/1.0-SNAPSHOT/does-not-exist-1.0-SNAPSHOT.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - expectedFile.delete(); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - assertNotDownloaded( downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testTimestampDrivenSnapshotNotPresentAlready() - throws Exception - { - String path = "org/apache/maven/test/get-timestamped-snapshot/1.0-SNAPSHOT/get-timestamped-snapshot-1.0-SNAPSHOT.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - expectedFile.delete(); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testNewerTimestampDrivenSnapshotOnFirstRepo() - throws Exception - { - String path = "org/apache/maven/test/get-present-timestamped-snapshot/1.0-SNAPSHOT/get-present-timestamped-snapshot-1.0-SNAPSHOT.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertTrue( expectedFile.exists() ); - expectedFile.setLastModified( getPastDate().getTime() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testOlderTimestampDrivenSnapshotOnFirstRepo() - throws Exception - { - String path = "org/apache/maven/test/get-present-timestamped-snapshot/1.0-SNAPSHOT/get-present-timestamped-snapshot-1.0-SNAPSHOT.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - File remoteFile = new File( REPOPATH_PROXIED1, path ); - - setManagedNewerThanRemote( expectedFile, remoteFile ); - - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false ); - - // Attempt to download. - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - // Should not have downloaded as managed is newer than remote. - assertNotDownloaded( downloadedFile ); - assertNoTempFiles( expectedFile ); - } - - /** - * TODO: Has problems with wagon implementation not preserving timestamp. - */ - /* - public void testNewerTimestampDrivenSnapshotOnSecondRepoThanFirstNotPresentAlready() - throws Exception - { - String path = "org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-SNAPSHOT.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = createArtifactReference( "default", path ); - - expectedFile.delete(); - assertFalse( expectedFile.exists() ); - - // Create customized proxy / target repository - File targetProxyDir = saveTargetedRepositoryConfig( ID_PROXIED1_TARGET, REPOPATH_PROXIED1, - REPOPATH_PROXIED1_TARGET, "default" ); - - new File( targetProxyDir, path ).setLastModified( getPastDate().getTime() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1_TARGET, ChecksumPolicy.IGNORED, ReleasesPolicy.IGNORED, - SnapshotsPolicy.IGNORED, CachedFailuresPolicy.IGNORED ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.IGNORED, ReleasesPolicy.IGNORED, - SnapshotsPolicy.IGNORED, CachedFailuresPolicy.IGNORED ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - // Should have downloaded the content from proxy2, as proxy1 has an old (by file.lastModified check) version. - File proxiedFile = new File( REPOPATH_PROXIED2, path ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testOlderTimestampDrivenSnapshotOnSecondRepoThanFirstNotPresentAlready() - throws Exception - { - String path = "org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-SNAPSHOT.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = createArtifactReference( "default", path ); - - expectedFile.delete(); - assertFalse( expectedFile.exists() ); - - // Create customized proxy / target repository - File targetProxyDir = saveTargetedRepositoryConfig( ID_PROXIED2_TARGET, REPOPATH_PROXIED2, - REPOPATH_PROXIED2_TARGET, "default" ); - - new File( targetProxyDir, path ).setLastModified( getPastDate().getTime() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.IGNORED, ReleasesPolicy.IGNORED, - SnapshotsPolicy.IGNORED, CachedFailuresPolicy.IGNORED ); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2_TARGET, ChecksumPolicy.IGNORED, ReleasesPolicy.IGNORED, - SnapshotsPolicy.IGNORED, CachedFailuresPolicy.IGNORED ); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED1_TARGET, path ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } */ - - public void testTimestampDrivenSnapshotNotExpired() - throws Exception - { - String path = "org/apache/maven/test/get-present-timestamped-snapshot/1.0-SNAPSHOT/get-present-timestamped-snapshot-1.0-SNAPSHOT.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertTrue( expectedFile.exists() ); - - File proxiedFile = new File( REPOPATH_PROXIED1, path ); - proxiedFile.setLastModified( getFutureDate().getTime() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testTimestampDrivenSnapshotNotUpdated() - throws Exception - { - String path = "org/apache/maven/test/get-present-timestamped-snapshot/1.0-SNAPSHOT/get-present-timestamped-snapshot-1.0-SNAPSHOT.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - File remoteFile = new File( REPOPATH_PROXIED1, path ); - - setManagedNewerThanRemote( expectedFile, remoteFile ); - long expectedTimestamp = expectedFile.lastModified(); - - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - assertNotDownloaded( downloadedFile ); - assertNotModified( expectedFile, expectedTimestamp ); - assertNoTempFiles( expectedFile ); - } - - public void testTimestampDrivenSnapshotNotPresentAlreadyExpiredCacheFailure() - throws Exception - { - String path = "org/apache/maven/test/get-timestamped-snapshot/1.0-SNAPSHOT/get-timestamped-snapshot-1.0-SNAPSHOT.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - expectedFile.delete(); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES , false); - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS, - SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES , false); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testMetadataDrivenSnapshotNotPresentAlready() - throws Exception - { - String path = "org/apache/maven/test/get-metadata-snapshot/1.0-SNAPSHOT/get-metadata-snapshot-1.0-20050831.101112-1.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - expectedFile.delete(); - assertFalse( expectedFile.exists() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } - - public void testGetMetadataDrivenSnapshotRemoteUpdate() - throws Exception - { - // Metadata driven snapshots (using a full timestamp) are treated like a release. It is the timing of the - // updates to the metadata files that triggers which will be downloaded - - String path = "org/apache/maven/test/get-present-metadata-snapshot/1.0-SNAPSHOT/get-present-metadata-snapshot-1.0-20050831.101112-1.jar"; - setupTestableManagedRepository( path ); - - File expectedFile = new File( managedDefaultDir, path ); - ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path ); - - assertTrue( expectedFile.exists() ); - - expectedFile.setLastModified( getPastDate().getTime() ); - - // Configure Connector (usually done within archiva.xml configuration) - saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false); - - File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact ); - - File proxiedFile = new File( REPOPATH_PROXIED1, path ); - assertFileEquals( expectedFile, downloadedFile, proxiedFile ); - assertNoTempFiles( expectedFile ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonDelegate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonDelegate.java deleted file mode 100644 index 9f2c8d2ff..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonDelegate.java +++ /dev/null @@ -1,244 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.commons.io.FileUtils; -import org.apache.maven.wagon.ConnectionException; -import org.apache.maven.wagon.ResourceDoesNotExistException; -import org.apache.maven.wagon.TransferFailedException; -import org.apache.maven.wagon.Wagon; -import org.apache.maven.wagon.authentication.AuthenticationException; -import org.apache.maven.wagon.authentication.AuthenticationInfo; -import org.apache.maven.wagon.authorization.AuthorizationException; -import org.apache.maven.wagon.events.SessionListener; -import org.apache.maven.wagon.events.TransferListener; -import org.apache.maven.wagon.proxy.ProxyInfo; -import org.apache.maven.wagon.proxy.ProxyInfoProvider; -import org.apache.maven.wagon.repository.Repository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * A dummy wagon implementation - * - * @author Brett Porter - */ -public class WagonDelegate - implements Wagon -{ - private Logger log = LoggerFactory.getLogger( WagonDelegate.class ); - - private Wagon delegate; - - private String contentToGet; - - public void get( String resourceName, File destination ) - throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException - { - log.debug( ".get(" + resourceName + ", " + destination + ")" ); - delegate.get( resourceName, destination ); - create( destination ); - } - - public boolean getIfNewer( String resourceName, File destination, long timestamp ) - throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException - { - log.info( ".getIfNewer(" + resourceName + ", " + destination + ", " + timestamp + ")" ); - - boolean result = delegate.getIfNewer( resourceName, destination, timestamp ); - createIfMissing( destination ); - return result; - } - - public void put( File source, String destination ) - throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException - { - delegate.put( source, destination ); - } - - public void putDirectory( File sourceDirectory, String destinationDirectory ) - throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException - { - delegate.putDirectory( sourceDirectory, destinationDirectory ); - } - - public boolean resourceExists( String resourceName ) - throws TransferFailedException, AuthorizationException - { - return delegate.resourceExists( resourceName ); - } - - public List getFileList( String destinationDirectory ) - throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException - { - return delegate.getFileList( destinationDirectory ); - } - - public boolean supportsDirectoryCopy() - { - return delegate.supportsDirectoryCopy(); - } - - public void setTimeout(int val) - { - // ignore - } - - public int getTimeout() - { - return 0; - } - - public Repository getRepository() - { - return delegate.getRepository(); - } - - public void connect( Repository source ) - throws ConnectionException, AuthenticationException - { - delegate.connect( source ); - } - - public void connect( Repository source, ProxyInfo proxyInfo ) - throws ConnectionException, AuthenticationException - { - delegate.connect( source, proxyInfo ); - } - - public void connect( Repository source, ProxyInfoProvider proxyInfoProvider ) - throws ConnectionException, AuthenticationException - { - delegate.connect( source, proxyInfoProvider ); - } - - public void connect( Repository source, AuthenticationInfo authenticationInfo ) - throws ConnectionException, AuthenticationException - { - delegate.connect( source, authenticationInfo ); - } - - public void connect( Repository source, AuthenticationInfo authenticationInfo, ProxyInfo proxyInfo ) - throws ConnectionException, AuthenticationException - { - delegate.connect( source, authenticationInfo, proxyInfo ); - } - - public void connect( Repository source, AuthenticationInfo authenticationInfo, ProxyInfoProvider proxyInfoProvider ) - throws ConnectionException, AuthenticationException - { - delegate.connect( source, authenticationInfo, proxyInfoProvider ); - } - - public void openConnection() - throws ConnectionException, AuthenticationException - { - delegate.openConnection(); - } - - public void disconnect() - throws ConnectionException - { - delegate.disconnect(); - } - - public void addSessionListener( SessionListener listener ) - { - delegate.addSessionListener( listener ); - } - - public void removeSessionListener( SessionListener listener ) - { - delegate.removeSessionListener( listener ); - } - - public boolean hasSessionListener( SessionListener listener ) - { - return delegate.hasSessionListener( listener ); - } - - public void addTransferListener( TransferListener listener ) - { - delegate.addTransferListener( listener ); - } - - public void removeTransferListener( TransferListener listener ) - { - delegate.removeTransferListener( listener ); - } - - public boolean hasTransferListener( TransferListener listener ) - { - return delegate.hasTransferListener( listener ); - } - - public boolean isInteractive() - { - return delegate.isInteractive(); - } - - public void setInteractive( boolean interactive ) - { - delegate.setInteractive( interactive ); - } - - public void setDelegate( Wagon delegate ) - { - this.delegate = delegate; - } - - void setContentToGet( String content ) - { - contentToGet = content; - } - - private void createIfMissing( File destination ) - { - // since the mock won't actually copy a file, create an empty one to simulate file existence - if ( !destination.exists() ) - { - create( destination ); - } - } - - private void create( File destination ) - { - try - { - destination.getParentFile().mkdirs(); - if ( contentToGet == null ) - { - destination.createNewFile(); - } - else - { - FileUtils.writeStringToFile( new File( destination.getAbsolutePath() ), contentToGet, null ); - } - } - catch ( IOException e ) - { - throw new RuntimeException( e.getMessage(), e ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonFactoryTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonFactoryTest.java deleted file mode 100644 index 3e31f9ae7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonFactoryTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.apache.maven.archiva.proxy; - -/* - * 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.wagon.Wagon; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * Test the WagonFactory works through Spring to be bound into the RepositoryProxyConnectors implementation. - * - * @author Brett Porter - */ -public class WagonFactoryTest - extends PlexusInSpringTestCase -{ - public void testLookupSuccessiveWagons() - { - WagonFactory factory = (WagonFactory) lookup( WagonFactory.class ); - - Wagon first = factory.getWagon( "wagon#file" ); - - Wagon second = factory.getWagon( "wagon#file" ); - - assertNotSame( first, second ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/create-managed-to-proxy-map.sh b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/create-managed-to-proxy-map.sh deleted file mode 100755 index ffaaa584b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/create-managed-to-proxy-map.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash - - -MYWD=`pwd` - -function makeListing() -{ - LISTID=$1 - - cd $MYWD/$LISTID - find . -type f -not -wholename "*/\.*" | sort > $MYWD/$LISTID.tmp -} - -function isInRepo() -{ - LISTID=$1 - FILEID=$2 - - grep -q "$FILEID" $MYWD/$LISTID.tmp - RETCODE=$? - if [ $RETCODE -eq 0 ] ; then - LISTID=${LISTID/proxied/} - echo "[${LISTID:0:1}]" - else - echo " " - fi -} - -makeListing "managed" -makeListing "proxied1" -makeListing "proxied2" - -cd $MYWD - -TS=`date` - -echo "$0 - executed on $TS" -echo "" -echo "Determining location of files." -echo " Key: [m] == managed" -echo " [1] == proxy 1 (proxied1)" -echo " [2] == proxy 2 (proxied2)" -echo "" -echo " -m- -1- -2- | -------------------------------------------- " - -FILELIST=`cat managed.tmp proxied1.tmp proxied2.tmp | sort -u` - -for FF in $FILELIST -do - INMANAGED=`isInRepo "managed" "$FF"` - INPROXY1=`isInRepo "proxied1" "$FF"` - INPROXY2=`isInRepo "proxied2" "$FF"` - - echo " $INMANAGED $INPROXY1 $INPROXY2 | $FF" -done - -echo " --- --- --- | -------------------------------------------- " - -rm -f managed.tmp proxied1.tmp proxied2.tmp - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-managed/org.apache.maven.test/jars/get-default-layout-present-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-managed/org.apache.maven.test/jars/get-default-layout-present-1.0.jar deleted file mode 100644 index bf26f6b573351442c1a618b21e6d0d2a159a5b83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47 zcmYdKEzwO$O-n4zDbdYItjsSh(Jd%SEl$lV(KXaF(923J;^orFP0UM7PfgL} - - - 4.0.0 - org.apache.maven.test - get-relocated-artefact - 1.0 - - - - get-default-layout-present - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-proxied/org.apache.maven.test/jars/example-lib-2.2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-proxied/org.apache.maven.test/jars/example-lib-2.2.jar deleted file mode 100644 index 059fd2a70e855c426ef77cbe658b4d2255370884..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41 wcmdN$tw_u*$VpYmN-R=H%P-AKQOM8BsZ_|!Q^-k8PfV^F069huu>b%7 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-proxied/org.apache.maven.test/jars/get-default-layout-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-proxied/org.apache.maven.test/jars/get-default-layout-1.0.jar deleted file mode 100644 index 77dbb7858944e4bd736cc3917acb881bb9881069..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27 icmYdKEzwO$O-n4zDbdYItjsSh(KXaF(923J;sOAR)d^1k diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-proxied/org.apache.maven.test/jars/get-default-layout-present-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/legacy-proxied/org.apache.maven.test/jars/get-default-layout-present-1.0.jar deleted file mode 100644 index 9f4121a8661f71a491bd4b43d94bac225f182c20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47 zcmYdKEzwO$O-n4zDbdYItjsSh(Jd%SEl$lV(KXaF(923J;^opPD9W$MOij_`KW60AaBW A*8l(j diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar.md5 deleted file mode 100644 index 5fd0ae2b7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -invalid checksum file \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar.sha1 deleted file mode 100644 index 5fd0ae2b7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -invalid checksum file \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-checksum-from-managed-repo/1.0/get-checksum-from-managed-repo-1.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-checksum-from-managed-repo/1.0/get-checksum-from-managed-repo-1.0.jar.sha1 deleted file mode 100644 index de9618d2f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-checksum-from-managed-repo/1.0/get-checksum-from-managed-repo-1.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -066d76e459f7782c312c31e8a11b3c0f1e3e43a7 *get-checksum-from-managed-repo-1.0.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present-with-pom/1.0/get-default-layout-present-with-pom-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present-with-pom/1.0/get-default-layout-present-with-pom-1.0.jar deleted file mode 100644 index a3b38382c4daaa105d25fd4eb2d2b665f35abb6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46 zcmYdKEzwO$O-n4zDbdYItjsSh(Jd%SEl$lV(KXaF(923J;?l@X%u7s9P0{4y0sxLb B53c|K diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present-with-pom/1.0/get-default-layout-present-with-pom-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present-with-pom/1.0/get-default-layout-present-with-pom-1.0.pom deleted file mode 100644 index b2f94e307..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present-with-pom/1.0/get-default-layout-present-with-pom-1.0.pom +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.apache.maven.test - get-default-layout-present-with-pom - 1.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar deleted file mode 100644 index a3b38382c4daaa105d25fd4eb2d2b665f35abb6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46 zcmYdKEzwO$O-n4zDbdYItjsSh(Jd%SEl$lV(KXaF(923J;?l@X%u7s9P0{4y0sxLb B53c|K diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar.asc b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar.asc deleted file mode 100644 index c3f4c234e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar.asc +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.8 (Darwin) - -iEYEABECAAYFAkiAQxIACgkQTusOMqfRa9T2xACfcvI2fjAXoAHGwJm0zXPJ2rWW -OPoAn23dSOEJhyNUY2hgUlH2wSQiADeP -=ZOwh ------END PGP SIGNATURE----- diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar.md5 deleted file mode 100644 index b597d8ce4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -7dfb7ade9a8fa90bfbfac52d3090b8c2 *get-default-layout-present-1.0.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-metadata/1.0/get-default-metadata-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-metadata/1.0/get-default-metadata-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-metadata/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-metadata/1.0/maven-metadata.xml deleted file mode 100644 index 7f90f2a39..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-default-metadata/1.0/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.apache.maven.test - get-default-metadata - 1.0 - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-doubly-relocated-artefact/1.0/get-doubly-relocated-artefact-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-doubly-relocated-artefact/1.0/get-doubly-relocated-artefact-1.0.pom deleted file mode 100644 index f8c149eb6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-doubly-relocated-artefact/1.0/get-doubly-relocated-artefact-1.0.pom +++ /dev/null @@ -1,32 +0,0 @@ - - - - 4.0.0 - org.apache.maven.test - get-doubly-relocated-artefact - 1.0 - - - - get-relocated-artefact - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-merged-metadata/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-merged-metadata/maven-metadata.xml deleted file mode 100644 index 00af1a181..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-merged-metadata/maven-metadata.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - org.apache.maven.test - get-merged-metadata - - - 0.9 - - 1.0 - - 2.0 - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-not-on-remotes/1.0-beta-2/get-not-on-remotes-1.0-beta-2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-not-on-remotes/1.0-beta-2/get-not-on-remotes-1.0-beta-2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-not-on-remotes/1.0-beta-2/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-not-on-remotes/1.0-beta-2/maven-metadata.xml deleted file mode 100644 index 965b836c0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-not-on-remotes/1.0-beta-2/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.apache.maven.test - get-not-on-remotes - 1.0-beta-2 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-not-on-remotes/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-not-on-remotes/maven-metadata.xml deleted file mode 100644 index 4eef73fd4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-not-on-remotes/maven-metadata.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - org.apache.maven.test - get-not-on-remotes - - - 1.0-beta-2 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/1.0.22/get-on-local-on-remote-1.0.22.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/1.0.22/get-on-local-on-remote-1.0.22.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/1.0.22/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/1.0.22/maven-metadata.xml deleted file mode 100644 index 6fece769d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/1.0.22/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.apache.maven.test - get-on-local-on-remote - 1.0.22 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/1.0.8/get-on-local-on-remote-1.0.8.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/1.0.8/get-on-local-on-remote-1.0.8.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/maven-metadata.xml deleted file mode 100644 index 9ae11e4d7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-local-on-remote/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - org.apache.maven.test - get-on-local-on-remote - - - 1.0.8 - 1.0.22 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-multiple-repos/1.0/get-on-multiple-repos-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-multiple-repos/1.0/get-on-multiple-repos-1.0.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml deleted file mode 100644 index 6bfd5dd9a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.apache.maven.test - get-on-multiple-repos - 1.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml deleted file mode 100644 index 04b49855d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - org.apache.maven.test - get-on-multiple-repos - - - 1.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-present-metadata-snapshot/1.0-SNAPSHOT/get-present-metadata-snapshot-1.0-20050831.101112-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-present-metadata-snapshot/1.0-SNAPSHOT/get-present-metadata-snapshot-1.0-20050831.101112-1.jar deleted file mode 100644 index b71eb7b742dc7201900918189597419419891568..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66 zcmWN_K?;B{3 - - - org.apache.maven.test - get-present-metadata-snapshot - 1.0-SNAPSHOT - - - 20050831.101112 - 1 - - 20050831101112 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-present-timestamped-snapshot/1.0-SNAPSHOT/get-present-timestamped-snapshot-1.0-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-present-timestamped-snapshot/1.0-SNAPSHOT/get-present-timestamped-snapshot-1.0-SNAPSHOT.jar deleted file mode 100644 index 0c2d93e3c84ba4684ac42b96bd995aec9d11578f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 zcmYdKEzvC~N-a*!E72{<%uOvWNz5%sP0=mRODrhP$S=_~)HBcx_Hzsf_V5qU%StTb P< - - - org.apache.maven.test - get-project-metadata - - - 1.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-release-metadata/2.2/get-release-metadata-2.2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-release-metadata/2.2/get-release-metadata-2.2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-release-metadata/2.2/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-release-metadata/2.2/maven-metadata.xml deleted file mode 100644 index 8fc2a153f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-release-metadata/2.2/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.apache.maven.test - get-release-metadata - 2.2 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-relocated-artefact-with-pom/1.0/get-relocated-artefact-with-pom-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-relocated-artefact-with-pom/1.0/get-relocated-artefact-with-pom-1.0.pom deleted file mode 100644 index 384f369f5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-relocated-artefact-with-pom/1.0/get-relocated-artefact-with-pom-1.0.pom +++ /dev/null @@ -1,32 +0,0 @@ - - - - 4.0.0 - org.apache.maven.test - get-relocated-artefact-with-pom - 1.0 - - - - get-default-layout-present-with-pom - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-relocated-artefact/1.0/get-relocated-artefact-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-relocated-artefact/1.0/get-relocated-artefact-1.0.pom deleted file mode 100644 index ae50586ec..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-relocated-artefact/1.0/get-relocated-artefact-1.0.pom +++ /dev/null @@ -1,32 +0,0 @@ - - - - 4.0.0 - org.apache.maven.test - get-relocated-artefact - 1.0 - - - - get-default-layout-present - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-removed-from-proxies/1.0/get-removed-from-proxies-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-removed-from-proxies/1.0/get-removed-from-proxies-1.0.jar deleted file mode 100644 index 54dc5ee86b73129d9074cd0ba8d6e676553e268d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44 zcmYdKEzvDX&CM@MP0>v&%Fop;D9W$MOfA+m)HBe_N-W~i$W6>kOixYG - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/get-snapshot-on-local-not-remote-2.0-alpha-2-20070821.123456-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/get-snapshot-on-local-not-remote-2.0-alpha-2-20070821.123456-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/get-snapshot-on-local-not-remote-2.0-alpha-2-20070821.220304-2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/get-snapshot-on-local-not-remote-2.0-alpha-2-20070821.220304-2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 55e1f3039..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-on-local-not-remote/2.0-alpha-2-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - org.apache.maven.test - get-snapshot-on-local-not-remote - 2.0-alpha-2-SNAPSHOT - - - 20070821.220304 - 2 - - 20070821220304 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070821.102030-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070821.102030-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070821.185701-2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070821.185701-2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070822.021008-3.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070822.021008-3.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 55e253e89..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - org.apache.maven.test - get-snapshot-popular - 2.0-SNAPSHOT - - - 20070822.021008 - 3 - - 20070822021008 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/.metadata-proxied1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/.metadata-proxied1 deleted file mode 100644 index 76b43d62a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/.metadata-proxied1 +++ /dev/null @@ -1,25 +0,0 @@ - - - - org.apache.maven.test - get-updated-metadata - - - 1.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/.metadata-proxied1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/.metadata-proxied1 deleted file mode 100644 index 6354f21bc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/.metadata-proxied1 +++ /dev/null @@ -1,27 +0,0 @@ - - - - org.apache.maven.test - get-updated-metadata - 1.0-SNAPSHOT - - - 20050831.1011112 - 1 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index e9830b0fb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - org.apache.maven.test - get-updated-metadata - 1.0-SNAPSHOT - - - 20050831.1011112 - 1 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/maven-metadata.xml deleted file mode 100644 index 242873e10..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/get-updated-metadata/maven-metadata.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - org.apache.maven.test - get-updated-metadata - - - 1.0 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-not-on-remotes/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-not-on-remotes/maven-metadata.xml deleted file mode 100644 index 6053adcf4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-not-on-remotes/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - org.apache.maven.test.groups.get-not-on-remotes - - - plugin5 - plugin5-maven-plugin - The plugin5 Plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-on-local-on-remote/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-on-local-on-remote/maven-metadata.xml deleted file mode 100644 index 14196bdc1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-on-local-on-remote/maven-metadata.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - org.apache.maven.test.groups.get-on-local-on-remote - - - plugin6 - plugin6-maven-plugin - The plugin6 Plugin - - - plugin7 - plugin7-maven-plugin - The plugin7 Plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml deleted file mode 100644 index a04428913..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - org.apache.maven.test.groups.get-on-multiple-repos - - - plugin1 - plugin1-maven-plugin - The plugin1 Plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-project-metadata/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-project-metadata/maven-metadata.xml deleted file mode 100644 index e0829c112..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/managed/org/apache/maven/test/groups/get-project-metadata/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - org.apache.maven.test.groups.get-project-metadata - - - plugin1 - plugin1-maven-plugin - The plugin1 Plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar deleted file mode 100644 index b5d8045c9d04419cf9f68632d6120f42d2cf381a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47 zcmYdKEzwO%OwrBBPfpCyP0mP7&Mq#^)iu;J(923J;^opPD9W$MOifWR)a2#j#O-fABHPkcE%StTb<>KW60LWJgL;wH) diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar.md5 deleted file mode 100644 index 5fd0ae2b7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -invalid checksum file \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar.sha1 deleted file mode 100644 index a2d3f29ea..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -invalid checksum file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar deleted file mode 100644 index 7fa9ec4a0e37df8062f62bcf28a7d044566a8828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33 ocmYdKEzwQRNKMWzF3r_V$}h>#Ey_&KDA6_4GtkRQEaK$?0M8l=Bme*a diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar.md5 deleted file mode 100644 index 9b9e3374c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -e58f30c6a150a2e843552438d18e15cb *get-checksum-both-right-1.0.jar \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar.sha1 deleted file mode 100644 index cdd9a336b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -066d76e459f7782c312c31e8a11b3c0f1e3e43a7 *get-checksum-both-right-1.0.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-from-managed-repo/1.0/get-checksum-from-managed-repo-1.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-from-managed-repo/1.0/get-checksum-from-managed-repo-1.0.jar.sha1 deleted file mode 100644 index 8fc645ca3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-from-managed-repo/1.0/get-checksum-from-managed-repo-1.0.jar.sha1 +++ /dev/null @@ -1,2 +0,0 @@ -066d76e459f7782c312c31e8a11b3c0f1e3e43a7 *get-checksum-from-managed-repo-1.0.jar -(proxied 1) diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-bad-sha1/1.0/get-checksum-md5-bad-sha1-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-bad-sha1/1.0/get-checksum-md5-bad-sha1-1.0.jar deleted file mode 100644 index 68e3480fcbf94f64cc7c7d7edb5d9186ab16ee96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37 scmYdKEzwQRNKMWzF3r`=O)=F?N=(r$&PX)WHPkcE%StTb<>KW60P~OwHvj+t diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-bad-sha1/1.0/get-checksum-md5-bad-sha1-1.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-bad-sha1/1.0/get-checksum-md5-bad-sha1-1.0.jar.md5 deleted file mode 100644 index d785caa7f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-bad-sha1/1.0/get-checksum-md5-bad-sha1-1.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -8a02aa67549d27b2a03cd4547439c6d3 *get-checksum-md5-bad-sha1-1.0.jar \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-bad-sha1/1.0/get-checksum-md5-bad-sha1-1.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-bad-sha1/1.0/get-checksum-md5-bad-sha1-1.0.jar.sha1 deleted file mode 100644 index a2d3f29ea..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-bad-sha1/1.0/get-checksum-md5-bad-sha1-1.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -invalid checksum file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar deleted file mode 100644 index 915323d0e517a123f0d0364e0109669126852b3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31 mcmYdKEzwQRNKMWzF3r`=O)=HY&&#RQHPkcE%StTb;sOA&910!) diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar.md5 deleted file mode 100644 index f5ecac3db..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -f3af5201bf8da801da37db8842846e1c *get-checksum-md5-only-1.0.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar deleted file mode 100644 index f02c918433f91a04ab9b3817b1a7d23801e73027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35 qcmYdKEzwQRNKMWzF3r^~&PX)WO-fAB%}p`YHPkcE%StTb;sOBO*9#p0 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar.md5 deleted file mode 100644 index a2d3f29ea..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -invalid checksum file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar.sha1 deleted file mode 100644 index 425623525..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -3dd1a3a57b807d3ef3fbc6013d926c891cbb8670 *get-checksum-sha1-bad-md5-1.0.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar deleted file mode 100644 index efd9ed0159c020d98574ede4e7c756b61b5ac568..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32 ncmYdKEzwQRNKMWzF3r^~&PX)W&CkoJ)HT#I(923J;^G1TzQziL diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar.sha1 deleted file mode 100644 index e64dccfd8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -748a3a013bf5eacf2bbb40a2ac7d37889b728837 *get-checksum-sha1-only-1.0.jar diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar deleted file mode 100644 index 15fd36d5d909209df5411ff037a607f9d41748a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48 zcmYdKEzwO$O-n4zDbdYItjsSh(Jd%SEl$lV(KXaF(923J;?gK6%CE>wO;Iq^ - - - org.apache.maven.test - get-default-layout - 1.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-layout/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-layout/maven-metadata.xml deleted file mode 100644 index 65d343154..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-layout/maven-metadata.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - org.apache.maven.test - get-default-layout - - - 1.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-metadata/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-metadata/1.0/maven-metadata.xml deleted file mode 100644 index f53003c56..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-default-metadata/1.0/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.apache.maven.test - get-default-metadata - 1.0 - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-found-in-proxy/1.0.5/get-found-in-proxy-1.0.5-javadoc.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-found-in-proxy/1.0.5/get-found-in-proxy-1.0.5-javadoc.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-found-in-proxy/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-found-in-proxy/maven-metadata.xml deleted file mode 100644 index 10e06230c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-found-in-proxy/maven-metadata.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - org.apache.maven.test - get-found-in-proxy - - - 1.0.5 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-in-both-proxies/1.0/get-in-both-proxies-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-in-both-proxies/1.0/get-in-both-proxies-1.0.jar deleted file mode 100644 index 3cc35fa29d6be243e58dd6272420930c1519bb17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41 scmYdKEz!-)(@n}R$wE!H*EGtkRQEaK9D2&5<&YI1P_04^vEH~;_u diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-merged-metadata/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-merged-metadata/maven-metadata.xml deleted file mode 100644 index 6f9ac0f52..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-merged-metadata/maven-metadata.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - org.apache.maven.test - get-merged-metadata - - - 2.0 - - 3.0 - - 5.0 - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-metadata-snapshot/1.0-SNAPSHOT/get-metadata-snapshot-1.0-20050831.101112-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-metadata-snapshot/1.0-SNAPSHOT/get-metadata-snapshot-1.0-20050831.101112-1.jar deleted file mode 100644 index 139c17b979cba04a76762853732127a6efebd700..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38 tcmYdKEz!+QElEsCEJ@TY&PyyP&d4v(HPkcE4fb;k2=?#~(aTCK0ssrm4G;hT diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-metadata-snapshot/1.0-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-metadata-snapshot/1.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 7ac63f44a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-metadata-snapshot/1.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - org.apache.maven.test - get-metadata-snapshot - 1.0-SNAPSHOT - - - 20050831.101112 - 1 - - 20050831101112 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-local-on-remote/1.0.22/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-local-on-remote/1.0.22/maven-metadata.xml deleted file mode 100644 index 6fece769d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-local-on-remote/1.0.22/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.apache.maven.test - get-on-local-on-remote - 1.0.22 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-local-on-remote/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-local-on-remote/maven-metadata.xml deleted file mode 100644 index 583a5e1cf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-local-on-remote/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - org.apache.maven.test - get-on-local-on-remote - - - 1.0.22 - 2.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml deleted file mode 100644 index 6bfd5dd9a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.apache.maven.test - get-on-multiple-repos - 1.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml deleted file mode 100644 index 0f4e941e8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - org.apache.maven.test - get-on-multiple-repos - - - 1.0 - 2.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-present-metadata-snapshot/1.0-SNAPSHOT/get-present-metadata-snapshot-1.0-20050831.101112-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-present-metadata-snapshot/1.0-SNAPSHOT/get-present-metadata-snapshot-1.0-20050831.101112-1.jar deleted file mode 100644 index 8bbffa00f3a6f67bb66e76348ec53c76a4a4c403..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmYdKEzvC~N-a*!E78qOElEsCEJ@TY&PyyP&d4v(HPkcEH8L - - - org.apache.maven.test - get-present-metadata-snapshot - 1.0-SNAPSHOT - - - 20050831.101112 - 1 - - 20050831101112 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-present-timestamped-snapshot/1.0-SNAPSHOT/get-present-timestamped-snapshot-1.0-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-present-timestamped-snapshot/1.0-SNAPSHOT/get-present-timestamped-snapshot-1.0-SNAPSHOT.jar deleted file mode 100644 index 0bf17841392bb08672196b08f04d4cf4b8d58329..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62 zcmYdKEzvC~N-a*!E72{<%uOvWNz5%sP0=mRODrhP$S=_~)HBcx_Hzsf_V5qU%StTb R<wO;Iq^1OU#w6;1#E diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070819.040004-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070819.040004-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070822.145534-9.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070822.145534-9.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index c2c6983a9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - org.apache.maven.test - get-snapshot-popular - 2.0-SNAPSHOT - - - 20070822.145534 - 9 - - 20070822145534 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20061222.034118-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20061222.034118-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20061227.112101-2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20061227.112101-2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-SNAPSHOT.jar deleted file mode 100644 index dfacfaa155cdedeee64679e6113f8c58c6689b44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62 zcmYdKEzvE>%uOvWNz5%sP0=mRODrhP$S={&%+pQEFUim~)HBcx_Hzsf_V5qU%StTb R<wO;Iq^1OUWG6#f7J diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 55b9bd28a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - org.apache.maven.test - get-timestamped-snapshot-in-both - 1.0-SNAPSHOT - - - 20061227.112101 - 2 - - 20061227112101 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot/1.0-SNAPSHOT/get-timestamped-snapshot-1.0-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-timestamped-snapshot/1.0-SNAPSHOT/get-timestamped-snapshot-1.0-SNAPSHOT.jar deleted file mode 100644 index af86df92ffb5a33270bce6f2111048164170ca33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41 wcmYdKEzvE>%uOvWNz5%sP0=mRODrhP$S=_~)HBcx_Hzsf_V5qU%StQ)06?-1YybcN diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 5005e6c0e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-updated-metadata/1.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - org.apache.maven.test - get-updated-metadata - 1.0-SNAPSHOT - - - 20050831.111213 - 2 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-updated-metadata/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-updated-metadata/maven-metadata.xml deleted file mode 100644 index 085576ddb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/get-updated-metadata/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - org.apache.maven.test - get-updated-metadata - - - 1.0 - 2.0 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-default-layout/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-default-layout/maven-metadata.xml deleted file mode 100644 index 9f6bf9239..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-default-layout/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - org.apache.maven.test.groups.get-default-layout - - - plugin1 - plugin1-maven-plugin - The plugin1 Plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-found-in-proxy/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-found-in-proxy/maven-metadata.xml deleted file mode 100644 index 90102867a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-found-in-proxy/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - org.apache.maven.test.groups.get-found-in-proxy - - - plugin3 - plugin3-maven-plugin - The plugin3 Plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-on-local-on-remote/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-on-local-on-remote/maven-metadata.xml deleted file mode 100644 index 23f12bbf1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-on-local-on-remote/maven-metadata.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - org.apache.maven.test.groups.get-on-local-on-remote - - - plugin7 - plugin7-maven-plugin - The plugin7 Plugin - - - plugin4 - plugin4-maven-plugin - The plugin4 Plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml deleted file mode 100644 index 3abe069e7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied1/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - org.apache.maven.test.groups.get-on-multiple-repos - - - plugin1 - plugin1-maven-plugin - The plugin1 Plugin - - - plugin4 - plugin4-maven-plugin - The plugin4 Plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/1.0.1/get-default-layout-1.0.1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/1.0.1/get-default-layout-1.0.1.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar deleted file mode 100644 index a129891a7e1c401b0d5d5c5f68075641fcad33b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28 jcmYdKEzwO$O-n4zDbdYItjsSh(KXaF(923J;^G1Tl`aWc diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/1.0/maven-metadata.xml deleted file mode 100644 index 22dc39c2d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/1.0/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.apache.maven.test - get-default-layout - 1.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/maven-metadata.xml deleted file mode 100644 index 2d76cccb2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-default-layout/maven-metadata.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - org.apache.maven.test - get-default-layout - - - 1.0.1 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-in-both-proxies/1.0/get-in-both-proxies-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-in-both-proxies/1.0/get-in-both-proxies-1.0.jar deleted file mode 100644 index e46d60ac38de52c3623bae539bae0370e2b0e3a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41 scmYdKEz!-)(@n}R$wE!H*EGtkRQEaK9D2&5<&X>xG^04^*IIRF3v diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar deleted file mode 100644 index 3460f656dcdec1e204df732d398ef24e220d600a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29 kcmYdKEz!-)(=AR-&d*EHEhx&bsMIyoGtkRQEaKt<0G%xfm;e9( diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-merged-metadata/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-merged-metadata/maven-metadata.xml deleted file mode 100644 index a8d714f84..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-merged-metadata/maven-metadata.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - org.apache.maven.test - get-merged-metadata - - - 1.0 - - 3.0 - - 4.0 - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml deleted file mode 100644 index 6bfd5dd9a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-on-multiple-repos/1.0/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - org.apache.maven.test - get-on-multiple-repos - 1.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml deleted file mode 100644 index db3a24f18..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-on-multiple-repos/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - org.apache.maven.test - get-on-multiple-repos - - - 1.0 - 1.0.1 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070821.102030-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070821.102030-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070823.111741-5.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070823.111741-5.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070823.212711-6.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/get-snapshot-popular-2.0-20070823.212711-6.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 6b4f5894b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-snapshot-popular/2.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - org.apache.maven.test - get-snapshot-popular - 2.0-SNAPSHOT - - - 20070823.212711 - 6 - - 20070823212711 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20061222.034118-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20061222.034118-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20070101.000103-2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-20070101.000103-2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/get-timestamped-snapshot-in-both-1.0-SNAPSHOT.jar deleted file mode 100644 index 915b2b22c858062b554044b0a279a2bc8c154746..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62 zcmYdKEzvE>%uOvWNz5%sP0=mRODrhP$S={&%+pQEFUim~)HBcx_Hzsf_V5qU%StTb R<wO;Iq?1OUWI6#oDK diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 78fbecc59..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/get-timestamped-snapshot-in-both/1.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - org.apache.maven.test - get-timestamped-snapshot-in-both - 1.0-SNAPSHOT - - - 20070101.000103 - 2 - - 20070101000103 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/groups/get-default-layout/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/groups/get-default-layout/maven-metadata.xml deleted file mode 100644 index 41109859e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/groups/get-default-layout/maven-metadata.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - org.apache.maven.test.groups.get-default-layout - - - plugin2 - plugin2-maven-plugin - The plugin2 Plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml deleted file mode 100644 index b7db006fe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/repositories/proxied2/org/apache/maven/test/groups/get-on-multiple-repos/maven-metadata.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - org.apache.maven.test.groups.get-on-multiple-repos - - - plugin1 - plugin1-maven-plugin - The plugin1 Plugin - - - plugin2 - plugin2-maven-plugin - The plugin2 Plugin - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/log4j.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/log4j.xml deleted file mode 100644 index 901c99f33..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/log4j.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml deleted file mode 100644 index 7ad475f57..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - org.apache.maven.wagon.Wagon - test - org.apache.maven.archiva.proxy.WagonDelegate - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.proxy.MockConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - - - org.apache.maven.archiva.proxy.RepositoryProxyConnectors - default - org.apache.maven.archiva.proxy.DefaultRepositoryProxyConnectors - DefaultRepositoryProxyConnectors - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - org.apache.maven.archiva.proxy.WagonFactory - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - repositoryFactory - - - org.apache.maven.archiva.repository.metadata.MetadataTools - metadataTools - - - org.apache.maven.archiva.policies.PreDownloadPolicy - preDownloadPolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postDownloadPolicies - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - consumers - - - org.apache.maven.archiva.policies.urlcache.UrlFailureCache - urlFailureCache - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml deleted file mode 100644 index e9dfa4cc6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - org.apache.maven.wagon.Wagon - test - org.apache.maven.archiva.proxy.WagonDelegate - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.proxy.MockConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - - - org.apache.maven.archiva.proxy.RepositoryProxyConnectors - default - org.apache.maven.archiva.proxy.DefaultRepositoryProxyConnectors - DefaultRepositoryProxyConnectors - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - org.apache.maven.archiva.proxy.WagonFactory - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - - - org.apache.maven.archiva.repository.metadata.MetadataTools - - - org.apache.maven.archiva.policies.PreDownloadPolicy - preDownloadPolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postDownloadPolicies - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - consumers - - - org.apache.maven.archiva.policies.urlcache.UrlFailureCache - urlFailureCache - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ErrorHandlingTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ErrorHandlingTest.xml deleted file mode 100644 index fad392c50..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ErrorHandlingTest.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - org.apache.maven.wagon.Wagon - test - org.apache.maven.archiva.proxy.WagonDelegate - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.proxy.MockConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - - - org.apache.maven.archiva.proxy.RepositoryProxyConnectors - default - org.apache.maven.archiva.proxy.DefaultRepositoryProxyConnectors - DefaultRepositoryProxyConnectors - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - org.apache.maven.archiva.proxy.WagonFactory - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - - - org.apache.maven.archiva.repository.metadata.MetadataTools - - - org.apache.maven.archiva.policies.PreDownloadPolicy - preDownloadPolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postDownloadPolicies - - - org.apache.maven.archiva.policies.DownloadErrorPolicy - downloadErrorPolicies - - - org.apache.maven.archiva.policies.urlcache.UrlFailureCache - default - urlFailureCache - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - consumers - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/HttpProxyTransferTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/HttpProxyTransferTest.xml deleted file mode 100644 index bc10178b5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/HttpProxyTransferTest.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.proxy.MockConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - - - org.apache.maven.archiva.proxy.RepositoryProxyConnectors - default - org.apache.maven.archiva.proxy.DefaultRepositoryProxyConnectors - DefaultRepositoryProxyConnectors - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - - - org.apache.maven.archiva.repository.metadata.MetadataTools - - - org.apache.maven.archiva.policies.PreDownloadPolicy - preDownloadPolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postDownloadPolicies - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - consumers - - - org.apache.maven.archiva.policies.urlcache.UrlFailureCache - urlFailureCache - - - org.apache.maven.archiva.proxy.WagonFactory - default - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml deleted file mode 100644 index e9dfa4cc6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - org.apache.maven.wagon.Wagon - test - org.apache.maven.archiva.proxy.WagonDelegate - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.proxy.MockConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - - - org.apache.maven.archiva.proxy.RepositoryProxyConnectors - default - org.apache.maven.archiva.proxy.DefaultRepositoryProxyConnectors - DefaultRepositoryProxyConnectors - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - org.apache.maven.archiva.proxy.WagonFactory - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - - - org.apache.maven.archiva.repository.metadata.MetadataTools - - - org.apache.maven.archiva.policies.PreDownloadPolicy - preDownloadPolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postDownloadPolicies - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - consumers - - - org.apache.maven.archiva.policies.urlcache.UrlFailureCache - urlFailureCache - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml deleted file mode 100644 index e9dfa4cc6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - org.apache.maven.wagon.Wagon - test - org.apache.maven.archiva.proxy.WagonDelegate - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.proxy.MockConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - - - org.apache.maven.archiva.proxy.RepositoryProxyConnectors - default - org.apache.maven.archiva.proxy.DefaultRepositoryProxyConnectors - DefaultRepositoryProxyConnectors - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - org.apache.maven.archiva.proxy.WagonFactory - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - - - org.apache.maven.archiva.repository.metadata.MetadataTools - - - org.apache.maven.archiva.policies.PreDownloadPolicy - preDownloadPolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postDownloadPolicies - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - consumers - - - org.apache.maven.archiva.policies.urlcache.UrlFailureCache - urlFailureCache - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml deleted file mode 100644 index fe348d3f7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - org.apache.maven.wagon.Wagon - test - org.apache.maven.archiva.proxy.WagonDelegate - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.proxy.MockConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - - - - - org.apache.maven.archiva.repository.metadata.MetadataTools - org.apache.maven.archiva.repository.metadata.MetadataTools - MetadataTools - - - org.apache.maven.archiva.configuration.FileTypes - filetypes - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - configuration - - - - - - org.apache.maven.archiva.proxy.RepositoryProxyConnectors - default - org.apache.maven.archiva.proxy.DefaultRepositoryProxyConnectors - DefaultRepositoryProxyConnectors - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - org.apache.maven.archiva.proxy.WagonFactory - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - - - org.apache.maven.archiva.repository.metadata.MetadataTools - - - org.apache.maven.archiva.policies.PreDownloadPolicy - preDownloadPolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postDownloadPolicies - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - consumers - - - org.apache.maven.archiva.policies.urlcache.UrlFailureCache - urlFailureCache - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml deleted file mode 100644 index e9dfa4cc6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - org.apache.maven.wagon.Wagon - test - org.apache.maven.archiva.proxy.WagonDelegate - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.proxy.MockConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - - - org.apache.maven.archiva.proxy.RepositoryProxyConnectors - default - org.apache.maven.archiva.proxy.DefaultRepositoryProxyConnectors - DefaultRepositoryProxyConnectors - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - org.apache.maven.archiva.proxy.WagonFactory - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - - - org.apache.maven.archiva.repository.metadata.MetadataTools - - - org.apache.maven.archiva.policies.PreDownloadPolicy - preDownloadPolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postDownloadPolicies - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - consumers - - - org.apache.maven.archiva.policies.urlcache.UrlFailureCache - urlFailureCache - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml deleted file mode 100644 index e9dfa4cc6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - org.apache.maven.wagon.Wagon - test - org.apache.maven.archiva.proxy.WagonDelegate - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.proxy.MockConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - org.apache.maven.archiva.repository.RepositoryContentFactory - RepositoryContentRequest - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - - - org.apache.maven.archiva.proxy.RepositoryProxyConnectors - default - org.apache.maven.archiva.proxy.DefaultRepositoryProxyConnectors - DefaultRepositoryProxyConnectors - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - archivaConfiguration - - - org.apache.maven.archiva.proxy.WagonFactory - - - org.apache.maven.archiva.repository.RepositoryContentFactory - mocked - - - org.apache.maven.archiva.repository.metadata.MetadataTools - - - org.apache.maven.archiva.policies.PreDownloadPolicy - preDownloadPolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postDownloadPolicies - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - consumers - - - org.apache.maven.archiva.policies.urlcache.UrlFailureCache - urlFailureCache - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/pom.xml deleted file mode 100644 index 998863313..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/pom.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - 4.0.0 - archiva-repository-layer - Archiva Repository Interface Layer - - - org.apache.archiva - archiva-xml-tools - - - org.apache.archiva - archiva-model - - - org.apache.archiva - archiva-consumer-api - - - org.apache.archiva - archiva-dependency-graph - - - org.apache.archiva - archiva-checksum - - - org.apache.archiva - archiva-configuration - - - org.apache.archiva - archiva-xml-tools - - - xmlunit - xmlunit - test - - - org.codehaus.plexus - plexus-spring - test - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - descriptor - - descriptor - - - - merge - - merge-descriptors - - - ${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml - - ${basedir}/src/main/resources/META-INF/plexus/components-fragment.xml - ${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ContentNotFoundException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ContentNotFoundException.java deleted file mode 100644 index 993a7a095..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ContentNotFoundException.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.maven.archiva.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. - */ - -/** - * ContentNotFoundException is thrown in response for requests for content that is not the repository. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ContentNotFoundException - extends RepositoryException -{ - - public ContentNotFoundException() - { - super(); - } - - public ContentNotFoundException( String message, Throwable cause ) - { - super( message, cause ); - } - - public ContentNotFoundException( String message ) - { - super( message ); - } - - public ContentNotFoundException( Throwable cause ) - { - super( cause ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ManagedRepositoryContent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ManagedRepositoryContent.java deleted file mode 100644 index ef1ff8d80..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ManagedRepositoryContent.java +++ /dev/null @@ -1,226 +0,0 @@ -package org.apache.maven.archiva.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.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.ProjectReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.layout.LayoutException; - -import java.io.File; -import java.util.Set; - -/** - * ManagedRepositoryContent interface for interacting with a managed repository in an abstract way, - * without the need for processing based on filesystem paths, or working with the database. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ManagedRepositoryContent -{ - /** - * Delete from the managed repository all files / directories associated with the - * provided version reference. - * - * @param reference the version reference to delete. - * @throws ContentNotFoundException - */ - public void deleteVersion( VersionedReference reference ) - throws ContentNotFoundException; - - /** - *

- * Convenience method to get the repository id. - *

- * - *

- * Equivalent to calling .getRepository().getId() - *

- * - * @return the repository id. - */ - public String getId(); - - /** - *

- * Gather up the list of related artifacts to the ArtifactReference provided. - * This typically inclues the pom files, and those things with - * classifiers (such as doc, source code, test libs, etc...) - *

- * - *

- * NOTE: Some layouts (such as maven 1 "legacy") are not compatible with this query. - *

- * - * @param reference the reference to work off of. - * @return the set of ArtifactReferences for related artifacts. - * @throws ContentNotFoundException if the initial artifact reference does not exist within the repository. - * @throws LayoutException - */ - public Set getRelatedArtifacts( ArtifactReference reference ) - throws ContentNotFoundException, LayoutException; - - /** - *

- * Convenience method to get the repository (on disk) root directory. - *

- * - *

- * Equivalent to calling .getRepository().getLocation() - *

- * - * @return the repository (on disk) root directory. - */ - public String getRepoRoot(); - - /** - * Get the repository configuration associated with this - * repository content. - * - * @return the repository that is associated with this repository content. - */ - public ManagedRepositoryConfiguration getRepository(); - - /** - * Given a specific {@link ProjectReference}, return the list of available versions for - * that project reference. - * - * @param reference the project reference to work off of. - * @return the list of versions found for that project reference. - * @throws ContentNotFoundException if the project reference does nto exist within the repository. - * @throws LayoutException - */ - public Set getVersions( ProjectReference reference ) - throws ContentNotFoundException, LayoutException; - - /** - *

- * Given a specific {@link VersionedReference}, return the list of available versions for that - * versioned reference. - *

- * - *

- * NOTE: This is really only useful when working with SNAPSHOTs. - *

- * - * @param reference the versioned reference to work off of. - * @return the set of versions found. - * @throws ContentNotFoundException if the versioned reference does not exist within the repository. - * @throws LayoutException - */ - public Set getVersions( VersionedReference reference ) - throws ContentNotFoundException, LayoutException; - - /** - * Determines if the artifact referenced exists in the repository. - * - * @param reference the artifact reference to check for. - * @return true if the artifact referenced exists. - */ - public boolean hasContent( ArtifactReference reference ); - - /** - * Determines if the project referenced exists in the repository. - * - * @param reference the project reference to check for. - * @return true it the project referenced exists. - */ - public boolean hasContent( ProjectReference reference ); - - /** - * Determines if the version reference exists in the repository. - * - * @param reference the version reference to check for. - * @return true if the version referenced exists. - */ - public boolean hasContent( VersionedReference reference ); - - /** - * Set the repository configuration to associate with this - * repository content. - * - * @param repo the repository to associate with this repository content. - */ - public void setRepository( ManagedRepositoryConfiguration repo ); - - /** - * Given a repository relative path to a filename, return the {@link VersionedReference} object suitable for the path. - * - * @param path the path relative to the repository base dir for the artifact. - * @return the {@link ArtifactReference} representing the path. (or null if path cannot be converted to - * a {@link ArtifactReference}) - * @throws LayoutException if there was a problem converting the path to an artifact. - */ - public ArtifactReference toArtifactReference( String path ) - throws LayoutException; - - /** - * Given an {@link ArtifactReference}, return the file reference to the artifact. - * - * @param reference the artifact reference to use. - * @return the relative path to the artifact. - */ - public File toFile( ArtifactReference reference ); - - /** - * Given an {@link ArchivaArtifact}, return the file reference to the artifact. - * - * @param reference the archiva artifact to use. - * @return the relative path to the artifact. - */ - public File toFile( ArchivaArtifact reference ); - - /** - * Given a {@link ProjectReference}, return the path to the metadata for - * the project. - * - * @param reference the reference to use. - * @return the path to the metadata file, or null if no metadata is appropriate. - */ - public String toMetadataPath( ProjectReference reference ); - - /** - * Given a {@link VersionedReference}, return the path to the metadata for - * the specific version of the project. - * - * @param reference the reference to use. - * @return the path to the metadata file, or null if no metadata is appropriate. - */ - public String toMetadataPath( VersionedReference reference ); - - /** - * Given an {@link ArtifactReference}, return the relative path to the artifact. - * - * @param reference the artifact reference to use. - * @return the relative path to the artifact. - */ - public String toPath( ArtifactReference reference ); - - /** - * Given an {@link ArchivaArtifact}, return the relative path to the artifact. - * - * @param reference the archiva artifact to use. - * @return the relative path to the artifact. - */ - public String toPath( ArchivaArtifact reference ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RemoteRepositoryContent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RemoteRepositoryContent.java deleted file mode 100644 index 054107323..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RemoteRepositoryContent.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.apache.maven.archiva.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.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.RepositoryURL; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * RemoteRepositoryContent interface for interacting with a remote repository in an abstract way, - * without the need for processing based on URLs, or working with the database. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface RemoteRepositoryContent -{ - /** - *

- * Convenience method to get the repository id. - *

- * - *

- * Equivalent to calling .getRepository().getId() - *

- * - * @return the repository id. - */ - public String getId(); - - /** - * Get the repository configuration associated with this - * repository content. - * - * @return the repository that is associated with this repository content. - */ - public RemoteRepositoryConfiguration getRepository(); - - /** - *

- * Convenience method to get the repository url. - *

- * - *

- * Equivalent to calling new RepositoryURL( this.getRepository().getUrl() ) - *

- * - * @return the repository url. - */ - public RepositoryURL getURL(); - - /** - * Set the repository configuration to associate with this - * repository content. - * - * @param repo the repository to associate with this repository content. - */ - public void setRepository( RemoteRepositoryConfiguration repo ); - - /** - * Given a repository relative path to a filename, return the {@link VersionedReference} object suitable for the path. - * - * @param path the path relative to the repository base dir for the artifact. - * @return the {@link ArtifactReference} representing the path. (or null if path cannot be converted to - * a {@link ArtifactReference}) - * @throws LayoutException if there was a problem converting the path to an artifact. - */ - public ArtifactReference toArtifactReference( String path ) - throws LayoutException; - - /** - * Given an ArtifactReference, return the relative path to the artifact. - * - * @param reference the artifact reference to use. - * @return the relative path to the artifact. - */ - public String toPath( ArtifactReference reference ); - - /** - * Given an ArtifactReference, return the url to the artifact. - * - * @param reference the artifact reference to use. - * @return the relative path to the artifact. - */ - public RepositoryURL toURL( ArtifactReference reference ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryContentFactory.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryContentFactory.java deleted file mode 100644 index 08807f474..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryContentFactory.java +++ /dev/null @@ -1,204 +0,0 @@ -package org.apache.maven.archiva.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.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationNames; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.codehaus.plexus.PlexusContainer; -import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; -import org.codehaus.plexus.context.Context; -import org.codehaus.plexus.context.ContextException; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; -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; - -import java.util.HashMap; -import java.util.Map; - -/** - * RepositoryContentRequest - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component - * role="org.apache.maven.archiva.repository.RepositoryContentFactory" - */ -public class RepositoryContentFactory - implements Contextualizable, RegistryListener, Initializable -{ - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - private Map managedContentMap; - - private Map remoteContentMap; - - private PlexusContainer container; - - /** - * Get the ManagedRepositoryContent object for the repository Id specified. - * - * @param repoId the repository id to fetch. - * @return the ManagedRepositoryContent object associated with the repository id. - * @throws RepositoryNotFoundException if the repository id does not exist within the configuration. - * @throws RepositoryException the repository content object cannot be loaded due to configuration issue. - */ - public ManagedRepositoryContent getManagedRepositoryContent( String repoId ) - throws RepositoryNotFoundException, RepositoryException - { - ManagedRepositoryContent repo = managedContentMap.get( repoId ); - - if ( repo != null ) - { - return repo; - } - - ManagedRepositoryConfiguration repoConfig = archivaConfiguration.getConfiguration() - .findManagedRepositoryById( repoId ); - if ( repoConfig == null ) - { - throw new RepositoryNotFoundException( "Unable to find managed repository configuration for id:" + repoId ); - } - - try - { - repo = (ManagedRepositoryContent) container.lookup( ManagedRepositoryContent.class, repoConfig.getLayout() ); - repo.setRepository( repoConfig ); - managedContentMap.put( repoId, repo ); - } - catch ( ComponentLookupException e ) - { - throw new RepositoryException( "Specified layout [" + repoConfig.getLayout() - + "] on managed repository id [" + repoId + "] is not valid.", e ); - } - - return repo; - } - - public RemoteRepositoryContent getRemoteRepositoryContent( String repoId ) - throws RepositoryNotFoundException, RepositoryException - { - RemoteRepositoryContent repo = remoteContentMap.get( repoId ); - - if ( repo != null ) - { - return repo; - } - - RemoteRepositoryConfiguration repoConfig = archivaConfiguration.getConfiguration() - .findRemoteRepositoryById( repoId ); - if ( repoConfig == null ) - { - throw new RepositoryNotFoundException( "Unable to find remote repository configuration for id:" + repoId ); - } - - try - { - repo = (RemoteRepositoryContent) container.lookup( RemoteRepositoryContent.class, repoConfig.getLayout() ); - repo.setRepository( repoConfig ); - remoteContentMap.put( repoId, repo ); - } - catch ( ComponentLookupException e ) - { - throw new RepositoryException( "Specified layout [" + repoConfig.getLayout() - + "] on remote repository id [" + repoId + "] is not valid.", e ); - } - - return repo; - } - - public void contextualize( Context context ) - throws ContextException - { - container = (PlexusContainer) context.get( "plexus" ); - } - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isManagedRepositories( propertyName ) - || ConfigurationNames.isRemoteRepositories( propertyName ) ) - { - initMaps(); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* do nothing */ - } - - public void initialize() - throws InitializationException - { - managedContentMap = new HashMap(); - remoteContentMap = new HashMap(); - - archivaConfiguration.addChangeListener( this ); - } - - private void initMaps() - { - synchronized ( managedContentMap ) - { - // First, return any references to the container. - for ( ManagedRepositoryContent repo : managedContentMap.values() ) - { - try - { - container.release( repo ); - } - catch ( ComponentLifecycleException e ) - { - /* ignore */ - } - } - - // Next clear the map. - managedContentMap.clear(); - } - - synchronized ( remoteContentMap ) - { - // First, return any references to the container. - for ( RemoteRepositoryContent repo : remoteContentMap.values() ) - { - try - { - container.release( repo ); - } - catch ( ComponentLifecycleException e ) - { - /* ignore */ - } - } - - // Next clear the map. - remoteContentMap.clear(); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryException.java deleted file mode 100644 index 07d9159cd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryException.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.apache.maven.archiva.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. - */ - -/** - * RepositoryException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryException - extends Exception -{ - - public RepositoryException() - { - super(); - } - - public RepositoryException( String message, Throwable cause ) - { - super( message, cause ); - } - - public RepositoryException( String message ) - { - super( message ); - } - - public RepositoryException( Throwable cause ) - { - super( cause ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryNotFoundException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryNotFoundException.java deleted file mode 100644 index 9fb7e1cca..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryNotFoundException.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.apache.maven.archiva.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. - */ - -/** - * RepositoryNotFoundException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryNotFoundException - extends RepositoryException -{ - - public RepositoryNotFoundException() - { - } - - public RepositoryNotFoundException( String message, Throwable cause ) - { - super( message, cause ); - } - - public RepositoryNotFoundException( String message ) - { - super( message ); - } - - public RepositoryNotFoundException( Throwable cause ) - { - super( cause ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java deleted file mode 100644 index 78408592e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.apache.maven.archiva.repository.audit; - -/* - * 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. - */ - -/** - * AuditEvent - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AuditEvent -{ - public static final String CREATE_DIR = "Created Directory"; - - public static final String CREATE_FILE = "Created File"; - - public static final String REMOVE_DIR = "Removed Directory"; - - public static final String REMOVE_FILE = "Removed File"; - - public static final String MODIFY_FILE = "Modified File"; - - public static final String MOVE_FILE = "Moved File"; - - public static final String MOVE_DIRECTORY = "Moved Directory"; - - public static final String COPY_DIRECTORY = "Copied Directory"; - - public static final String COPY_FILE = "Copied File"; - - public static final String UPLOAD_FILE = "Uploaded File"; - - private String repositoryId; - - private String userId; - - private String remoteIP; - - private String resource; - - private String action; - - public AuditEvent() - { - /* do nothing */ - } - - public AuditEvent( String repoId, String user, String resource, String action ) - { - this.repositoryId = repoId; - this.userId = user; - this.resource = resource; - this.action = action; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public String getUserId() - { - return userId; - } - - public void setUserId( String userId ) - { - this.userId = userId; - } - - public String getResource() - { - return resource; - } - - public void setResource( String resource ) - { - this.resource = resource; - } - - public String getAction() - { - return action; - } - - public void setAction( String action ) - { - this.action = action; - } - - public String getRemoteIP() - { - return remoteIP; - } - - public void setRemoteIP( String remoteIP ) - { - this.remoteIP = remoteIP; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditListener.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditListener.java deleted file mode 100644 index 7335e9662..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditListener.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.apache.maven.archiva.repository.audit; - -/* - * 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. - */ - -/** - * AuditListener - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface AuditListener -{ - /** - * Notification that an audit event occured. - * - * @param event the event details. - */ - public void auditEvent( AuditEvent event ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditLog.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditLog.java deleted file mode 100644 index 3118fe597..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditLog.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.apache.maven.archiva.repository.audit; - -/* - * 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.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * AuditLog - Audit Log. - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.repository.audit.AuditListener" - * role-hint="logging" - */ -public class AuditLog - implements AuditListener -{ - public static final Logger logger = LoggerFactory.getLogger( "org.apache.archiva.AuditLog" ); - - private static final char DELIM = ' '; - - /** - * Creates a log message in the following format ... - * - * "{repository_id} {user_id} {remote_ip} \"{resource}\" \"{action}\"" - */ - public void auditEvent( AuditEvent event ) - { - StringBuffer msg = new StringBuffer(); - msg.append( event.getRepositoryId() ).append( DELIM ); - msg.append( event.getUserId() ).append( DELIM ); - msg.append( event.getRemoteIP() ).append( DELIM ); - msg.append( '\"' ).append( event.getResource() ).append( '\"' ).append( DELIM ); - msg.append( '\"' ).append( event.getAction() ).append( '\"' ); - - logger.info( msg.toString() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/Auditable.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/Auditable.java deleted file mode 100644 index 949d2c394..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/Auditable.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.repository.audit; - -/* - * 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. - */ - -/** - * Auditable - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface Auditable -{ - /** - * Add an AuditListener. - * - * @param the listener to add. - */ - public void addAuditListener( AuditListener auditListener ); - - /** - * Remove an AuditListener. - * - * @param the listener to remove. - */ - public void removeAuditListener( AuditListener auditListener ); - - /** - * Remove all registered {@link AuditListener} objects. - */ - public void clearAuditListeners(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java deleted file mode 100644 index 92f944710..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.apache.maven.archiva.repository.connector; - -/* - * 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.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.RemoteRepositoryContent; - -import java.util.List; - -/** - * RepositoryConnector - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface RepositoryConnector -{ - public ManagedRepositoryContent getSourceRepository(); - - public RemoteRepositoryContent getTargetRepository(); - - public List getBlacklist(); - - public List getWhitelist(); - - public boolean isDisabled(); - - public void setDisabled(boolean disabled); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContent.java deleted file mode 100644 index 7ee03d16a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContent.java +++ /dev/null @@ -1,136 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.common.utils.VersionUtil; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.ProjectReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * AbstractDefaultRepositoryContent - common methods for working with default (maven 2) layout. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractDefaultRepositoryContent -{ - public static final String MAVEN_METADATA = "maven-metadata.xml"; - - protected static final char PATH_SEPARATOR = '/'; - - protected static final char GROUP_SEPARATOR = '.'; - - protected static final char ARTIFACT_SEPARATOR = '-'; - - private PathParser defaultPathParser = new DefaultPathParser(); - - public ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - return defaultPathParser.toArtifactReference( path ); - } - - public String toMetadataPath( ProjectReference reference ) - { - StringBuffer path = new StringBuffer(); - - path.append( formatAsDirectory( reference.getGroupId() ) ).append( PATH_SEPARATOR ); - path.append( reference.getArtifactId() ).append( PATH_SEPARATOR ); - path.append( MAVEN_METADATA ); - - return path.toString(); - } - - public String toMetadataPath( VersionedReference reference ) - { - StringBuffer path = new StringBuffer(); - - path.append( formatAsDirectory( reference.getGroupId() ) ).append( PATH_SEPARATOR ); - path.append( reference.getArtifactId() ).append( PATH_SEPARATOR ); - if ( reference.getVersion() != null ) - { - // add the version only if it is present - path.append( VersionUtil.getBaseVersion( reference.getVersion() ) ).append( PATH_SEPARATOR ); - } - path.append( MAVEN_METADATA ); - - return path.toString(); - } - - public String toPath( ArchivaArtifact reference ) - { - if ( reference == null ) - { - throw new IllegalArgumentException( "ArchivaArtifact cannot be null" ); - } - - String baseVersion = VersionUtil.getBaseVersion( reference.getVersion() ); - return toPath( reference.getGroupId(), reference.getArtifactId(), baseVersion, reference.getVersion(), - reference.getClassifier(), reference.getType() ); - } - - public String toPath( ArtifactReference reference ) - { - if ( reference == null ) - { - throw new IllegalArgumentException( "Artifact reference cannot be null" ); - } - - String baseVersion = VersionUtil.getBaseVersion( reference.getVersion() ); - return toPath( reference.getGroupId(), reference.getArtifactId(), baseVersion, reference.getVersion(), - reference.getClassifier(), reference.getType() ); - } - - private String formatAsDirectory( String directory ) - { - return directory.replace( GROUP_SEPARATOR, PATH_SEPARATOR ); - } - - private String toPath( String groupId, String artifactId, String baseVersion, String version, String classifier, - String type ) - { - StringBuffer path = new StringBuffer(); - - path.append( formatAsDirectory( groupId ) ).append( PATH_SEPARATOR ); - path.append( artifactId ).append( PATH_SEPARATOR ); - - if ( baseVersion != null ) - { - path.append( baseVersion ).append( PATH_SEPARATOR ); - if ( ( version != null ) && ( type != null ) ) - { - path.append( artifactId ).append( ARTIFACT_SEPARATOR ).append( version ); - - if ( StringUtils.isNotBlank( classifier ) ) - { - path.append( ARTIFACT_SEPARATOR ).append( classifier ); - } - - path.append( GROUP_SEPARATOR ).append( ArtifactExtensionMapping.getExtension( type ) ); - } - } - - return path.toString(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContent.java deleted file mode 100644 index f135d5aad..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContent.java +++ /dev/null @@ -1,120 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.repository.layout.LayoutException; - -import java.util.HashMap; -import java.util.Map; - -/** - * AbstractLegacyRepositoryContent - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractLegacyRepositoryContent -{ - private static final String PATH_SEPARATOR = "/"; - - private static final Map typeToDirectoryMap; - - static - { - typeToDirectoryMap = new HashMap(); - typeToDirectoryMap.put( "ejb-client", "ejb" ); - typeToDirectoryMap.put( ArtifactExtensionMapping.MAVEN_PLUGIN, "maven-plugin" ); - typeToDirectoryMap.put( ArtifactExtensionMapping.MAVEN_ONE_PLUGIN, "plugin" ); - typeToDirectoryMap.put( "distribution-tgz", "distribution" ); - typeToDirectoryMap.put( "distribution-zip", "distribution" ); - typeToDirectoryMap.put( "javadoc", "javadoc.jar" ); - } - - /** - * @plexus.requirement role-hint="legacy" - */ - private PathParser legacyPathParser; - - public ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - return legacyPathParser.toArtifactReference( path ); - } - - public String toPath( ArchivaArtifact reference ) - { - if ( reference == null ) - { - throw new IllegalArgumentException( "Artifact reference cannot be null" ); - } - - return toPath( reference.getGroupId(), reference.getArtifactId(), reference.getVersion(), reference - .getClassifier(), reference.getType() ); - } - - public String toPath( ArtifactReference reference ) - { - if ( reference == null ) - { - throw new IllegalArgumentException( "Artifact reference cannot be null" ); - } - - return toPath( reference.getGroupId(), reference.getArtifactId(), reference.getVersion(), reference - .getClassifier(), reference.getType() ); - } - - private String toPath( String groupId, String artifactId, String version, String classifier, String type ) - { - StringBuffer path = new StringBuffer(); - - path.append( groupId ).append( PATH_SEPARATOR ); - path.append( getDirectory( classifier, type ) ).append( PATH_SEPARATOR ); - - if ( version != null ) - { - path.append( artifactId ).append( '-' ).append( version ); - - if ( StringUtils.isNotBlank( classifier ) ) - { - path.append( '-' ).append( classifier ); - } - - path.append( '.' ).append( ArtifactExtensionMapping.getExtension( type ) ); - } - - return path.toString(); - } - - private String getDirectory( String classifier, String type ) - { - String dirname = (String) typeToDirectoryMap.get( type ); - - if ( dirname != null ) - { - return dirname + "s"; - } - - // Default process. - return type + "s"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactClassifierMapping.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactClassifierMapping.java deleted file mode 100644 index 3e2de1812..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactClassifierMapping.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.HashMap; -import java.util.Map; - -/** - * ArtifactExtensionMapping - * - * @since 1.1 - */ -public class ArtifactClassifierMapping -{ - private static final Map typeToClassifierMap; - - static - { - typeToClassifierMap = new HashMap(); - typeToClassifierMap.put( "java-sources", "sources" ); - typeToClassifierMap.put( "javadoc.jars", "javadoc" ); - typeToClassifierMap.put( "javadocs", "javadoc" ); - } - - public static String getClassifier( String type ) - { - // Try specialized types first. - if ( typeToClassifierMap.containsKey( type ) ) - { - return (String) typeToClassifierMap.get( type ); - } - - // No classifier - return null; - } -} - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java deleted file mode 100644 index e7cd021a8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java +++ /dev/null @@ -1,124 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.HashMap; -import java.util.Map; -import java.util.regex.Pattern; - -/** - * ArtifactExtensionMapping - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArtifactExtensionMapping -{ - public static final String MAVEN_ARCHETYPE = "maven-archetype"; - - public static final String MAVEN_PLUGIN = "maven-plugin"; - - public static final String MAVEN_ONE_PLUGIN = "maven-one-plugin"; - - private static final Map typeToExtensionMap; - - private static final Pattern mavenPluginPattern = Pattern.compile( "^(maven-.*-plugin)|(.*-maven-plugin)$" ); - - static - { - typeToExtensionMap = new HashMap(); - typeToExtensionMap.put( "ejb-client", "jar" ); - typeToExtensionMap.put( "ejb", "jar" ); - typeToExtensionMap.put( "distribution-tgz", "tar.gz" ); - typeToExtensionMap.put( "distribution-zip", "zip" ); - typeToExtensionMap.put( "java-source", "jar" ); - typeToExtensionMap.put( "javadoc.jar", "jar" ); - typeToExtensionMap.put( "javadoc", "jar" ); - typeToExtensionMap.put( "aspect", "jar" ); - typeToExtensionMap.put( "uberjar", "jar" ); - typeToExtensionMap.put( MAVEN_PLUGIN, "jar" ); - typeToExtensionMap.put( MAVEN_ONE_PLUGIN, "jar" ); - typeToExtensionMap.put( MAVEN_ARCHETYPE, "jar" ); - } - - public static String getExtension( String type ) - { - // Try specialized types first. - if ( typeToExtensionMap.containsKey( type ) ) - { - return (String) typeToExtensionMap.get( type ); - } - - // Return type - return type; - } - - /** - * Determine if a given artifact Id conforms to the naming scheme for a maven plugin. - * - * @param artifactId the artifactId to test. - * @return true if this artifactId conforms to the naming scheme for a maven plugin. - */ - public static boolean isMavenPlugin( String artifactId ) - { - return mavenPluginPattern.matcher( artifactId ).matches(); - } - - public static String mapExtensionAndClassifierToType( String classifier, String extension ) - { - return mapExtensionAndClassifierToType( classifier, extension, extension ); - } - - public static String mapExtensionAndClassifierToType( String classifier, String extension, - String defaultExtension ) - { - if ( "sources".equals( classifier ) ) - { - return "java-source"; - } - else if ( "javadoc".equals( classifier ) ) - { - return "javadoc"; - } - return mapExtensionToType( extension, defaultExtension ); - } - - public static String mapExtensionToType( String extension ) - { - return mapExtensionToType( extension, extension ); - } - - private static String mapExtensionToType( String extension, String defaultExtension ) - { - if ( "tar.gz".equals( extension ) ) - { - return "distribution-tgz"; - } - else if ( "tar.bz2".equals( extension ) ) - { - return "distribution-bzip"; - } - else if ( "zip".equals( extension ) ) - { - return "distribution-zip"; - } - return defaultExtension; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultPathParser.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultPathParser.java deleted file mode 100644 index a6674c31e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultPathParser.java +++ /dev/null @@ -1,205 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.common.utils.VersionUtil; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * DefaultPathParser is a parser for maven 2 (default layout) paths to ArtifactReference. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DefaultPathParser implements PathParser -{ - private static final String INVALID_ARTIFACT_PATH = "Invalid path to Artifact: "; - - /** - * {@inheritDoc} - * @see org.apache.maven.archiva.repository.content.PathParser#toArtifactReference(java.lang.String) - */ - public ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - if ( StringUtils.isBlank( path ) ) - { - throw new LayoutException( "Unable to convert blank path." ); - } - - ArtifactReference artifact = new ArtifactReference(); - - String normalizedPath = StringUtils.replace( path, "\\", "/" ); - String pathParts[] = StringUtils.split( normalizedPath, '/' ); - - /* Minimum parts. - * - * path = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar" - * path[0] = "commons-lang"; // The Group ID - * path[1] = "commons-lang"; // The Artifact ID - * path[2] = "2.1"; // The Version - * path[3] = "commons-lang-2.1.jar" // The filename. - */ - - if ( pathParts.length < 4 ) - { - // Illegal Path Parts Length. - throw new LayoutException( "Not enough parts to the path [" + path - + "] to construct an ArchivaArtifact from. (Requires at least 4 parts)" ); - } - - // Maven 2.x path. - int partCount = pathParts.length; - int filenamePos = partCount - 1; - int baseVersionPos = partCount - 2; - int artifactIdPos = partCount - 3; - int groupIdPos = partCount - 4; - - // Second to last is the baseVersion (the directory version) - String baseVersion = pathParts[baseVersionPos]; - - // Third to last is the artifact Id. - artifact.setArtifactId( pathParts[artifactIdPos] ); - - // Remaining pieces are the groupId. - for ( int i = 0; i <= groupIdPos; i++ ) - { - if ( i == 0 ) - { - artifact.setGroupId( pathParts[i] ); - } - else - { - artifact.setGroupId( artifact.getGroupId() + "." + pathParts[i] ); - } - } - - try - { - // Last part is the filename - String filename = pathParts[filenamePos]; - - // Now we need to parse the filename to get the artifact version Id. - if ( StringUtils.isBlank( filename ) ) - { - throw new IllegalArgumentException( INVALID_ARTIFACT_PATH + "Unable to split blank filename." ); - } - - FilenameParser parser = new FilenameParser( filename ); - - // Expect the filename to start with the artifactId. - artifact.setArtifactId( parser.expect( artifact.getArtifactId() ) ); - - if ( artifact.getArtifactId() == null ) - { - throw new LayoutException( INVALID_ARTIFACT_PATH + "filename format is invalid, " - + "should start with artifactId as stated in path." ); - } - - // Process the version. - artifact.setVersion( parser.expect( baseVersion ) ); - - if ( artifact.getVersion() == null ) - { - // We working with a snapshot? - if ( VersionUtil.isSnapshot( baseVersion ) ) - { - artifact.setVersion( parser.nextVersion() ); - if ( !VersionUtil.isUniqueSnapshot( artifact.getVersion() ) ) - { - throw new LayoutException( INVALID_ARTIFACT_PATH + "filename format is invalid," - + "expected timestamp format in filename." ); - } - } - else - { - throw new LayoutException( INVALID_ARTIFACT_PATH + "filename format is invalid, " - + "expected version as stated in path." ); - } - } - - // Do we have a classifier? - switch(parser.seperator()) - { - case '-': - // Definately a classifier. - artifact.setClassifier( parser.remaining() ); - - // Set the type. - artifact.setType( ArtifactExtensionMapping.mapExtensionAndClassifierToType( artifact.getClassifier(), parser.getExtension() ) ); - break; - case '.': - // We have an dual extension possibility. - String extension = parser.remaining() + '.' + parser.getExtension(); - artifact.setType( extension ); - break; - case 0: - // End of the filename, only a simple extension left. - Set the type. - String type = ArtifactExtensionMapping.mapExtensionToType( parser.getExtension() ); - if ( type == null ) - { - throw new LayoutException( "Invalid artifact: no type was specified" ); - } - artifact.setType( type ); - break; - } - - // Special case for maven plugins - if ( StringUtils.equals( "jar", artifact.getType() ) && - ArtifactExtensionMapping.isMavenPlugin( artifact.getArtifactId() ) ) - { - artifact.setType( ArtifactExtensionMapping.MAVEN_PLUGIN ); - } - } - catch ( LayoutException e ) - { - throw e; - } - - // Sanity Checks. - - // Do we have a snapshot version? - if ( VersionUtil.isSnapshot( artifact.getVersion() ) ) - { - // Rules are different for SNAPSHOTS - if ( !VersionUtil.isGenericSnapshot( baseVersion ) ) - { - String filenameBaseVersion = VersionUtil.getBaseVersion( artifact.getVersion() ); - throw new LayoutException( "Invalid snapshot artifact location, version directory should be " - + filenameBaseVersion ); - } - } - else - { - // Non SNAPSHOT rules. - // Do we pass the simple test? - if ( !StringUtils.equals( baseVersion, artifact.getVersion() ) ) - { - throw new LayoutException( "Invalid artifact: version declared in directory path does" - + " not match what was found in the artifact filename." ); - } - } - - return artifact; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/FilenameParser.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/FilenameParser.java deleted file mode 100644 index fa49e5d14..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/FilenameParser.java +++ /dev/null @@ -1,259 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.utils.VersionUtil; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * Generic Filename Parser for use with layout routines. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FilenameParser -{ - private String name; - - private String extension; - - private int offset; - - private static final Pattern mavenPluginPattern = Pattern.compile( "(maven-.*-plugin)|(.*-maven-plugin)" ); - - private static final Pattern extensionPattern = - Pattern.compile( "(\\.tar\\.gz$)|(\\.tar\\.bz2$)|(\\.[\\-a-z0-9]*$)", Pattern.CASE_INSENSITIVE ); - - private static final Pattern SNAPSHOT_PATTERN = Pattern.compile( "^([0-9]{8}\\.[0-9]{6}-[0-9]+)(.*)$" ); - - private static final Pattern section = Pattern.compile( "([^-]*)" ); - - private Matcher matcher; - - protected FilenameParser( String filename ) - { - this.name = filename; - - Matcher mat = extensionPattern.matcher( name ); - if ( mat.find() ) - { - extension = filename.substring( mat.start() + 1 ); - name = name.substring( 0, name.length() - extension.length() - 1 ); - } - - matcher = section.matcher( name ); - - reset(); - } - - protected void reset() - { - offset = 0; - } - - protected String next() - { - // Past the end of the string. - if ( offset > name.length() ) - { - return null; - } - - // Return the next section. - if ( matcher.find( offset ) ) - { - // Return found section. - offset = matcher.end() + 1; - return matcher.group(); - } - - // Nothing to return. - return null; - } - - protected String expect( String expected ) - { - String value = null; - - if ( name.startsWith( expected, offset ) ) - { - value = expected; - } - else if ( VersionUtil.isGenericSnapshot( expected ) ) - { - String version = name.substring( offset ); - - // check it starts with the same version up to the snapshot part - int leadingLength = expected.length() - 9; - if ( version.startsWith( expected.substring( 0, leadingLength ) ) && version.length() > leadingLength ) - { - // If we expect a non-generic snapshot - look for the timestamp - Matcher m = SNAPSHOT_PATTERN.matcher( version.substring( leadingLength + 1 ) ); - if ( m.matches() ) - { - value = version.substring( 0, leadingLength + 1 ) + m.group( 1 ); - } - } - } - - if ( value != null ) - { - // Potential hit. check for '.' or '-' at end of expected. - int seperatorOffset = offset + value.length(); - - // Test for "out of bounds" first. - if ( seperatorOffset >= name.length() ) - { - offset = name.length(); - return value; - } - - // Test for seperator char. - char seperatorChar = name.charAt( seperatorOffset ); - if ( ( seperatorChar == '-' ) || ( seperatorChar == '.' ) ) - { - offset = seperatorOffset + 1; - return value; - } - } - - return null; - } - - /** - * Get the current seperator character. - * - * @return the seperator character (either '.' or '-'), or 0 if no seperator character available. - */ - protected char seperator() - { - // Past the end of the string? - if ( offset >= name.length() ) - { - return 0; - } - - // Before the start of the string? - if ( offset <= 0 ) - { - return 0; - } - - return name.charAt( offset - 1 ); - } - - protected String getName() - { - return name; - } - - protected String getExtension() - { - return extension; - } - - protected String remaining() - { - if ( offset >= name.length() ) - { - return null; - } - - String end = name.substring( offset ); - offset = name.length(); - return end; - } - - protected String nextNonVersion() - { - boolean done = false; - - StringBuffer ver = new StringBuffer(); - - // Any text upto the end of a special case is considered non-version. - Matcher specialMat = mavenPluginPattern.matcher( name ); - if ( specialMat.find() ) - { - ver.append( name.substring( offset, specialMat.end() ) ); - offset = specialMat.end() + 1; - } - - while ( !done ) - { - int initialOffset = offset; - String section = next(); - if ( section == null ) - { - done = true; - } - else if ( !VersionUtil.isVersion( section ) ) - { - if ( ver.length() > 0 ) - { - ver.append( '-' ); - } - ver.append( section ); - } - else - { - offset = initialOffset; - done = true; - } - } - - return ver.toString(); - } - - protected String nextVersion() - { - boolean done = false; - - StringBuffer ver = new StringBuffer(); - - while ( !done ) - { - int initialOffset = offset; - String section = next(); - if ( section == null ) - { - done = true; - } - else if ( VersionUtil.isVersion( section ) ) - { - if ( ver.length() > 0 ) - { - ver.append( '-' ); - } - ver.append( section ); - } - else - { - offset = initialOffset; - done = true; - } - } - - return ver.toString(); - } - - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java deleted file mode 100644 index 99a8de4d6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java +++ /dev/null @@ -1,212 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.LegacyArtifactPath; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.repository.layout.LayoutException; - -import java.util.Collection; -import java.util.Iterator; - -/** - * LegacyPathParser is a parser for maven 1 (legacy layout) paths to - * ArtifactReference. - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.repository.content.PathParser" - * role-hint="legacy" - */ -public class LegacyPathParser - implements PathParser -{ - private static final String INVALID_ARTIFACT_PATH = "Invalid path to Artifact: "; - - /** - * @todo pass these in on construction instead, since this can't be long lived (no config listener), then no need to be a component - * @plexus.requirement - */ - protected ArchivaConfiguration configuration; - - /** - * {@inheritDoc} - * - * @see org.apache.maven.archiva.repository.content.PathParser#toArtifactReference(java.lang.String) - */ - public ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - ArtifactReference artifact = new ArtifactReference(); - - // First, look if a custom resolution rule has been set for this artifact - Collection legacy = configuration.getConfiguration().getLegacyArtifactPaths(); - for ( Iterator iterator = legacy.iterator(); iterator.hasNext(); ) - { - LegacyArtifactPath legacyPath = (LegacyArtifactPath) iterator.next(); - if ( legacyPath.match( path ) ) - { - artifact.setGroupId( legacyPath.getGroupId() ); - artifact.setArtifactId( legacyPath.getArtifactId() ); - artifact.setClassifier( legacyPath.getClassifier() ); - artifact.setVersion( legacyPath.getVersion() ); - artifact.setType( legacyPath.getType() ); - return artifact; - } - } - - String normalizedPath = StringUtils.replace( path, "\\", "/" ); - - String pathParts[] = StringUtils.split( normalizedPath, '/' ); - - /* Always 3 parts. (Never more or less) - * - * path = "commons-lang/jars/commons-lang-2.1.jar" - * path[0] = "commons-lang"; // The Group ID - * path[1] = "jars"; // The Directory Type - * path[2] = "commons-lang-2.1.jar"; // The Filename. - */ - - if ( pathParts.length != 3 ) - { - // Illegal Path Parts Length. - throw new LayoutException( INVALID_ARTIFACT_PATH - + "legacy paths should only have 3 parts [groupId]/[type]s/[artifactId]-[version].[type], found " - + pathParts.length + " instead." ); - } - - // The Group ID. - artifact.setGroupId( pathParts[0] ); - - // The Expected Type. - String expectedType = pathParts[1]; - - // Sanity Check: expectedType should end in "s". - if ( !expectedType.endsWith( "s" ) ) - { - throw new LayoutException( INVALID_ARTIFACT_PATH - + "legacy paths should have an expected type ending in [s] in the second part of the path." ); - } - - // The Filename. - String filename = pathParts[2]; - - FilenameParser parser = new FilenameParser( filename ); - - artifact.setArtifactId( parser.nextNonVersion() ); - - // Sanity Check: does it have an artifact id? - if ( StringUtils.isEmpty( artifact.getArtifactId() ) ) - { - // Special Case: The filename might start with a version id (like "test-arch-1.0.jar"). - int idx = filename.indexOf( '-' ); - if ( idx > 0 ) - { - parser.reset(); - // Take the first section regardless of content. - String artifactId = parser.next(); - - // Is there anything more that is considered not a version id? - String moreArtifactId = parser.nextNonVersion(); - if ( StringUtils.isNotBlank( moreArtifactId ) ) - { - artifact.setArtifactId( artifactId + "-" + moreArtifactId ); - } - else - { - artifact.setArtifactId( artifactId ); - } - } - - // Sanity Check: still no artifact id? - if ( StringUtils.isEmpty( artifact.getArtifactId() ) ) - { - throw new LayoutException( INVALID_ARTIFACT_PATH + "no artifact id present." ); - } - } - - artifact.setVersion( parser.remaining() ); - - // Sanity Check: does it have a version? - if ( StringUtils.isEmpty( artifact.getVersion() ) ) - { - // Special Case: use last section of artifactId as version. - String artifactId = artifact.getArtifactId(); - int idx = artifactId.lastIndexOf( '-' ); - if ( idx > 0 ) - { - artifact.setVersion( artifactId.substring( idx + 1 ) ); - artifact.setArtifactId( artifactId.substring( 0, idx ) ); - } - else - { - throw new LayoutException( INVALID_ARTIFACT_PATH + "no version found." ); - } - } - - String classifier = ArtifactClassifierMapping.getClassifier( expectedType ); - if ( classifier != null ) - { - String version = artifact.getVersion(); - if ( ! version.endsWith( "-" + classifier ) ) - { - throw new LayoutException( INVALID_ARTIFACT_PATH + expectedType + " artifacts must use the classifier " + classifier ); - } - version = version.substring( 0, version.length() - classifier.length() - 1 ); - artifact.setVersion( version ); - artifact.setClassifier( classifier ); - } - - String extension = parser.getExtension(); - - // Set Type - String defaultExtension = expectedType.substring( 0, expectedType.length() - 1 ); - artifact.setType( - ArtifactExtensionMapping.mapExtensionAndClassifierToType( classifier, extension, defaultExtension ) ); - - // Sanity Check: does it have an extension? - if ( StringUtils.isEmpty( artifact.getType() ) ) - { - throw new LayoutException( INVALID_ARTIFACT_PATH + "no extension found." ); - } - - // Special Case with Maven Plugins - if ( StringUtils.equals( "jar", extension ) && StringUtils.equals( "plugins", expectedType ) ) - { - artifact.setType( ArtifactExtensionMapping.MAVEN_ONE_PLUGIN ); - } - else - { - // Sanity Check: does extension match pathType on path? - String expectedExtension = ArtifactExtensionMapping.getExtension( artifact.getType() ); - - if ( !expectedExtension.equals( extension ) ) - { - throw new LayoutException( INVALID_ARTIFACT_PATH + "mismatch on extension [" + extension - + "] and layout specified type [" + artifact.getType() + "] (which maps to extension: [" - + expectedExtension + "]) on path [" + path + "]" ); - } - } - - return artifact; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContent.java deleted file mode 100644 index 53bfc1bcb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContent.java +++ /dev/null @@ -1,406 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.common.utils.PathUtil; -import org.apache.maven.archiva.configuration.FileTypes; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.ProjectReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.ContentNotFoundException; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; - -import java.io.File; -import java.io.IOException; -import java.util.HashSet; -import java.util.Set; - -/** - * ManagedDefaultRepositoryContent - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @todo no need to be a component when filetypes is not - * - * @plexus.component - * role="org.apache.maven.archiva.repository.ManagedRepositoryContent" - * role-hint="default" - * instantiation-strategy="per-lookup" - */ -public class ManagedDefaultRepositoryContent - extends AbstractDefaultRepositoryContent - implements ManagedRepositoryContent -{ - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - private ManagedRepositoryConfiguration repository; - - public void deleteVersion( VersionedReference reference ) - throws ContentNotFoundException - { - String path = toMetadataPath( reference ); - File projectPath = new File( getRepoRoot(), path ); - - File projectDir = projectPath.getParentFile(); - if( projectDir.exists() && projectDir.isDirectory() ) - { - try - { - FileUtils.deleteDirectory( projectDir ); - } - catch ( IOException e ) - { - // TODO: log this somewhere? - } - } - } - - public String getId() - { - return repository.getId(); - } - - public Set getRelatedArtifacts( ArtifactReference reference ) - throws ContentNotFoundException, LayoutException - { - File artifactFile = toFile( reference ); - File repoDir = artifactFile.getParentFile(); - - if ( !repoDir.exists() ) - { - throw new ContentNotFoundException( "Unable to get related artifacts using a non-existant directory: " - + repoDir.getAbsolutePath() ); - } - - if ( !repoDir.isDirectory() ) - { - throw new ContentNotFoundException( "Unable to get related artifacts using a non-directory: " - + repoDir.getAbsolutePath() ); - } - - Set foundArtifacts = new HashSet(); - - // First gather up the versions found as artifacts in the managed repository. - File repoFiles[] = repoDir.listFiles(); - for ( int i = 0; i < repoFiles.length; i++ ) - { - if ( repoFiles[i].isDirectory() ) - { - // Skip it. it's a directory. - continue; - } - - String relativePath = PathUtil.getRelative( repository.getLocation(), repoFiles[i] ); - - if ( filetypes.matchesArtifactPattern( relativePath ) ) - { - ArtifactReference artifact = toArtifactReference( relativePath ); - - // Test for related, groupId / artifactId / version must match. - if ( artifact.getGroupId().equals( reference.getGroupId() ) - && artifact.getArtifactId().equals( reference.getArtifactId() ) - && artifact.getVersion().equals( reference.getVersion() ) ) - { - foundArtifacts.add( artifact ); - } - } - } - - return foundArtifacts; - } - - public String getRepoRoot() - { - return repository.getLocation(); - } - - public ManagedRepositoryConfiguration getRepository() - { - return repository; - } - - /** - * Gather the Available Versions (on disk) for a specific Project Reference, based on filesystem - * information. - * - * @return the Set of available versions, based on the project reference. - * @throws LayoutException - * @throws LayoutException - */ - public Set getVersions( ProjectReference reference ) - throws ContentNotFoundException, LayoutException - { - String path = toMetadataPath( reference ); - - int idx = path.lastIndexOf( '/' ); - if ( idx > 0 ) - { - path = path.substring( 0, idx ); - } - - File repoDir = new File( repository.getLocation(), path ); - - if ( !repoDir.exists() ) - { - throw new ContentNotFoundException( "Unable to get Versions on a non-existant directory: " - + repoDir.getAbsolutePath() ); - } - - if ( !repoDir.isDirectory() ) - { - throw new ContentNotFoundException( "Unable to get Versions on a non-directory: " - + repoDir.getAbsolutePath() ); - } - - Set foundVersions = new HashSet(); - VersionedReference versionRef = new VersionedReference(); - versionRef.setGroupId( reference.getGroupId() ); - versionRef.setArtifactId( reference.getArtifactId() ); - - File repoFiles[] = repoDir.listFiles(); - for ( int i = 0; i < repoFiles.length; i++ ) - { - if ( !repoFiles[i].isDirectory() ) - { - // Skip it. not a directory. - continue; - } - - // Test if dir has an artifact, which proves to us that it is a valid version directory. - String version = repoFiles[i].getName(); - versionRef.setVersion( version ); - - if ( hasArtifact( versionRef ) ) - { - // Found an artifact, must be a valid version. - foundVersions.add( version ); - } - } - - return foundVersions; - } - - public Set getVersions( VersionedReference reference ) - throws ContentNotFoundException, LayoutException - { - String path = toMetadataPath( reference ); - - int idx = path.lastIndexOf( '/' ); - if ( idx > 0 ) - { - path = path.substring( 0, idx ); - } - - File repoDir = new File( repository.getLocation(), path ); - - if ( !repoDir.exists() ) - { - throw new ContentNotFoundException( "Unable to get versions on a non-existant directory: " - + repoDir.getAbsolutePath() ); - } - - if ( !repoDir.isDirectory() ) - { - throw new ContentNotFoundException( "Unable to get versions on a non-directory: " - + repoDir.getAbsolutePath() ); - } - - Set foundVersions = new HashSet(); - - // First gather up the versions found as artifacts in the managed repository. - File repoFiles[] = repoDir.listFiles(); - for ( int i = 0; i < repoFiles.length; i++ ) - { - if ( repoFiles[i].isDirectory() ) - { - // Skip it. it's a directory. - continue; - } - - String relativePath = PathUtil.getRelative( repository.getLocation(), repoFiles[i] ); - - if ( filetypes.matchesDefaultExclusions( relativePath ) ) - { - // Skip it, it's metadata or similar - continue; - } - - if ( filetypes.matchesArtifactPattern( relativePath ) ) - { - ArtifactReference artifact = toArtifactReference( relativePath ); - - foundVersions.add( artifact.getVersion() ); - } - } - - return foundVersions; - } - - public boolean hasContent( ArtifactReference reference ) - { - File artifactFile = toFile( reference ); - return artifactFile.exists() && artifactFile.isFile(); - } - - public boolean hasContent( ProjectReference reference ) - { - try - { - Set versions = getVersions( reference ); - return !versions.isEmpty(); - } - catch ( ContentNotFoundException e ) - { - return false; - } - catch ( LayoutException e ) - { - return false; - } - } - - public boolean hasContent( VersionedReference reference ) - { - try - { - return ( getFirstArtifact( reference ) != null ); - } - catch ( IOException e ) - { - return false; - } - catch ( LayoutException e ) - { - return false; - } - } - - public void setRepository( ManagedRepositoryConfiguration repository ) - { - this.repository = repository; - } - - /** - * Convert a path to an artifact reference. - * - * @param path the path to convert. (relative or full location path) - * @throws LayoutException if the path cannot be converted to an artifact reference. - */ - @Override - public ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - if ( ( path != null ) && path.startsWith( repository.getLocation() ) ) - { - return super.toArtifactReference( path.substring( repository.getLocation().length() ) ); - } - - return super.toArtifactReference( path ); - } - - public File toFile( ArtifactReference reference ) - { - return new File( repository.getLocation(), toPath( reference ) ); - } - - public File toFile( ArchivaArtifact reference ) - { - return new File( repository.getLocation(), toPath( reference ) ); - } - - /** - * Get the first Artifact found in the provided VersionedReference location. - * - * @param managedRepository the repository to search within. - * @param reference the reference to the versioned reference to search within - * @return the ArtifactReference to the first artifact located within the versioned reference. or null if - * no artifact was found within the versioned reference. - * @throws IOException if the versioned reference is invalid (example: doesn't exist, or isn't a directory) - * @throws LayoutException - */ - private ArtifactReference getFirstArtifact( VersionedReference reference ) - throws LayoutException, IOException - { - String path = toMetadataPath( reference ); - - int idx = path.lastIndexOf( '/' ); - if ( idx > 0 ) - { - path = path.substring( 0, idx ); - } - - File repoDir = new File( repository.getLocation(), path ); - - if ( !repoDir.exists() ) - { - throw new IOException( "Unable to gather the list of snapshot versions on a non-existant directory: " - + repoDir.getAbsolutePath() ); - } - - if ( !repoDir.isDirectory() ) - { - throw new IOException( "Unable to gather the list of snapshot versions on a non-directory: " - + repoDir.getAbsolutePath() ); - } - - File repoFiles[] = repoDir.listFiles(); - for ( int i = 0; i < repoFiles.length; i++ ) - { - if ( repoFiles[i].isDirectory() ) - { - // Skip it. it's a directory. - continue; - } - - String relativePath = PathUtil.getRelative( repository.getLocation(), repoFiles[i] ); - - if ( filetypes.matchesArtifactPattern( relativePath ) ) - { - ArtifactReference artifact = toArtifactReference( relativePath ); - - return artifact; - } - } - - // No artifact was found. - return null; - } - - private boolean hasArtifact( VersionedReference reference ) - throws LayoutException - { - try - { - return ( getFirstArtifact( reference ) != null ); - } - catch ( IOException e ) - { - return false; - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java deleted file mode 100644 index 6b59d86f3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java +++ /dev/null @@ -1,457 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.common.utils.PathUtil; -import org.apache.maven.archiva.configuration.FileTypes; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.ProjectReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.ContentNotFoundException; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; - -import java.io.File; -import java.util.HashSet; -import java.util.Set; - -/** - * ManagedLegacyRepositoryContent - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @todo no need to be a component when filetypes, legacy path parser is not - * - * @plexus.component - * role="org.apache.maven.archiva.repository.ManagedRepositoryContent" - * role-hint="legacy" - * instantiation-strategy="per-lookup" - */ -public class ManagedLegacyRepositoryContent - extends AbstractLegacyRepositoryContent - implements ManagedRepositoryContent -{ - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - private ManagedRepositoryConfiguration repository; - - public void deleteVersion( VersionedReference reference ) - throws ContentNotFoundException - { - File groupDir = new File( repository.getLocation(), reference.getGroupId() ); - - if ( !groupDir.exists() ) - { - throw new ContentNotFoundException( "Unable to get versions using a non-existant groupId directory: " - + groupDir.getAbsolutePath() ); - } - - if ( !groupDir.isDirectory() ) - { - throw new ContentNotFoundException( "Unable to get versions using a non-directory: " - + groupDir.getAbsolutePath() ); - } - - // First gather up the versions found as artifacts in the managed repository. - File typeDirs[] = groupDir.listFiles(); - for ( File typeDir : typeDirs ) - { - if ( !typeDir.isDirectory() ) - { - // Skip it, we only care about directories. - continue; - } - - if ( !typeDir.getName().endsWith( "s" ) ) - { - // Skip it, we only care about directories that end in "s". - } - - deleteVersions( typeDir, reference ); - } - } - - private void deleteVersions( File typeDir, VersionedReference reference ) - { - File repoFiles[] = typeDir.listFiles(); - for ( File repoFile : repoFiles ) - { - if ( repoFile.isDirectory() ) - { - // Skip it. it's a directory. - continue; - } - - String relativePath = PathUtil.getRelative( repository.getLocation(), repoFile ); - - if ( filetypes.matchesArtifactPattern( relativePath ) ) - { - try - { - ArtifactReference artifact = toArtifactReference( relativePath ); - if ( StringUtils.equals( artifact.getArtifactId(), reference.getArtifactId() ) - && StringUtils.equals( artifact.getVersion(), reference.getVersion() ) ) - { - repoFile.delete(); - deleteSupportFiles( repoFile ); - } - } - catch ( LayoutException e ) - { - /* don't fail the process if there is a bad artifact within the directory. */ - } - } - } - } - - private void deleteSupportFiles( File repoFile ) - { - deleteSupportFile( repoFile, ".sha1" ); - deleteSupportFile( repoFile, ".md5" ); - deleteSupportFile( repoFile, ".asc" ); - deleteSupportFile( repoFile, ".gpg" ); - } - - private void deleteSupportFile( File repoFile, String supportExtension ) - { - File supportFile = new File( repoFile.getAbsolutePath() + supportExtension ); - if ( supportFile.exists() && supportFile.isFile() ) - { - supportFile.delete(); - } - } - - public String getId() - { - return repository.getId(); - } - - public Set getRelatedArtifacts( ArtifactReference reference ) - throws ContentNotFoundException, LayoutException - { - File artifactFile = toFile( reference ); - File repoDir = artifactFile.getParentFile(); - - if ( !repoDir.exists() ) - { - throw new ContentNotFoundException( "Unable to get related artifacts using a non-existant directory: " - + repoDir.getAbsolutePath() ); - } - - if ( !repoDir.isDirectory() ) - { - throw new ContentNotFoundException( "Unable to get related artifacts using a non-directory: " - + repoDir.getAbsolutePath() ); - } - - Set foundArtifacts = new HashSet(); - - // First gather up the versions found as artifacts in the managed repository. - File projectParentDir = repoDir.getParentFile(); - File typeDirs[] = projectParentDir.listFiles(); - for ( File typeDir : typeDirs ) - { - if ( !typeDir.isDirectory() ) - { - // Skip it, we only care about directories. - continue; - } - - if ( !typeDir.getName().endsWith( "s" ) ) - { - // Skip it, we only care about directories that end in "s". - } - - getRelatedArtifacts( typeDir, reference, foundArtifacts ); - } - - return foundArtifacts; - } - - public String getRepoRoot() - { - return repository.getLocation(); - } - - public ManagedRepositoryConfiguration getRepository() - { - return repository; - } - - public Set getVersions( ProjectReference reference ) - throws ContentNotFoundException - { - File groupDir = new File( repository.getLocation(), reference.getGroupId() ); - - if ( !groupDir.exists() ) - { - throw new ContentNotFoundException( "Unable to get versions using a non-existant groupId directory: " - + groupDir.getAbsolutePath() ); - } - - if ( !groupDir.isDirectory() ) - { - throw new ContentNotFoundException( "Unable to get versions using a non-directory: " - + groupDir.getAbsolutePath() ); - } - - Set foundVersions = new HashSet(); - - // First gather up the versions found as artifacts in the managed repository. - File typeDirs[] = groupDir.listFiles(); - for ( File typeDir : typeDirs ) - { - if ( !typeDir.isDirectory() ) - { - // Skip it, we only care about directories. - continue; - } - - if ( !typeDir.getName().endsWith( "s" ) ) - { - // Skip it, we only care about directories that end in "s". - } - - getProjectVersions( typeDir, reference, foundVersions ); - } - - return foundVersions; - } - - public Set getVersions( VersionedReference reference ) - throws ContentNotFoundException - { - File groupDir = new File( repository.getLocation(), reference.getGroupId() ); - - if ( !groupDir.exists() ) - { - throw new ContentNotFoundException( "Unable to get versions using a non-existant groupId directory: " - + groupDir.getAbsolutePath() ); - } - - if ( !groupDir.isDirectory() ) - { - throw new ContentNotFoundException( "Unable to get versions using a non-directory: " - + groupDir.getAbsolutePath() ); - } - - Set foundVersions = new HashSet(); - - // First gather up the versions found as artifacts in the managed repository. - File typeDirs[] = groupDir.listFiles(); - for ( File typeDir : typeDirs ) - { - if ( !typeDir.isDirectory() ) - { - // Skip it, we only care about directories. - continue; - } - - if ( !typeDir.getName().endsWith( "s" ) ) - { - // Skip it, we only care about directories that end in "s". - } - - getVersionedVersions( typeDir, reference, foundVersions ); - } - - return foundVersions; - } - - public boolean hasContent( ArtifactReference reference ) - { - File artifactFile = toFile( reference ); - return artifactFile.exists() && artifactFile.isFile(); - } - - public boolean hasContent( ProjectReference reference ) - { - try - { - Set versions = getVersions( reference ); - return CollectionUtils.isNotEmpty( versions ); - } - catch ( ContentNotFoundException e ) - { - return false; - } - } - - public boolean hasContent( VersionedReference reference ) - { - try - { - Set versions = getVersions( reference ); - return CollectionUtils.isNotEmpty( versions ); - } - catch ( ContentNotFoundException e ) - { - return false; - } - } - - public void setRepository( ManagedRepositoryConfiguration repository ) - { - this.repository = repository; - } - - /** - * Convert a path to an artifact reference. - * - * @param path the path to convert. (relative or full location path) - * @throws LayoutException if the path cannot be converted to an artifact reference. - */ - @Override - public ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - if ( ( path != null ) && path.startsWith( repository.getLocation() ) ) - { - return super.toArtifactReference( path.substring( repository.getLocation().length() ) ); - } - - return super.toArtifactReference( path ); - } - - public File toFile( ArchivaArtifact reference ) - { - return new File( repository.getLocation(), toPath( reference ) ); - } - - public File toFile( ArtifactReference reference ) - { - return new File( repository.getLocation(), toPath( reference ) ); - } - - public String toMetadataPath( ProjectReference reference ) - { - // No metadata present in legacy repository. - return null; - } - - public String toMetadataPath( VersionedReference reference ) - { - // No metadata present in legacy repository. - return null; - } - - private void getProjectVersions( File typeDir, ProjectReference reference, Set foundVersions ) - { - File repoFiles[] = typeDir.listFiles(); - for ( File repoFile : repoFiles ) - { - if ( repoFile.isDirectory() ) - { - // Skip it. it's a directory. - continue; - } - - String relativePath = PathUtil.getRelative( repository.getLocation(), repoFile ); - - if ( filetypes.matchesArtifactPattern( relativePath ) ) - { - try - { - ArtifactReference artifact = toArtifactReference( relativePath ); - if ( StringUtils.equals( artifact.getArtifactId(), reference.getArtifactId() ) ) - { - foundVersions.add( artifact.getVersion() ); - } - } - catch ( LayoutException e ) - { - /* don't fail the process if there is a bad artifact within the directory. */ - } - } - } - } - - private void getRelatedArtifacts( File typeDir, ArtifactReference reference, Set foundArtifacts ) - { - File repoFiles[] = typeDir.listFiles(); - for ( int i = 0; i < repoFiles.length; i++ ) - { - if ( repoFiles[i].isDirectory() ) - { - // Skip it. it's a directory. - continue; - } - - String relativePath = PathUtil.getRelative( repository.getLocation(), repoFiles[i] ); - - if ( filetypes.matchesArtifactPattern( relativePath ) ) - { - try - { - ArtifactReference artifact = toArtifactReference( relativePath ); - if ( StringUtils.equals( artifact.getArtifactId(), reference.getArtifactId() ) - && artifact.getVersion().startsWith( reference.getVersion() ) ) - { - foundArtifacts.add( artifact ); - } - } - catch ( LayoutException e ) - { - /* don't fail the process if there is a bad artifact within the directory. */ - } - } - } - } - - private void getVersionedVersions( File typeDir, VersionedReference reference, Set foundVersions ) - { - File repoFiles[] = typeDir.listFiles(); - for ( int i = 0; i < repoFiles.length; i++ ) - { - if ( repoFiles[i].isDirectory() ) - { - // Skip it. it's a directory. - continue; - } - - String relativePath = PathUtil.getRelative( repository.getLocation(), repoFiles[i] ); - - if ( filetypes.matchesArtifactPattern( relativePath ) ) - { - try - { - ArtifactReference artifact = toArtifactReference( relativePath ); - if ( StringUtils.equals( artifact.getArtifactId(), reference.getArtifactId() ) - && artifact.getVersion().startsWith( reference.getVersion() ) ) - { - foundVersions.add( artifact.getVersion() ); - } - } - catch ( LayoutException e ) - { - /* don't fail the process if there is a bad artifact within the directory. */ - } - } - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/PathParser.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/PathParser.java deleted file mode 100644 index 08a7afc62..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/PathParser.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * PathParser interface. - * - * @author nicolas de loof - * @version $Id$ - */ -public interface PathParser -{ - - /** - * Take a path and get the ArtifactReference associated with it. - * - * @param path the relative path to parse. - * @return the ArtifactReference for the provided path. (never null) - * @throws LayoutException if there was a problem parsing the path. - */ - public ArtifactReference toArtifactReference( String path ) - throws LayoutException; - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RemoteDefaultRepositoryContent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RemoteDefaultRepositoryContent.java deleted file mode 100644 index b8bbf725f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RemoteDefaultRepositoryContent.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.RepositoryURL; -import org.apache.maven.archiva.repository.RemoteRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * RemoteDefaultRepositoryContent - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component - * role="org.apache.maven.archiva.repository.RemoteRepositoryContent" - * role-hint="default" - * instantiation-strategy="per-lookup" - */ -public class RemoteDefaultRepositoryContent - extends AbstractDefaultRepositoryContent - implements RemoteRepositoryContent -{ - private RemoteRepositoryConfiguration repository; - - public String getId() - { - return repository.getId(); - } - - public RemoteRepositoryConfiguration getRepository() - { - return repository; - } - - public RepositoryURL getURL() - { - return new RepositoryURL( repository.getUrl() ); - } - - public void setRepository( RemoteRepositoryConfiguration repository ) - { - this.repository = repository; - } - - /** - * Convert a path to an artifact reference. - * - * @param path the path to convert. (relative or full url path) - * @throws LayoutException if the path cannot be converted to an artifact reference. - */ - @Override - public ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - if ( ( path != null ) && path.startsWith( repository.getUrl() ) ) - { - return super.toArtifactReference( path.substring( repository.getUrl().length() ) ); - } - - return super.toArtifactReference( path ); - } - - public RepositoryURL toURL( ArtifactReference reference ) - { - String url = repository.getUrl() + toPath( reference ); - return new RepositoryURL( url ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RemoteLegacyRepositoryContent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RemoteLegacyRepositoryContent.java deleted file mode 100644 index 13be1f0fe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RemoteLegacyRepositoryContent.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.RepositoryURL; -import org.apache.maven.archiva.repository.RemoteRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * RemoteLegacyRepositoryContent - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @todo no need to be a component once legacy path parser is not - * - * @plexus.component - * role="org.apache.maven.archiva.repository.RemoteRepositoryContent" - * role-hint="legacy" - * instantiation-strategy="per-lookup" - */ -public class RemoteLegacyRepositoryContent - extends AbstractLegacyRepositoryContent - implements RemoteRepositoryContent -{ - private RemoteRepositoryConfiguration repository; - - public String getId() - { - return repository.getId(); - } - - public RemoteRepositoryConfiguration getRepository() - { - return repository; - } - - public RepositoryURL getURL() - { - return new RepositoryURL( repository.getUrl() ); - } - - public void setRepository( RemoteRepositoryConfiguration repository ) - { - this.repository = repository; - } - - /** - * Convert a path to an artifact reference. - * - * @param path the path to convert. (relative or full url path) - * @throws LayoutException if the path cannot be converted to an artifact reference. - */ - @Override - public ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - if ( path.startsWith( repository.getUrl() ) ) - { - return super.toArtifactReference( path.substring( repository.getUrl().length() ) ); - } - - return super.toArtifactReference( path ); - } - - public RepositoryURL toURL( ArtifactReference reference ) - { - String url = repository.getUrl() + toPath( reference ); - return new RepositoryURL( url ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java deleted file mode 100644 index be97afde8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java +++ /dev/null @@ -1,233 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; -import org.apache.maven.archiva.repository.metadata.MetadataTools; - -/** - * RepositoryRequest is used to determine the type of request that is incoming, and convert it to an appropriate - * ArtifactReference. - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @todo no need to be a component once legacy path parser is not - * - * @plexus.component - * role="org.apache.maven.archiva.repository.content.RepositoryRequest" - */ -public class RepositoryRequest -{ - private PathParser defaultPathParser = new DefaultPathParser(); - - /** - * @plexus.requirement role-hint="legacy" - */ - private PathParser legacyPathParser; - - /** - * Takes an incoming requested path (in "/" format) and gleans the layout - * and ArtifactReference appropriate for that content. - * - * @param requestedPath the relative path to the content. - * @return the ArtifactReference for the requestedPath. - * @throws LayoutException if the request path is not layout valid. - */ - public ArtifactReference toArtifactReference( String requestedPath ) - throws LayoutException - { - if ( StringUtils.isBlank( requestedPath ) ) - { - throw new LayoutException( "Blank request path is not a valid." ); - } - - String path = requestedPath; - while ( path.startsWith( "/" ) ) - { - path = path.substring( 1 ); - - // Only slash? that's bad, mmm-kay? - if ( "/".equals( path ) ) - { - throw new LayoutException( "Invalid request path: Slash only." ); - } - } - - if ( isDefault( path ) ) - { - return defaultPathParser.toArtifactReference( path ); - } - else if ( isLegacy( path ) ) - { - return legacyPathParser.toArtifactReference( path ); - } - else - { - throw new LayoutException( "Not a valid request path layout, too short." ); - } - } - - /** - *

- * Tests the path to see if it conforms to the expectations of a metadata request. - *

- *

- * NOTE: This does a cursory check on the path's last element. A result of true - * from this method is not a guarantee that the metadata is in a valid format, or - * that it even contains data. - *

- * - * @param requestedPath the path to test. - * @return true if the requestedPath is likely a metadata request. - */ - public boolean isMetadata( String requestedPath ) - { - return requestedPath.endsWith( "/" + MetadataTools.MAVEN_METADATA ); - } - - /** - *

- * Tests the path to see if it conforms to the expectations of a support file request. - *

- *

- * Tests for .sha1, .md5, .asc, and .php. - *

- *

- * NOTE: This does a cursory check on the path's extension only. A result of true - * from this method is not a guarantee that the support resource is in a valid format, or - * that it even contains data. - *

- * - * @param requestedPath the path to test. - * @return true if the requestedPath is likely that of a support file request. - */ - public boolean isSupportFile( String requestedPath ) - { - int idx = requestedPath.lastIndexOf( '.' ); - if ( idx <= 0 ) - { - return false; - } - - String ext = requestedPath.substring( idx ); - return ( ".sha1".equals( ext ) || ".md5".equals( ext ) || ".asc".equals( ext ) || ".pgp".equals( ext ) ); - } - - /** - *

- * Tests the path to see if it conforms to the expectations of a default layout request. - *

- *

- * NOTE: This does a cursory check on the count of path elements only. A result of - * true from this method is not a guarantee that the path sections are valid and - * can be resolved to an artifact reference. use {@link #toArtifactReference(String)} - * if you want a more complete analysis of the validity of the path. - *

- * - * @param requestedPath the path to test. - * @return true if the requestedPath is likely that of a default layout request. - */ - public boolean isDefault( String requestedPath ) - { - if ( StringUtils.isBlank( requestedPath ) ) - { - return false; - } - - String pathParts[] = StringUtils.splitPreserveAllTokens( requestedPath, '/' ); - return pathParts.length > 3; - } - - /** - *

- * Tests the path to see if it conforms to the expectations of a legacy layout request. - *

- *

- * NOTE: This does a cursory check on the count of path elements only. A result of - * true from this method is not a guarantee that the path sections are valid and - * can be resolved to an artifact reference. use {@link #toArtifactReference(String)} - * if you want a more complete analysis of the validity of the path. - *

- * - * @param requestedPath the path to test. - * @return true if the requestedPath is likely that of a legacy layout request. - */ - public boolean isLegacy( String requestedPath ) - { - if ( StringUtils.isBlank( requestedPath ) ) - { - return false; - } - - String pathParts[] = StringUtils.splitPreserveAllTokens( requestedPath, '/' ); - return pathParts.length == 3; - } - - /** - * Adjust the requestedPath to conform to the native layout of the provided {@link ManagedRepositoryContent}. - * - * @param requestedPath the incoming requested path. - * @param repository the repository to adjust to. - * @return the adjusted (to native) path. - * @throws LayoutException if the path cannot be parsed. - */ - public String toNativePath( String requestedPath, ManagedRepositoryContent repository ) throws LayoutException - { - if ( StringUtils.isBlank( requestedPath ) ) - { - throw new LayoutException( "Request Path is blank." ); - } - - String referencedResource = requestedPath; - // No checksum by default. - String supportfile = ""; - - // Figure out support file, and actual referencedResource. - if( isSupportFile( requestedPath ) ) - { - int idx = requestedPath.lastIndexOf( '.' ); - referencedResource = requestedPath.substring( 0, idx ); - supportfile = requestedPath.substring( idx ); - } - - if ( isMetadata( referencedResource ) ) - { - if ( repository instanceof ManagedLegacyRepositoryContent ) - { - throw new LayoutException( "Cannot translate metadata request to legacy layout." ); - } - - /* Nothing to translate. - * Default layout is the only layout that can contain maven-metadata.xml files, and - * if the managedRepository is layout legacy, this request would never occur. - */ - return requestedPath; - } - - // Treat as an artifact reference. - ArtifactReference ref = toArtifactReference( referencedResource ); - String adjustedPath = repository.toPath( ref ); - return adjustedPath + supportfile; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/events/RepositoryListener.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/events/RepositoryListener.java deleted file mode 100644 index f725071ab..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/events/RepositoryListener.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.apache.maven.archiva.repository.events; - -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; - -/* - * 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. - */ - -/** - * Listen to events on the repository. This class is a stopgap - * refactoring measure until an event bus is in place to handle - * generic events such as these. - */ -public interface RepositoryListener -{ - /** - * Event for the deletion of a given artifact. - * @param artifactPath the path to the artifact that was deleted. - */ - void deleteArtifact( ManagedRepositoryContent repository, ArchivaArtifact artifact ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/layout/LayoutException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/layout/LayoutException.java deleted file mode 100644 index e5c7c2cee..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/layout/LayoutException.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.apache.maven.archiva.repository.layout; - -/* - * 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; - -/** - * LayoutException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class LayoutException extends ArchivaException -{ - public LayoutException( String message, Throwable cause ) - { - super( message, cause ); - } - - public LayoutException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java deleted file mode 100644 index 06e387416..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java +++ /dev/null @@ -1,952 +0,0 @@ -package org.apache.maven.archiva.repository.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 org.apache.archiva.checksum.ChecksumAlgorithm; -import org.apache.archiva.checksum.ChecksummedFile; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.math.NumberUtils; -import org.apache.commons.lang.time.DateUtils; -import org.apache.maven.archiva.common.utils.PathUtil; -import org.apache.maven.archiva.common.utils.VersionComparator; -import org.apache.maven.archiva.common.utils.VersionUtil; -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.ProxyConnectorConfiguration; -import org.apache.maven.archiva.model.ArchivaRepositoryMetadata; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.Plugin; -import org.apache.maven.archiva.model.ProjectReference; -import org.apache.maven.archiva.model.SnapshotVersion; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.ContentNotFoundException; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.RemoteRepositoryContent; -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; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.regex.Matcher; -import org.apache.commons.io.FileUtils; - -/** - * MetadataTools - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.repository.metadata.MetadataTools" - */ -public class MetadataTools - implements RegistryListener, Initializable -{ - private static Logger log = LoggerFactory.getLogger( MetadataTools.class ); - - public static final String MAVEN_METADATA = "maven-metadata.xml"; - - private static final char PATH_SEPARATOR = '/'; - - private static final char GROUP_SEPARATOR = '.'; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - private ChecksumAlgorithm[] algorithms = new ChecksumAlgorithm[] { ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 }; - - private List artifactPatterns; - - private Map> proxies; - - private static final char NUMS[] = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; - - private SimpleDateFormat lastUpdatedFormat; - - public MetadataTools() - { - lastUpdatedFormat = new SimpleDateFormat( "yyyyMMddHHmmss" ); - lastUpdatedFormat.setTimeZone( DateUtils.UTC_TIME_ZONE ); - } - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isProxyConnector( propertyName ) ) - { - initConfigVariables(); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* nothing to do */ - } - - /** - * Gather the set of snapshot versions found in a particular versioned reference. - * - * @return the Set of snapshot artifact versions found. - * @throws LayoutException - * @throws ContentNotFoundException - */ - public Set gatherSnapshotVersions( ManagedRepositoryContent managedRepository, VersionedReference reference ) - throws LayoutException, IOException, ContentNotFoundException - { - Set foundVersions = managedRepository.getVersions( reference ); - - // Next gather up the referenced 'latest' versions found in any proxied repositories - // maven-metadata-${proxyId}.xml files that may be present. - - // Does this repository have a set of remote proxied repositories? - Set proxiedRepoIds = this.proxies.get( managedRepository.getId() ); - - if ( CollectionUtils.isNotEmpty( proxiedRepoIds ) ) - { - String baseVersion = VersionUtil.getBaseVersion( reference.getVersion() ); - baseVersion = baseVersion.substring( 0, baseVersion.indexOf( VersionUtil.SNAPSHOT ) - 1 ); - - // Add in the proxied repo version ids too. - Iterator it = proxiedRepoIds.iterator(); - while ( it.hasNext() ) - { - String proxyId = it.next(); - - ArchivaRepositoryMetadata proxyMetadata = readProxyMetadata( managedRepository, reference, proxyId ); - if ( proxyMetadata == null ) - { - // There is no proxy metadata, skip it. - continue; - } - - // Is there some snapshot info? - SnapshotVersion snapshot = proxyMetadata.getSnapshotVersion(); - if ( snapshot != null ) - { - String timestamp = snapshot.getTimestamp(); - int buildNumber = snapshot.getBuildNumber(); - - // Only interested in the timestamp + buildnumber. - if ( StringUtils.isNotBlank( timestamp ) && ( buildNumber > 0 ) ) - { - foundVersions.add( baseVersion + "-" + timestamp + "-" + buildNumber ); - } - } - } - } - - return foundVersions; - } - - /** - * Take a path to a maven-metadata.xml, and attempt to translate it to a VersionedReference. - * - * @param path - * @return - */ - public VersionedReference toVersionedReference( String path ) - throws RepositoryMetadataException - { - if ( !path.endsWith( "/" + MAVEN_METADATA ) ) - { - throw new RepositoryMetadataException( "Cannot convert to versioned reference, not a metadata file. " ); - } - - VersionedReference reference = new VersionedReference(); - - String normalizedPath = StringUtils.replace( path, "\\", "/" ); - String pathParts[] = StringUtils.split( normalizedPath, '/' ); - - int versionOffset = pathParts.length - 2; - int artifactIdOffset = versionOffset - 1; - int groupIdEnd = artifactIdOffset - 1; - - reference.setVersion( pathParts[versionOffset] ); - - if ( !hasNumberAnywhere( reference.getVersion() ) ) - { - // Scary check, but without it, all paths are version references; - throw new RepositoryMetadataException( - "Not a versioned reference, as version id on path has no number in it." ); - } - - reference.setArtifactId( pathParts[artifactIdOffset] ); - - StringBuffer gid = new StringBuffer(); - for ( int i = 0; i <= groupIdEnd; i++ ) - { - if ( i > 0 ) - { - gid.append( "." ); - } - gid.append( pathParts[i] ); - } - - reference.setGroupId( gid.toString() ); - - return reference; - } - - private boolean hasNumberAnywhere( String version ) - { - return StringUtils.indexOfAny( version, NUMS ) != ( -1 ); - } - - public ProjectReference toProjectReference( String path ) - throws RepositoryMetadataException - { - if ( !path.endsWith( "/" + MAVEN_METADATA ) ) - { - throw new RepositoryMetadataException( "Cannot convert to versioned reference, not a metadata file. " ); - } - - ProjectReference reference = new ProjectReference(); - - String normalizedPath = StringUtils.replace( path, "\\", "/" ); - String pathParts[] = StringUtils.split( normalizedPath, '/' ); - - // Assume last part of the path is the version. - - int artifactIdOffset = pathParts.length - 2; - int groupIdEnd = artifactIdOffset - 1; - - reference.setArtifactId( pathParts[artifactIdOffset] ); - - StringBuffer gid = new StringBuffer(); - for ( int i = 0; i <= groupIdEnd; i++ ) - { - if ( i > 0 ) - { - gid.append( "." ); - } - gid.append( pathParts[i] ); - } - - reference.setGroupId( gid.toString() ); - - return reference; - } - - public String toPath( ProjectReference reference ) - { - StringBuffer path = new StringBuffer(); - - path.append( formatAsDirectory( reference.getGroupId() ) ).append( PATH_SEPARATOR ); - path.append( reference.getArtifactId() ).append( PATH_SEPARATOR ); - path.append( MAVEN_METADATA ); - - return path.toString(); - } - - public String toPath( VersionedReference reference ) - { - StringBuffer path = new StringBuffer(); - - path.append( formatAsDirectory( reference.getGroupId() ) ).append( PATH_SEPARATOR ); - path.append( reference.getArtifactId() ).append( PATH_SEPARATOR ); - if ( reference.getVersion() != null ) - { - // add the version only if it is present - path.append( VersionUtil.getBaseVersion( reference.getVersion() ) ).append( PATH_SEPARATOR ); - } - path.append( MAVEN_METADATA ); - - return path.toString(); - } - - private String formatAsDirectory( String directory ) - { - return directory.replace( GROUP_SEPARATOR, PATH_SEPARATOR ); - } - - /** - * Adjusts a path for a metadata.xml file to its repository specific path. - * - * @param repository the repository to base new path off of. - * @param path the path to the metadata.xml file to adjust the name of. - * @return the newly adjusted path reference to the repository specific metadata path. - */ - public String getRepositorySpecificName( RemoteRepositoryContent repository, String path ) - { - return getRepositorySpecificName( repository.getId(), path ); - } - - /** - * Adjusts a path for a metadata.xml file to its repository specific path. - * - * @param proxyId the repository id to base new path off of. - * @param path the path to the metadata.xml file to adjust the name of. - * @return the newly adjusted path reference to the repository specific metadata path. - */ - public String getRepositorySpecificName( String proxyId, String path ) - { - StringBuffer ret = new StringBuffer(); - - int idx = path.lastIndexOf( "/" ); - if ( idx > 0 ) - { - ret.append( path.substring( 0, idx + 1 ) ); - } - - // TODO: need to filter out 'bad' characters from the proxy id. - ret.append( "maven-metadata-" ).append( proxyId ).append( ".xml" ); - - return ret.toString(); - } - - public void initialize() - throws InitializationException - { - this.artifactPatterns = new ArrayList(); - this.proxies = new HashMap>(); - initConfigVariables(); - - configuration.addChangeListener( this ); - } - - public ArchivaRepositoryMetadata readProxyMetadata( ManagedRepositoryContent managedRepository, - ProjectReference reference, String proxyId ) - { - String metadataPath = getRepositorySpecificName( proxyId, toPath( reference ) ); - File metadataFile = new File( managedRepository.getRepoRoot(), metadataPath ); - - if ( !metadataFile.exists() || !metadataFile.isFile() ) - { - // Nothing to do. return null. - return null; - } - - try - { - return RepositoryMetadataReader.read( metadataFile ); - } - catch ( RepositoryMetadataException e ) - { - // TODO: [monitor] consider a monitor for this event. - // TODO: consider a read-redo on monitor return code? - log.warn( "Unable to read metadata: " + metadataFile.getAbsolutePath(), e ); - return null; - } - } - - public ArchivaRepositoryMetadata readProxyMetadata( ManagedRepositoryContent managedRepository, - String logicalResource, String proxyId ) - { - String metadataPath = getRepositorySpecificName( proxyId, logicalResource ); - File metadataFile = new File( managedRepository.getRepoRoot(), metadataPath ); - - if ( !metadataFile.exists() || !metadataFile.isFile() ) - { - // Nothing to do. return null. - return null; - } - - try - { - return RepositoryMetadataReader.read( metadataFile ); - } - catch ( RepositoryMetadataException e ) - { - // TODO: [monitor] consider a monitor for this event. - // TODO: consider a read-redo on monitor return code? - log.warn( "Unable to read metadata: " + metadataFile.getAbsolutePath(), e ); - return null; - } - } - - public ArchivaRepositoryMetadata readProxyMetadata( ManagedRepositoryContent managedRepository, - VersionedReference reference, String proxyId ) - { - String metadataPath = getRepositorySpecificName( proxyId, toPath( reference ) ); - File metadataFile = new File( managedRepository.getRepoRoot(), metadataPath ); - - if ( !metadataFile.exists() || !metadataFile.isFile() ) - { - // Nothing to do. return null. - return null; - } - - try - { - return RepositoryMetadataReader.read( metadataFile ); - } - catch ( RepositoryMetadataException e ) - { - // TODO: [monitor] consider a monitor for this event. - // TODO: consider a read-redo on monitor return code? - log.warn( "Unable to read metadata: " + metadataFile.getAbsolutePath(), e ); - return null; - } - } - - public void updateMetadata( ManagedRepositoryContent managedRepository, String logicalResource) throws RepositoryMetadataException - { - final File metadataFile = new File(managedRepository.getRepoRoot(), logicalResource); - ArchivaRepositoryMetadata metadata = null; - - //Gather and merge all metadata available - List metadatas = getMetadatasForManagedRepository(managedRepository, logicalResource); - for (ArchivaRepositoryMetadata proxiedMetadata : metadatas) - { - if (metadata == null) - { - metadata = proxiedMetadata; - continue; - } - metadata = RepositoryMetadataMerge.merge(metadata, proxiedMetadata); - } - - if (metadata == null) - { - log.debug("No metadata to update for " + logicalResource); - return; - } - - Set availableVersions = new HashSet(); - List metadataAvailableVersions = metadata.getAvailableVersions(); - if (metadataAvailableVersions != null) - { - availableVersions.addAll(metadataAvailableVersions); - } - availableVersions = findPossibleVersions(availableVersions, metadataFile.getParentFile()); - - if (availableVersions.size() > 0) - { - updateMetadataVersions(availableVersions, metadata); - } - - RepositoryMetadataWriter.write(metadata, metadataFile); - - ChecksummedFile checksum = new ChecksummedFile( metadataFile ); - checksum.fixChecksums( algorithms ); - } - - /** - * Skims the parent directory of a metadata in vain hope of finding - * subdirectories that contain poms. - * - * @param metadataParentDirectory - * @return origional set plus newley found versions - */ - private Set findPossibleVersions(Set versions, File metadataParentDirectory) - { - Set result = new HashSet(versions); - for (File directory : metadataParentDirectory.listFiles()) - { - if (directory.isDirectory()) - { - for (File possiblePom : directory.listFiles()) - { - if (possiblePom.getName().endsWith(".pom")) - { - result.add(directory.getName()); - } - } - } - } - return result; - } - - private List getMetadatasForManagedRepository( ManagedRepositoryContent managedRepository, String logicalResource ) - { - List metadatas = new ArrayList(); - File file = new File(managedRepository.getRepoRoot(), logicalResource); - if (file.exists()) - { - try - { - ArchivaRepositoryMetadata existingMetadata = RepositoryMetadataReader.read(file); - if (existingMetadata != null) - { - metadatas.add(existingMetadata); - } - } - catch (RepositoryMetadataException e) - { - log.debug("Could not read metadata at " + file.getAbsolutePath() + ". Metadata will be removed."); - FileUtils.deleteQuietly(file); - } - } - - Set proxyIds = proxies.get(managedRepository.getId()); - if (proxyIds != null) - { - for (String proxyId : proxyIds) - { - ArchivaRepositoryMetadata proxyMetadata = readProxyMetadata( managedRepository, logicalResource, proxyId ); - if (proxyMetadata != null) - { - metadatas.add(proxyMetadata); - } - } - } - - return metadatas; - } - - - /** - * Update the metadata to represent the all versions/plugins of - * the provided groupId:artifactId project or group reference, - * based off of information present in the repository, - * the maven-metadata.xml files, and the proxy/repository specific - * metadata file contents. - * - * We must treat this as a group or a project metadata file as there is no way to know in advance - * - * @deprecated - * @param managedRepository the managed repository where the metadata is kept. - * @param reference the reference to update. - * @throws LayoutException - * @throws RepositoryMetadataException - * @throws IOException - * @throws ContentNotFoundException - */ - public void updateMetadata( ManagedRepositoryContent managedRepository, ProjectReference reference ) - throws LayoutException, RepositoryMetadataException, IOException, ContentNotFoundException - { - File metadataFile = new File( managedRepository.getRepoRoot(), toPath( reference ) ); - - long lastUpdated = getExistingLastUpdated( metadataFile ); - - ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata(); - metadata.setGroupId( reference.getGroupId() ); - metadata.setArtifactId( reference.getArtifactId() ); - - // Gather up all versions found in the managed repository. - Set allVersions = managedRepository.getVersions( reference ); - - // Gather up all plugins found in the managed repository. - // TODO: do we know this information instead? -// Set allPlugins = managedRepository.getPlugins( reference ); - Set allPlugins; - if ( metadataFile.exists() ) - { - allPlugins = new LinkedHashSet( RepositoryMetadataReader.read( metadataFile ).getPlugins() ); - } - else - { - allPlugins = new LinkedHashSet(); - } - - // Does this repository have a set of remote proxied repositories? - Set proxiedRepoIds = this.proxies.get( managedRepository.getId() ); - - if ( CollectionUtils.isNotEmpty( proxiedRepoIds ) ) - { - // Add in the proxied repo version ids too. - Iterator it = proxiedRepoIds.iterator(); - while ( it.hasNext() ) - { - String proxyId = it.next(); - - ArchivaRepositoryMetadata proxyMetadata = readProxyMetadata( managedRepository, reference, proxyId ); - if ( proxyMetadata != null ) - { - allVersions.addAll( proxyMetadata.getAvailableVersions() ); - allPlugins.addAll( proxyMetadata.getPlugins() ); - long proxyLastUpdated = getLastUpdated( proxyMetadata ); - - lastUpdated = Math.max( lastUpdated, proxyLastUpdated ); - } - } - } - - if ( !allVersions.isEmpty() ) - { - updateMetadataVersions( allVersions ,metadata ); - } - else - { - // Add the plugins to the metadata model. - metadata.setPlugins( new ArrayList( allPlugins ) ); - - // artifact ID was actually the last part of the group - metadata.setGroupId( metadata.getGroupId() + "." + metadata.getArtifactId() ); - metadata.setArtifactId( null ); - } - - if ( lastUpdated > 0 ) - { - metadata.setLastUpdatedTimestamp( toLastUpdatedDate( lastUpdated ) ); - } - - // Save the metadata model to disk. - RepositoryMetadataWriter.write( metadata, metadataFile ); - ChecksummedFile checksum = new ChecksummedFile( metadataFile ); - checksum.fixChecksums( algorithms ); - } - - private void updateMetadataVersions(Collection allVersions, ArchivaRepositoryMetadata metadata) - { - // Sort the versions - List sortedVersions = new ArrayList(allVersions); - Collections.sort(sortedVersions, VersionComparator.getInstance()); - - // Split the versions into released and snapshots. - List releasedVersions = new ArrayList(); - List snapshotVersions = new ArrayList(); - - for (String version : sortedVersions) - { - if (VersionUtil.isSnapshot(version)) - { - snapshotVersions.add(version); - } - else - { - releasedVersions.add(version); - } - } - - Collections.sort(releasedVersions, VersionComparator.getInstance()); - Collections.sort(snapshotVersions, VersionComparator.getInstance()); - - String latestVersion = sortedVersions.get(sortedVersions.size() - 1); - String releaseVersion = null; - - if (CollectionUtils.isNotEmpty(releasedVersions)) - { - releaseVersion = releasedVersions.get(releasedVersions.size() - 1); - } - - // Add the versions to the metadata model. - metadata.setAvailableVersions(sortedVersions); - - metadata.setLatestVersion(latestVersion); - metadata.setReleasedVersion(releaseVersion); - } - - private Date toLastUpdatedDate( long lastUpdated ) - { - Calendar cal = Calendar.getInstance( DateUtils.UTC_TIME_ZONE ); - cal.setTimeInMillis( lastUpdated ); - - return cal.getTime(); - } - - private long toLastUpdatedLong( String timestampString ) - { - try - { - Date date = lastUpdatedFormat.parse( timestampString ); - Calendar cal = Calendar.getInstance( DateUtils.UTC_TIME_ZONE ); - cal.setTime( date ); - - return cal.getTimeInMillis(); - } - catch ( ParseException e ) - { - return 0; - } - } - - private long getLastUpdated( ArchivaRepositoryMetadata metadata ) - { - if ( metadata == null ) - { - // Doesn't exist. - return 0; - } - - try - { - String lastUpdated = metadata.getLastUpdated(); - if ( StringUtils.isBlank( lastUpdated ) ) - { - // Not set. - return 0; - } - - Date lastUpdatedDate = lastUpdatedFormat.parse( lastUpdated ); - return lastUpdatedDate.getTime(); - } - catch ( ParseException e ) - { - // Bad format on the last updated string. - return 0; - } - } - - private long getExistingLastUpdated( File metadataFile ) - { - if ( !metadataFile.exists() ) - { - // Doesn't exist. - return 0; - } - - try - { - ArchivaRepositoryMetadata metadata = RepositoryMetadataReader.read( metadataFile ); - - return getLastUpdated( metadata ); - } - catch ( RepositoryMetadataException e ) - { - // Error. - return 0; - } - } - - /** - * Update the metadata based on the following rules. - *

- * 1) If this is a SNAPSHOT reference, then utilize the proxy/repository specific - * metadata files to represent the current / latest SNAPSHOT available. - * 2) If this is a RELEASE reference, and the metadata file does not exist, then - * create the metadata file with contents required of the VersionedReference - * - * @deprecated - * @param managedRepository the managed repository where the metadata is kept. - * @param reference the versioned reference to update - * @throws LayoutException - * @throws RepositoryMetadataException - * @throws IOException - * @throws ContentNotFoundException - */ - public void updateMetadata( ManagedRepositoryContent managedRepository, VersionedReference reference ) - throws LayoutException, RepositoryMetadataException, IOException, ContentNotFoundException - { - File metadataFile = new File( managedRepository.getRepoRoot(), toPath( reference ) ); - - long lastUpdated = getExistingLastUpdated( metadataFile ); - - ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata(); - metadata.setGroupId( reference.getGroupId() ); - metadata.setArtifactId( reference.getArtifactId() ); - - if ( VersionUtil.isSnapshot( reference.getVersion() ) ) - { - // Do SNAPSHOT handling. - metadata.setVersion( VersionUtil.getBaseVersion( reference.getVersion() ) ); - - // Gather up all of the versions found in the reference dir, and any - // proxied maven-metadata.xml files. - Set snapshotVersions = gatherSnapshotVersions( managedRepository, reference ); - - if ( snapshotVersions.isEmpty() ) - { - throw new ContentNotFoundException( "No snapshot versions found on reference [" - + VersionedReference.toKey( reference ) + "]." ); - } - - // sort the list to determine to aide in determining the Latest version. - List sortedVersions = new ArrayList(); - sortedVersions.addAll( snapshotVersions ); - Collections.sort( sortedVersions, new VersionComparator() ); - - String latestVersion = sortedVersions.get( sortedVersions.size() - 1 ); - - if ( VersionUtil.isUniqueSnapshot( latestVersion ) ) - { - // The latestVersion will contain the full version string "1.0-alpha-5-20070821.213044-8" - // This needs to be broken down into ${base}-${timestamp}-${build_number} - - Matcher m = VersionUtil.UNIQUE_SNAPSHOT_PATTERN.matcher( latestVersion ); - if ( m.matches() ) - { - metadata.setSnapshotVersion( new SnapshotVersion() ); - int buildNumber = NumberUtils.toInt( m.group( 3 ), -1 ); - metadata.getSnapshotVersion().setBuildNumber( buildNumber ); - - Matcher mtimestamp = VersionUtil.TIMESTAMP_PATTERN.matcher( m.group( 2 ) ); - if ( mtimestamp.matches() ) - { - String tsDate = mtimestamp.group( 1 ); - String tsTime = mtimestamp.group( 2 ); - - long snapshotLastUpdated = toLastUpdatedLong( tsDate + tsTime ); - - lastUpdated = Math.max( lastUpdated, snapshotLastUpdated ); - - metadata.getSnapshotVersion().setTimestamp( m.group( 2 ) ); - } - } - } - else if ( VersionUtil.isGenericSnapshot( latestVersion ) ) - { - // The latestVersion ends with the generic version string. - // Example: 1.0-alpha-5-SNAPSHOT - - metadata.setSnapshotVersion( new SnapshotVersion() ); - - /* Disabled due to decision in [MRM-535]. - * Do not set metadata.lastUpdated to file.lastModified. - * - * Should this be the last updated timestamp of the file, or in the case of an - * archive, the most recent timestamp in the archive? - * - ArtifactReference artifact = getFirstArtifact( managedRepository, reference ); - - if ( artifact == null ) - { - throw new IOException( "Not snapshot artifact found to reference in " + reference ); - } - - File artifactFile = managedRepository.toFile( artifact ); - - if ( artifactFile.exists() ) - { - Date lastModified = new Date( artifactFile.lastModified() ); - metadata.setLastUpdatedTimestamp( lastModified ); - } - */ - } - else - { - throw new RepositoryMetadataException( "Unable to process snapshot version <" + latestVersion - + "> reference <" + reference + ">" ); - } - } - else - { - // Do RELEASE handling. - metadata.setVersion( reference.getVersion() ); - } - - // Set last updated - if ( lastUpdated > 0 ) - { - metadata.setLastUpdatedTimestamp( toLastUpdatedDate( lastUpdated ) ); - } - - // Save the metadata model to disk. - RepositoryMetadataWriter.write( metadata, metadataFile ); - ChecksummedFile checksum = new ChecksummedFile( metadataFile ); - checksum.fixChecksums( algorithms ); - } - - private void initConfigVariables() - { - synchronized ( this.artifactPatterns ) - { - this.artifactPatterns.clear(); - - this.artifactPatterns.addAll( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) ); - } - - synchronized ( proxies ) - { - this.proxies.clear(); - - List proxyConfigs = configuration.getConfiguration().getProxyConnectors(); - for( ProxyConnectorConfiguration proxyConfig: proxyConfigs ) - { - String key = proxyConfig.getSourceRepoId(); - - Set remoteRepoIds = this.proxies.get( key ); - - if ( remoteRepoIds == null ) - { - remoteRepoIds = new HashSet(); - } - - remoteRepoIds.add( proxyConfig.getTargetRepoId() ); - - this.proxies.put( key, remoteRepoIds ); - } - } - } - - /** - * Get the first Artifact found in the provided VersionedReference location. - * - * @param managedRepository the repository to search within. - * @param reference the reference to the versioned reference to search within - * @return the ArtifactReference to the first artifact located within the versioned reference. or null if - * no artifact was found within the versioned reference. - * @throws IOException if the versioned reference is invalid (example: doesn't exist, or isn't a directory) - * @throws LayoutException - */ - public ArtifactReference getFirstArtifact( ManagedRepositoryContent managedRepository, VersionedReference reference ) - throws LayoutException, IOException - { - String path = toPath( reference ); - - int idx = path.lastIndexOf( '/' ); - if ( idx > 0 ) - { - path = path.substring( 0, idx ); - } - - File repoDir = new File( managedRepository.getRepoRoot(), path ); - - if ( !repoDir.exists() ) - { - throw new IOException( "Unable to gather the list of snapshot versions on a non-existant directory: " - + repoDir.getAbsolutePath() ); - } - - if ( !repoDir.isDirectory() ) - { - throw new IOException( "Unable to gather the list of snapshot versions on a non-directory: " - + repoDir.getAbsolutePath() ); - } - - File repoFiles[] = repoDir.listFiles(); - for ( int i = 0; i < repoFiles.length; i++ ) - { - if ( repoFiles[i].isDirectory() ) - { - // Skip it. it's a directory. - continue; - } - - String relativePath = PathUtil.getRelative( managedRepository.getRepoRoot(), repoFiles[i] ); - - if ( filetypes.matchesArtifactPattern( relativePath ) ) - { - ArtifactReference artifact = managedRepository.toArtifactReference( relativePath ); - - return artifact; - } - } - - // No artifact was found. - return null; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataException.java deleted file mode 100644 index aa3d4923d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataException.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.apache.maven.archiva.repository.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 org.apache.maven.archiva.repository.RepositoryException; - -/** - * RepositoryMetadataException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryMetadataException extends RepositoryException -{ - - public RepositoryMetadataException() - { - super(); - } - - public RepositoryMetadataException( String message, Throwable cause ) - { - super( message, cause ); - } - - public RepositoryMetadataException( String message ) - { - super( message ); - } - - public RepositoryMetadataException( Throwable cause ) - { - super( cause ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataMerge.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataMerge.java deleted file mode 100644 index bf717d38b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataMerge.java +++ /dev/null @@ -1,258 +0,0 @@ -package org.apache.maven.archiva.repository.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.util.ArrayList; -import org.apache.maven.archiva.model.ArchivaModelCloner; -import org.apache.maven.archiva.model.ArchivaRepositoryMetadata; -import org.apache.maven.archiva.model.SnapshotVersion; - -import java.util.Iterator; -import java.util.List; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.model.Plugin; - -/** - * RepositoryMetadataMerge - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryMetadataMerge -{ - public static ArchivaRepositoryMetadata merge( final ArchivaRepositoryMetadata mainMetadata, - final ArchivaRepositoryMetadata sourceMetadata ) - throws RepositoryMetadataException - { - if ( mainMetadata == null ) - { - throw new RepositoryMetadataException( "Cannot merge a null main project." ); - } - - if ( sourceMetadata == null ) - { - throw new RepositoryMetadataException( "Cannot copy to a null parent project." ); - } - - ArchivaRepositoryMetadata merged = new ArchivaRepositoryMetadata(); - - merged.setGroupId( merge( mainMetadata.getGroupId(), sourceMetadata.getGroupId() ) ); - merged.setArtifactId( merge(mainMetadata.getArtifactId(), sourceMetadata.getArtifactId())); - merged.setVersion( merge(mainMetadata.getVersion(), sourceMetadata.getVersion()) ); - merged.setReleasedVersion( merge( mainMetadata.getReleasedVersion(), sourceMetadata.getReleasedVersion() ) ); - merged.setSnapshotVersion( merge( mainMetadata.getSnapshotVersion(), sourceMetadata.getSnapshotVersion() ) ); - merged.setAvailableVersions( mergeAvailableVersions( mainMetadata.getAvailableVersions(), sourceMetadata.getAvailableVersions() ) ); - merged.setPlugins( mergePlugins( mainMetadata.getPlugins(), sourceMetadata.getPlugins() ) ); - - //Don't set if merge was not possible - long lastUpdated = mergeTimestamp( mainMetadata.getLastUpdated(), sourceMetadata.getLastUpdated()); - if (lastUpdated > -1) - { - merged.setLastUpdated( Long.toString(lastUpdated) ); - } - - return merged; - } - - private static boolean empty( String val ) - { - if ( val == null ) - { - return true; - } - - return ( val.trim().length() <= 0 ); - } - - private static long mergeTimestamp(String mainTimestamp, String sourceTimestamp) - { - if (sourceTimestamp == null && mainTimestamp != null) - { - return convertTimestampToLong(mainTimestamp); - } - - if (mainTimestamp == null && sourceTimestamp != null) - { - return convertTimestampToLong(sourceTimestamp); - } - - if (sourceTimestamp == null && mainTimestamp == null) - { - return -1; - } - - return mergeTimestamp(convertTimestampToLong(mainTimestamp), convertTimestampToLong(sourceTimestamp)); - } - - private static long mergeTimestamp(long mainTimestamp, long sourceTimestamp) - { - return Math.max( mainTimestamp, sourceTimestamp ); - } - - private static SnapshotVersion merge( SnapshotVersion mainSnapshotVersion, SnapshotVersion sourceSnapshotVersion ) - { - if ( sourceSnapshotVersion == null ) - { - return mainSnapshotVersion; - } - - if ( mainSnapshotVersion == null ) - { - return ArchivaModelCloner.clone( sourceSnapshotVersion ); - } - - SnapshotVersion merged = new SnapshotVersion(); - - long mainSnapshotLastUpdated = convertTimestampToLong(mainSnapshotVersion.getTimestamp()); - long sourceSnapshotLastUpdated = convertTimestampToLong(sourceSnapshotVersion.getTimestamp()); - - long lastUpdated = mergeTimestamp(mainSnapshotLastUpdated, sourceSnapshotLastUpdated); - - if (lastUpdated == mainSnapshotLastUpdated) - { - merged.setTimestamp(mainSnapshotVersion.getTimestamp()); - merged.setBuildNumber(mainSnapshotVersion.getBuildNumber()); - } - else - { - merged.setTimestamp(sourceSnapshotVersion.getTimestamp()); - merged.setBuildNumber(sourceSnapshotVersion.getBuildNumber()); - } - - return merged; - } - - private static long convertTimestampToLong(String timestamp) - { - if (timestamp == null) - { - return -1; - } - - return getLongFromTimestampSafely(StringUtils.replace(timestamp, ".", "")); - } - - private static long getLongFromTimestampSafely( String timestampString ) - { - try - { - return Long.parseLong(timestampString); - } - catch (NumberFormatException e) - { - return -1; - } - } - - private static String merge( String main, String source ) - { - if ( empty( main ) && !empty( source ) ) - { - return source; - } - - return main; - } - - private static List mergePlugins(List mainPlugins, List sourcePlugins) - { - if ( sourcePlugins == null ) - { - return mainPlugins; - } - - if ( mainPlugins == null ) - { - return clonePlugins( sourcePlugins ); - } - - List merged = clonePlugins( mainPlugins ); - - Iterator it = sourcePlugins.iterator(); - while ( it.hasNext() ) - { - Plugin plugin = (Plugin) it.next(); - if ( !merged.contains( plugin ) ) - { - merged.add( plugin ); - } - } - - return merged; - } - - /** - * Clones a list of plugins. - * - * This method exists because ArchivaModelCloner.clonePlugins() - * only works with artifact references. - * - * @param plugins - * @return list of cloned plugins - */ - private static List clonePlugins(List plugins) - { - if (plugins == null) - { - return null; - } - - ArrayList result = new ArrayList(); - - for (Plugin plugin : plugins) - { - Plugin clonedPlugin = new Plugin(); - clonedPlugin.setArtifactId(plugin.getArtifactId()); - clonedPlugin.setModelEncoding(plugin.getModelEncoding()); - clonedPlugin.setName(plugin.getName()); - clonedPlugin.setPrefix(plugin.getPrefix()); - result.add(plugin); - } - - return result; - } - - private static List mergeAvailableVersions( List mainAvailableVersions, List sourceAvailableVersions ) - { - if ( sourceAvailableVersions == null ) - { - return mainAvailableVersions; - } - - if ( mainAvailableVersions == null ) - { - return ArchivaModelCloner.cloneAvailableVersions( sourceAvailableVersions ); - } - - List merged = ArchivaModelCloner.cloneAvailableVersions( mainAvailableVersions ); - - Iterator it = sourceAvailableVersions.iterator(); - while ( it.hasNext() ) - { - String sourceVersion = (String) it.next(); - if ( !merged.contains( sourceVersion ) ) - { - merged.add( sourceVersion ); - } - } - - return merged; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java deleted file mode 100644 index 1e18caf86..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.apache.maven.archiva.repository.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 org.apache.commons.lang.math.NumberUtils; -import org.apache.maven.archiva.model.ArchivaRepositoryMetadata; -import org.apache.maven.archiva.model.Plugin; -import org.apache.maven.archiva.model.SnapshotVersion; -import org.apache.maven.archiva.xml.XMLException; -import org.apache.maven.archiva.xml.XMLReader; -import org.dom4j.Element; - -import java.io.File; -import java.util.Date; - -/** - * RepositoryMetadataReader - read maven-metadata.xml files. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryMetadataReader -{ - /** - * Read and return the {@link ArchivaRepositoryMetadata} 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 RepositoryMetadataException - */ - public static ArchivaRepositoryMetadata read( File metadataFile ) - throws RepositoryMetadataException - { - try - { - XMLReader xml = new XMLReader( "metadata", metadataFile ); - - ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata(); - - metadata.setGroupId( xml.getElementText( "//metadata/groupId" ) ); - metadata.setArtifactId( xml.getElementText( "//metadata/artifactId" ) ); - metadata.setVersion( xml.getElementText( "//metadata/version" ) ); - metadata.setFileLastModified( new Date( metadataFile.lastModified() ) ); - metadata.setFileSize( metadataFile.length() ); - metadata.setWhenIndexed( null ); - - 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 ) - { - SnapshotVersion snapshot = new SnapshotVersion(); - 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" ) ) - { - Plugin p = new Plugin(); - p.setPrefix( plugin.elementTextTrim( "prefix" ) ); - p.setArtifactId( plugin.elementTextTrim( "artifactId" ) ); - p.setName( plugin.elementTextTrim( "name" ) ); - metadata.addPlugin( p ); - } - - return metadata; - } - catch ( XMLException e ) - { - throw new RepositoryMetadataException( e.getMessage(), e ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataWriter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataWriter.java deleted file mode 100644 index ba4ae0e4f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataWriter.java +++ /dev/null @@ -1,151 +0,0 @@ -package org.apache.maven.archiva.repository.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 org.apache.commons.collections.CollectionUtils; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.model.ArchivaRepositoryMetadata; -import org.apache.maven.archiva.model.Plugin; -import org.apache.maven.archiva.xml.XMLException; -import org.apache.maven.archiva.xml.XMLWriter; -import org.dom4j.Document; -import org.dom4j.DocumentHelper; -import org.dom4j.Element; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.Writer; -import java.util.Iterator; -import java.util.List; -import org.apache.commons.io.FileUtils; - -/** - * RepositoryMetadataWriter - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryMetadataWriter -{ - public static void write( ArchivaRepositoryMetadata metadata, File outputFile ) - throws RepositoryMetadataException - { - boolean thrown = false; - FileWriter writer = null; - try - { - writer = new FileWriter( outputFile ); - write( metadata, writer ); - writer.flush(); - } - catch ( IOException e ) - { - thrown = true; - throw new RepositoryMetadataException( "Unable to write metadata file: " + outputFile.getAbsolutePath() - + " - " + e.getMessage(), e ); - } - finally - { - IOUtils.closeQuietly( writer ); - if (thrown) - { - FileUtils.deleteQuietly(outputFile); - } - } - } - - public static void write( ArchivaRepositoryMetadata metadata, Writer writer ) - throws RepositoryMetadataException - { - Document doc = DocumentHelper.createDocument(); - - Element root = DocumentHelper.createElement( "metadata" ); - doc.setRootElement( root ); - - addOptionalElementText( root, "groupId", metadata.getGroupId()); - addOptionalElementText( root, "artifactId", metadata.getArtifactId() ); - addOptionalElementText( root, "version", metadata.getVersion() ); - - if ( CollectionUtils.isNotEmpty( metadata.getPlugins() ) ) - { - Element plugins = root.addElement( "plugins" ); - for ( Plugin plugin : (List)metadata.getPlugins() ) - { - Element p = plugins.addElement( "plugin" ); - p.addElement( "prefix" ).setText( plugin.getPrefix() ); - p.addElement( "artifactId" ).setText( plugin.getArtifactId() ); - addOptionalElementText( p, "name", plugin.getName() ); - } - } - - if ( CollectionUtils.isNotEmpty( metadata.getAvailableVersions() ) - || StringUtils.isNotBlank( metadata.getReleasedVersion() ) - || StringUtils.isNotBlank( metadata.getLatestVersion() ) - || StringUtils.isNotBlank( metadata.getLastUpdated() ) || ( metadata.getSnapshotVersion() != null ) ) - { - Element versioning = root.addElement( "versioning" ); - - addOptionalElementText( versioning, "latest", metadata.getLatestVersion() ); - addOptionalElementText( versioning, "release", metadata.getReleasedVersion() ); - - if ( metadata.getSnapshotVersion() != null ) - { - Element snapshot = versioning.addElement( "snapshot" ); - String bnum = String.valueOf( metadata.getSnapshotVersion().getBuildNumber() ); - addOptionalElementText( snapshot, "buildNumber", bnum ); - addOptionalElementText( snapshot, "timestamp", metadata.getSnapshotVersion().getTimestamp() ); - } - - if ( CollectionUtils.isNotEmpty( metadata.getAvailableVersions() ) ) - { - Element versions = versioning.addElement( "versions" ); - Iterator it = metadata.getAvailableVersions().iterator(); - while ( it.hasNext() ) - { - String version = (String) it.next(); - versions.addElement( "version" ).setText( version ); - } - } - - addOptionalElementText( versioning, "lastUpdated", metadata.getLastUpdated() ); - } - - try - { - XMLWriter.write( doc, writer ); - } - catch ( XMLException e ) - { - throw new RepositoryMetadataException( "Unable to write xml contents to writer: " + e.getMessage(), e ); - } - } - - private static void addOptionalElementText( Element elem, String elemName, String text ) - { - if ( StringUtils.isBlank( text ) ) - { - return; - } - - elem.addElement( elemName ).setText( text ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelException.java deleted file mode 100644 index add04a542..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelException.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.apache.maven.archiva.repository.project; - -/* - * 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; - -/** - * ProjectModelException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectModelException extends ArchivaException -{ - public ProjectModelException( String message, Throwable cause ) - { - super( message, cause ); - } - - public ProjectModelException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java deleted file mode 100644 index 12140161e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.apache.maven.archiva.repository.project; - -/* - * 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.model.ArchivaProjectModel; - -/** - * Generic Filtering interface for {@link ArchivaProjectModel} objects. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ProjectModelFilter -{ - /** - * Filter a model and return the results of the filtering. - * - * @param model the model to filter. - * @return a new model representing the filtered state of the model. - * @throws ProjectModelException if there was a problem executing the filter. - */ - public ArchivaProjectModel filter( final ArchivaProjectModel model ) throws ProjectModelException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java deleted file mode 100644 index b14b52a04..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java +++ /dev/null @@ -1,693 +0,0 @@ -package org.apache.maven.archiva.repository.project; - -/* - * 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.model.ArchivaModelCloner; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.CiManagement; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.Exclusion; -import org.apache.maven.archiva.model.Individual; -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.ProjectRepository; -import org.apache.maven.archiva.model.Scm; - -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.Map.Entry; - -/** - * ProjectModelMerge - * - * TODO: Should call this ProjectModelAncestry as it deals with the current project and its parent. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectModelMerge -{ - /** - * Merge the contents of a project with it's parent project. - * - * @param mainProject the main project. - * @param parentProject the parent project to merge. - * @throws ProjectModelException if there was a problem merging the model. - */ - public static ArchivaProjectModel merge( ArchivaProjectModel mainProject, ArchivaProjectModel parentProject ) - throws ProjectModelException - { - if ( mainProject == null ) - { - throw new ProjectModelException( "Cannot merge with a null main project." ); - } - - if ( parentProject == null ) - { - throw new ProjectModelException( "Cannot merge with a null parent project." ); - } - - ArchivaProjectModel merged = new ArchivaProjectModel(); - - // Unmerged. - merged.setArtifactId( mainProject.getArtifactId() ); - merged.setPackaging( StringUtils.defaultIfEmpty( mainProject.getPackaging(), "jar" ) ); - merged.setRelocation( mainProject.getRelocation() ); - - // Merged - merged.setGroupId( merge( mainProject.getGroupId(), parentProject.getGroupId() ) ); - merged.setVersion( merge( mainProject.getVersion(), parentProject.getVersion() ) ); - merged.setName( merge( mainProject.getName(), parentProject.getName() ) ); - merged.setUrl( merge( mainProject.getUrl(), parentProject.getUrl() ) ); - merged.setDescription( merge( mainProject.getDescription(), parentProject.getDescription() ) ); - - merged.setOrigin( "merged" ); - - merged.setCiManagement( merge( mainProject.getCiManagement(), parentProject.getCiManagement() ) ); - merged.setIndividuals( mergeIndividuals( mainProject.getIndividuals(), parentProject.getIndividuals() ) ); - merged.setIssueManagement( merge( mainProject.getIssueManagement(), parentProject.getIssueManagement() ) ); - merged.setLicenses( mergeLicenses( mainProject.getLicenses(), parentProject.getLicenses() ) ); - merged.setOrganization( merge( mainProject.getOrganization(), parentProject.getOrganization() ) ); - merged.setScm( merge( mainProject.getScm(), parentProject.getScm() ) ); - merged.setRepositories( mergeRepositories( mainProject.getRepositories(), parentProject.getRepositories() ) ); - merged.setDependencies( mergeDependencies( mainProject.getDependencies(), parentProject.getDependencies() ) ); - merged.setDependencyManagement( mergeDependencyManagement( mainProject.getDependencyManagement(), parentProject - .getDependencyManagement() ) ); - merged.setPlugins( mergePlugins( mainProject.getPlugins(), parentProject.getPlugins() ) ); - merged.setReports( mergeReports( mainProject.getReports(), parentProject.getReports() ) ); - merged.setProperties( merge( mainProject.getProperties(), parentProject.getProperties() ) ); - - return merged; - } - - private static Map createArtifactReferenceMap( List artifactReferences ) - { - Map ret = new HashMap(); - - Iterator it = artifactReferences.iterator(); - while ( it.hasNext() ) - { - ArtifactReference artifactReference = (ArtifactReference) it.next(); - String key = toVersionlessArtifactKey( artifactReference ); - ret.put( key, artifactReference ); - } - - return ret; - } - - private static Map createDependencyMap( List dependencies ) - { - Map ret = new HashMap(); - - Iterator it = dependencies.iterator(); - while ( it.hasNext() ) - { - Dependency dep = (Dependency) it.next(); - String key = toVersionlessDependencyKey( dep ); - ret.put( key, dep ); - } - - return ret; - } - - private static Map createExclusionMap( List exclusions ) - { - Map ret = new HashMap(); - - Iterator it = exclusions.iterator(); - while ( it.hasNext() ) - { - Exclusion exclusion = (Exclusion) it.next(); - String key = exclusion.getGroupId() + ":" + exclusion.getArtifactId(); - ret.put( key, exclusion ); - } - - return ret; - } - - private static Map createLicensesMap( List licenses ) - { - Map ret = new HashMap(); - - Iterator it = licenses.iterator(); - while ( it.hasNext() ) - { - License license = (License) it.next(); - // TODO: Change to 'id' when LicenseTypeMapper is created. - String key = license.getName(); - ret.put( key, license ); - } - - return ret; - } - - private static Map createRepositoriesMap( List repositories ) - { - Map ret = new HashMap(); - - Iterator it = repositories.iterator(); - while ( it.hasNext() ) - { - ProjectRepository repo = (ProjectRepository) it.next(); - // Should this really be using repo.id ? - String key = repo.getUrl(); - ret.put( key, repo ); - } - - return ret; - } - - private static boolean empty( String val ) - { - if ( val == null ) - { - return true; - } - - return ( val.trim().length() <= 0 ); - } - - private static ArtifactReference merge( ArtifactReference mainArtifactReference, - ArtifactReference parentArtifactReference ) - { - if ( parentArtifactReference == null ) - { - return mainArtifactReference; - } - - if ( mainArtifactReference == null ) - { - return ArchivaModelCloner.clone( parentArtifactReference ); - } - - ArtifactReference merged = new ArtifactReference(); - - // Unmerged. - merged.setGroupId( mainArtifactReference.getGroupId() ); - merged.setArtifactId( mainArtifactReference.getArtifactId() ); - - // Merged. - merged.setVersion( merge( mainArtifactReference.getVersion(), parentArtifactReference.getVersion() ) ); - merged.setClassifier( merge( mainArtifactReference.getClassifier(), parentArtifactReference.getClassifier() ) ); - merged.setType( merge( mainArtifactReference.getType(), parentArtifactReference.getType() ) ); - - return merged; - } - - private static CiManagement merge( CiManagement mainCim, CiManagement parentCim ) - { - if ( parentCim == null ) - { - return mainCim; - } - - if ( mainCim == null ) - { - return ArchivaModelCloner.clone( parentCim ); - } - - CiManagement merged = new CiManagement(); - - merged.setSystem( merge( mainCim.getSystem(), parentCim.getSystem() ) ); - merged.setUrl( merge( mainCim.getUrl(), parentCim.getUrl() ) ); - - return merged; - } - - private static Dependency merge( Dependency mainDep, Dependency parentDep ) - { - if ( parentDep == null ) - { - return mainDep; - } - - if ( mainDep == null ) - { - Dependency dep = ArchivaModelCloner.clone( parentDep ); - dep.setFromParent( true ); - return dep; - } - - Dependency merged = new Dependency(); - - merged.setFromParent( true ); - - // Unmerged. - merged.setGroupId( mainDep.getGroupId() ); - merged.setArtifactId( mainDep.getArtifactId() ); - - // Merged. - merged.setVersion( merge( mainDep.getVersion(), parentDep.getVersion() ) ); - merged.setClassifier( merge( mainDep.getClassifier(), parentDep.getClassifier() ) ); - merged.setType( merge( mainDep.getType(), parentDep.getType() ) ); - merged.setScope( merge( mainDep.getScope(), parentDep.getScope() ) ); - if ( parentDep.isOptional() ) - { - merged.setOptional( true ); - } - - merged.setSystemPath( merge( mainDep.getSystemPath(), parentDep.getSystemPath() ) ); - merged.setUrl( merge( mainDep.getUrl(), parentDep.getUrl() ) ); - merged.setExclusions( mergeExclusions( mainDep.getExclusions(), parentDep.getExclusions() ) ); - - return merged; - } - - private static IssueManagement merge( IssueManagement mainIssueManagement, IssueManagement parentIssueManagement ) - { - if ( parentIssueManagement == null ) - { - return mainIssueManagement; - } - - if ( mainIssueManagement == null ) - { - return ArchivaModelCloner.clone( parentIssueManagement ); - } - - IssueManagement merged = new IssueManagement(); - - merged.setSystem( merge( mainIssueManagement.getSystem(), parentIssueManagement.getSystem() ) ); - merged.setUrl( merge( mainIssueManagement.getUrl(), parentIssueManagement.getUrl() ) ); - - return merged; - } - - private static Organization merge( Organization mainOrganization, Organization parentOrganization ) - { - if ( parentOrganization == null ) - { - return mainOrganization; - } - - if ( mainOrganization == null ) - { - return ArchivaModelCloner.clone( parentOrganization ); - } - - Organization merged = new Organization(); - - merged.setFavicon( merge( mainOrganization.getFavicon(), parentOrganization.getFavicon() ) ); - merged.setName( merge( mainOrganization.getName(), parentOrganization.getName() ) ); - merged.setUrl( merge( mainOrganization.getUrl(), parentOrganization.getUrl() ) ); - - return merged; - } - - private static Properties merge( Properties mainProperties, Properties parentProperties ) - { - if ( parentProperties == null ) - { - return mainProperties; - } - - if ( mainProperties == null ) - { - return ArchivaModelCloner.clone( parentProperties ); - } - - Properties merged = new Properties(); - - Enumeration keys = parentProperties.propertyNames(); - while ( keys.hasMoreElements() ) - { - String key = (String) keys.nextElement(); - merged.put( key, merge( mainProperties.getProperty( key ), parentProperties.getProperty( key ) ) ); - } - - return merged; - } - - private static Scm merge( Scm mainScm, Scm parentScm ) - { - if ( parentScm == null ) - { - return mainScm; - } - - if ( mainScm == null ) - { - return ArchivaModelCloner.clone( parentScm ); - } - - Scm merged = new Scm(); - - merged.setConnection( merge( mainScm.getConnection(), parentScm.getConnection() ) ); - merged.setDeveloperConnection( merge( mainScm.getDeveloperConnection(), parentScm.getDeveloperConnection() ) ); - merged.setUrl( merge( mainScm.getUrl(), parentScm.getUrl() ) ); - - return merged; - } - - private static String merge( String main, String parent ) - { - if ( empty( main ) && !empty( parent ) ) - { - return parent; - } - - return main; - } - - private static List mergeArtifactReferences( List mainArtifactReferences, List parentArtifactReferences ) - { - if ( parentArtifactReferences == null ) - { - return mainArtifactReferences; - } - - if ( mainArtifactReferences == null ) - { - return ArchivaModelCloner.cloneLicenses( parentArtifactReferences ); - } - - List merged = new ArrayList(); - - Map mainArtifactReferenceMap = createArtifactReferenceMap( mainArtifactReferences ); - Map parentArtifactReferenceMap = createArtifactReferenceMap( parentArtifactReferences ); - - Iterator it = mainArtifactReferenceMap.entrySet().iterator(); - while ( it.hasNext() ) - { - Map.Entry entry = (Entry) it.next(); - String key = (String) entry.getKey(); - ArtifactReference mainArtifactReference = (ArtifactReference) entry.getValue(); - ArtifactReference parentArtifactReference = (ArtifactReference) parentArtifactReferenceMap.get( key ); - - if ( parentArtifactReference == null ) - { - merged.add( mainArtifactReference ); - } - else - { - // Not merging. Local wins. - merged.add( merge( mainArtifactReference, parentArtifactReference ) ); - } - } - - return merged; - } - - private static List mergeDependencies( List mainDependencies, List parentDependencies ) - { - if ( parentDependencies == null ) - { - return mainDependencies; - } - - if ( mainDependencies == null ) - { - List merged = ArchivaModelCloner.cloneDependencies( parentDependencies ); - Iterator it = merged.iterator(); - while ( it.hasNext() ) - { - Dependency dep = (Dependency) it.next(); - dep.setFromParent( true ); - } - return merged; - } - - List merged = new ArrayList(); - - Map mainDepMap = createDependencyMap( mainDependencies ); - Map parentDepMap = createDependencyMap( parentDependencies ); - Set uniqueKeys = new HashSet(); - uniqueKeys.addAll( mainDepMap.keySet() ); - uniqueKeys.addAll( parentDepMap.keySet() ); - - Iterator it = uniqueKeys.iterator(); - while ( it.hasNext() ) - { - String key = (String) it.next(); - Dependency parentDep = (Dependency) parentDepMap.get( key ); - Dependency mainDep = (Dependency) mainDepMap.get( key ); - - if ( parentDep == null ) - { - // Means there is no parent dep to override main dep. - merged.add( mainDep ); - } - else - { - // Parent dep exists (main doesn't have to). - // Merge the parent over the main dep. - merged.add( merge( mainDep, parentDep ) ); - } - } - - return merged; - } - - private static List mergeDependencyManagement( List mainDepMgmt, List parentDepMgmt ) - { - if ( parentDepMgmt == null ) - { - return mainDepMgmt; - } - - if ( mainDepMgmt == null ) - { - List merged = ArchivaModelCloner.cloneDependencies( parentDepMgmt ); - Iterator it = merged.iterator(); - while ( it.hasNext() ) - { - Dependency dep = (Dependency) it.next(); - dep.setFromParent( true ); - } - return merged; - } - - List merged = new ArrayList(); - - Map mainDepMap = createDependencyMap( mainDepMgmt ); - Map parentDepMap = createDependencyMap( parentDepMgmt ); - Set uniqueKeys = new HashSet(); - uniqueKeys.addAll( mainDepMap.keySet() ); - uniqueKeys.addAll( parentDepMap.keySet() ); - - Iterator it = uniqueKeys.iterator(); - while ( it.hasNext() ) - { - String key = (String) it.next(); - Dependency parentDep = (Dependency) parentDepMap.get( key ); - Dependency mainDep = (Dependency) mainDepMap.get( key ); - - if ( parentDep == null ) - { - // Means there is no parent depMan entry to override main depMan. - merged.add( mainDep ); - } - else - { - // Parent depMan entry exists (main doesn't have to). - // Merge the parent over the main depMan entry. - merged.add( merge( mainDep, parentDep ) ); - } - } - - return merged; - } - - public static List mergeExclusions( List mainExclusions, List parentExclusions ) - { - if ( parentExclusions == null ) - { - return mainExclusions; - } - - if ( mainExclusions == null ) - { - return ArchivaModelCloner.cloneExclusions( parentExclusions ); - } - - List merged = new ArrayList(); - - Map mainExclusionMap = createExclusionMap( mainExclusions ); - Map parentExclusionMap = createExclusionMap( parentExclusions ); - - Iterator it = mainExclusionMap.entrySet().iterator(); - while ( it.hasNext() ) - { - Map.Entry entry = (Entry) it.next(); - String key = (String) entry.getKey(); - Exclusion mainExclusion = (Exclusion) entry.getValue(); - Exclusion parentExclusion = (Exclusion) parentExclusionMap.get( key ); - - if ( parentExclusion == null ) - { - merged.add( mainExclusion ); - } - else - { - merged.add( parentExclusion ); - } - } - - return merged; - } - - private static List mergeIndividuals( List mainIndividuals, List parentIndividuals ) - { - if ( parentIndividuals == null ) - { - return mainIndividuals; - } - - if ( mainIndividuals == null ) - { - return ArchivaModelCloner.cloneIndividuals( parentIndividuals ); - } - - List merged = ArchivaModelCloner.cloneIndividuals( mainIndividuals ); - - Iterator it = parentIndividuals.iterator(); - while ( it.hasNext() ) - { - Individual parentIndividual = (Individual) it.next(); - - if ( !mainIndividuals.contains( parentIndividual ) ) - { - merged.add( parentIndividual ); - } - } - - return merged; - } - - private static List mergeLicenses( List mainLicenses, List parentLicenses ) - { - if ( parentLicenses == null ) - { - return mainLicenses; - } - - if ( mainLicenses == null ) - { - return ArchivaModelCloner.cloneLicenses( parentLicenses ); - } - - List merged = new ArrayList(); - - Map mainLicensesMap = createLicensesMap( mainLicenses ); - Map parentLicensesMap = createLicensesMap( parentLicenses ); - - Iterator it = mainLicensesMap.entrySet().iterator(); - while ( it.hasNext() ) - { - Map.Entry entry = (Entry) it.next(); - String key = (String) entry.getKey(); - License mainLicense = (License) entry.getValue(); - License parentLicense = (License) parentLicensesMap.get( key ); - - if ( parentLicense == null ) - { - merged.add( mainLicense ); - } - else - { - // Not merging. Local wins. - merged.add( parentLicense ); - } - } - - return merged; - } - - private static List mergePlugins( List mainPlugins, List parentPlugins ) - { - return mergeArtifactReferences( mainPlugins, parentPlugins ); - } - - private static List mergeReports( List mainReports, List parentReports ) - { - return mergeArtifactReferences( mainReports, parentReports ); - } - - private static List mergeRepositories( List mainRepositories, List parentRepositories ) - { - if ( parentRepositories == null ) - { - return mainRepositories; - } - - if ( mainRepositories == null ) - { - return ArchivaModelCloner.cloneLicenses( parentRepositories ); - } - - List merged = new ArrayList(); - - Map mainRepositoriesMap = createRepositoriesMap( mainRepositories ); - Map parentRepositoriesMap = createRepositoriesMap( parentRepositories ); - - Iterator it = mainRepositoriesMap.entrySet().iterator(); - while ( it.hasNext() ) - { - Map.Entry entry = (Entry) it.next(); - String key = (String) entry.getKey(); - ProjectRepository mainProjectRepository = (ProjectRepository) entry.getValue(); - ProjectRepository parentProjectRepository = (ProjectRepository) parentRepositoriesMap.get( key ); - - if ( parentProjectRepository == null ) - { - merged.add( mainProjectRepository ); - } - else - { - // Not merging. Local wins. - merged.add( parentProjectRepository ); - } - } - - return merged; - } - - private static String toVersionlessArtifactKey( ArtifactReference artifactReference ) - { - StringBuffer key = new StringBuffer(); - - key.append( artifactReference.getGroupId() ).append( ":" ).append( artifactReference.getArtifactId() ); - key.append( StringUtils.defaultString( artifactReference.getClassifier() ) ).append( ":" ); - key.append( artifactReference.getType() ); - - return key.toString(); - } - - private static String toVersionlessDependencyKey( Dependency dep ) - { - StringBuffer key = new StringBuffer(); - - key.append( dep.getGroupId() ).append( ":" ).append( dep.getArtifactId() ); - key.append( StringUtils.defaultString( dep.getClassifier() ) ).append( ":" ); - key.append( dep.getType() ); - - return key.toString(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java deleted file mode 100644 index ed6a63da7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.apache.maven.archiva.repository.project; - -/* - * 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.model.ArchivaProjectModel; - -/** - * ProjectModelMonitor - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ProjectModelMonitor -{ - /** - * Report a problem encountered with a model. - * - * @param model the model that caused the problem. - * @param type the type of problem. - * @param problem the problem description. - */ - public void modelProblem( ArchivaProjectModel model, String type, String problem ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelReader.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelReader.java deleted file mode 100644 index 004588321..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelReader.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.apache.maven.archiva.repository.project; - -/* - * 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.model.ArchivaProjectModel; - -import java.io.File; - -/** - * ProjectModelReader - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ProjectModelReader -{ - public ArchivaProjectModel read( File pomFile ) throws ProjectModelException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java deleted file mode 100644 index c513349c4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.repository.project; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.VersionedReference; - -/** - * Interface for ProjectModel resolution. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ProjectModelResolver -{ - /** - * Get the ProjectModel given a specific {@link RepositoryContent} key. - * - * @param reference the reference to the other project. - * @return the ArchivaProjectModel representing the provided {@link RepositoryContent} key. - * @throws ProjectModelException if the project model cannot be resolved. - */ - public ArchivaProjectModel resolveProjectModel( VersionedReference reference ) - throws ProjectModelException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolverFactory.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolverFactory.java deleted file mode 100644 index 870cbcbbe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolverFactory.java +++ /dev/null @@ -1,137 +0,0 @@ -package org.apache.maven.archiva.repository.project; - -/* - * 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.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationNames; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -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.project.readers.ProjectModel300Reader; -import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; -import org.apache.maven.archiva.repository.project.resolvers.ManagedRepositoryProjectResolver; -import org.apache.maven.archiva.repository.project.resolvers.NopProjectResolver; -import org.apache.maven.archiva.repository.project.resolvers.ProjectModelResolverStack; -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; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Factory for ProjectModelResolver objects - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.repository.project.ProjectModelResolverFactory" - */ -public class ProjectModelResolverFactory - implements RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( ProjectModelResolverFactory.class ); - - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - private ProjectModelResolverStack currentResolverStack = new ProjectModelResolverStack(); - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isManagedRepositories( propertyName ) ) - { - update(); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* do nothing */ - } - - public ProjectModelResolverStack getCurrentResolverStack() - { - return currentResolverStack; - } - - public void initialize() - throws InitializationException - { - update(); - archivaConfiguration.addChangeListener( this ); - } - - private ManagedRepositoryProjectResolver toResolver( ManagedRepositoryConfiguration repo ) - throws RepositoryException - { - ManagedRepositoryContent repoContent = repositoryFactory.getManagedRepositoryContent( repo.getId() ); - - ProjectModelReader reader; - if ( StringUtils.equals( "legacy", repo.getLayout() ) ) - { - reader = new ProjectModel300Reader(); - } - else - { - reader = new ProjectModel400Reader(); - } - - return new ManagedRepositoryProjectResolver( repoContent, reader ); - } - - private void update() - { - synchronized ( currentResolverStack ) - { - this.currentResolverStack.clearResolvers(); - - List list = - archivaConfiguration.getConfiguration().getManagedRepositories(); - for ( ManagedRepositoryConfiguration repo : list ) - { - try - { - ManagedRepositoryProjectResolver resolver = toResolver( repo ); - - // Add filesystem based resolver. - this.currentResolverStack.addProjectModelResolver( resolver ); - } - catch ( RepositoryException e ) - { - log.warn( e.getMessage(), e ); - } - } - - // Add no-op resolver. - this.currentResolverStack.addProjectModelResolver( NopProjectResolver.getInstance() ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelWriter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelWriter.java deleted file mode 100644 index 06edbb67e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelWriter.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.apache.maven.archiva.repository.project; - -/* - * 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.model.ArchivaProjectModel; - -import java.io.File; -import java.io.IOException; -import java.io.Writer; - -/** - * ProjectModelWriter - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ProjectModelWriter -{ - /** - * Write a project model out to disk. - * - * @param model the model to write. - * @param pomFile the (pom) file on disk to write to. - * @throws ProjectModelException if there was a problem with the model itself. - * @throws IOException if there was a problem writing the pom file. - */ - public void write( ArchivaProjectModel model, File pomFile ) - throws ProjectModelException, IOException; - - /** - * Write a project model out to a {@link Writer}. - * - * @param model the model to write. - * @param writer the writer (stream) to write to. - * @throws ProjectModelException if there was a problem with the model itself. - * @throws IOException if there was a problem writing the pom file. - */ - public void write( ArchivaProjectModel model, Writer writer ) - throws ProjectModelException, IOException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/dependencies/ProjectModelBasedGraphBuilder.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/dependencies/ProjectModelBasedGraphBuilder.java deleted file mode 100644 index f6e6eabc7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/dependencies/ProjectModelBasedGraphBuilder.java +++ /dev/null @@ -1,116 +0,0 @@ -package org.apache.maven.archiva.repository.project.dependencies; - -/* - * 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.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.DependencyGraphUtils; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelResolverFactory; -import org.apache.maven.archiva.repository.project.filters.EffectiveProjectModelFilter; - -/** - * ProjectModelBasedGraphBuilder - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component - * role="org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder" - * role-hint="project-model" - */ -public class ProjectModelBasedGraphBuilder - implements DependencyGraphBuilder -{ - /** - * @plexus.requirement - */ - private ProjectModelResolverFactory resolverFactory; - - /** - * @plexus.requirement - * role="org.apache.maven.archiva.repository.project.ProjectModelFilter" - * role-hint="effective" - */ - private EffectiveProjectModelFilter effectiveFilter = new EffectiveProjectModelFilter(); - - public DependencyGraph createGraph( VersionedReference versionedProjectReference ) - { - String groupId = versionedProjectReference.getGroupId(); - String artifactId = versionedProjectReference.getArtifactId(); - String version = versionedProjectReference.getVersion(); - - DependencyGraph graph = new DependencyGraph( groupId, artifactId, version ); - return graph; - } - - public void resolveNode( DependencyGraph graph, DependencyGraphNode fromNode, - VersionedReference versionedProjectReference ) - { - ArchivaProjectModel model = resolveModel( fromNode.getArtifact() ); - - DependencyGraphUtils.addNodeFromModel( model, graph, fromNode ); - } - - private ArchivaProjectModel resolveModel( ArtifactReference reference ) - { - VersionedReference projectRef = new VersionedReference(); - - projectRef.setGroupId( reference.getGroupId() ); - projectRef.setArtifactId( reference.getArtifactId() ); - projectRef.setVersion( reference.getVersion() ); - - ArchivaProjectModel model = resolverFactory.getCurrentResolverStack().findProject( projectRef ); - - if ( model == null ) - { - return createDefaultModel( reference ); - } - - try - { - ArchivaProjectModel processedModel = effectiveFilter.filter( model ); - - return processedModel; - } - catch ( ProjectModelException e ) - { - e.printStackTrace( System.err ); - return createDefaultModel( reference ); - } - } - - private ArchivaProjectModel createDefaultModel( ArtifactReference reference ) - { - ArchivaProjectModel model = new ArchivaProjectModel(); - - // Create default (dummy) model - model = new ArchivaProjectModel(); - model.setGroupId( reference.getGroupId() ); - model.setArtifactId( reference.getArtifactId() ); - model.setVersion( reference.getVersion() ); - model.setPackaging( reference.getType() ); - return model; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java deleted file mode 100644 index 24a22f90c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java +++ /dev/null @@ -1,309 +0,0 @@ -package org.apache.maven.archiva.repository.project.filters; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.model.ArchivaModelCloner; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelFilter; -import org.apache.maven.archiva.repository.project.ProjectModelMerge; -import org.apache.maven.archiva.repository.project.ProjectModelResolverFactory; -import org.codehaus.plexus.cache.Cache; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * Builder for the Effective Project Model. - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.repository.project.ProjectModelFilter" - * role-hint="effective" - */ -public class EffectiveProjectModelFilter - implements ProjectModelFilter -{ - private ProjectModelFilter expressionFilter = new ProjectModelExpressionFilter(); - - /** - * @plexus.requirement - */ - private ProjectModelResolverFactory resolverFactory; - - /** - * @plexus.requirement role-hint="effective-project-cache" - */ - private Cache effectiveProjectCache; - - /** - * Take the provided {@link ArchivaProjectModel} and build the effective {@link ArchivaProjectModel}. - * - * Steps: - * 1) Expand any expressions / properties. - * 2) Walk the parent project references and merge. - * 3) Apply dependency management settings. - * - * @param project the project to create the effective {@link ArchivaProjectModel} from. - * @return a the effective {@link ArchivaProjectModel}. - * @throws ProjectModelException if there was a problem building the effective pom. - */ - public ArchivaProjectModel filter( final ArchivaProjectModel project ) - throws ProjectModelException - { - if ( project == null ) - { - return null; - } - - if ( resolverFactory.getCurrentResolverStack().isEmpty() ) - { - throw new IllegalStateException( "Unable to build effective pom with no project model resolvers defined." ); - } - - ArchivaProjectModel effectiveProject; - String projectKey = toProjectKey( project ); - - synchronized ( effectiveProjectCache ) - { - if ( effectiveProjectCache.hasKey( projectKey ) ) - { - DEBUG( "Fetching (from cache/projectKey): " + projectKey ); - effectiveProject = (ArchivaProjectModel) effectiveProjectCache.get( projectKey ); - return effectiveProject; - } - } - - // Clone submitted project (so that we don't mess with it) - effectiveProject = ArchivaModelCloner.clone( project ); - - // Setup Expression Evaluation pieces. - effectiveProject = expressionFilter.filter( effectiveProject ); - - DEBUG( "Starting build of effective with: " + effectiveProject ); - - // Merge in all the parent poms. - effectiveProject = mergeParent( effectiveProject ); - - // Resolve dependency versions from dependency management. - applyDependencyManagement( effectiveProject ); - - // Do not add project into cache if it contains no groupId and - // version information - if ( project.getGroupId() != null && project.getVersion() != null ) - { - synchronized ( effectiveProjectCache ) - { - DEBUG( "Putting (to cache/projectKey): " + projectKey ); - effectiveProjectCache.put( projectKey, effectiveProject ); - } - } - - // Return what we got. - return effectiveProject; - } - - private void applyDependencyManagement( ArchivaProjectModel pom ) - { - if ( CollectionUtils.isEmpty( pom.getDependencyManagement() ) - || CollectionUtils.isEmpty( pom.getDependencies() ) ) - { - // Nothing to do. All done! - return; - } - - Map managedDependencies = createDependencyMap( pom.getDependencyManagement() ); - Iterator it = pom.getDependencies().iterator(); - while ( it.hasNext() ) - { - Dependency dep = it.next(); - String key = toVersionlessDependencyKey( dep ); - - // Do we need to do anything? - if ( managedDependencies.containsKey( key ) ) - { - Dependency mgmtDep = (Dependency) managedDependencies.get( key ); - - dep.setVersion( mgmtDep.getVersion() ); - dep.setScope( mgmtDep.getScope() ); - dep.setExclusions( ProjectModelMerge.mergeExclusions( dep.getExclusions(), mgmtDep.getExclusions() ) ); - } - } - } - - private ArchivaProjectModel mergeParent( ArchivaProjectModel pom ) - throws ProjectModelException - { - ArchivaProjectModel mixedProject; - - DEBUG( "Project: " + toProjectKey( pom ) ); - - if ( pom.getParentProject() != null ) - { - // Use parent reference. - VersionedReference parentRef = pom.getParentProject(); - - String parentKey = VersionedReference.toKey( parentRef ); - - DEBUG( "Has parent: " + parentKey ); - - ArchivaProjectModel parentProject; - - synchronized ( effectiveProjectCache ) - { - // is the pre-merged parent in the cache? - if ( effectiveProjectCache.hasKey( parentKey ) ) - { - DEBUG( "Fetching (from cache/parentKey): " + parentKey ); - // Use the one from the cache. - parentProject = (ArchivaProjectModel) effectiveProjectCache.get( parentKey ); - } - else - { - // Look it up, using resolvers. - parentProject = this.resolverFactory.getCurrentResolverStack().findProject( parentRef ); - } - } - - if ( parentProject != null ) - { - // Merge the pom with the parent pom. - parentProject = expressionFilter.filter( parentProject ); - parentProject = mergeParent( parentProject ); - - // Cache the pre-merged parent. - synchronized ( effectiveProjectCache ) - { - DEBUG( "Putting (to cache/parentKey/merged): " + parentKey ); - // Add the merged parent pom to the cache. - effectiveProjectCache.put( parentKey, parentProject ); - } - - // Now merge the parent with the current - mixedProject = ProjectModelMerge.merge( pom, parentProject ); - } - else - { - // Shortcircuit due to missing parent pom. - // TODO: Document this via a monitor. - mixedProject = mixinSuperPom( pom ); - - // Cache the non-existant parent. - synchronized ( effectiveProjectCache ) - { - DEBUG( "Putting (to cache/parentKey/basicPom): " + parentKey ); - // Add the basic pom to cache. - effectiveProjectCache.put( parentKey, createBasicPom( parentRef ) ); - } - } - } - else - { - DEBUG( "No parent found" ); - - /* Mix in the super-pom. - * - * Super POM from maven/components contains many things. - * However, for purposes of archiva, only the - * and sections are of any value. - */ - - mixedProject = mixinSuperPom( pom ); - } - - return mixedProject; - } - - private ArchivaProjectModel createBasicPom( VersionedReference ref ) - { - ArchivaProjectModel model = new ArchivaProjectModel(); - model.setGroupId( ref.getGroupId() ); - model.setArtifactId( ref.getArtifactId() ); - model.setVersion( ref.getVersion() ); - model.setPackaging( "jar" ); - - return model; - } - - /** - * Super POM from maven/components contains many things. - * However, for purposes of archiva, only the - * and sections are of any value. - * - * @param pom - * @return - */ - private ArchivaProjectModel mixinSuperPom( ArchivaProjectModel pom ) - { - // TODO: add super pom repositories. - DEBUG( "Mix in Super POM: " + pom ); - - return pom; - } - - private static Map createDependencyMap( List dependencies ) - { - Map ret = new HashMap(); - - Iterator it = dependencies.iterator(); - while ( it.hasNext() ) - { - Dependency dep = it.next(); - String key = toVersionlessDependencyKey( dep ); - ret.put( key, dep ); - } - - return ret; - } - - private static String toVersionlessDependencyKey( Dependency dep ) - { - StringBuffer key = new StringBuffer(); - - key.append( dep.getGroupId() ).append( ":" ).append( dep.getArtifactId() ); - key.append( StringUtils.defaultString( dep.getClassifier() ) ).append( ":" ); - key.append( dep.getType() ); - - return key.toString(); - } - - private String toProjectKey( ArchivaProjectModel project ) - { - StringBuffer key = new StringBuffer(); - - key.append( project.getGroupId() ).append( ":" ); - key.append( project.getArtifactId() ).append( ":" ); - key.append( project.getVersion() ); - - return key.toString(); - } - - private void DEBUG( String msg ) - { - // Used in debugging of this object. - // System.out.println( "[EffectiveProjectModelFilter] " + msg ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java deleted file mode 100644 index 1c2f989ba..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java +++ /dev/null @@ -1,441 +0,0 @@ -package org.apache.maven.archiva.repository.project.filters; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.model.ArchivaModelCloner; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.CiManagement; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.Exclusion; -import org.apache.maven.archiva.model.Individual; -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.ProjectRepository; -import org.apache.maven.archiva.model.Scm; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelFilter; -import org.codehaus.plexus.evaluator.DefaultExpressionEvaluator; -import org.codehaus.plexus.evaluator.EvaluatorException; -import org.codehaus.plexus.evaluator.ExpressionEvaluator; -import org.codehaus.plexus.evaluator.ExpressionSource; -import org.codehaus.plexus.evaluator.sources.PropertiesExpressionSource; -import org.codehaus.plexus.evaluator.sources.SystemPropertyExpressionSource; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Properties; -import java.util.Set; - -/** - * ProjectModelExpressionFilter - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.repository.project.ProjectModelFilter" - * role-hint="expression" - * instantiation-strategy="per-lookup" - */ -public class ProjectModelExpressionFilter - implements ProjectModelFilter -{ - private ExpressionEvaluator evaluator = new DefaultExpressionEvaluator(); - - /** - * Find and Evaluate the Expressions present in the model. - * - * @param model the model to correct. - */ - public ArchivaProjectModel filter( final ArchivaProjectModel model ) - throws ProjectModelException - { - Properties props = new Properties(); - - if ( model.getProperties() != null ) - { - props.putAll( model.getProperties() ); - } - - ArchivaProjectModel ret = ArchivaModelCloner.clone( model ); - - // TODO: should probably clone evaluator to prevent threading issues. - synchronized ( evaluator ) - { - // TODO: create .resetSources() method in ExpressionEvaluator project on plexus side. - // Remove previous expression sources. - List oldSources = new ArrayList(); - oldSources.addAll( evaluator.getExpressionSourceList() ); - for ( ExpressionSource exprSrc : oldSources ) - { - evaluator.removeExpressionSource( exprSrc ); - } - - // Setup new sources (based on current model) - PropertiesExpressionSource propsSource = new PropertiesExpressionSource(); - propsSource.setProperties( props ); - evaluator.addExpressionSource( propsSource ); - - // Add system properties to the mix. - evaluator.addExpressionSource( new SystemPropertyExpressionSource() ); - - try - { - // Setup some common properties. - String groupId = StringUtils.defaultString( evaluator.expand( model.getGroupId() ) ); - String artifactId = StringUtils.defaultString( evaluator.expand( model.getArtifactId() ) ); - String version = StringUtils.defaultString( evaluator.expand( model.getVersion() ) ); - String name = StringUtils.defaultString( evaluator.expand( model.getName() ) ); - - /* Archiva doesn't need to handle a full expression language with object tree walking - * as the requirements within Archiva are much smaller, a quick replacement of the - * important fields (groupId, artifactId, version, name) are handled specifically. - */ - props.setProperty( "pom.groupId", groupId ); - props.setProperty( "pom.artifactId", artifactId ); - props.setProperty( "pom.version", version ); - props.setProperty( "pom.name", name ); - props.setProperty( "project.groupId", groupId ); - props.setProperty( "project.artifactId", artifactId ); - props.setProperty( "project.version", version ); - props.setProperty( "project.name", name ); - - // Evaluate everything. - ret.setVersion( evaluator.expand( ret.getVersion() ) ); - ret.setGroupId( evaluator.expand( ret.getGroupId() ) ); - ret.setName( evaluator.expand( ret.getName() ) ); - ret.setDescription( evaluator.expand( ret.getDescription() ) ); - ret.setPackaging( evaluator.expand( ret.getPackaging() ) ); - ret.setUrl( evaluator.expand( ret.getUrl() ) ); - - evaluateParentProject( evaluator, ret.getParentProject() ); - - evaluateBuildExtensions( evaluator, ret.getBuildExtensions() ); - evaluateCiManagement( evaluator, ret.getCiManagement() ); - evaluateDependencyList( evaluator, ret.getDependencies() ); - evaluateDependencyList( evaluator, ret.getDependencyManagement() ); - evaluateIndividuals( evaluator, ret.getIndividuals() ); - evaluateIssueManagement( evaluator, ret.getIssueManagement() ); - evaluateLicenses( evaluator, ret.getLicenses() ); - evaluateMailingLists( evaluator, ret.getMailingLists() ); - evaluateOrganization( evaluator, ret.getOrganization() ); - evaluatePlugins( evaluator, ret.getPlugins() ); - evaluateRelocation( evaluator, ret.getRelocation() ); - evaluateReports( evaluator, ret.getReports() ); - evaluateRepositories( evaluator, ret.getRepositories() ); - evaluateScm( evaluator, ret.getScm() ); - } - catch ( EvaluatorException e ) - { - throw new ProjectModelException( "Unable to evaluate expression in model: " + e.getMessage(), e ); - } - } - - return ret; - } - - private void evaluateArtifactReferenceList( ExpressionEvaluator eval, List refs ) - throws EvaluatorException - { - if ( CollectionUtils.isEmpty( refs ) ) - { - return; - } - - for ( ArtifactReference ref : refs ) - { - ref.setGroupId( eval.expand( ref.getGroupId() ) ); - ref.setArtifactId( eval.expand( ref.getArtifactId() ) ); - ref.setVersion( eval.expand( ref.getVersion() ) ); - ref.setClassifier( eval.expand( ref.getClassifier() ) ); - ref.setType( eval.expand( ref.getType() ) ); - } - } - - private void evaluateBuildExtensions( ExpressionEvaluator eval, List buildExtensions ) - throws EvaluatorException - { - if ( CollectionUtils.isEmpty( buildExtensions ) ) - { - return; - } - - for ( ArtifactReference ref : buildExtensions ) - { - ref.setGroupId( eval.expand( ref.getGroupId() ) ); - ref.setArtifactId( eval.expand( ref.getArtifactId() ) ); - ref.setVersion( eval.expand( ref.getVersion() ) ); - ref.setClassifier( eval.expand( ref.getClassifier() ) ); - ref.setType( eval.expand( ref.getType() ) ); - } - } - - private void evaluateCiManagement( ExpressionEvaluator eval, CiManagement ciManagement ) - throws EvaluatorException - { - if ( ciManagement == null ) - { - return; - } - - ciManagement.setSystem( eval.expand( ciManagement.getSystem() ) ); - ciManagement.setUrl( eval.expand( ciManagement.getUrl() ) ); - } - - private void evaluateDependencyList( ExpressionEvaluator eval, List dependencies ) - throws EvaluatorException - { - if ( CollectionUtils.isEmpty( dependencies ) ) - { - return; - } - - for ( Dependency dependency : dependencies ) - { - dependency.setGroupId( eval.expand( dependency.getGroupId() ) ); - dependency.setArtifactId( eval.expand( dependency.getArtifactId() ) ); - dependency.setVersion( eval.expand( dependency.getVersion() ) ); - dependency.setScope( eval.expand( dependency.getScope() ) ); - dependency.setType( eval.expand( dependency.getType() ) ); - dependency.setUrl( eval.expand( dependency.getUrl() ) ); - - evaluateExclusions( eval, dependency.getExclusions() ); - } - } - - private void evaluateExclusions( ExpressionEvaluator eval, List exclusions ) - throws EvaluatorException - { - if ( CollectionUtils.isEmpty( exclusions ) ) - { - return; - } - - for ( Exclusion exclusion : exclusions ) - { - exclusion.setGroupId( eval.expand( exclusion.getGroupId() ) ); - exclusion.setArtifactId( eval.expand( exclusion.getArtifactId() ) ); - } - } - - private void evaluateIndividuals( ExpressionEvaluator eval, List individuals ) - throws EvaluatorException - { - if ( CollectionUtils.isEmpty( individuals ) ) - { - return; - } - - for ( Individual individual : individuals ) - { - individual.setPrincipal( eval.expand( individual.getPrincipal() ) ); - individual.setName( eval.expand( individual.getName() ) ); - individual.setEmail( eval.expand( individual.getEmail() ) ); - individual.setTimezone( eval.expand( individual.getTimezone() ) ); - individual.setOrganization( eval.expand( individual.getOrganization() ) ); - individual.setOrganizationUrl( eval.expand( individual.getOrganizationUrl() ) ); - individual.setUrl( eval.expand( individual.getUrl() ) ); - - evaluateProperties( eval, individual.getProperties() ); - evaluateStringList( eval, individual.getRoles() ); - } - } - - private void evaluateIssueManagement( ExpressionEvaluator eval, IssueManagement issueManagement ) - throws EvaluatorException - { - if ( issueManagement == null ) - { - return; - } - - issueManagement.setSystem( eval.expand( issueManagement.getSystem() ) ); - issueManagement.setUrl( eval.expand( issueManagement.getUrl() ) ); - } - - private void evaluateLicenses( ExpressionEvaluator eval, List licenses ) - throws EvaluatorException - { - if ( CollectionUtils.isEmpty( licenses ) ) - { - return; - } - - for ( License license : licenses ) - { - license.setName( eval.expand( license.getName() ) ); - license.setUrl( eval.expand( license.getUrl() ) ); - license.setComments( eval.expand( license.getComments() ) ); - } - } - - private void evaluateMailingLists( ExpressionEvaluator eval, List mailingLists ) - throws EvaluatorException - { - if ( CollectionUtils.isEmpty( mailingLists ) ) - { - return; - } - - for ( MailingList mlist : mailingLists ) - { - mlist.setName( eval.expand( mlist.getName() ) ); - mlist.setSubscribeAddress( eval.expand( mlist.getSubscribeAddress() ) ); - mlist.setUnsubscribeAddress( eval.expand( mlist.getUnsubscribeAddress() ) ); - mlist.setPostAddress( eval.expand( mlist.getPostAddress() ) ); - mlist.setMainArchiveUrl( eval.expand( mlist.getMainArchiveUrl() ) ); - - evaluateStringList( eval, mlist.getOtherArchives() ); - } - } - - private void evaluateOrganization( ExpressionEvaluator eval, Organization organization ) - throws EvaluatorException - { - if ( organization == null ) - { - return; - } - - organization.setName( eval.expand( organization.getName() ) ); - organization.setUrl( eval.expand( organization.getUrl() ) ); - organization.setFavicon( eval.expand( organization.getFavicon() ) ); - } - - private void evaluateParentProject( ExpressionEvaluator eval, VersionedReference parentProject ) - throws EvaluatorException - { - if ( parentProject == null ) - { - return; - } - - parentProject.setGroupId( eval.expand( parentProject.getGroupId() ) ); - parentProject.setArtifactId( eval.expand( parentProject.getArtifactId() ) ); - parentProject.setVersion( eval.expand( parentProject.getVersion() ) ); - } - - private void evaluatePlugins( ExpressionEvaluator eval, List plugins ) - throws EvaluatorException - { - evaluateArtifactReferenceList( eval, plugins ); - } - - private void evaluateProperties( ExpressionEvaluator eval, Properties props ) - throws EvaluatorException - { - if ( props == null ) - { - return; - } - - // Only evaluate the values, not the keys. - - // Collect the key names. (Done ahead of time to prevent iteration / concurrent modification exceptions) - Set keys = new HashSet(); - for ( Object obj : props.keySet() ) - { - keys.add( (String) obj ); - } - - // Evaluate all of the values. - for ( String key : keys ) - { - String value = props.getProperty( key ); - props.setProperty( key, eval.expand( value ) ); - } - } - - private void evaluateRelocation( ExpressionEvaluator eval, VersionedReference relocation ) - throws EvaluatorException - { - if ( relocation == null ) - { - return; - } - - relocation.setGroupId( eval.expand( relocation.getGroupId() ) ); - relocation.setArtifactId( eval.expand( relocation.getArtifactId() ) ); - relocation.setVersion( eval.expand( relocation.getVersion() ) ); - } - - private void evaluateReports( ExpressionEvaluator eval, List reports ) - throws EvaluatorException - { - evaluateArtifactReferenceList( eval, reports ); - } - - private void evaluateRepositories( ExpressionEvaluator eval, List repositories ) - throws EvaluatorException - { - if ( CollectionUtils.isEmpty( repositories ) ) - { - return; - } - - for ( ProjectRepository repository : repositories ) - { - repository.setId( eval.expand( repository.getId() ) ); - repository.setLayout( eval.expand( repository.getLayout() ) ); - repository.setName( eval.expand( repository.getName() ) ); - repository.setUrl( eval.expand( repository.getUrl() ) ); - } - } - - private void evaluateScm( ExpressionEvaluator eval, Scm scm ) - throws EvaluatorException - { - if ( scm == null ) - { - return; - } - - scm.setConnection( eval.expand( scm.getConnection() ) ); - scm.setDeveloperConnection( eval.expand( scm.getDeveloperConnection() ) ); - scm.setUrl( eval.expand( scm.getUrl() ) ); - } - - private void evaluateStringList( ExpressionEvaluator eval, List strings ) - throws EvaluatorException - { - if ( CollectionUtils.isEmpty( strings ) ) - { - return; - } - - // Create new list to hold post-evaluated strings. - List evaluated = new ArrayList(); - - // Evaluate them all - for ( String str : strings ) - { - evaluated.add( eval.expand( str ) ); - } - - // Populate the original list with the post-evaluated list. - strings.clear(); - strings.addAll( evaluated ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java deleted file mode 100644 index 95aa27c6c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java +++ /dev/null @@ -1,419 +0,0 @@ -package org.apache.maven.archiva.repository.project.readers; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.Individual; -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.ProjectRepository; -import org.apache.maven.archiva.model.Scm; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.apache.maven.archiva.xml.XMLException; -import org.apache.maven.archiva.xml.XMLReader; -import org.dom4j.Element; - -import java.io.File; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; - -/** - * ProjectModel300Reader - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectModel300Reader - implements ProjectModelReader -{ - - public ArchivaProjectModel read( File pomFile ) - throws ProjectModelException - { - try - { - XMLReader xml = new XMLReader( "project", pomFile ); - - ArchivaProjectModel model = new ArchivaProjectModel(); - - xml.removeNamespaces(); - - Element project = xml.getElement( "//project" ); - - // TODO: Handle ?? (is this even possible?) - - model.setGroupId( project.elementTextTrim( "groupId" ) ); - model.setArtifactId( project.elementTextTrim( "artifactId" ) ); - // TODO: Handle - model.setVersion( project.elementTextTrim( "currentVersion" ) ); - model.setName( project.elementTextTrim( "name" ) ); - model.setDescription( project.elementTextTrim( "description" ) ); - // TODO: what to do with ? - model.setUrl( project.elementTextTrim( "url" ) ); - // TODO: Handle - // TODO: Handle - - model.setIssueManagement( getIssueManagement( xml ) ); - // TODO: What to do with ? - // TODO: Handle - // TODO: Handle ? - // TODO: Handle - // TODO: Handle - model.setMailingLists( getMailingLists( xml ) ); - model.setIndividuals( getIndividuals( xml ) ); - model.setLicenses( getLicenses( xml ) ); - model.setReports( getReports( xml ) ); - model.setRepositories( getRepositories( xml ) ); - model.setScm( getSCM( xml ) ); - model.setOrganization( getOrganization( xml ) ); - model.setProperties( getProperties( xml.getElement( "//project/properties" ) ) ); - model.setDependencies( getDependencies( xml ) ); - - /* Following are not valid for 3 / Maven 1 pom files. - * - * model.setDependencyManagement() - * model.setPlugins() - * model.setParentProject() - * model.setPackaging() - * model.setCiManagement() - * model.setBuildExtensions() - * model.setRelocation() - */ - - return model; - } - catch ( XMLException e ) - { - throw new ProjectModelException( e.getMessage(), e ); - } - } - - private ArtifactReference getArtifactReference( Element elemPlugin, String defaultType ) - { - ArtifactReference reference = new ArtifactReference(); - - reference.setGroupId( StringUtils.defaultString( elemPlugin.elementTextTrim( "groupId" ) ) ); - reference.setArtifactId( elemPlugin.elementTextTrim( "artifactId" ) ); - reference.setVersion( StringUtils.defaultString( elemPlugin.elementTextTrim( "version" ) ) ); - reference.setClassifier( StringUtils.defaultString( elemPlugin.elementTextTrim( "classifier" ) ) ); - reference.setType( StringUtils.defaultIfEmpty( elemPlugin.elementTextTrim( "type" ), defaultType ) ); - - return reference; - } - - /** - * Get List of {@link ArtifactReference} objects from xpath expr. - */ - private List getArtifactReferenceList( XMLReader xml, String xpathExpr, String defaultType ) - throws XMLException - { - List refs = new ArrayList(); - - Iterator it = xml.getElementList( xpathExpr ).iterator(); - while ( it.hasNext() ) - { - Element elemPlugin = it.next(); - - refs.add( getArtifactReference( elemPlugin, defaultType ) ); - } - - return refs; - } - - private List getDependencies( XMLReader xml ) - throws XMLException - { - return getDependencyList( xml, new String[] { "dependencies" } ); - } - - private List getDependencyList( XMLReader xml, String parts[] ) - throws XMLException - { - List dependencyList = new ArrayList(); - - Element project = xml.getElement( "//project" ); - - Element depsParent = project; - - for ( String part : parts ) - { - depsParent = depsParent.element( part ); - if ( depsParent == null ) - { - return dependencyList; - } - } - - Iterator it = depsParent.elementIterator( "dependency" ); - while ( it.hasNext() ) - { - Element elemDependency = it.next(); - Dependency dependency = new Dependency(); - - dependency.setGroupId( elemDependency.elementTextTrim( "groupId" ) ); - dependency.setArtifactId( elemDependency.elementTextTrim( "artifactId" ) ); - dependency.setVersion( elemDependency.elementTextTrim( "version" ) ); - - dependency.setType( StringUtils.defaultIfEmpty( elemDependency.elementTextTrim( "type" ), "jar" ) ); - dependency.setUrl( elemDependency.elementTextTrim( "url" ) ); - /* Following are not valid for 3 / Maven 1 pom files. - * - * dependency.setClassifier( StringUtils.defaultString( elemDependency.elementTextTrim( "classifier" ) ) ); - * dependency.setScope( StringUtils.defaultIfEmpty( elemDependency.elementTextTrim( "scope" ), "compile" ) ); - * dependency.setOptional( toBoolean( elemDependency.elementTextTrim( "optional" ), false ) ); - */ - - dependency.setSystemPath( elemDependency.elementTextTrim( "jar" ) ); - - if ( dependencyList.contains( dependency ) ) - { - // TODO: throw into monitor as "duplicate dependency" issue. - } - - dependencyList.add( dependency ); - } - - return dependencyList; - } - - private List getIndividuals( XMLReader xml ) - throws XMLException - { - List individuals = new ArrayList(); - - individuals.addAll( getIndividuals( xml, true, "//project/developers/developer" ) ); - individuals.addAll( getIndividuals( xml, false, "//project/contributors/contributor" ) ); - - return individuals; - } - - private List getIndividuals( XMLReader xml, boolean isCommitor, String xpathExpr ) - throws XMLException - { - List ret = new ArrayList(); - - List modelPersonList = xml.getElementList( xpathExpr ); - - Iterator iter = modelPersonList.iterator(); - while ( iter.hasNext() ) - { - Element elemPerson = iter.next(); - Individual individual = new Individual(); - - if ( isCommitor ) - { - individual.setPrincipal( elemPerson.elementTextTrim( "id" ) ); - } - - individual.setCommitor( isCommitor ); - individual.setEmail( elemPerson.elementTextTrim( "email" ) ); - individual.setName( elemPerson.elementTextTrim( "name" ) ); - individual.setOrganization( elemPerson.elementTextTrim( "organization" ) ); - individual.setOrganizationUrl( elemPerson.elementTextTrim( "organizationUrl" ) ); - individual.setUrl( elemPerson.elementTextTrim( "url" ) ); - individual.setTimezone( elemPerson.elementTextTrim( "timezone" ) ); - - // Roles - Element elemRoles = elemPerson.element( "roles" ); - if ( elemRoles != null ) - { - List roleNames = elemRoles.elements( "role" ); - Iterator itRole = roleNames.iterator(); - while ( itRole.hasNext() ) - { - Element role = itRole.next(); - individual.addRole( role.getTextTrim() ); - } - } - - // Properties - individual.setProperties( getProperties( elemPerson.element( "properties" ) ) ); - - ret.add( individual ); - } - - return ret; - } - - private IssueManagement getIssueManagement( XMLReader xml ) - throws XMLException - { - Element issueTrackingUrlElem = xml.getElement( "//project/issueTrackingUrl" ); - - if ( issueTrackingUrlElem == null ) - { - return null; - } - - String issueTrackingUrl = issueTrackingUrlElem.getTextTrim(); - if ( StringUtils.isBlank( issueTrackingUrl ) ) - { - return null; - } - - IssueManagement issueMgmt = new IssueManagement(); - issueMgmt.setUrl( issueTrackingUrl ); - - return issueMgmt; - } - - private List getLicenses( XMLReader xml ) - throws XMLException - { - List licenses = new ArrayList(); - - Element elemLicenses = xml.getElement( "//project/licenses" ); - - if ( elemLicenses != null ) - { - List licenseList = elemLicenses.elements( "license" ); - for ( Element elemLicense : licenseList ) - { - License license = new License(); - - // TODO: Create LicenseIdentity class to managed license ids. - // license.setId( elemLicense.elementTextTrim("id") ); - license.setName( elemLicense.elementTextTrim( "name" ) ); - license.setUrl( elemLicense.elementTextTrim( "url" ) ); - license.setComments( elemLicense.elementTextTrim( "comments" ) ); - - licenses.add( license ); - } - } - - return licenses; - } - - private List getMailingLists( XMLReader xml ) - throws XMLException - { - List mailingLists = new ArrayList(); - - List mailingListElems = xml.getElementList( "//project/mailingLists/mailingList" ); - for ( Element elemMailingList : mailingListElems ) - { - MailingList mlist = new MailingList(); - - mlist.setName( elemMailingList.elementTextTrim( "name" ) ); - mlist.setSubscribeAddress( elemMailingList.elementTextTrim( "subscribe" ) ); - mlist.setUnsubscribeAddress( elemMailingList.elementTextTrim( "unsubscribe" ) ); - mlist.setPostAddress( elemMailingList.elementTextTrim( "post" ) ); - mlist.setMainArchiveUrl( elemMailingList.elementTextTrim( "archive" ) ); - - Element elemOtherArchives = elemMailingList.element( "otherArchives" ); - if ( elemOtherArchives != null ) - { - List otherArchives = new ArrayList(); - List others = elemOtherArchives.elements( "otherArchive" ); - for ( Element other : others ) - { - String otherArchive = other.getTextTrim(); - otherArchives.add( otherArchive ); - } - - mlist.setOtherArchives( otherArchives ); - } - - mailingLists.add( mlist ); - } - - return mailingLists; - } - - private Organization getOrganization( XMLReader xml ) - throws XMLException - { - Element elemOrg = xml.getElement( "//project/organization" ); - if ( elemOrg != null ) - { - Organization org = new Organization(); - - org.setName( elemOrg.elementTextTrim( "name" ) ); - org.setUrl( elemOrg.elementTextTrim( "url" ) ); - // TODO: Handle - - return org; - } - - return null; - } - - private Properties getProperties( Element elemProperties ) - { - if ( elemProperties == null ) - { - return null; - } - - Properties ret = new Properties(); - - Iterator itProps = elemProperties.elements().iterator(); - while ( itProps.hasNext() ) - { - Element elemProp = (Element) itProps.next(); - ret.setProperty( elemProp.getName(), elemProp.getText() ); - } - - return ret; - } - - private List getReports( XMLReader xml ) - throws XMLException - { - return getArtifactReferenceList( xml, "//project/reports/plugins/plugin", "maven-plugin" ); - } - - private List getRepositories( XMLReader xml ) - throws XMLException - { - List repos = new ArrayList(); - - // Repositories are not stored within the maven 1 pom. - - return repos; - } - - private Scm getSCM( XMLReader xml ) - throws XMLException - { - Element elemScm = xml.getElement( "//project/repository" ); - - if ( elemScm != null ) - { - Scm scm = new Scm(); - - scm.setConnection( elemScm.elementTextTrim( "connection" ) ); - scm.setDeveloperConnection( elemScm.elementTextTrim( "developerConnection" ) ); - scm.setUrl( elemScm.elementTextTrim( "url" ) ); - - return scm; - } - - return null; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java deleted file mode 100644 index 38509be26..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java +++ /dev/null @@ -1,552 +0,0 @@ -package org.apache.maven.archiva.repository.project.readers; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.CiManagement; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.Exclusion; -import org.apache.maven.archiva.model.Individual; -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.ProjectRepository; -import org.apache.maven.archiva.model.Scm; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.apache.maven.archiva.xml.XMLException; -import org.apache.maven.archiva.xml.XMLReader; -import org.dom4j.Element; - -import java.io.File; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; - -/** - * ProjectModel400Reader - read in modelVersion 4.0.0 pom files into archiva-model structures. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectModel400Reader - implements ProjectModelReader -{ - - public ArchivaProjectModel read( File pomFile ) - throws ProjectModelException - { - try - { - XMLReader xml = new XMLReader( "project", pomFile ); - - ArchivaProjectModel model = new ArchivaProjectModel(); - - if ( !"http://maven.apache.org/POM/4.0.0".equals( xml.getDefaultNamespaceURI() ) ) - { - // No namespace defined - // TODO: Output to monitor the problem with the Namespace. - } - - xml.removeNamespaces(); - - Element project = xml.getElement( "//project" ); - - model.setGroupId( project.elementTextTrim( "groupId" ) ); - model.setArtifactId( project.elementTextTrim( "artifactId" ) ); - model.setVersion( project.elementTextTrim( "version" ) ); - model.setName( project.elementTextTrim( "name" ) ); - model.setDescription( project.elementTextTrim( "description" ) ); - model.setUrl( project.elementTextTrim( "url" ) ); - - model.setPackaging( StringUtils.defaultIfEmpty( project.elementTextTrim( "packaging" ), "jar" ) ); - - model.setParentProject( getParentProject( xml ) ); - - model.setMailingLists( getMailingLists( xml ) ); - model.setCiManagement( getCiManagement( xml ) ); - model.setIndividuals( getIndividuals( xml ) ); - model.setIssueManagement( getIssueManagement( xml ) ); - model.setLicenses( getLicenses( xml ) ); - model.setOrganization( getOrganization( xml ) ); - model.setScm( getSCM( xml ) ); - model.setRepositories( getRepositories( xml ) ); - - model.setDependencies( getDependencies( xml ) ); - model.setDependencyManagement( getDependencyManagement( xml ) ); - model.setPlugins( getPlugins( xml ) ); - model.setReports( getReports( xml ) ); - model.setProperties( getProperties( xml.getElement( "//project/properties" ) ) ); - - model.setBuildExtensions( getBuildExtensions( xml ) ); - - model.setRelocation( getRelocation( xml ) ); - - return model; - } - catch ( XMLException e ) - { - throw new ProjectModelException( e.getMessage(), e ); - } - } - - private ArtifactReference getArtifactReference( Element elemPlugin, String defaultType ) - { - ArtifactReference reference = new ArtifactReference(); - - reference.setGroupId( StringUtils.defaultString( elemPlugin.elementTextTrim( "groupId" ) ) ); - reference.setArtifactId( elemPlugin.elementTextTrim( "artifactId" ) ); - reference.setVersion( StringUtils.defaultString( elemPlugin.elementTextTrim( "version" ) ) ); - reference.setClassifier( StringUtils.defaultString( elemPlugin.elementTextTrim( "classifier" ) ) ); - reference.setType( StringUtils.defaultIfEmpty( elemPlugin.elementTextTrim( "type" ), defaultType ) ); - - return reference; - } - - /** - * Get List of {@link ArtifactReference} objects from xpath expr. - */ - private List getArtifactReferenceList( XMLReader xml, String xpathExpr, String defaultType ) - throws XMLException - { - List refs = new ArrayList(); - - Iterator it = xml.getElementList( xpathExpr ).iterator(); - while ( it.hasNext() ) - { - Element elemPlugin = it.next(); - - refs.add( getArtifactReference( elemPlugin, defaultType ) ); - } - - return refs; - } - - private List getBuildExtensions( XMLReader xml ) - throws XMLException - { - return getArtifactReferenceList( xml, "//project/build/extensions/extension", "jar" ); - } - - private CiManagement getCiManagement( XMLReader xml ) - throws XMLException - { - Element elemCiMgmt = xml.getElement( "//project/ciManagement" ); - if ( elemCiMgmt != null ) - { - CiManagement ciManagement = new CiManagement(); - ciManagement.setSystem( elemCiMgmt.elementTextTrim( "system" ) ); - ciManagement.setUrl( elemCiMgmt.elementTextTrim( "url" ) ); - return ciManagement; - } - - return null; - } - - private List getDependencies( XMLReader xml ) - throws XMLException - { - return getDependencyList( xml, new String[] { "dependencies" } ); - } - - private List getDependencyList( XMLReader xml, String parts[] ) - throws XMLException - { - List dependencyList = new ArrayList(); - - Element project = xml.getElement( "//project" ); - - Element depsParent = project; - - for ( String part : parts ) - { - depsParent = depsParent.element( part ); - if ( depsParent == null ) - { - return dependencyList; - } - } - - Iterator it = depsParent.elementIterator( "dependency" ); - while ( it.hasNext() ) - { - Element elemDependency = it.next(); - Dependency dependency = new Dependency(); - - dependency.setGroupId( elemDependency.elementTextTrim( "groupId" ) ); - dependency.setArtifactId( elemDependency.elementTextTrim( "artifactId" ) ); - dependency.setVersion( elemDependency.elementTextTrim( "version" ) ); - - dependency.setClassifier( StringUtils.defaultString( elemDependency.elementTextTrim( "classifier" ) ) ); - dependency.setType( StringUtils.defaultIfEmpty( elemDependency.elementTextTrim( "type" ), "jar" ) ); - dependency.setScope( StringUtils.defaultIfEmpty( elemDependency.elementTextTrim( "scope" ), "compile" ) ); - // Not for v4.0.0 -> dependency.setUrl( elemDependency.elementTextTrim("url") ); - dependency.setOptional( toBoolean( elemDependency.elementTextTrim( "optional" ), false ) ); - if ( DependencyScope.isSystemScoped( dependency ) ) - { - dependency.setSystemPath( elemDependency.elementTextTrim( "systemPath" ) ); - } - - dependency.setExclusions( getExclusions( elemDependency ) ); - - if ( dependencyList.contains( dependency ) ) - { - // TODO: throw into monitor as "duplicate dependency" issue. - } - - dependencyList.add( dependency ); - } - - return dependencyList; - } - - private List getDependencyManagement( XMLReader xml ) - throws XMLException - { - return getDependencyList( xml, new String[] { "dependencyManagement", "dependencies" } ); - } - - private List getExclusions( Element elemDependency ) - { - List exclusions = new ArrayList(); - - Element elemExclusions = elemDependency.element( "exclusions" ); - - if ( elemExclusions != null ) - { - Iterator it = elemExclusions.elementIterator( "exclusion" ); - while ( it.hasNext() ) - { - Element elemExclusion = it.next(); - Exclusion exclusion = new Exclusion(); - - exclusion.setGroupId( elemExclusion.elementTextTrim( "groupId" ) ); - exclusion.setArtifactId( elemExclusion.elementTextTrim( "artifactId" ) ); - - exclusions.add( exclusion ); - } - } - - return exclusions; - } - - private List getIndividuals( XMLReader xml ) - throws XMLException - { - List individuals = new ArrayList(); - - individuals.addAll( getIndividuals( xml, true, "//project/developers/developer" ) ); - individuals.addAll( getIndividuals( xml, false, "//project/contributors/contributor" ) ); - - return individuals; - } - - private List getIndividuals( XMLReader xml, boolean isCommitor, String xpathExpr ) - throws XMLException - { - List ret = new ArrayList(); - - List modelPersonList = xml.getElementList( xpathExpr ); - - Iterator iter = modelPersonList.iterator(); - while ( iter.hasNext() ) - { - Element elemPerson = iter.next(); - Individual individual = new Individual(); - - if ( isCommitor ) - { - individual.setPrincipal( elemPerson.elementTextTrim( "id" ) ); - } - - individual.setCommitor( isCommitor ); - individual.setEmail( elemPerson.elementTextTrim( "email" ) ); - individual.setName( elemPerson.elementTextTrim( "name" ) ); - individual.setOrganization( elemPerson.elementTextTrim( "organization" ) ); - individual.setOrganizationUrl( elemPerson.elementTextTrim( "organizationUrl" ) ); - individual.setUrl( elemPerson.elementTextTrim( "url" ) ); - individual.setTimezone( elemPerson.elementTextTrim( "timezone" ) ); - - // Roles - Element elemRoles = elemPerson.element( "roles" ); - if ( elemRoles != null ) - { - List roleNames = elemRoles.elements( "role" ); - Iterator itRole = roleNames.iterator(); - while ( itRole.hasNext() ) - { - Element role = itRole.next(); - individual.addRole( role.getTextTrim() ); - } - } - - // Properties - individual.setProperties( getProperties( elemPerson.element( "properties" ) ) ); - - ret.add( individual ); - } - - return ret; - } - - private IssueManagement getIssueManagement( XMLReader xml ) - throws XMLException - { - Element elemIssueMgmt = xml.getElement( "//project/issueManagement" ); - if ( elemIssueMgmt != null ) - { - IssueManagement issueMgmt = new IssueManagement(); - - issueMgmt.setSystem( elemIssueMgmt.elementTextTrim( "system" ) ); - issueMgmt.setUrl( elemIssueMgmt.elementTextTrim( "url" ) ); - - return issueMgmt; - } - - return null; - } - - private List getLicenses( XMLReader xml ) - throws XMLException - { - List licenses = new ArrayList(); - - Element elemLicenses = xml.getElement( "//project/licenses" ); - - if ( elemLicenses != null ) - { - List licenseList = elemLicenses.elements( "license" ); - for ( Element elemLicense : licenseList ) - { - License license = new License(); - - // TODO: Create LicenseIdentity class to managed license ids. - // license.setId( elemLicense.elementTextTrim("id") ); - license.setName( elemLicense.elementTextTrim( "name" ) ); - license.setUrl( elemLicense.elementTextTrim( "url" ) ); - license.setComments( elemLicense.elementTextTrim( "comments" ) ); - - licenses.add( license ); - } - } - - return licenses; - } - - private List getMailingLists( XMLReader xml ) - throws XMLException - { - List mailingLists = new ArrayList(); - - List mailingListElems = xml.getElementList( "//project/mailingLists/mailingList" ); - for ( Element elemMailingList : mailingListElems ) - { - MailingList mlist = new MailingList(); - - mlist.setName( elemMailingList.elementTextTrim( "name" ) ); - mlist.setSubscribeAddress( elemMailingList.elementTextTrim( "subscribe" ) ); - mlist.setUnsubscribeAddress( elemMailingList.elementTextTrim( "unsubscribe" ) ); - mlist.setPostAddress( elemMailingList.elementTextTrim( "post" ) ); - mlist.setMainArchiveUrl( elemMailingList.elementTextTrim( "archive" ) ); - - Element elemOtherArchives = elemMailingList.element( "otherArchives" ); - if ( elemOtherArchives != null ) - { - List otherArchives = new ArrayList(); - List others = elemOtherArchives.elements( "otherArchive" ); - for ( Element other : others ) - { - String otherArchive = other.getTextTrim(); - otherArchives.add( otherArchive ); - } - - mlist.setOtherArchives( otherArchives ); - } - - mailingLists.add( mlist ); - } - - return mailingLists; - } - - private Organization getOrganization( XMLReader xml ) - throws XMLException - { - Element elemOrg = xml.getElement( "//project/organization" ); - if ( elemOrg != null ) - { - Organization org = new Organization(); - - org.setName( elemOrg.elementTextTrim( "name" ) ); - org.setUrl( elemOrg.elementTextTrim( "url" ) ); - - return org; - } - - return null; - } - - private VersionedReference getParentProject( XMLReader xml ) - throws XMLException - { - Element elemParent = xml.getElement( "//project/parent" ); - - if ( elemParent != null ) - { - return getVersionedReference( elemParent ); - } - - return null; - } - - private List getPlugins( XMLReader xml ) - throws XMLException - { - return getArtifactReferenceList( xml, "//project/build/plugins/plugin", "maven-plugin" ); - } - - private Properties getProperties( Element elemProperties ) - { - if ( elemProperties == null ) - { - return null; - } - - Properties ret = new Properties(); - - Iterator itProps = elemProperties.elements().iterator(); - while ( itProps.hasNext() ) - { - Element elemProp = (Element) itProps.next(); - ret.setProperty( elemProp.getName(), elemProp.getText() ); - } - - return ret; - } - - private VersionedReference getRelocation( XMLReader xml ) - throws XMLException - { - Element elemRelocation = xml.getElement( "//project/distributionManagement/relocation" ); - - if ( elemRelocation != null ) - { - return getVersionedReference( elemRelocation ); - } - - return null; - } - - private List getReports( XMLReader xml ) - throws XMLException - { - return getArtifactReferenceList( xml, "//project/reporting/plugins/plugin", "maven-plugin" ); - } - - private List getRepositories( XMLReader xml ) - throws XMLException - { - List repos = new ArrayList(); - - repos.addAll( getRepositories( xml, false, "//project/repositories/repository" ) ); - repos.addAll( getRepositories( xml, true, "//project/pluginRepositories/pluginRepository" ) ); - - return repos; - } - - private List getRepositories( XMLReader xml, boolean isPluginRepo, String xpathExpr ) - throws XMLException - { - List ret = new ArrayList(); - - List repositoriesList = xml.getElementList( xpathExpr ); - - for ( Element elemRepo : repositoriesList ) - { - ProjectRepository repo = new ProjectRepository(); - - repo.setId( elemRepo.elementTextTrim( "id" ) ); - repo.setName( elemRepo.elementTextTrim( "name" ) ); - repo.setUrl( elemRepo.elementTextTrim( "url" ) ); - repo.setLayout( StringUtils.defaultIfEmpty( elemRepo.elementTextTrim( "layout" ), "default" ) ); - repo.setPlugins( isPluginRepo ); - - repo.setReleases( toBoolean( xml.getElementText( elemRepo, "releases/enabled" ), true ) ); - repo.setSnapshots( toBoolean( xml.getElementText( elemRepo, "snapshots/enabled" ), false ) ); - - ret.add( repo ); - } - - return ret; - } - - private Scm getSCM( XMLReader xml ) - throws XMLException - { - Element elemScm = xml.getElement( "//project/scm" ); - - if ( elemScm != null ) - { - Scm scm = new Scm(); - - scm.setConnection( elemScm.elementTextTrim( "connection" ) ); - scm.setDeveloperConnection( elemScm.elementTextTrim( "developerConnection" ) ); - scm.setUrl( elemScm.elementTextTrim( "url" ) ); - - return scm; - } - - return null; - } - - private VersionedReference getVersionedReference( Element elem ) - { - VersionedReference reference = new VersionedReference(); - - reference.setGroupId( elem.elementTextTrim( "groupId" ) ); - reference.setArtifactId( elem.elementTextTrim( "artifactId" ) ); - reference.setVersion( elem.elementTextTrim( "version" ) ); - - return reference; - } - - private boolean toBoolean( String value, boolean defaultValue ) - { - if ( StringUtils.equalsIgnoreCase( value, "true" ) ) - { - return true; - } - else if ( StringUtils.equalsIgnoreCase( value, "false" ) ) - { - return false; - } - else - { - // If unset, or not "true" or "false". - return defaultValue; - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/FalseProjectResolver.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/FalseProjectResolver.java deleted file mode 100644 index aa2d97cb9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/FalseProjectResolver.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.apache.maven.archiva.repository.project.resolvers; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelResolver; - -/** - * FalseProjectResolver will never resolver a model. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FalseProjectResolver - implements ProjectModelResolver -{ - public ArchivaProjectModel resolveProjectModel( VersionedReference reference ) - throws ProjectModelException - { - throw new ProjectModelException( "Cannot resolve model in FalseProjectResolver." ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/FilesystemBasedResolver.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/FilesystemBasedResolver.java deleted file mode 100644 index 37e5e8ab2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/FilesystemBasedResolver.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.apache.maven.archiva.repository.project.resolvers; - -/* - * 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. - */ - -/** - * Tag for RepositoryProjectResolver's to indicate that it is basing - * it's resolution from the Filesystem. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface FilesystemBasedResolver -{ - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ManagedRepositoryProjectResolver.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ManagedRepositoryProjectResolver.java deleted file mode 100644 index c604249ed..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ManagedRepositoryProjectResolver.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.apache.maven.archiva.repository.project.resolvers; - -/* - * 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.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.apache.maven.archiva.repository.project.ProjectModelResolver; - -import java.io.File; - -/** - * Resolve Project from managed repository. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ManagedRepositoryProjectResolver - implements ProjectModelResolver, FilesystemBasedResolver -{ - private ManagedRepositoryContent repository; - - private ProjectModelReader reader; - - public ManagedRepositoryProjectResolver( ManagedRepositoryContent repository, ProjectModelReader reader ) - { - this.repository = repository; - this.reader = reader; - } - - public ArchivaProjectModel resolveProjectModel( VersionedReference reference ) - throws ProjectModelException - { - ArchivaArtifact artifact = new ArchivaArtifact( reference.getGroupId(), reference.getArtifactId(), reference - .getVersion(), "", "pom" ); - - File repoFile = repository.toFile( artifact ); - - return reader.read( repoFile ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/NopProjectResolver.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/NopProjectResolver.java deleted file mode 100644 index 5d70c2cc0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/NopProjectResolver.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.apache.maven.archiva.repository.project.resolvers; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelResolver; - -/** - * A No-op Project Resolver, perform no lookup, just returns the requested - * information in the form of a simple ArchviaProjectModel. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class NopProjectResolver - implements ProjectModelResolver -{ - private static NopProjectResolver INSTANCE = new NopProjectResolver(); - - public static NopProjectResolver getInstance() - { - return INSTANCE; - } - - public ArchivaProjectModel resolveProjectModel( VersionedReference reference ) - throws ProjectModelException - { - ArchivaProjectModel model = new ArchivaProjectModel(); - - model.setGroupId( reference.getGroupId() ); - model.setArtifactId( reference.getArtifactId() ); - model.setVersion( reference.getVersion() ); - model.setPackaging( "pom" ); - - model.setOrigin( "nop" ); - - return model; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolutionListener.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolutionListener.java deleted file mode 100644 index 30a5ab050..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolutionListener.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.apache.maven.archiva.repository.project.resolvers; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelResolver; - -import java.util.List; - -/** - * ProjectModelResolutionListener - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ProjectModelResolutionListener -{ - /** - * Indicates that the resolution process has started for a specific project. - * - * @param projectRef the project reference. - * @param resolverList the {@link List} of {@link ProjectModelResolver}'s that will be searched. - * @see #resolutionSuccess(VersionedReference, ProjectModelResolver, ArchivaProjectModel) - * @see #resolutionNotFound(VersionedReference, List) - */ - public void resolutionStart( VersionedReference projectRef, List resolverList ); - - /** - * Indicates that a resolution against a specific resolver is about - * to occur. - * - * @param projectRef the project reference. - * @param resolver the resolver to attempt resolution on. - */ - public void resolutionAttempting( VersionedReference projectRef, ProjectModelResolver resolver ); - - /** - * Indicates that a resolution against a specific resolver resulted - * in in a missed resolution. - * - * "Miss" in this case refers to an attempt against a resolver, and that - * resolver essentially responds with a "not found here" response. - * - * @param projectRef the project reference. - * @param resolver the resolver the attempt was made on. - */ - public void resolutionMiss( VersionedReference projectRef, ProjectModelResolver resolver ); - - /** - * Indicates that a resolution against the specific resolver has - * caused an error. - * - * @param projectRef the project reference. - * @param resolver the (optional) resolver on which the error occured. - * @param cause the cause of the error. - */ - public void resolutionError( VersionedReference projectRef, ProjectModelResolver resolver, Exception cause ); - - /** - * Indicates that a resolution process has finished, and the requested - * projectRef has been found. - * - * @param projectRef the project reference. - * @param resolver the resolver on which success occured. - * @param model the resolved model. - * @see #resolutionStart(VersionedReference, List) - */ - public void resolutionSuccess( VersionedReference projectRef, ProjectModelResolver resolver, ArchivaProjectModel model ); - - /** - * Indicates that the resolution process has finished, and the requested - * projectRef could not be found. - * - * @param projectRef the project reference. - * @param resolverList the {@link List} of {@link ProjectModelResolver}'s that was be searched. - * @see #resolutionStart(VersionedReference, List) - */ - public void resolutionNotFound( VersionedReference projectRef, List resolverList ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolverStack.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolverStack.java deleted file mode 100644 index f7da1c9fb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolverStack.java +++ /dev/null @@ -1,259 +0,0 @@ -package org.apache.maven.archiva.repository.project.resolvers; - -/* - * 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.collections.CollectionUtils; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelResolver; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * Represents a stack of {@link ProjectModelResolver} resolvers for - * finding/resolving an ArchivaProjectModel from multiple sources. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectModelResolverStack -{ - private List resolvers; - - private List listeners; - - public ProjectModelResolverStack() - { - this.resolvers = new ArrayList(); - this.listeners = new ArrayList(); - } - - public void addListener( ProjectModelResolutionListener listener ) - { - if ( listener == null ) - { - return; - } - - this.listeners.add( listener ); - } - - public void addProjectModelResolver( ProjectModelResolver resolver ) - { - if ( resolver == null ) - { - return; - } - - this.resolvers.add( resolver ); - } - - public void clearResolvers() - { - this.resolvers.clear(); - } - - public ArchivaProjectModel findProject( VersionedReference projectRef ) - { - if ( CollectionUtils.isEmpty( this.resolvers ) ) - { - throw new IllegalStateException( "No resolvers have been defined." ); - } - - triggerResolutionStart( projectRef, this.resolvers ); - - Iterator it = this.resolvers.iterator(); - - while ( it.hasNext() ) - { - ProjectModelResolver resolver = (ProjectModelResolver) it.next(); - - try - { - triggerResolutionAttempting( projectRef, resolver ); - ArchivaProjectModel model = resolver.resolveProjectModel( projectRef ); - - if ( model != null ) - { - // Project was found. - triggerResolutionSuccess( projectRef, resolver, model ); - return model; - } - triggerResolutionMiss( projectRef, resolver ); - } - catch ( ProjectModelException e ) - { - triggerResolutionError( projectRef, resolver, e ); - } - } - - // Project was not found in entire resolver list. - triggerResolutionNotFound( projectRef, this.resolvers ); - - return null; - } - - public boolean hasResolver( ProjectModelResolver resolver ) - { - return this.resolvers.contains( resolver ); - } - - public boolean isEmpty() - { - return this.resolvers.isEmpty(); - } - - public void prependProjectModelResolver( ProjectModelResolver resolver ) - { - if ( resolver == null ) - { - return; - } - - this.resolvers.add( 0, resolver ); - } - - public void removeListener( ProjectModelResolutionListener listener ) - { - if ( listener == null ) - { - return; - } - - this.listeners.add( listener ); - } - - public void removeResolver( ProjectModelResolver resolver ) - { - this.resolvers.remove( resolver ); - } - - private void triggerResolutionAttempting( VersionedReference projectRef, ProjectModelResolver resolver ) - { - Iterator it = this.listeners.iterator(); - while ( it.hasNext() ) - { - ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); - - try - { - listener.resolutionAttempting( projectRef, resolver ); - } - catch ( Exception e ) - { - // do nothing with exception. - } - } - } - - private void triggerResolutionError( VersionedReference projectRef, ProjectModelResolver resolver, Exception cause ) - { - Iterator it = this.listeners.iterator(); - while ( it.hasNext() ) - { - ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); - - try - { - listener.resolutionError( projectRef, resolver, cause ); - } - catch ( Exception e ) - { - // do nothing with exception. - } - } - } - - private void triggerResolutionMiss( VersionedReference projectRef, ProjectModelResolver resolver ) - { - Iterator it = this.listeners.iterator(); - while ( it.hasNext() ) - { - ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); - - try - { - listener.resolutionMiss( projectRef, resolver ); - } - catch ( Exception e ) - { - // do nothing with exception. - } - } - } - - private void triggerResolutionNotFound( VersionedReference projectRef, List resolvers ) - { - Iterator it = this.listeners.iterator(); - while ( it.hasNext() ) - { - ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); - - try - { - listener.resolutionNotFound( projectRef, resolvers ); - } - catch ( Exception e ) - { - // do nothing with exception. - } - } - } - - private void triggerResolutionStart( VersionedReference projectRef, List resolvers ) - { - Iterator it = this.listeners.iterator(); - while ( it.hasNext() ) - { - ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); - - try - { - listener.resolutionStart( projectRef, resolvers ); - } - catch ( Exception e ) - { - // do nothing with exception. - } - } - } - - private void triggerResolutionSuccess( VersionedReference projectRef, ProjectModelResolver resolver, - ArchivaProjectModel model ) - { - Iterator it = this.listeners.iterator(); - while ( it.hasNext() ) - { - ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); - - try - { - listener.resolutionSuccess( projectRef, resolver, model ); - } - catch ( Exception e ) - { - // do nothing with exception. - } - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/writers/ProjectModel400Writer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/writers/ProjectModel400Writer.java deleted file mode 100644 index a5955e346..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/writers/ProjectModel400Writer.java +++ /dev/null @@ -1,539 +0,0 @@ -package org.apache.maven.archiva.repository.project.writers; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.CiManagement; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.Exclusion; -import org.apache.maven.archiva.model.Individual; -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.ProjectRepository; -import org.apache.maven.archiva.model.Scm; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelWriter; -import org.apache.maven.archiva.xml.XMLException; -import org.apache.maven.archiva.xml.XMLWriter; -import org.dom4j.Document; -import org.dom4j.DocumentHelper; -import org.dom4j.Element; -import org.dom4j.Namespace; -import org.dom4j.Node; -import org.dom4j.QName; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.Writer; -import java.util.Iterator; -import java.util.List; - -/** - * ProjectModel400Writer for Maven 2 project model v4.0.0 pom files. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectModel400Writer - implements ProjectModelWriter -{ - private static final Namespace DEFAULT_NAMESPACE = Namespace.get( "", "http://maven.apache.org/POM/4.0.0" ); - - public void write( ArchivaProjectModel model, File pomFile ) - throws ProjectModelException, IOException - { - FileWriter writer = null; - try - { - writer = new FileWriter( pomFile ); - write( model, writer ); - writer.flush(); - } - finally - { - IOUtils.closeQuietly( writer ); - } - } - - public void write( ArchivaProjectModel model, Writer writer ) - throws ProjectModelException, IOException - { - Document doc = DocumentHelper.createDocument(); - - Element root = DocumentHelper.createElement( "project" ); - - root.add( DEFAULT_NAMESPACE ); - root.addNamespace( "xsi", "http://www.w3.org/2001/XMLSchema-instance" ); - root.addAttribute( "xsi:schemaLocation", - "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" ); - - doc.setRootElement( root ); - - root.addElement( "modelVersion" ).setText( "4.0.0" ); - - addParent( root, model.getParentProject() ); - - addChildElement( root, "groupId", model.getGroupId() ); - root.addElement( "artifactId" ).setText( model.getArtifactId() ); - - addChildElement( root, "version", model.getVersion() ); - - addChildElement( root, "packaging", model.getPackaging() ); - addChildElement( root, "name", model.getName() ); - addChildElement( root, "description", model.getDescription() ); - addChildElement( root, "url", model.getUrl() ); - // TODO: add inceptionYear to ArchivaProjectModel - - addOrganization( root, model.getOrganization() ); - - addIssueManagement( root, model.getIssueManagement() ); - addCiManagement( root, model.getCiManagement() ); - addMailingLists( root, model.getMailingLists() ); - addDevelopersAndContributors( root, model.getIndividuals() ); - // TODO: add distribution management to ArchivaProjectModel - - addLicenses( root, model.getLicenses() ); - addRepositories( root, model.getRepositories() ); - addDependencyManagement( root, model.getDependencyManagement() ); - addDependencies( root, model.getDependencies() ); - - addReporting( root, model.getReports() ); - addScm( root, model.getScm() ); - - // element - addPlugins( root, model.getPlugins() ); - addBuildExtensions( root, model.getBuildExtensions() ); - - // - addRelocation( root, model.getRelocation() ); - - fixDefaultNamespace( root ); - - try - { - XMLWriter.write( doc, writer ); - } - catch ( XMLException e ) - { - throw new ProjectModelException( "Unable to write xml contents to writer: " + e.getMessage(), e ); - } - } - - private void addArtifactReference( Element elem, ArtifactReference ref, String defaultType ) - { - addChildElement( elem, "groupId", ref.getGroupId() ); - addChildElement( elem, "artifactId", ref.getArtifactId() ); - addChildElement( elem, "version", ref.getVersion() ); - addChildElement( elem, "classifier", ref.getClassifier() ); - - if ( !StringUtils.equals( defaultType, ref.getType() ) ) - { - addChildElement( elem, "type", ref.getType() ); - } - } - - private void addBuildExtensions( Element root, List buildExtensions ) - { - if ( CollectionUtils.isEmpty( buildExtensions ) ) - { - return; - } - - Element build = root.element( "build" ); - if ( build == null ) - { - build = root.addElement( "build" ); - } - - Element elemExtensions = build.addElement( "extensions" ); - - for ( ArtifactReference extension : buildExtensions ) - { - Element elem = elemExtensions.addElement( "extension" ); - - addArtifactReference( elem, extension, "jar" ); - } - } - - private void addCiManagement( Element root, CiManagement ciManagement ) - { - if ( ciManagement == null ) - { - return; - } - - Element elem = root.addElement( "ciManagement" ); - addChildElement( elem, "system", ciManagement.getSystem() ); - addChildElement( elem, "url", ciManagement.getUrl() ); - // TODO: Add notifiers into ArchivaProjectModel - } - - private void addDependencies( Element root, List dependencies ) - { - if ( CollectionUtils.isEmpty( dependencies ) ) - { - return; - } - - addDependencyList( root, dependencies ); - } - - private void addDependencyList( Element elemParent, List dependencies ) - { - if ( CollectionUtils.isEmpty( dependencies ) ) - { - return; - } - - Element elemDeps = elemParent.addElement( "dependencies" ); - - for ( Dependency dep : dependencies ) - { - Element elem = elemDeps.addElement( "dependency" ); - - addChildElement( elem, "groupId", dep.getGroupId() ); - addChildElement( elem, "artifactId", dep.getArtifactId() ); - addChildElement( elem, "version", dep.getVersion() ); - addChildElement( elem, "classifier", dep.getClassifier() ); - addChildElement( elem, "type", dep.getType() ); - addChildElement( elem, "scope", dep.getScope() ); - addChildElement( elem, "systemPath", dep.getSystemPath() ); - - addExclusions( elem, dep.getExclusions() ); - } - } - - private void addDependencyManagement( Element root, List dependencyManagement ) - { - if ( CollectionUtils.isEmpty( dependencyManagement ) ) - { - return; - } - - Element elemDepMgmt = root.addElement( "dependencyManagement" ); - addDependencyList( elemDepMgmt, dependencyManagement ); - } - - private void addDevelopersAndContributors( Element root, List individuals ) - { - if ( CollectionUtils.isEmpty( individuals ) ) - { - return; - } - - Element developers = null; - Element contributors = null; - - for ( Individual individual : individuals ) - { - if ( individual.isCommitor() ) - { - if ( developers == null ) - { - developers = root.addElement( "developers" ); - } - - Element developer = developers.addElement( "developer" ); - addChildElement( developer, "id", individual.getPrincipal() ); - addIndividual( developer, individual ); - } - else - { - if ( contributors == null ) - { - contributors = root.addElement( "contributors" ); - } - - Element contributor = contributors.addElement( "contributor" ); - addIndividual( contributor, individual ); - } - } - } - - private void addExclusions( Element elemParent, List exclusions ) - { - if ( CollectionUtils.isEmpty( exclusions ) ) - { - return; - } - - Element elemExclusions = elemParent.addElement( "exclusions" ); - - for ( Exclusion exclusion : exclusions ) - { - Element elem = elemExclusions.addElement( "exclusion" ); - - addChildElement( elem, "groupId", exclusion.getGroupId() ); - addChildElement( elem, "artifactId", exclusion.getArtifactId() ); - } - } - - private void addIndividual( Element elem, Individual individual ) - { - addChildElement( elem, "name", individual.getName() ); - addChildElement( elem, "email", individual.getEmail() ); - addChildElement( elem, "organization", individual.getOrganization() ); - addChildElement( elem, "organizationUrl", individual.getOrganizationUrl() ); - addChildElement( elem, "timezone", individual.getTimezone() ); - - if ( CollectionUtils.isNotEmpty( individual.getRoles() ) ) - { - Element roles = elem.addElement( "roles" ); - List roleList = individual.getRoles(); - for ( String roleName : roleList ) - { - addChildElement( roles, "role", roleName ); - } - } - } - - private void addIssueManagement( Element root, IssueManagement issueManagement ) - { - if ( issueManagement == null ) - { - return; - } - - Element elem = root.addElement( "issueManagement" ); - addChildElement( elem, "system", issueManagement.getSystem() ); - addChildElement( elem, "url", issueManagement.getUrl() ); - } - - private void addLicenses( Element root, List licenses ) - { - if ( CollectionUtils.isEmpty( licenses ) ) - { - return; - } - - Element elemLicenses = root.addElement( "licenses" ); - - for ( License license : licenses ) - { - Element elem = elemLicenses.addElement( "license" ); - addChildElement( elem, "name", license.getName() ); - addChildElement( elem, "url", license.getUrl() ); - // TODO: research if we need subelement. - } - } - - private void addMailingLists( Element root, List mailingLists ) - { - if ( CollectionUtils.isEmpty( mailingLists ) ) - { - return; - } - - Element mlists = root.addElement( "mailingLists" ); - - for ( MailingList mailingList : mailingLists ) - { - Element mlist = mlists.addElement( "mailingList" ); - addChildElement( mlist, "name", mailingList.getName() ); - addChildElement( mlist, "post", mailingList.getPostAddress() ); - addChildElement( mlist, "subscribe", mailingList.getSubscribeAddress() ); - addChildElement( mlist, "unsubscribe", mailingList.getUnsubscribeAddress() ); - addChildElement( mlist, "archive", mailingList.getMainArchiveUrl() ); - - addOtherArchives( mlist, mailingList.getOtherArchives() ); - } - } - - private void addOtherArchives( Element mlist, List otherArchives ) - { - if ( CollectionUtils.isEmpty( otherArchives ) ) - { - return; - } - - Element elemOtherArchives = mlist.addElement( "otherArchives" ); - - for ( String archive : otherArchives ) - { - addChildElement( elemOtherArchives, "otherArchive", archive ); - } - } - - private void addOrganization( Element root, Organization organization ) - { - if ( organization == null ) - { - return; - } - - Element elem = root.addElement( "organization" ); - - addChildElement( elem, "name", organization.getName() ); - addChildElement( elem, "url", organization.getUrl() ); - } - - private void addParent( Element root, VersionedReference parentProject ) - { - if ( parentProject == null ) - { - return; - } - - Element parent = root.addElement( "parent" ); - parent.addElement( "groupId" ).setText( parentProject.getGroupId() ); - parent.addElement( "artifactId" ).setText( parentProject.getArtifactId() ); - parent.addElement( "version" ).setText( parentProject.getVersion() ); - } - - private void addPlugins( Element root, List plugins ) - { - if ( CollectionUtils.isEmpty( plugins ) ) - { - return; - } - - Element build = root.element( "build" ); - if ( build == null ) - { - build = root.addElement( "build" ); - } - - Element elemPlugins = build.addElement( "plugins" ); - - for ( ArtifactReference plugin : plugins ) - { - Element elem = elemPlugins.addElement( "plugin" ); - - addArtifactReference( elem, plugin, "maven-plugin" ); - } - } - - private void addRelocation( Element root, VersionedReference relocation ) - { - if ( relocation == null ) - { - return; - } - - Element distribManagement = root.element( "distributionManagement" ); - - if ( distribManagement == null ) - { - distribManagement = root.addElement( "distributionManagement" ); - } - - Element elem = distribManagement.addElement( "relocation" ); - addChildElement( elem, "groupId", relocation.getGroupId() ); - addChildElement( elem, "artifactId", relocation.getArtifactId() ); - addChildElement( elem, "version", relocation.getVersion() ); - } - - private void addReporting( Element root, List reports ) - { - if ( CollectionUtils.isEmpty( reports ) ) - { - return; - } - - Element reporting = root.addElement( "reporting" ); - Element plugins = reporting.addElement( "plugins" ); - - for ( ArtifactReference reference : reports ) - { - Element plugin = plugins.addElement( "plugin" ); - addChildElement( plugin, "groupId", reference.getGroupId() ); - addChildElement( plugin, "artifactId", reference.getArtifactId() ); - addChildElement( plugin, "version", reference.getVersion() ); - } - } - - private void addRepositories( Element root, List repositories ) - { - if ( CollectionUtils.isEmpty( repositories ) ) - { - return; - } - - Element elemRepos = root.addElement( "repositories" ); - for ( ProjectRepository repository : repositories ) - { - Element elem = elemRepos.addElement( "repository" ); - addChildElement( elem, "id", repository.getId() ); - addChildElement( elem, "name", repository.getName() ); - addChildElement( elem, "url", repository.getUrl() ); - - if ( !StringUtils.equals( "default", repository.getLayout() ) ) - { - addChildElement( elem, "layout", repository.getLayout() ); - } - } - } - - private void addScm( Element root, Scm scm ) - { - if ( scm == null ) - { - return; - } - - Element elem = root.addElement( "scm" ); - - addChildElement( elem, "connection", scm.getConnection() ); - addChildElement( elem, "developerConnection", scm.getDeveloperConnection() ); - addChildElement( elem, "url", scm.getUrl() ); - } - - /** - * Fix the default namespace on all elements recursively. - */ - private void fixDefaultNamespace( Element elem ) - { - elem.remove( elem.getNamespace() ); - elem.setQName( QName.get( elem.getName(), DEFAULT_NAMESPACE, elem.getQualifiedName() ) ); - - Node n; - - Iterator it = elem.elementIterator(); - while ( it.hasNext() ) - { - n = it.next(); - - switch ( n.getNodeType() ) - { - case Node.ELEMENT_NODE: - fixDefaultNamespace( (Element) n ); - break; - } - } - } - - private static void addChildElement( Element elem, String elemName, String text ) - { - if ( StringUtils.isBlank( text ) ) - { - return; - } - - elem.addElement( elemName ).setText( text ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java deleted file mode 100644 index 55ee37ca1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java +++ /dev/null @@ -1,141 +0,0 @@ -package org.apache.maven.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.io.File; -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.collections.CollectionUtils; -import org.apache.maven.archiva.configuration.FileTypes; -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; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * DefaultRepositoryScanner - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.repository.scanner.RepositoryScanner" - */ -public class DefaultRepositoryScanner - implements RepositoryScanner -{ - private Logger log = LoggerFactory.getLogger( DefaultRepositoryScanner.class ); - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - /** - * @plexus.requirement - */ - private RepositoryContentConsumers consumerUtil; - - public RepositoryScanStatistics scan( ManagedRepositoryConfiguration repository, long changesSince ) - throws RepositoryException - { - List knownContentConsumers = consumerUtil.getSelectedKnownConsumers(); - List invalidContentConsumers = consumerUtil.getSelectedInvalidConsumers(); - List ignoredPatterns = filetypes.getFileTypePatterns( FileTypes.IGNORED ); - - return scan( repository, knownContentConsumers, invalidContentConsumers, ignoredPatterns, changesSince ); - } - - public RepositoryScanStatistics scan( ManagedRepositoryConfiguration repository, - List knownContentConsumers, - List invalidContentConsumers, - List ignoredContentPatterns, long changesSince ) - throws RepositoryException - { - if ( repository == null ) - { - throw new IllegalArgumentException( "Unable to operate on a null repository." ); - } - - File repositoryBase = new File( repository.getLocation() ); - - if ( !repositoryBase.exists() ) - { - throw new UnsupportedOperationException( "Unable to scan a repository, directory " - + repositoryBase.getAbsolutePath() + " does not exist." ); - } - - if ( !repositoryBase.isDirectory() ) - { - throw new UnsupportedOperationException( "Unable to scan a repository, path " - + repositoryBase.getAbsolutePath() + " is not a directory." ); - } - - // Setup Includes / Excludes. - - List allExcludes = new ArrayList(); - List allIncludes = new ArrayList(); - - if ( CollectionUtils.isNotEmpty( ignoredContentPatterns ) ) - { - allExcludes.addAll( ignoredContentPatterns ); - } - - // Scan All Content. (intentional) - allIncludes.add( "**/*" ); - - // Setup Directory Walker - DirectoryWalker dirWalker = new DirectoryWalker(); - - dirWalker.setBaseDir( repositoryBase ); - - dirWalker.setIncludes( allIncludes ); - dirWalker.setExcludes( allExcludes ); - - // Setup the Scan Instance - RepositoryScannerInstance scannerInstance = new RepositoryScannerInstance( repository, knownContentConsumers, - invalidContentConsumers, changesSince ); - - dirWalker.addDirectoryWalkListener( scannerInstance ); - - // Execute scan. - dirWalker.scan(); - - RepositoryScanStatistics stats = scannerInstance.getStatistics(); - - stats.setKnownConsumers( gatherIds( knownContentConsumers ) ); - stats.setInvalidConsumers( gatherIds( invalidContentConsumers ) ); - - return stats; - } - - private List gatherIds( List consumers ) - { - List ids = new ArrayList(); - for ( RepositoryContentConsumer consumer : consumers ) - { - ids.add( consumer.getId() ); - } - return ids; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java deleted file mode 100644 index c952475ba..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java +++ /dev/null @@ -1,320 +0,0 @@ -package org.apache.maven.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.io.File; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.commons.collections.Closure; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.functors.IfClosure; -import org.apache.maven.archiva.common.utils.BaseFile; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -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.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * RepositoryContentConsumerUtil - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers" - */ -public class RepositoryContentConsumers -{ - private Logger log = LoggerFactory.getLogger( RepositoryContentConsumers.class ); - - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - /** - * @plexus.requirement role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - */ - private List availableKnownConsumers; - - /** - * @plexus.requirement role="org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer" - */ - private List availableInvalidConsumers; - - private List selectedKnownConsumers; - - private List selectedInvalidConsumers; - - /** - *

- * Get the list of Ids associated with those {@link KnownRepositoryContentConsumer} that have - * been selected in the configuration to execute. - *

- * - *

- * NOTE: This list can be larger and contain entries that might not exist or be available - * in the classpath, or as a component. - *

- * - * @return the list of consumer ids that have been selected by the configuration. - */ - public List getSelectedKnownConsumerIds() - { - RepositoryScanningConfiguration scanning = archivaConfiguration.getConfiguration().getRepositoryScanning(); - return scanning.getKnownContentConsumers(); - } - - /** - *

- * Get the list of Ids associated with those {@link InvalidRepositoryContentConsumer} that have - * been selected in the configuration to execute. - *

- * - *

- * NOTE: This list can be larger and contain entries that might not exist or be available - * in the classpath, or as a component. - *

- * - * @return the list of consumer ids that have been selected by the configuration. - */ - public List getSelectedInvalidConsumerIds() - { - RepositoryScanningConfiguration scanning = archivaConfiguration.getConfiguration().getRepositoryScanning(); - return scanning.getInvalidContentConsumers(); - } - - /** - * 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. - */ - public Map getSelectedKnownConsumersMap() - { - Map consumerMap = new HashMap(); - - for ( KnownRepositoryContentConsumer consumer : getSelectedKnownConsumers() ) - { - consumerMap.put( consumer.getId(), consumer ); - } - - return consumerMap; - } - - /** - * 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 getSelectedInvalidConsumersMap() - { - Map consumerMap = new HashMap(); - - for ( InvalidRepositoryContentConsumer consumer : getSelectedInvalidConsumers() ) - { - consumerMap.put( consumer.getId(), consumer ); - } - - return consumerMap; - } - - /** - * 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. - */ - public synchronized List getSelectedKnownConsumers() - { - if ( selectedKnownConsumers == null ) - { - List ret = new ArrayList(); - - List knownSelected = getSelectedKnownConsumerIds(); - - for ( KnownRepositoryContentConsumer consumer : availableKnownConsumers ) - { - if ( knownSelected.contains( consumer.getId() ) || consumer.isPermanent() ) - { - ret.add( consumer ); - } - } - this.selectedKnownConsumers = ret; - } - return selectedKnownConsumers; - } - - /** - * 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. - */ - public synchronized List getSelectedInvalidConsumers() - { - if ( selectedInvalidConsumers == null ) - { - List ret = new ArrayList(); - - List invalidSelected = getSelectedInvalidConsumerIds(); - - for ( InvalidRepositoryContentConsumer consumer : availableInvalidConsumers ) - { - if ( invalidSelected.contains( consumer.getId() ) || consumer.isPermanent() ) - { - ret.add( consumer ); - } - } - selectedInvalidConsumers = ret; - } - return selectedInvalidConsumers; - } - - /** - * 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. - */ - public List getAvailableKnownConsumers() - { - return availableKnownConsumers; - } - - /** - * 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. - */ - public List getAvailableInvalidConsumers() - { - return availableInvalidConsumers; - } - - /** - * Set the list of {@link KnownRepositoryContentConsumer} objects that are - * available. - * - * NOTE: This is an override for the base functionality as a component, this - * is used by archiva-cli and the unit testing framework. - * - * @return the list of available {@link KnownRepositoryContentConsumer}. - */ - public void setAvailableKnownConsumers( List availableKnownConsumers ) - { - this.availableKnownConsumers = availableKnownConsumers; - } - - /** - * Set the list of {@link InvalidRepositoryContentConsumer} objects that are - * available. - * - * NOTE: This is an override for the base functionality as a component, this - * is used by archiva-cli and the unit testing framework. - * - * @return the list of available {@link InvalidRepositoryContentConsumer}. - */ - public void setAvailableInvalidConsumers( List availableInvalidConsumers ) - { - this.availableInvalidConsumers = availableInvalidConsumers; - } - - /** - * A convienence method to execute all of the active selected consumers for a - * particular arbitrary file. - * - * @param repository the repository configuration to use. - * @param localFile the local file to execute the consumers against. - */ - public void executeConsumers( ManagedRepositoryConfiguration repository, File localFile ) - { - // Run the repository consumers - try - { - Closure triggerBeginScan = new TriggerBeginScanClosure( repository, getStartTime() ); - - List selectedKnownConsumers = getSelectedKnownConsumers(); - List selectedInvalidConsumers = getSelectedInvalidConsumers(); - CollectionUtils.forAllDo( selectedKnownConsumers, triggerBeginScan ); - CollectionUtils.forAllDo( selectedInvalidConsumers, triggerBeginScan ); - - // yuck. In case you can't read this, it says - // "process the file if the consumer has it in the includes list, and not in the excludes list" - BaseFile baseFile = new BaseFile( repository.getLocation(), localFile ); - ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate(); - predicate.setBasefile( baseFile ); - ConsumerProcessFileClosure closure = new ConsumerProcessFileClosure(); - closure.setBasefile( baseFile ); - predicate.setCaseSensitive( false ); - Closure processIfWanted = IfClosure.getInstance( predicate, closure ); - - CollectionUtils.forAllDo( selectedKnownConsumers, processIfWanted ); - - if ( predicate.getWantedFileCount() <= 0 ) - { - // Nothing known processed this file. It is invalid! - CollectionUtils.forAllDo( selectedInvalidConsumers, closure ); - } - } - 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 ); - */ - } - } - - public void setSelectedKnownConsumers( List selectedKnownConsumers ) - { - this.selectedKnownConsumers = selectedKnownConsumers; - } - - public void setSelectedInvalidConsumers( List selectedInvalidConsumers ) - { - this.selectedInvalidConsumers = selectedInvalidConsumers; - } - - protected Date getStartTime() - { - return new Date( System.currentTimeMillis() ); - } - - public void setArchivaConfiguration( ArchivaConfiguration archivaConfiguration ) - { - this.archivaConfiguration = archivaConfiguration; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java deleted file mode 100644 index d7023b444..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java +++ /dev/null @@ -1,146 +0,0 @@ -package org.apache.maven.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 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; - -/** - * RepositoryScanStatistics - extension to the RepositoryContentStatistics model. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryScanStatistics - extends RepositoryContentStatistics -{ - private transient List knownConsumers; - - private transient List invalidConsumers; - - private transient long startTimestamp; - - private SimpleDateFormat df = new SimpleDateFormat(); - - public void triggerStart() - { - startTimestamp = System.currentTimeMillis(); - } - - public void triggerFinished() - { - long finished = System.currentTimeMillis(); - setDuration( finished - startTimestamp ); - setWhenGathered( new java.util.Date( finished ) ); - } - - public void increaseFileCount() - { - long count = getTotalFileCount(); - setTotalFileCount( ++count ); - } - - public void increaseNewFileCount() - { - long count = getNewFileCount(); - setNewFileCount( ++count ); - } - - public void setKnownConsumers( List consumers ) - { - knownConsumers = consumers; - } - - public void setInvalidConsumers( List consumers ) - { - invalidConsumers = consumers; - } - - public String toDump( ManagedRepositoryConfiguration repo ) - { - StringBuffer buf = new StringBuffer(); - - buf.append( "\n.\\ Scan of " ).append( this.getRepositoryId() ); - buf.append( " \\.__________________________________________" ); - - buf.append( "\n Repository Dir : " ).append( repo.getLocation() ); - buf.append( "\n Repository Name : " ).append( repo.getName() ); - buf.append( "\n Repository Layout : " ).append( repo.getLayout() ); - - buf.append( "\n Known Consumers : " ); - if ( CollectionUtils.isNotEmpty( knownConsumers ) ) - { - buf.append( "(" ).append( knownConsumers.size() ).append( " configured)" ); - for ( String id : knownConsumers ) - { - buf.append( "\n " ).append( id ); - } - } - else - { - buf.append( "" ); - } - - buf.append( "\n Invalid Consumers : " ); - if ( CollectionUtils.isNotEmpty( invalidConsumers ) ) - { - buf.append( "(" ).append( invalidConsumers.size() ).append( " configured)" ); - for ( String id : invalidConsumers ) - { - buf.append( "\n " ).append( id ); - } - } - else - { - buf.append( "" ); - } - - buf.append( "\n Duration : " ); - buf.append( org.apache.maven.archiva.common.utils.DateUtil.getDuration( this.getDuration() ) ); - buf.append( "\n When Gathered : " ); - if ( this.getWhenGathered() == null ) - { - buf.append( "" ); - } - else - { - buf.append( df.format( this.getWhenGathered() ) ); - } - - buf.append( "\n Total File Count : " ).append( this.getTotalFileCount() ); - - long averageMsPerFile = 0; - - if ( getTotalFileCount() != 0 ) - { - averageMsPerFile = ( this.getDuration() / this.getTotalFileCount() ); - } - - buf.append( "\n Avg Time Per File : " ); - buf.append( org.apache.maven.archiva.common.utils.DateUtil.getDuration( averageMsPerFile ) ); - buf.append( "\n______________________________________________________________" ); - - return buf.toString(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java deleted file mode 100644 index dae6ef575..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java +++ /dev/null @@ -1,111 +0,0 @@ -package org.apache.maven.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 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 - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface RepositoryScanner -{ - /** - * The value to pass to {@link #scan(ManagedRepositoryConfiguration, long)} to have the scan - * operate in a fresh fashion, with no check on changes based on timestamp. - */ - public static final long FRESH_SCAN = 0; - - /** - *

- * Typical Ignorable Content patterns. - *

- * - *

- * NOTE: Do not use for normal webapp or task driven repository scanning. - *

- * - *

- * These patterns are only valid for archiva-cli and archiva-converter use. - *

- */ - public static final String[] IGNORABLE_CONTENT = { - "bin/**", - "reports/**", - ".index", - ".reports/**", - ".maven/**", - "**/.svn/**", - "**/*snapshot-version", - "*/website/**", - "*/licences/**", - "**/.htaccess", - "**/*.html", - "**/*.txt", - "**/README*", - "**/CHANGELOG*", - "**/KEYS*" }; - - /** - * Scan the repository for content changes. - * - * Internally, this will use the as-configured known and invalid consumer lists. - * - * @param repository the repository to change. - * @param changesSince the timestamp to use as a threshold on what is considered new or changed. - * (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. - */ - public RepositoryScanStatistics scan( ManagedRepositoryConfiguration repository, long changesSince ) - throws RepositoryException; - - /** - * Scan the repository for content changes. - * - * Internally, this will use the as-configured known and invalid consumer lists. - * - * @param repository the repository to change. - * @param knownContentConsumers the list of consumers that follow the {@link KnownRepositoryContentConsumer} - * interface that should be used for this scan. - * @param invalidContentConsumers the list of consumers that follow the {@link InvalidRepositoryContentConsumer} - * interface that should be used for this scan. - * @param ignoredContentPatterns list of patterns that should be ignored and not sent to any consumer. - * @param changesSince the timestamp to use as a threshold on what is considered new or changed. - * (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. - */ - public RepositoryScanStatistics scan( ManagedRepositoryConfiguration repository, - List knownContentConsumers, - List invalidContentConsumers, - List ignoredContentPatterns, long changesSince ) - throws RepositoryException; - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java deleted file mode 100644 index e24ed9fe5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java +++ /dev/null @@ -1,160 +0,0 @@ -package org.apache.maven.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.io.File; -import java.util.Date; -import java.util.List; - -import org.apache.commons.collections.Closure; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.functors.IfClosure; -import org.apache.commons.lang.SystemUtils; -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.codehaus.plexus.util.DirectoryWalkListener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -/** - * RepositoryScannerInstance - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryScannerInstance - implements DirectoryWalkListener -{ - private Logger log = LoggerFactory.getLogger( RepositoryScannerInstance.class ); - - /** - * Consumers that process known content. - */ - private List knownConsumers; - - /** - * Consumers that process unknown/invalid content. - */ - private List invalidConsumers; - - private ManagedRepositoryConfiguration repository; - - private RepositoryScanStatistics stats; - - private long changesSince = 0; - - private ConsumerProcessFileClosure consumerProcessFile; - - private ConsumerWantsFilePredicate consumerWantsFile; - - public RepositoryScannerInstance( ManagedRepositoryConfiguration repository, - List knownConsumerList, - List invalidConsumerList ) - { - this.repository = repository; - this.knownConsumers = knownConsumerList; - this.invalidConsumers = invalidConsumerList; - - this.consumerProcessFile = new ConsumerProcessFileClosure(); - this.consumerWantsFile = new ConsumerWantsFilePredicate(); - - stats = new RepositoryScanStatistics(); - stats.setRepositoryId( repository.getId() ); - - Closure triggerBeginScan = new TriggerBeginScanClosure( repository, new Date( System.currentTimeMillis() ) ); - - CollectionUtils.forAllDo( knownConsumerList, triggerBeginScan ); - CollectionUtils.forAllDo( invalidConsumerList, triggerBeginScan ); - - if ( SystemUtils.IS_OS_WINDOWS ) - { - consumerWantsFile.setCaseSensitive( false ); - } - } - - public RepositoryScannerInstance( ManagedRepositoryConfiguration repository, - List knownContentConsumers, - List invalidContentConsumers, long changesSince ) - { - this( repository, knownContentConsumers, invalidContentConsumers ); - - consumerWantsFile.setChangesSince( changesSince ); - - this.changesSince = changesSince; - } - - public RepositoryScanStatistics getStatistics() - { - return stats; - } - - public void directoryWalkStarting( File basedir ) - { - log.info( "Walk Started: [" + this.repository.getId() + "] " + this.repository.getLocation() ); - stats.triggerStart(); - } - - public void directoryWalkStep( int percentage, File file ) - { - log.debug( "Walk Step: " + percentage + ", " + file ); - - stats.increaseFileCount(); - - // consume files regardless - the predicate will check the timestamp - BaseFile basefile = new BaseFile( repository.getLocation(), file ); - - // Timestamp finished points to the last successful scan, not this current one. - if ( file.lastModified() >= changesSince ) - { - stats.increaseNewFileCount(); - } - - consumerProcessFile.setBasefile( basefile ); - consumerWantsFile.setBasefile( basefile ); - - Closure processIfWanted = IfClosure.getInstance( consumerWantsFile, consumerProcessFile ); - CollectionUtils.forAllDo( this.knownConsumers, processIfWanted ); - - if ( consumerWantsFile.getWantedFileCount() <= 0 ) - { - // Nothing known processed this file. It is invalid! - CollectionUtils.forAllDo( this.invalidConsumers, consumerProcessFile ); - } - } - - public void directoryWalkFinished() - { - log.info( "Walk Finished: [" + this.repository.getId() + "] " + this.repository.getLocation() ); - stats.triggerFinished(); - } - - /** - * Debug method from DirectoryWalker. - */ - public void debug( String message ) - { - log.debug( "Repository Scanner: " + message ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerProcessFileClosure.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerProcessFileClosure.java deleted file mode 100644 index e9342d8b6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerProcessFileClosure.java +++ /dev/null @@ -1,83 +0,0 @@ -package org.apache.maven.archiva.repository.scanner.functors; - -/* - * 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.collections.Closure; -import org.apache.maven.archiva.common.utils.BaseFile; -import org.apache.maven.archiva.consumers.RepositoryContentConsumer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ConsumerProcessFileClosure - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ConsumerProcessFileClosure - implements Closure -{ - private Logger log = LoggerFactory.getLogger( ConsumerProcessFileClosure.class ); - - private BaseFile basefile; - - public void execute( Object input ) - { - if ( input instanceof RepositoryContentConsumer ) - { - RepositoryContentConsumer consumer = (RepositoryContentConsumer) input; - - try - { - log.debug( "Sending to consumer: " + consumer.getId() ); - - consumer.processFile( basefile.getRelativePath() ); - } - catch ( Exception e ) - { - /* Intentionally Catch all exceptions. - * So that the discoverer processing can continue. - */ - log.error( "Consumer [" + consumer.getId() + "] had an error when processing file [" - + basefile.getAbsolutePath() + "]: " + e.getMessage(), e ); - } - } - } - - public BaseFile getBasefile() - { - return basefile; - } - - public void setBasefile( BaseFile basefile ) - { - this.basefile = basefile; - } - - public Logger getLogger() - { - return log; - } - - public void setLogger( Logger logger ) - { - this.log = logger; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java deleted file mode 100644 index 97e97b407..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java +++ /dev/null @@ -1,136 +0,0 @@ -package org.apache.maven.archiva.repository.scanner.functors; - -/* - * 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.collections.Predicate; -import org.apache.commons.io.FilenameUtils; -import org.apache.maven.archiva.common.utils.BaseFile; -import org.apache.maven.archiva.consumers.RepositoryContentConsumer; -import org.codehaus.plexus.util.SelectorUtils; - -import java.util.List; - -/** - * ConsumerWantsFilePredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ConsumerWantsFilePredicate - implements Predicate -{ - private BaseFile basefile; - - private boolean isCaseSensitive = true; - - private int wantedFileCount = 0; - - private long changesSince = 0; - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof RepositoryContentConsumer ) - { - RepositoryContentConsumer consumer = (RepositoryContentConsumer) object; - if ( wantsFile( consumer, FilenameUtils.separatorsToUnix( basefile.getRelativePath() ) ) ) - { - satisfies = true; - - // regardless of the timestamp, we record that it was wanted so it doesn't get counted as invalid - wantedFileCount++; - - if ( !consumer.isProcessUnmodified() ) - { - // Timestamp finished points to the last successful scan, not this current one. - if ( basefile.lastModified() < changesSince ) - { - // Skip file as no change has occured. - satisfies = false; - } - } - } - } - - return satisfies; - } - - public BaseFile getBasefile() - { - return basefile; - } - - public int getWantedFileCount() - { - return wantedFileCount; - } - - public boolean isCaseSensitive() - { - return isCaseSensitive; - } - - public void setBasefile( BaseFile basefile ) - { - this.basefile = basefile; - this.wantedFileCount = 0; - } - - public void setCaseSensitive( boolean isCaseSensitive ) - { - this.isCaseSensitive = isCaseSensitive; - } - - private boolean wantsFile( RepositoryContentConsumer consumer, String relativePath ) - { - // Test excludes first. - List excludes = consumer.getExcludes(); - if ( excludes != null ) - { - for ( String pattern : excludes ) - { - if ( SelectorUtils.matchPath( pattern, relativePath, isCaseSensitive ) ) - { - // Definately does NOT WANT FILE. - return false; - } - } - } - - // Now test includes. - for ( String pattern : consumer.getIncludes() ) - { - if ( SelectorUtils.matchPath( pattern, relativePath, isCaseSensitive ) ) - { - // Specifically WANTS FILE. - return true; - } - } - - // Not included, and Not excluded? Default to EXCLUDE. - return false; - } - - public void setChangesSince( long changesSince ) - { - this.changesSince = changesSince; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerBeginScanClosure.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerBeginScanClosure.java deleted file mode 100644 index cde504fde..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerBeginScanClosure.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.apache.maven.archiva.repository.scanner.functors; - -/* - * 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.commons.collections.Closure; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.RepositoryContentConsumer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * TriggerBeginScanClosure - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class TriggerBeginScanClosure - implements Closure -{ - private Logger log = LoggerFactory.getLogger( TriggerBeginScanClosure.class ); - - private ManagedRepositoryConfiguration repository; - - private Date whenGathered; - - public TriggerBeginScanClosure( ManagedRepositoryConfiguration repository ) - { - this.repository = repository; - } - - public TriggerBeginScanClosure( ManagedRepositoryConfiguration repository, Date whenGathered ) - { - this( repository ); - this.whenGathered = whenGathered; - } - - public void execute( Object input ) - { - if ( input instanceof RepositoryContentConsumer ) - { - RepositoryContentConsumer consumer = (RepositoryContentConsumer) input; - - try - { - consumer.beginScan( repository, whenGathered ); - } - catch ( ConsumerException e ) - { - log.warn( "Consumer [" + consumer.getId() + "] cannot begin: " + e.getMessage(), e ); - } - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/resources/META-INF/plexus/components-fragment.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/resources/META-INF/plexus/components-fragment.xml deleted file mode 100644 index ed63a3b82..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/main/resources/META-INF/plexus/components-fragment.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - org.codehaus.plexus.cache.Cache - effective-project-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - Effective Project Cache - - 600 - true - ${java.io.tmpdir}/archiva/effectiveproject - true - 1000 - LRU - effective-project-cache - false - - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/archiva-model-effective.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/archiva-model-effective.pom deleted file mode 100644 index 9129a9db4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/archiva-model-effective.pom +++ /dev/null @@ -1,794 +0,0 @@ - - - - archiva-base - org.apache.maven.archiva - 1.0-SNAPSHOT - - 4.0.0 - org.apache.maven.archiva - archiva-model - Archiva Base :: Model - 1.0-SNAPSHOT - Archiva is an application for managing one or more remote repositories, including - administration, artifact handling, - browsing and searching. - http://maven.apache.org/archiva/archiva-base/archiva-model - - jira - http://jira.codehaus.org/browse/MRM - - - continuum - http://maven.zones.apache.org:8080/continuum - - - -
notifications@maven.apache.org
-
-
-
-
- 2002 - - - Maven Archiva User List - archiva-users-subscribe@maven.apache.org - archiva-users-unsubscribe@maven.apache.org - archiva-users@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-users - - - Maven Archiva Developer List - archiva-dev-subscribe@maven.apache.org - archiva-dev-unsubscribe@maven.apache.org - archiva-dev@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-dev - - - Maven Archiva Commits List - archiva-commits-subscribe@maven.apache.org - archiva-commits-unsubscribe@maven.apache.org - archiva-commits@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-commits - - - - - jvanzyl - Jason van Zyl - jason@maven.org - ASF - - PMC Chair - - -5 - - - brett - Brett Porter - brett@apache.org - ASF - - PMC Member - - +10 - - - evenisse - Emmanuel Venisse - evenisse@apache.org - ASF - - PMC Member - - +1 - - - kenney - Kenney Westerhof - kenney@apache.org - Neonics - - PMC Member - - - - snicoll - Stephane Nicoll - snicoll@apache.org - ASF - - PMC Member - - +1 - - - vmassol - Vincent Massol - vmassol@apache.org - ASF - - PMC Member - - +1 - - - fgiust - Fabrizio Giustina - fgiust@apache.org - openmind - - PMC Member - - +1 - - - epunzalan - Edwin Punzalan - epunzalan@mergere.com - Mergere - - Committer - - +8 - - - mperham - Mike Perham - mperham@gmail.com - IBM - - PMC Member - - -6 - - - jdcasey - John Casey - jdcasey@apache.org - ASF - - PMC Member - - -5 - - - trygvis - Trygve Laugstol - trygvis@apache.org - ASF - - PMC Member - - +1 - - - vsiveton - Vincent Siveton - vsiveton@apache.org - ASF - - PMC Member - - -5 - - - carlos - Carlos Sanchez - carlos@apache.org - ASF - - PMC Member - - +1 - - - dennisl - Dennis Lundberg - dennisl@apache.org - ASF - - PMC Member - - +1 - - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - scm:svn:http://svn.apache.org/repos/asf/maven/archiva/trunk/archiva-base/archiva-model - scm:svn:https://svn.apache.org/repos/asf/maven/archiva/trunk/archiva-base/archiva-model - http://svn.apache.org/viewcvs.cgi/maven/archiva/trunk/archiva-base/archiva-model - - - Apache Software Foundation - http://www.apache.org/ - - - /home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java - src/main/scripts - /home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java - /home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/target/classes - /home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/target/test-classes - - - /home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/resources - - - - - /home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/resources - - - /home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/target - archiva-model-1.0-SNAPSHOT - - - - maven-idea-plugin - - 1.4 - - - - maven-release-plugin - - https://svn.apache.org/repos/asf/maven/archiva/tags - - - - - - - org.codehaus.plexus - plexus-maven-plugin - 1.3.3 - - - generate - - descriptor - - - - - - maven-compiler-plugin - - 1.4 - 1.4 - - - - maven-surefire-plugin - 2.2 - - - org.codehaus.modello - modello-maven-plugin - 1.0-alpha-15-SNAPSHOT - - - archiva-base - - java - xsd - jpox-jdo-mapping - jpox-metadata-class - - - - - 1.0.0 - false - src/main/mdo/archiva-base.xml - - - - org.codehaus.mojo - jpox-maven-plugin - 1.1.6 - - - create-ddl - generate-test-resources - - schema-create - - - /home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/target/classes/org/apache/maven/archiva/model/schema.ddl - - - javax.jdo.option.ConnectionDriverName - org.apache.derby.jdbc.EmbeddedDriver - - - javax.jdo.option.ConnectionURL - jdbc:derby:target/jdo-schema-create;create=true - - - javax.jdo.option.ConnectionUserName - sa - - - javax.jdo.option.ConnectionPassword - - - - log4j.configuration - /home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/resources/log4j.xml - - - org.jpox.autoCreateTables - true - - - - - - enhance - - enhance - - - - - - org.apache.derby - derby - 10.2.1.6 - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - org/apache/maven/archiva/reporting/model/** - - - - - - maven-help-plugin - 2.0.1 - - - - - - - - false - - codehaus.org - http://repository.codehaus.org - - - - false - - - snapshots.codehaus.org - http://snapshots.repository.codehaus.org - - - - false - - apache.snapshots - Apache Snapshot Repository - http://people.apache.org/repo/m2-snapshot-repository - - - - false - - central - Maven Repository Switchboard - http://repo1.maven.org/maven2 - - - - - - false - - - snapshots.codehaus.org - http://snapshots.repository.codehaus.org - - - - never - - - false - - central - Maven Plugin Repository - http://repo1.maven.org/maven2 - - - - - junit - junit - 3.8.1 - test - - - org.apache.maven.archiva - archiva-common - 1.0-SNAPSHOT - - - org.codehaus.plexus - plexus-utils - 1.4 - - - javax.jdo - jdo2-api - 2.0 - - - org.codehaus.plexus - plexus-container-default - 1.0-alpha-18 - - - commons-lang - commons-lang - 2.2 - - - commons-io - commons-io - 1.2 - - - - target/site - - - maven-checkstyle-plugin - - config/maven_checks.xml - - - - maven-javadoc-plugin - - 1.4 - true - - - - maven-jxr-plugin - - true - - - - maven-pmd-plugin - - - maven-surefire-report-plugin - - - org.codehaus.mojo - changelog-maven-plugin - - - org.codehaus.mojo - cobertura-maven-plugin - - - org.codehaus.mojo - taglist-maven-plugin - - - - - - - org.apache.maven.shared - maven-app-configuration-model - 1.0-SNAPSHOT - - - org.apache.maven.shared - maven-app-configuration-web - 1.0-SNAPSHOT - - - org.codehaus.plexus - plexus-container-default - 1.0-alpha-18 - - - org.codehaus.plexus - plexus-component-api - 1.0-alpha-18 - - - org.codehaus.plexus - plexus-utils - 1.4 - - - org.slf4j - slf4j-log4j12 - 1.2 - - - org.apache.maven - maven-repository-metadata - 2.0.5 - - - org.apache.maven - maven-model - 2.0.5 - - - org.apache.maven - maven-artifact - 2.0.5 - - - org.apache.maven - maven-artifact-manager - 2.0.5 - - - org.apache.maven - maven-project - 2.0.5 - - - org.apache.maven.shared - maven-model-converter - 2.0.5-SNAPSHOT - - - org.apache.maven.wagon - wagon-provider-api - 1.0-beta-2 - - - org.apache.maven.wagon - wagon-ssh - 1.0-beta-2 - - - org.apache.maven.wagon - wagon-file - 1.0-beta-2 - - - org.apache.maven.wagon - wagon-http-lightweight - 1.0-beta-2 - - - org.apache.maven.archiva - archiva-common - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-core - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-reports-standard - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-model - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-database - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-consumer-api - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-model - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-database - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-discoverer - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-repository-layer - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-indexer - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-proxy - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-applet - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-security - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-configuration - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-converter - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-utils - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-webapp - 1.0-SNAPSHOT - war - - - org.codehaus.plexus - plexus-digest - 1.1-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-rbac-profile - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-system - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-system - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-ui-web - 1.0-alpha-11-SNAPSHOT - war - - - org.codehaus.plexus.security - plexus-security-ui-web-integration - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-ui-web-taglib - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-authentication-provider-user-manager - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-authentication-provider-keystore - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-user-management-api - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-user-management-provider-jdo - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-authorization-rbac-store-cached - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-authorization-rbac-store-jdo - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-authorization-api - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-authorization-rbac-authorizer - 1.0-alpha-11-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-keys-jdo - 1.0-alpha-11-SNAPSHOT - - - commons-lang - commons-lang - 2.2 - - - commons-io - commons-io - 1.2 - - - org.apache.derby - derby - 10.1.3.1 - - - - - - apache.releases - Apache Release Distribution Repository - scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache.snapshots - Apache Development Snapshot Repository - scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository - - - apache.website - scpexe://people.apache.org/www/maven.apache.org/archiva/archiva-base/archiva-model - - - - 1.0-alpha-11-SNAPSHOT - 1.0-beta-2 - 2.0.5 - 1.0-SNAPSHOT - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/cocoon-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/cocoon-1.pom deleted file mode 100644 index dba957e59..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/cocoon-1.pom +++ /dev/null @@ -1,284 +0,0 @@ - - - - 4.0.0 - - org.apache - apache - 1 - - org.apache.cocoon - cocoon - 1 - pom - Apache Cocoon - http://cocoon.apache.org - - The Apache Software Foundation - http://www.apache.org/ - - - jira - https://issues.apache.org/jira/browse/COCOON - - - continuum - http://cocoon.zones.apache.org:12000/continuum/servlet/continuum - - - - Cocoon User List - users@cocoon.apache.org - users-subscribe@cocoon.apache.org - users-unsubscribe@cocoon.apache.org - http://mail-archives.apache.org/mod_mbox/cocoon-users - - http://www.mail-archive.com/users@cocoon.apache.org/ - http://marc.theaimsgroup.com/?l=xml-cocoon-user - http://news.gmane.org/gmane.text.xml.cocoon.user - - - - Cocoon Developer List - dev@cocoon.apache.org - dev-subscribe@cocoon.apache.org - dev-unsubscribe@cocoon.apache.org - http://mail-archives.apache.org/mod_mbox/cocoon-dev - - http://www.mail-archive.com/dev@cocoon.apache.org/ - http://marc.theaimsgroup.com/?l=xml-cocoon-dev - http://news.gmane.org/gmane.text.xml.cocoon.dev - - - - Cocoon Documentation List - docs@cocoon.apache.org - docs-subscribe@cocoon.apache.org - docs-unsubscribe@cocoon.apache.org - http://mail-archives.apache.org/mod_mbox/cocoon-docs - - http://www.mail-archive.com/dev@cocoon.apache.org/ - http://marc.theaimsgroup.com/?l=xml-cocoon-docs - http://news.gmane.org/gmane.text.xml.cocoon.docs - - - - Cocoon Subversion Repository List - cvs-subscribe@cocoon.apache.org - cvs-unsubscribe@cocoon.apache.org - http://mail-archives.apache.org/mod_mbox/cocoon-cvs - - http://www.mail-archive.com/cvs@cocoon.apache.org/ - http://marc.theaimsgroup.com/?l=xml-cocoon-cvs - http://news.gmane.org/gmane.text.xml.cocoon.cvs - - - - - - crossley - David Crossley - crossley@apache.org - ASF - http://www.apache.org/ - +10 - - Committer - - - - bdelacretaz - Bertrand Delacretaz - bdelacretaz@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - danielf - Daniel Fagerstrom - danielf@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - antonio - Antonio Gallardo - antonio@apache.org - ASF - http://www.apache.org - -6 - - Committer - - - - lgawron - Leszek Gawron - lgawron@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - joerg - Jorg Heinicke - joerg@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - jheymans - Jorg Heymans - jheymans@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - anathaniel - Alfred Nathaniel - anathaniel@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - giacomo - Giacomo Pati - giacomo@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - reinhard - Reinhard Poetz - reinhard@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - jbq - Jean-Baptiste Quenot - jbq@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - gianugo - Gianugo Rabellino - gianugo@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - cziegeler - Carsten Ziegeler - cziegeler@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - vgritsenko - Vadim Gritsenko - vgritsenko@apache.org - ASF - http://www.apache.org - -5 - - Committer - - - - - - Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - - - central - Maven central repository - http://ibiblio.org/maven2 - - - apache.snapshot - Apache Snapshot Repository - http://svn.apache.org/maven-snapshot-repository - - - apache-cvs - Apache Maven Repository - http://svn.apache.org/repository - legacy - - - - - - org.apache.maven.plugins - maven-project-info-reports-plugin - - - - - scm:svn:https://svn.apache.org/repos/asf/cocoon/tags/cocoon-1 - scm:svn:https://svn.apache.org/repos/asf/cocoon/tags/cocoon-1 - https://svn.apache.org/repos/asf/cocoon/tags/cocoon-1 - - - - - maven-release-plugin - - - - - org.apache.maven.wagon - wagon-ssh-external - 1.0-alpha-6 - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/maven-parent-4.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/maven-parent-4.pom deleted file mode 100644 index c0ba6ed00..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/maven-parent-4.pom +++ /dev/null @@ -1,227 +0,0 @@ - - - - 4.0.0 - - org.apache - apache - 3 - - org.apache.maven - maven-parent - 4 - pom - Apache Maven - 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. - http://maven.apache.org/ - - jira - http://jira.codehaus.org/browse/MPA - - - continuum - http://maven.zones.apache.org:8080/continuum - - - - Maven Announcements List - announce@maven.apache.org - announce-subscribe@maven.apache.org - announce-unsubscribe@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-announce/ - - - Maven Issues List - issues@maven.apache.org - issues-subscribe@maven.apache.org - issues-unsubscribe@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-issues/ - - - Maven Notifications List - notifications@maven.apache.org - notifications-subscribe@maven.apache.org - notifications-unsubscribe@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-notifications/ - - - - - jvanzyl - Jason van Zyl - jason@maven.org - ASF - -5 - - PMC Chair - - - - brett - Brett Porter - brett@apache.org - ASF - +10 - - PMC Member - - - - evenisse - Emmanuel Venisse - evenisse@apache.org - ASF - +1 - - PMC Member - - - - kenney - Kenney Westerhof - kenney@apache.org - Neonics - - PMC Member - - - - snicoll - Stephane Nicoll - snicoll@apache.org - ASF - +1 - - PMC Member - - - - vmassol - Vincent Massol - vmassol@apache.org - ASF - +1 - - PMC Member - - - - fgiust - Fabrizio Giustina - fgiust@apache.org - openmind - +1 - - PMC Member - - - - epunzalan - Edwin Punzalan - epunzalan@mergere.com - Mergere - +8 - - Committer - - - - mperham - Mike Perham - mperham@gmail.com - IBM - -6 - - PMC Member - - - - jdcasey - John Casey - jdcasey@apache.org - ASF - -5 - - PMC Member - - - - trygvis - Trygve Laugstol - trygvis@apache.org - ASF - +1 - - PMC Member - - - - vsiveton - Vincent Siveton - vsiveton@apache.org - ASF - -5 - - PMC Member - - - - carlos - Carlos Sanchez - carlos@apache.org - ASF - +1 - - PMC Member - - - - dennisl - Dennis Lundberg - dennisl@apache.org - ASF - +1 - - PMC Member - - - - - - - org.apache.maven.plugins - maven-surefire-report-plugin - - - org.apache.maven.plugins - maven-checkstyle-plugin - - - org.apache.maven.plugins - maven-pmd-plugin - - - org.codehaus.mojo - cobertura-maven-plugin - - - org.codehaus.mojo - taglist-maven-plugin - - - org.apache.maven.plugins - maven-jxr-plugin - - - org.apache.maven.plugins - maven-javadoc-plugin - - - - - scm:svn:http://svn.apache.org/repos/asf/maven/pom/maven/tags/maven-parent-4 - scm:svn:https://svn.apache.org/repos/asf/maven/pom/maven/tags/maven-parent-4 - http://svn.apache.org/viewvc/maven/pom/maven/tags/maven-parent-4 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/model-write-400-simple.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/model-write-400-simple.pom deleted file mode 100644 index 213765a92..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/expected-poms/model-write-400-simple.pom +++ /dev/null @@ -1,9 +0,0 @@ - - - - 4.0.0 - org.apache.archiva.test - simple-model-write - 1.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/AbstractRepositoryLayerTestCase.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/AbstractRepositoryLayerTestCase.java deleted file mode 100644 index 624f50d01..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/AbstractRepositoryLayerTestCase.java +++ /dev/null @@ -1,94 +0,0 @@ -package org.apache.maven.archiva.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.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; - -/** - * AbstractRepositoryLayerTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class 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; - } - - protected ManagedRepositoryContent createManagedRepositoryContent( String id, String name, File location, String layout ) - throws Exception - { - ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration(); - repo.setId( id ); - repo.setName( name ); - repo.setLocation( location.getAbsolutePath() ); - repo.setLayout( layout ); - - ManagedRepositoryContent repoContent = (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class, layout ); - repoContent.setRepository( repo ); - - return repoContent; - } - - protected RemoteRepositoryContent createRemoteRepositoryContent( String id, String name, String url, String layout ) - throws Exception - { - RemoteRepositoryConfiguration repo = new RemoteRepositoryConfiguration(); - repo.setId( id ); - repo.setName( name ); - repo.setUrl( url ); - repo.setLayout( layout ); - - RemoteRepositoryContent repoContent = (RemoteRepositoryContent) lookup( RemoteRepositoryContent.class, layout ); - repoContent.setRepository( repo ); - - return repoContent; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/MockConfiguration.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/MockConfiguration.java deleted file mode 100755 index c68298c5a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/MockConfiguration.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.apache.maven.archiva.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.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ConfigurationListener; -import org.codehaus.plexus.registry.Registry; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.registry.RegistryListener; -import org.easymock.MockControl; - -import java.util.HashSet; -import java.util.Set; - -/** - * MockConfiguration - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.configuration.ArchivaConfiguration" - * role-hint="mock" - */ -public class MockConfiguration - implements ArchivaConfiguration -{ - private Configuration configuration = new Configuration(); - - private Set registryListeners = new HashSet(); - private Set configListeners = new HashSet(); - - private MockControl registryControl; - - private Registry registryMock; - - public MockConfiguration() - { - registryControl = MockControl.createNiceControl( Registry.class ); - registryMock = (Registry) registryControl.getMock(); - } - - public void addChangeListener( RegistryListener listener ) - { - registryListeners.add( listener ); - } - - public Configuration getConfiguration() - { - return configuration; - } - - public void save( Configuration configuration ) - throws RegistryException - { - /* do nothing */ - } - - public void triggerChange( String name, String value ) - { - for(RegistryListener listener: registryListeners) - { - try - { - listener.afterConfigurationChange( registryMock, name, value ); - } - catch ( Exception e ) - { - e.printStackTrace(); - } - } - } - - public void addListener( ConfigurationListener listener ) - { - configListeners.add(listener); - } - - public void removeListener( ConfigurationListener listener ) - { - configListeners.remove( listener ); - } - - public boolean isDefaulted() - { - return false; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/RepositoryURLTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/RepositoryURLTest.java deleted file mode 100644 index 6248f2d18..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/RepositoryURLTest.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.apache.maven.archiva.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.maven.archiva.model.RepositoryURL; - -import java.net.MalformedURLException; - -import junit.framework.TestCase; - -/** - * RepositoryURLTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryURLTest - extends TestCase -{ - private void assertURL( String actualURL, String protocol, String username, String password, String hostname, - String port, String path ) - { - RepositoryURL url = new RepositoryURL( actualURL ); - - assertEquals( protocol, url.getProtocol() ); - assertEquals( username, url.getUsername() ); - assertEquals( password, url.getPassword() ); - assertEquals( hostname, url.getHost() ); - assertEquals( port, url.getPort() ); - assertEquals( path, url.getPath() ); - } - - public void testProtocolHttp() - throws MalformedURLException - { - assertURL( "http://localhost/path/to/resource.txt", "http", null, null, "localhost", null, - "/path/to/resource.txt" ); - } - - public void testProtocolWagonWebdav() - throws MalformedURLException - { - assertURL( "dav:http://localhost/path/to/resource.txt", "dav:http", null, null, "localhost", null, - "/path/to/resource.txt" ); - } - - public void testProtocolHttpWithPort() - throws MalformedURLException - { - assertURL( "http://localhost:9090/path/to/resource.txt", "http", null, null, "localhost", "9090", - "/path/to/resource.txt" ); - } - - public void testProtocolHttpWithUsername() - throws MalformedURLException - { - assertURL( "http://user@localhost/path/to/resource.txt", "http", "user", null, "localhost", null, - "/path/to/resource.txt" ); - } - - public void testProtocolHttpWithUsernamePassword() - throws MalformedURLException - { - assertURL( "http://user:pass@localhost/path/to/resource.txt", "http", "user", "pass", "localhost", null, - "/path/to/resource.txt" ); - } - - public void testProtocolHttpWithUsernamePasswordPort() - throws MalformedURLException - { - assertURL( "http://user:pass@localhost:9090/path/to/resource.txt", "http", "user", "pass", "localhost", "9090", - "/path/to/resource.txt" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContentTestCase.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContentTestCase.java deleted file mode 100644 index 88020521e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContentTestCase.java +++ /dev/null @@ -1,452 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * AbstractDefaultRepositoryContentTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractDefaultRepositoryContentTestCase - extends AbstractRepositoryLayerTestCase -{ - public void testBadPathMissingType() - { - assertBadPath( "invalid/invalid/1/invalid-1", "missing type" ); - } - - public void testBadPathReleaseInSnapshotDir() - { - assertBadPath( "invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar", "non snapshot artifact inside of a snapshot dir" ); - } - - public void testBadPathTimestampedSnapshotNotInSnapshotDir() - { - assertBadPath( "invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar", - "Timestamped Snapshot artifact not inside of an Snapshot dir" ); - } - - public void testBadPathTooShort() - { - assertBadPath( "invalid/invalid-1.0.jar", "path is too short" ); - } - - public void testBadPathVersionMismatchA() - { - assertBadPath( "invalid/invalid/1.0/invalid-2.0.jar", "version mismatch between path and artifact" ); - } - - public void testBadPathVersionMismatchB() - { - assertBadPath( "invalid/invalid/1.0/invalid-1.0b.jar", "version mismatch between path and artifact" ); - } - - public void testBadPathWrongArtifactId() - { - assertBadPath( "org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar", - "wrong artifact id" ); - } - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecGanymedSsh2() - throws LayoutException - { - String groupId = "ch.ethz.ganymed"; - String artifactId = "ganymed-ssh2"; - String version = "build210"; - String classifier = null; - String type = "jar"; - String path = "ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecJavaxComm() - throws LayoutException - { - String groupId = "javax"; - String artifactId = "comm"; - String version = "3.0-u1"; - String classifier = null; - String type = "jar"; - String path = "javax/comm/3.0-u1/comm-3.0-u1.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * Test the ejb-client type spec. - * Type specs are not a 1 to 1 map to the extension. - * This tests that effect. - * @throws LayoutException - */ - /* TODO: Re-enabled in the future. - public void testGoodFooEjbClient() - throws LayoutException - { - String groupId = "com.foo"; - String artifactId = "foo-client"; - String version = "1.0"; - String classifier = null; - String type = "ejb-client"; // oddball type-spec (should result in jar extension) - String path = "com/foo/foo-client/1.0/foo-client-1.0.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - */ - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecJavaxPersistence() - throws LayoutException - { - String groupId = "javax.persistence"; - String artifactId = "ejb"; - String version = "3.0-public_review"; - String classifier = null; - String type = "jar"; - String path = "javax/persistence/ejb/3.0-public_review/ejb-3.0-public_review.jar"; - - /* - * The version id of "public_review" can cause problems. is it part of - * the version spec? or the classifier? - * Since the path spec below shows it in the path, then it is really - * part of the version spec. - */ - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - public void testGoodComFooTool() - throws LayoutException - { - String groupId = "com.foo"; - String artifactId = "foo-tool"; - String version = "1.0"; - String classifier = null; - String type = "jar"; - String path = "com/foo/foo-tool/1.0/foo-tool-1.0.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - public void testGoodCommonsLang() - throws LayoutException - { - String groupId = "commons-lang"; - String artifactId = "commons-lang"; - String version = "2.1"; - String classifier = null; - String type = "jar"; - String path = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * [MRM-486] Can not deploy artifact test.maven-arch:test-arch due to "No ArtifactID Detected" - */ - public void testGoodDashedArtifactId() - throws LayoutException - { - String groupId = "test.maven-arch"; - String artifactId = "test-arch"; - String version = "2.0.3-SNAPSHOT"; - String classifier = null; - String type = "pom"; - String path = "test/maven-arch/test-arch/2.0.3-SNAPSHOT/test-arch-2.0.3-SNAPSHOT.pom"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * It may seem odd, but this is a valid artifact. - */ - public void testGoodDotNotationArtifactId() - throws LayoutException - { - String groupId = "com.company.department"; - String artifactId = "com.company.department"; - String version = "0.2"; - String classifier = null; - String type = "pom"; - String path = "com/company/department/com.company.department/0.2/com.company.department-0.2.pom"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * It may seem odd, but this is a valid artifact. - */ - public void testGoodDotNotationSameGroupIdAndArtifactId() - throws LayoutException - { - String groupId = "com.company.department"; - String artifactId = "com.company.department.project"; - String version = "0.3"; - String classifier = null; - String type = "pom"; - String path = "com/company/department/com.company.department.project/0.3/com.company.department.project-0.3.pom"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * Test the classifier, and java-source type spec. - * @throws LayoutException - */ - public void testGoodFooLibSources() - throws LayoutException - { - String groupId = "com.foo.lib"; - String artifactId = "foo-lib"; - String version = "2.1-alpha-1"; - String classifier = "sources"; - String type = "java-source"; // oddball type-spec (should result in jar extension) - String path = "com/foo/lib/foo-lib/2.1-alpha-1/foo-lib-2.1-alpha-1-sources.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * A timestamped versioned artifact, should reside in a SNAPSHOT baseversion directory. - * @throws LayoutException - */ - public void testGoodSnapshotMavenTest() - throws LayoutException - { - String groupId = "org.apache.archiva.test"; - String artifactId = "redonkulous"; - String version = "3.1-beta-1-20050831.101112-42"; - String classifier = null; - String type = "jar"; - String path = "org/apache/archiva/test/redonkulous/3.1-beta-1-SNAPSHOT/redonkulous-3.1-beta-1-20050831.101112-42.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * [MRM-519] version identifiers within filename cause misidentification of version. - * Example uses "test" in artifact Id, which is also part of the versionKeyword list. - */ - public void testGoodVersionKeywordInArtifactId() - throws LayoutException - { - String groupId = "maven"; - String artifactId = "maven-test-plugin"; - String version = "1.8.2"; - String classifier = null; - String type = "pom"; - String path = "maven/maven-test-plugin/1.8.2/maven-test-plugin-1.8.2.pom"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - * Example uses "test" in artifact Id, which is also part of the versionKeyword list. - */ - public void testGoodDetectMavenTestPlugin() - throws LayoutException - { - String groupId = "maven"; - String artifactId = "maven-test-plugin"; - String version = "1.8.2"; - String classifier = null; - String type = "maven-plugin"; - String path = "maven/maven-test-plugin/1.8.2/maven-test-plugin-1.8.2.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - */ - public void testGoodDetectCoberturaMavenPlugin() - throws LayoutException - { - String groupId = "org.codehaus.mojo"; - String artifactId = "cobertura-maven-plugin"; - String version = "2.1"; - String classifier = null; - String type = "maven-plugin"; - String path = "org/codehaus/mojo/cobertura-maven-plugin/2.1/cobertura-maven-plugin-2.1.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - public void testToArtifactOnEmptyPath() - { - try - { - toArtifactReference( "" ); - fail( "Should have failed due to empty path." ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } - - public void testToArtifactOnNullPath() - { - try - { - toArtifactReference( null ); - fail( "Should have failed due to null path." ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } - - public void testToArtifactReferenceOnEmptyPath() - { - try - { - toArtifactReference( "" ); - fail( "Should have failed due to empty path." ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } - - public void testToArtifactReferenceOnNullPath() - { - try - { - toArtifactReference( null ); - fail( "Should have failed due to null path." ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } - - public void testToPathOnNullArtifactReference() - - { - try - { - ArtifactReference reference = null; - toPath( reference ); - fail( "Should have failed due to null artifact reference." ); - } - catch ( IllegalArgumentException e ) - { - /* expected path */ - } - } - - private void assertArtifactReference( ArtifactReference actualReference, String groupId, String artifactId, - String version, String classifier, String type ) - { - String expectedId = "ArtifactReference - " + groupId + ":" + artifactId + ":" + version + ":" + classifier - + ":" + type; - - assertNotNull( expectedId + " - Should not be null.", actualReference ); - - assertEquals( expectedId + " - Group ID", groupId, actualReference.getGroupId() ); - assertEquals( expectedId + " - Artifact ID", artifactId, actualReference.getArtifactId() ); - if ( StringUtils.isNotBlank( classifier ) ) - { - assertEquals( expectedId + " - Classifier", classifier, actualReference.getClassifier() ); - } - assertEquals( expectedId + " - Version ID", version, actualReference.getVersion() ); - assertEquals( expectedId + " - Type", type, actualReference.getType() ); - } - - private void assertBadPath( String path, String reason ) - { - try - { - toArtifactReference( path ); - fail( "Should have thrown a LayoutException on the invalid path [" + path + "] because of [" + reason + "]" ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } - - /** - * Perform a roundtrip through the layout routines to determine success. - */ - private void assertLayout( String path, String groupId, String artifactId, String version, String classifier, - String type ) - throws LayoutException - { - ArtifactReference expectedArtifact = createArtifact( groupId, artifactId, version, classifier, type ); - - // --- Artifact Tests. - - // Artifact to Path - assertEquals( "Artifact <" + expectedArtifact + "> to path:", path, toPath( expectedArtifact ) ); - - // --- Artifact Reference Tests - - // Path to Artifact Reference. - ArtifactReference testReference = toArtifactReference( path ); - assertArtifactReference( testReference, groupId, artifactId, version, classifier, type ); - - // And back again, using test Reference from previous step. - assertEquals( "Artifact <" + expectedArtifact + "> to path:", path, toPath( testReference ) ); - } - - private ArtifactReference createArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - { - ArtifactReference artifact = new ArtifactReference(); - artifact.setGroupId( groupId ); - artifact.setArtifactId( artifactId ); - artifact.setVersion( version ); - artifact.setClassifier( classifier ); - artifact.setType( type ); - assertNotNull( artifact ); - return artifact; - } - - protected abstract ArtifactReference toArtifactReference( String path ) - throws LayoutException; - - protected abstract String toPath( ArtifactReference reference ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContentTestCase.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContentTestCase.java deleted file mode 100644 index 4fddac331..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContentTestCase.java +++ /dev/null @@ -1,409 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * AbstractLegacyRepositoryContentTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractLegacyRepositoryContentTestCase - extends AbstractRepositoryLayerTestCase -{ - public void testBadPathArtifactIdMissingA() - { - assertBadPath( "groupId/jars/-1.0.jar", "artifactId is missing" ); - } - - public void testBadPathArtifactIdMissingB() - { - assertBadPath( "groupId/jars/1.0.jar", "artifactId is missing" ); - } - - public void testBadPathMissingType() - { - assertBadPath( "invalid/invalid/1/invalid-1", "missing type" ); - } - - public void testBadPathTooShort() - { - // NEW - assertBadPath( "invalid/invalid-1.0.jar", "path is too short" ); - } - - public void testBadPathWrongPackageExtension() - { - assertBadPath( "org.apache.maven.test/jars/artifactId-1.0.war", "wrong package extension" ); - } - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecGanymedSsh2() - throws LayoutException - { - String groupId = "ch.ethz.ganymed"; - String artifactId = "ganymed-ssh2"; - String version = "build210"; - String type = "jar"; - String path = "ch.ethz.ganymed/jars/ganymed-ssh2-build210.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecJavaxComm() - throws LayoutException - { - String groupId = "javax"; - String artifactId = "comm"; - String version = "3.0-u1"; - String type = "jar"; - String path = "javax/jars/comm-3.0-u1.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecJavaxPersistence() - throws LayoutException - { - String groupId = "javax.persistence"; - String artifactId = "ejb"; - String version = "3.0-public_review"; - String type = "jar"; - String path = "javax.persistence/jars/ejb-3.0-public_review.jar"; - - /* - * The version id of "public_review" can cause problems. is it part of - * the version spec? or the classifier? - */ - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - public void testGoodCommonsLang() - throws LayoutException - { - String groupId = "commons-lang"; - String artifactId = "commons-lang"; - String version = "2.1"; - String type = "jar"; - String path = "commons-lang/jars/commons-lang-2.1.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - public void testGoodDerby() - throws LayoutException - { - String groupId = "org.apache.derby"; - String artifactId = "derby"; - String version = "10.2.2.0"; - String type = "jar"; - String path = "org.apache.derby/jars/derby-10.2.2.0.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * Test the ejb-client type spec. - * Type specs are not a 1 to 1 map to the extension. - * This tests that effect. - * @throws LayoutException - */ - /* TODO: Re-enabled in the future. - public void testGoodFooEjbClient() - throws LayoutException - { - String groupId = "com.foo"; - String artifactId = "foo-client"; - String version = "1.0"; - String type = "ejb"; // oddball type-spec (should result in jar extension) - String path = "com.foo/ejbs/foo-client-1.0.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - */ - - /** - * Test the classifier. - * @throws LayoutException - */ - public void testGoodFooLibJavadoc() - throws LayoutException - { - String groupId = "com.foo.lib"; - String artifactId = "foo-lib"; - String version = "2.1-alpha-1"; - String type = "javadoc"; - String classifier = "javadoc"; - String path = "com.foo.lib/javadoc.jars/foo-lib-2.1-alpha-1-javadoc.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * Test the classifier, and java-source type spec. - * @throws LayoutException - */ - public void testGoodFooLibSources() - throws LayoutException - { - String groupId = "com.foo.lib"; - String artifactId = "foo-lib"; - String version = "2.1-alpha-1"; - String type = "java-source"; // oddball type-spec (should result in jar extension) - String classifier = "sources"; - String path = "com.foo.lib/java-sources/foo-lib-2.1-alpha-1-sources.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - public void testGoodFooTool() - throws LayoutException - { - String groupId = "com.foo"; - String artifactId = "foo-tool"; - String version = "1.0"; - String type = "jar"; - String path = "com.foo/jars/foo-tool-1.0.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - public void testGoodGeronimoEjbSpec() - throws LayoutException - { - String groupId = "org.apache.geronimo.specs"; - String artifactId = "geronimo-ejb_2.1_spec"; - String version = "1.0.1"; - String type = "jar"; - String path = "org.apache.geronimo.specs/jars/geronimo-ejb_2.1_spec-1.0.1.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - public void testGoodLdapClientsPom() - throws LayoutException - { - String groupId = "directory-clients"; - String artifactId = "ldap-clients"; - String version = "0.9.1-SNAPSHOT"; - String type = "pom"; - String path = "directory-clients/poms/ldap-clients-0.9.1-SNAPSHOT.pom"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * A timestamped versioned artifact, should reside in a SNAPSHOT baseversion directory. - * @throws LayoutException - */ - public void testGoodSnapshotMavenTest() - throws LayoutException - { - String groupId = "org.apache.archiva.test"; - String artifactId = "redonkulous"; - String version = "3.1-beta-1-20050831.101112-42"; - String type = "jar"; - String path = "org.apache.archiva.test/jars/redonkulous-3.1-beta-1-20050831.101112-42.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-519] version identifiers within filename cause misidentification of version. - * Example uses "test" in artifact Id, which is also part of the versionKeyword list. - */ - public void testGoodVersionKeywordInArtifactId() - throws LayoutException - { - String groupId = "maven"; - String artifactId = "maven-test-plugin"; - String version = "1.8.2"; - String type = "pom"; - - String path = "maven/poms/maven-test-plugin-1.8.2.pom"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - * Example uses "test" in artifact Id, which is also part of the versionKeyword list. - */ - public void testGoodDetectPluginMavenTest() - throws LayoutException - { - String groupId = "maven"; - String artifactId = "maven-test-plugin"; - String version = "1.8.2"; - String type = "maven-one-plugin"; - String path = "maven/plugins/maven-test-plugin-1.8.2.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - */ - public void testGoodDetectPluginAvalonMeta() - throws LayoutException - { - String groupId = "avalon-meta"; - String artifactId = "avalon-meta-plugin"; - String version = "1.1"; - String type = "maven-one-plugin"; - String path = "avalon-meta/plugins/avalon-meta-plugin-1.1.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - */ - public void testGoodDetectPluginCactusMaven() - throws LayoutException - { - String groupId = "cactus"; - String artifactId = "cactus-maven"; - String version = "1.7dev-20040815"; - String type = "maven-one-plugin"; - String path = "cactus/plugins/cactus-maven-1.7dev-20040815.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - */ - public void testGoodDetectPluginGeronimoPackaging() - throws LayoutException - { - String groupId = "geronimo"; - String artifactId = "geronimo-packaging-plugin"; - String version = "1.0.1"; - String type = "maven-one-plugin"; - String path = "geronimo/plugins/geronimo-packaging-plugin-1.0.1.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-768] Artifact type "maven-plugin" does not distinguish maven1 and maven2 plugins. - * This produces conflicts when m2 plugins are stored in legacy-layout repository - */ - public void testMaven1Maven2PluginTypeDistinc() - throws Exception - { - String groupId = "com.sun.tools.xjc.maven2"; - String artifactId = "maven-jaxb-plugin"; - String version = "1.1"; - String type = "maven-plugin"; - String path = "com.sun.tools.xjc.maven2/maven-plugins/maven-jaxb-plugin-1.1.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * Perform a roundtrip through the layout routines to determine success. - * @param classifier TODO - */ - private void assertLayout( String path, String groupId, String artifactId, String version, String classifier, String type ) - throws LayoutException - { - ArtifactReference expectedArtifact = createArtifact( groupId, artifactId, version, classifier, type ); - - // --- Artifact Tests. - // Artifact to Path - assertEquals( "Artifact <" + expectedArtifact + "> to path:", path, toPath( expectedArtifact ) ); - - // --- Artifact Reference Tests - - // Path to Artifact Reference. - ArtifactReference testReference = toArtifactReference( path ); - assertArtifactReference( testReference, groupId, artifactId, version, classifier, type ); - - // And back again, using test Reference from previous step. - assertEquals( "Artifact <" + expectedArtifact + "> to path:", path, toPath( testReference ) ); - } - - private void assertArtifactReference( ArtifactReference actualReference, String groupId, String artifactId, - String version, String classifier, String type ) - { - String expectedId = "ArtifactReference - " + groupId + ":" + artifactId + ":" + version + ":" + type; - - assertNotNull( expectedId + " - Should not be null.", actualReference ); - - assertEquals( expectedId + " - Group ID", groupId, actualReference.getGroupId() ); - assertEquals( expectedId + " - Artifact ID", artifactId, actualReference.getArtifactId() ); - assertEquals( expectedId + " - Version ID", version, actualReference.getVersion() ); - assertEquals( expectedId + " - classifier", classifier, actualReference.getClassifier() ); - assertEquals( expectedId + " - Type", type, actualReference.getType() ); - } - - protected ArtifactReference createArtifact( String groupId, String artifactId, String version, String classifier, String type ) - { - ArtifactReference artifact = new ArtifactReference(); - artifact.setGroupId( groupId ); - artifact.setArtifactId( artifactId ); - artifact.setVersion( version ); - artifact.setClassifier( classifier ); - artifact.setType( type ); - assertNotNull( artifact ); - return artifact; - } - - private void assertBadPath( String path, String reason ) - { - try - { - toArtifactReference( path ); - fail( "Should have thrown a LayoutException on the invalid path [" + path + "] because of [" + reason + "]" ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } - - - protected abstract ArtifactReference toArtifactReference( String path ) - throws LayoutException; - - protected abstract String toPath( ArtifactReference reference ); - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java deleted file mode 100644 index 7390728f7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.repository.AbstractRepositoryLayerTestCase; - -/** - * ArtifactExtensionMappingTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArtifactExtensionMappingTest -extends AbstractRepositoryLayerTestCase -{ - public void testIsMavenPlugin() - { - assertMavenPlugin( "maven-test-plugin" ); - assertMavenPlugin( "maven-clean-plugin" ); - assertMavenPlugin( "cobertura-maven-plugin" ); - assertMavenPlugin( "maven-project-info-reports-plugin" ); - assertMavenPlugin( "silly-name-for-a-maven-plugin" ); - - assertNotMavenPlugin( "maven-plugin-api" ); - assertNotMavenPlugin( "foo-lib" ); - assertNotMavenPlugin( "another-maven-plugin-api" ); - assertNotMavenPlugin( "secret-maven-plugin-2" ); - } - - private void assertMavenPlugin( String artifactId ) - { - assertTrue( "Should be detected as maven plugin: <" + artifactId + ">", - ArtifactExtensionMapping.isMavenPlugin( artifactId ) ); - } - - private void assertNotMavenPlugin( String artifactId ) - { - assertFalse( "Should NOT be detected as maven plugin: <" + artifactId + ">", - ArtifactExtensionMapping.isMavenPlugin( artifactId ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultPathParserTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultPathParserTest.java deleted file mode 100644 index 6da1ce21e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultPathParserTest.java +++ /dev/null @@ -1,459 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * DefaultPathParserTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DefaultPathParserTest - extends AbstractRepositoryLayerTestCase -{ - private PathParser parser = new DefaultPathParser(); - - public void testBadPathMissingType() - { - assertBadPath( "invalid/invalid/1/invalid-1", "missing type" ); - } - - public void testBadPathReleaseInSnapshotDir() - { - assertBadPath( "invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar", "non snapshot artifact inside of a snapshot dir" ); - } - - public void testBadPathTimestampedSnapshotNotInSnapshotDir() - { - assertBadPath( "invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar", - "Timestamped Snapshot artifact not inside of an Snapshot dir" ); - } - - public void testBadPathTooShort() - { - assertBadPath( "invalid/invalid-1.0.jar", "path is too short" ); - } - - public void testBadPathVersionMismatchA() - { - assertBadPath( "invalid/invalid/1.0/invalid-2.0.jar", "version mismatch between path and artifact" ); - } - - public void testBadPathVersionMismatchB() - { - assertBadPath( "invalid/invalid/1.0/invalid-1.0b.jar", "version mismatch between path and artifact" ); - } - - public void testBadPathWrongArtifactId() - { - assertBadPath( "org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar", - "wrong artifact id" ); - } - - /** - * [MRM-481] Artifact requests with a .xml.zip extension fail with a 404 Error - */ - public void testGoodButDualExtensions() - throws LayoutException - { - String groupId = "org.project"; - String artifactId = "example-presentation"; - String version = "3.2"; - String classifier = null; - String type = "xml.zip"; - String path = "org/project/example-presentation/3.2/example-presentation-3.2.xml.zip"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecGanymedSsh2() - throws LayoutException - { - String groupId = "ch.ethz.ganymed"; - String artifactId = "ganymed-ssh2"; - String version = "build210"; - String classifier = null; - String type = "jar"; - String path = "ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecJavaxComm() - throws LayoutException - { - String groupId = "javax"; - String artifactId = "comm"; - String version = "3.0-u1"; - String classifier = null; - String type = "jar"; - String path = "javax/comm/3.0-u1/comm-3.0-u1.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * Test the ejb-client type spec. - * Type specs are not a 1 to 1 map to the extension. - * This tests that effect. - * @throws LayoutException - */ - /* TODO: Re-enabled in the future. - public void testGoodFooEjbClient() - throws LayoutException - { - String groupId = "com.foo"; - String artifactId = "foo-client"; - String version = "1.0"; - String classifier = null; - String type = "ejb-client"; // oddball type-spec (should result in jar extension) - String path = "com/foo/foo-client/1.0/foo-client-1.0.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - */ - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecJavaxPersistence() - throws LayoutException - { - String groupId = "javax.persistence"; - String artifactId = "ejb"; - String version = "3.0-public_review"; - String classifier = null; - String type = "jar"; - String path = "javax/persistence/ejb/3.0-public_review/ejb-3.0-public_review.jar"; - - /* - * The version id of "public_review" can cause problems. is it part of - * the version spec? or the classifier? - * Since the path spec below shows it in the path, then it is really - * part of the version spec. - */ - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - public void testGoodComFooTool() - throws LayoutException - { - String groupId = "com.foo"; - String artifactId = "foo-tool"; - String version = "1.0"; - String classifier = null; - String type = "jar"; - String path = "com/foo/foo-tool/1.0/foo-tool-1.0.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - public void testGoodCommonsLang() - throws LayoutException - { - String groupId = "commons-lang"; - String artifactId = "commons-lang"; - String version = "2.1"; - String classifier = null; - String type = "jar"; - String path = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * [MRM-486] Can not deploy artifact test.maven-arch:test-arch due to "No ArtifactID Detected" - */ - public void testGoodDashedArtifactId() - throws LayoutException - { - String groupId = "test.maven-arch"; - String artifactId = "test-arch"; - String version = "2.0.3-SNAPSHOT"; - String classifier = null; - String type = "pom"; - String path = "test/maven-arch/test-arch/2.0.3-SNAPSHOT/test-arch-2.0.3-SNAPSHOT.pom"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * It may seem odd, but this is a valid artifact. - */ - public void testGoodDotNotationArtifactId() - throws LayoutException - { - String groupId = "com.company.department"; - String artifactId = "com.company.department"; - String version = "0.2"; - String classifier = null; - String type = "pom"; - String path = "com/company/department/com.company.department/0.2/com.company.department-0.2.pom"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * It may seem odd, but this is a valid artifact. - */ - public void testGoodDotNotationSameGroupIdAndArtifactId() - throws LayoutException - { - String groupId = "com.company.department"; - String artifactId = "com.company.department.project"; - String version = "0.3"; - String classifier = null; - String type = "pom"; - String path = "com/company/department/com.company.department.project/0.3/com.company.department.project-0.3.pom"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * Test the classifier, and java-source type spec. - * @throws LayoutException - */ - public void testGoodFooLibSources() - throws LayoutException - { - String groupId = "com.foo.lib"; - String artifactId = "foo-lib"; - String version = "2.1-alpha-1"; - String classifier = "sources"; - String type = "java-source"; // oddball type-spec (should result in jar extension) - String path = "com/foo/lib/foo-lib/2.1-alpha-1/foo-lib-2.1-alpha-1-sources.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * A timestamped versioned artifact, should reside in a SNAPSHOT baseversion directory. - * @throws LayoutException - */ - public void testGoodSnapshotMavenTest() - throws LayoutException - { - String groupId = "org.apache.archiva.test"; - String artifactId = "redonkulous"; - String version = "3.1-beta-1-20050831.101112-42"; - String classifier = null; - String type = "jar"; - String path = "org/apache/archiva/test/redonkulous/3.1-beta-1-SNAPSHOT/redonkulous-3.1-beta-1-20050831.101112-42.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * A timestamped versioned artifact, should reside in a SNAPSHOT baseversion directory. - * @throws LayoutException - */ - public void testGoodLongSnapshotMavenTest() - throws LayoutException - { - String groupId = "a.group.id"; - String artifactId = "artifact-id"; - String version = "1.0-abc-1.1-20080221.062205-9"; - String classifier = null; - String type = "pom"; - String path = "a/group/id/artifact-id/1.0-abc-1.1-SNAPSHOT/artifact-id-1.0-abc-1.1-20080221.062205-9.pom"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * A timestamped versioned artifact, should reside in a SNAPSHOT baseversion directory. - * @throws LayoutException - */ - public void testClassifiedSnapshotMavenTest() - throws LayoutException - { - String groupId = "a.group.id"; - String artifactId = "artifact-id"; - String version = "1.0-20070219.171202-34"; - String classifier = "test-sources"; - String type = "jar"; - String path = "a/group/id/artifact-id/1.0-SNAPSHOT/artifact-id-1.0-20070219.171202-34-test-sources.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * [MRM-519] version identifiers within filename cause misidentification of version. - * Example uses "test" in artifact Id, which is also part of the versionKeyword list. - */ - public void testGoodVersionKeywordInArtifactId() - throws LayoutException - { - String groupId = "maven"; - String artifactId = "maven-test-plugin"; - String version = "1.8.2"; - String classifier = null; - String type = "pom"; - String path = "maven/maven-test-plugin/1.8.2/maven-test-plugin-1.8.2.pom"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - * Example uses "test" in artifact Id, which is also part of the versionKeyword list. - */ - public void testGoodDetectMavenTestPlugin() - throws LayoutException - { - String groupId = "maven"; - String artifactId = "maven-test-plugin"; - String version = "1.8.2"; - String classifier = null; - String type = "maven-plugin"; - String path = "maven/maven-test-plugin/1.8.2/maven-test-plugin-1.8.2.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - */ - public void testGoodDetectCoberturaMavenPlugin() - throws LayoutException - { - String groupId = "org.codehaus.mojo"; - String artifactId = "cobertura-maven-plugin"; - String version = "2.1"; - String classifier = null; - String type = "maven-plugin"; - String path = "org/codehaus/mojo/cobertura-maven-plugin/2.1/cobertura-maven-plugin-2.1.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - public void testToArtifactOnEmptyPath() - { - try - { - parser.toArtifactReference( "" ); - fail( "Should have failed due to empty path." ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } - - public void testToArtifactOnNullPath() - { - try - { - parser.toArtifactReference( null ); - fail( "Should have failed due to null path." ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } - - public void testToArtifactReferenceOnEmptyPath() - { - try - { - parser.toArtifactReference( "" ); - fail( "Should have failed due to empty path." ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } - - public void testToArtifactReferenceOnNullPath() - { - try - { - parser.toArtifactReference( null ); - fail( "Should have failed due to null path." ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } - - /** - * Perform a path to artifact reference lookup, and verify the results. - */ - private void assertLayout( String path, String groupId, String artifactId, String version, String classifier, - String type ) - throws LayoutException - { - // Path to Artifact Reference. - ArtifactReference testReference = parser.toArtifactReference( path ); - assertArtifactReference( testReference, groupId, artifactId, version, classifier, type ); - } - - private void assertArtifactReference( ArtifactReference actualReference, String groupId, String artifactId, - String version, String classifier, String type ) - { - String expectedId = "ArtifactReference - " + groupId + ":" + artifactId + ":" + version + ":" + classifier - + ":" + type; - - assertNotNull( expectedId + " - Should not be null.", actualReference ); - - assertEquals( expectedId + " - Group ID", groupId, actualReference.getGroupId() ); - assertEquals( expectedId + " - Artifact ID", artifactId, actualReference.getArtifactId() ); - if ( StringUtils.isNotBlank( classifier ) ) - { - assertEquals( expectedId + " - Classifier", classifier, actualReference.getClassifier() ); - } - assertEquals( expectedId + " - Version ID", version, actualReference.getVersion() ); - assertEquals( expectedId + " - Type", type, actualReference.getType() ); - } - - private void assertBadPath( String path, String reason ) - { - try - { - parser.toArtifactReference( path ); - fail( "Should have thrown a LayoutException on the invalid path [" + path + "] because of [" + reason + "]" ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/FilenameParserTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/FilenameParserTest.java deleted file mode 100644 index 9b31da631..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/FilenameParserTest.java +++ /dev/null @@ -1,188 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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 junit.framework.TestCase; - -/** - * FilenameParserTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class FilenameParserTest - extends TestCase -{ - public void testNameExtensionJar() - { - FilenameParser parser = new FilenameParser( "maven-test-plugin-1.8.3.jar" ); - - assertEquals( "maven-test-plugin-1.8.3", parser.getName() ); - assertEquals( "jar", parser.getExtension() ); - } - - public void testNameExtensionTarGz() - { - FilenameParser parser = new FilenameParser( "archiva-1.0-beta-2-bin.tar.gz" ); - - assertEquals( "archiva-1.0-beta-2-bin", parser.getName() ); - assertEquals( "tar.gz", parser.getExtension() ); - } - - public void testNameExtensionTarBz2() - { - FilenameParser parser = new FilenameParser( "archiva-1.0-SNAPSHOT-src.tar.bz2" ); - - assertEquals( "archiva-1.0-SNAPSHOT-src", parser.getName() ); - assertEquals( "tar.bz2", parser.getExtension() ); - } - - public void testNameExtensionCapitolizedTarGz() - { - FilenameParser parser = new FilenameParser( "ARCHIVA-1.0-BETA-2-BIN.TAR.GZ" ); - - assertEquals( "ARCHIVA-1.0-BETA-2-BIN", parser.getName() ); - assertEquals( "TAR.GZ", parser.getExtension() ); - } - - public void testNext() - { - FilenameParser parser = new FilenameParser( "maven-test-plugin-1.8.3.jar" ); - - assertEquals( "maven-test-plugin-1.8.3", parser.getName() ); - assertEquals( "jar", parser.getExtension() ); - - assertEquals( "maven", parser.next() ); - assertEquals( "test", parser.next() ); - assertEquals( "plugin", parser.next() ); - assertEquals( "1.8.3", parser.next() ); - assertNull( parser.next() ); - } - - public void testExpect() - { - FilenameParser parser = new FilenameParser( "maven-test-plugin-1.8.3.jar" ); - - assertEquals( "maven-test-plugin-1.8.3", parser.getName() ); - assertEquals( "jar", parser.getExtension() ); - - assertEquals( "maven-test-plugin", parser.expect( "maven-test-plugin" ) ); - assertEquals( "1.8.3", parser.expect( "1.8.3" ) ); - assertNull( parser.expect( "jar" ) ); - } - - public void testExpectWithRemaining() - { - FilenameParser parser = new FilenameParser( "ganymede-ssh2-build250-sources.jar" ); - - assertEquals( "ganymede-ssh2-build250-sources", parser.getName() ); - assertEquals( "jar", parser.getExtension() ); - - assertEquals( "ganymede-ssh2", parser.expect( "ganymede-ssh2" ) ); - assertEquals( "build250", parser.expect( "build250" ) ); - assertEquals( '-', parser.seperator() ); - assertEquals( "sources", parser.remaining() ); - - assertNull( parser.expect( "jar" ) ); - } - - public void testExpectWithRemainingDualExtensions() - { - FilenameParser parser = new FilenameParser( "example-presentation-3.2.xml.zip" ); - - assertEquals( "example-presentation-3.2.xml", parser.getName() ); - assertEquals( "zip", parser.getExtension() ); - - assertEquals( "example-presentation", parser.expect( "example-presentation" ) ); - assertEquals( "3.2", parser.expect( "3.2" ) ); - assertEquals( '.', parser.seperator() ); - assertEquals( "xml", parser.remaining() ); - - } - - public void testNextNonVersion() - { - FilenameParser parser = new FilenameParser( "maven-test-plugin-1.8.3.jar" ); - - assertEquals( "maven-test-plugin", parser.nextNonVersion() ); - assertEquals( "1.8.3", parser.remaining() ); - } - - public void testNextArbitraryNonVersion() - { - FilenameParser parser = new FilenameParser( "maven-jdk-1.4-plugin-1.0-20070828.123456-42.jar" ); - - assertEquals( "maven-jdk-1.4-plugin", parser.nextNonVersion() ); - assertEquals( "1.0-20070828.123456-42", parser.remaining() ); - } - - public void testNextJython() - { - FilenameParser parser = new FilenameParser( "jython-20020827-no-oro.jar" ); - - assertEquals( "jython", parser.nextNonVersion() ); - assertEquals( "20020827", parser.nextVersion() ); - assertEquals( "no-oro", parser.remaining() ); - } - - public void testLongExtension() - { - FilenameParser parser = new FilenameParser( "libfobs4jmf-0.4.1.4-20080217.211715-4.jnilib" ); - - assertEquals( "libfobs4jmf-0.4.1.4-20080217.211715-4", parser.getName() ); - assertEquals( "jnilib", parser.getExtension() ); - } - - public void testInterveningVersion() - { - FilenameParser parser = new FilenameParser( "artifact-id-1.0-abc-1.1-20080221.062205-9.pom" ); - - assertEquals( "artifact-id", parser.nextNonVersion() ); - assertEquals( "1.0-abc-1.1-20080221.062205-9", parser.expect( "1.0-abc-1.1-SNAPSHOT" ) ); - assertNull( null, parser.remaining() ); - assertEquals( "artifact-id-1.0-abc-1.1-20080221.062205-9", parser.getName() ); - assertEquals( "pom", parser.getExtension() ); - } - - public void testExpectWrongSnapshot() - { - FilenameParser parser = new FilenameParser( "artifact-id-1.0-20080221.062205-9.pom" ); - - assertEquals( "artifact-id", parser.nextNonVersion() ); - assertNull( parser.expect( "2.0-SNAPSHOT" ) ); - } - - public void testClassifier() - { - FilenameParser parser = new FilenameParser( "artifact-id-1.0-20070219.171202-34-test-sources.jar" ); - - assertEquals( "artifact-id", parser.nextNonVersion() ); - assertEquals( "1.0-20070219.171202-34", parser.nextVersion() ); - assertEquals( "test-sources", parser.remaining() ); - assertEquals( "artifact-id-1.0-20070219.171202-34-test-sources", parser.getName() ); - assertEquals( "jar", parser.getExtension() ); - } - - public void testNoExtension() - { - FilenameParser parser = new FilenameParser( "foo_bar" ); - assertNull( parser.getExtension() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyPathParserTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyPathParserTest.java deleted file mode 100644 index cb1d3544c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyPathParserTest.java +++ /dev/null @@ -1,448 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.LegacyArtifactPath; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * LegacyPathParserTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class LegacyPathParserTest - extends AbstractRepositoryLayerTestCase -{ - private LegacyPathParser parser = new LegacyPathParser(); - - /** - * Configure the ArchivaConfiguration - * {@inheritDoc} - * @see org.codehaus.plexus.PlexusTestCase#setUp() - */ - protected void setUp() - throws Exception - { - super.setUp(); - ArchivaConfiguration config = (ArchivaConfiguration) lookup( ArchivaConfiguration.class ); - LegacyArtifactPath jaxen = new LegacyArtifactPath(); - jaxen.setPath( "jaxen/jars/jaxen-1.0-FCS-full.jar" ); - jaxen.setArtifact( "jaxen:jaxen:1.0-FCS:full:jar" ); - config.getConfiguration().addLegacyArtifactPath( jaxen ); - parser.configuration = config; - } - - - public void testBadPathArtifactIdMissingA() - { - assertBadPath( "groupId/jars/-1.0.jar", "artifactId is missing" ); - } - - public void testBadPathArtifactIdMissingB() - { - assertBadPath( "groupId/jars/1.0.jar", "artifactId is missing" ); - } - - public void testBadPathMissingType() - { - assertBadPath( "invalid/invalid/1/invalid-1", "missing type" ); - } - - public void testBadPathTooShort() - { - // NEW - assertBadPath( "invalid/invalid-1.0.jar", "path is too short" ); - } - - public void testBadPathWrongPackageExtension() - { - assertBadPath( "org.apache.maven.test/jars/artifactId-1.0.war", "wrong package extension" ); - } - - /** - * [MRM-481] Artifact requests with a .xml.zip extension fail with a 404 Error - */ - public void testGoodButDualExtensions() - throws LayoutException - { - String groupId = "org.project"; - String artifactId = "example-presentation"; - String version = "3.2.xml"; - String type = "distribution-zip"; - String path = "org.project/zips/example-presentation-3.2.xml.zip"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecGanymedSsh2() - throws LayoutException - { - String groupId = "ch.ethz.ganymed"; - String artifactId = "ganymed-ssh2"; - String version = "build210"; - String type = "jar"; - String path = "ch.ethz.ganymed/jars/ganymed-ssh2-build210.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecJavaxComm() - throws LayoutException - { - String groupId = "javax"; - String artifactId = "comm"; - String version = "3.0-u1"; - String type = "jar"; - String path = "javax/jars/comm-3.0-u1.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-432] Oddball version spec. - * Example of an oddball / unusual version spec. - * @throws LayoutException - */ - public void testGoodButOddVersionSpecJavaxPersistence() - throws LayoutException - { - String groupId = "javax.persistence"; - String artifactId = "ejb"; - String version = "3.0-public_review"; - String type = "jar"; - String path = "javax.persistence/jars/ejb-3.0-public_review.jar"; - - /* - * The version id of "public_review" can cause problems. is it part of - * the version spec? or the classifier? - */ - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - public void testGoodCommonsLang() - throws LayoutException - { - String groupId = "commons-lang"; - String artifactId = "commons-lang"; - String version = "2.1"; - String type = "jar"; - String path = "commons-lang/jars/commons-lang-2.1.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - public void testGoodDerby() - throws LayoutException - { - String groupId = "org.apache.derby"; - String artifactId = "derby"; - String version = "10.2.2.0"; - String type = "jar"; - String path = "org.apache.derby/jars/derby-10.2.2.0.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * Test the ejb-client type spec. - * Type specs are not a 1 to 1 map to the extension. - * This tests that effect. - * @throws LayoutException - */ - /* TODO: Re-enabled in the future. - public void testGoodFooEjbClient() - throws LayoutException - { - String groupId = "com.foo"; - String artifactId = "foo-client"; - String version = "1.0"; - String type = "ejb"; // oddball type-spec (should result in jar extension) - String path = "com.foo/ejbs/foo-client-1.0.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - */ - - /** - * Test the classifier. - * @throws LayoutException - */ - public void testGoodFooLibJavadoc() - throws LayoutException - { - String groupId = "com.foo.lib"; - String artifactId = "foo-lib"; - String version = "2.1-alpha-1"; - String type = "javadoc"; - String classifier = "javadoc"; - String path = "com.foo.lib/javadoc.jars/foo-lib-2.1-alpha-1-javadoc.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - - assertLayout( "com.foo.lib/javadocs/foo-lib-2.1-alpha-1-javadoc.jar", "com.foo.lib", "foo-lib", "2.1-alpha-1", "javadoc", "javadoc" ); - } - - /** - * Test the classifier, and java-source type spec. - * @throws LayoutException - */ - public void testGoodFooLibSources() - throws LayoutException - { - String groupId = "com.foo.lib"; - String artifactId = "foo-lib"; - String version = "2.1-alpha-1"; - String type = "java-source"; // oddball type-spec (should result in jar extension) - String classifier= "sources"; - String path = "com.foo.lib/java-sources/foo-lib-2.1-alpha-1-sources.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * Test the classifier, and java-source type spec. - * @throws LayoutException - */ - public void testBadClassifierFooLibSources() - throws LayoutException - { - assertBadPath( "com.foo.lib/java-sources/foo-lib-2.1-alpha-1.jar", "missing required classifier" ); - assertBadPath( "com.foo.lib/java-sources/foo-lib-2.1-alpha-1-javadoc.jar", "incorrect classifier" ); - assertBadPath( "com.foo.lib/java-sources/foo-lib-2.1-alpha-1-other.jar", "incorrect classifier" ); - } - - /** - * Test the classifier, and java-source type spec. - * @throws LayoutException - */ - public void testGoodFooLibTestSources() - throws LayoutException - { - String groupId = "com.foo.lib"; - String artifactId = "foo-lib"; - String version = "2.1-alpha-1-test-sources"; - String type = "jar"; - String classifier = null; // we can't parse this type of classifier in legacy format - String path = "com.foo.lib/jars/foo-lib-2.1-alpha-1-test-sources.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - public void testGoodFooTool() - throws LayoutException - { - String groupId = "com.foo"; - String artifactId = "foo-tool"; - String version = "1.0"; - String type = "jar"; - String path = "com.foo/jars/foo-tool-1.0.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - public void testGoodGeronimoEjbSpec() - throws LayoutException - { - String groupId = "org.apache.geronimo.specs"; - String artifactId = "geronimo-ejb_2.1_spec"; - String version = "1.0.1"; - String type = "jar"; - String path = "org.apache.geronimo.specs/jars/geronimo-ejb_2.1_spec-1.0.1.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - public void testGoodLdapClientsPom() - throws LayoutException - { - String groupId = "directory-clients"; - String artifactId = "ldap-clients"; - String version = "0.9.1-SNAPSHOT"; - String type = "pom"; - String path = "directory-clients/poms/ldap-clients-0.9.1-SNAPSHOT.pom"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * A timestamped versioned artifact, should reside in a SNAPSHOT baseversion directory. - * @throws LayoutException - */ - public void testGoodSnapshotMavenTest() - throws LayoutException - { - String groupId = "org.apache.archiva.test"; - String artifactId = "redonkulous"; - String version = "3.1-beta-1-20050831.101112-42"; - String type = "jar"; - String path = "org.apache.archiva.test/jars/redonkulous-3.1-beta-1-20050831.101112-42.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-519] version identifiers within filename cause misidentification of version. - * Example uses "test" in artifact Id, which is also part of the versionKeyword list. - */ - public void testGoodVersionKeywordInArtifactId() - throws LayoutException - { - String groupId = "maven"; - String artifactId = "maven-test-plugin"; - String version = "1.8.2"; - String type = "pom"; - - String path = "maven/poms/maven-test-plugin-1.8.2.pom"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - * Example uses "test" in artifact Id, which is also part of the versionKeyword list. - */ - public void testGoodDetectPluginMavenTest() - throws LayoutException - { - String groupId = "maven"; - String artifactId = "maven-test-plugin"; - String version = "1.8.2"; - String type = "maven-one-plugin"; - String path = "maven/plugins/maven-test-plugin-1.8.2.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - */ - public void testGoodDetectPluginAvalonMeta() - throws LayoutException - { - String groupId = "avalon-meta"; - String artifactId = "avalon-meta-plugin"; - String version = "1.1"; - String type = "maven-one-plugin"; - String path = "avalon-meta/plugins/avalon-meta-plugin-1.1.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - */ - public void testGoodDetectPluginCactusMaven() - throws LayoutException - { - String groupId = "cactus"; - String artifactId = "cactus-maven"; - String version = "1.7dev-20040815"; - String type = "maven-one-plugin"; - String path = "cactus/plugins/cactus-maven-1.7dev-20040815.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods. - */ - public void testGoodDetectPluginGeronimoPackaging() - throws LayoutException - { - String groupId = "geronimo"; - String artifactId = "geronimo-packaging-plugin"; - String version = "1.0.1"; - String type = "maven-one-plugin"; - String path = "geronimo/plugins/geronimo-packaging-plugin-1.0.1.jar"; - - assertLayout( path, groupId, artifactId, version, null, type ); - } - - /** - * [MRM-594] add some hook in LegacyPathParser to allow exceptions in artifact resolution - * @since 1.1 - */ - public void testCustomExceptionsInArtifactResolution() - throws LayoutException - { - String groupId = "jaxen"; - String artifactId = "jaxen"; - String version = "1.0-FCS"; - String type = "jar"; - String classifier = "full"; - String path = "jaxen/jars/jaxen-1.0-FCS-full.jar"; - - assertLayout( path, groupId, artifactId, version, classifier, type ); - } - - /** - * Perform a path to artifact reference lookup, and verify the results. - */ - private void assertLayout( String path, String groupId, String artifactId, String version, String classifier, String type ) - throws LayoutException - { - // Path to Artifact Reference. - ArtifactReference testReference = parser.toArtifactReference( path ); - assertArtifactReference( testReference, groupId, artifactId, version, classifier, type ); - } - - private void assertArtifactReference( ArtifactReference actualReference, String groupId, String artifactId, - String version, String classifier, String type ) - { - String expectedId = "ArtifactReference - " + groupId + ":" + artifactId + ":" + version + ":" + classifier + ":" + type; - - assertNotNull( expectedId + " - Should not be null.", actualReference ); - - assertEquals( expectedId + " - Group ID", groupId, actualReference.getGroupId() ); - assertEquals( expectedId + " - Artifact ID", artifactId, actualReference.getArtifactId() ); - assertEquals( expectedId + " - Version ID", version, actualReference.getVersion() ); - assertEquals( expectedId + " - classifier", classifier, actualReference.getClassifier() ); - assertEquals( expectedId + " - Type", type, actualReference.getType() ); - } - - protected void assertBadPath( String path, String reason ) - { - try - { - parser.toArtifactReference( path ); - fail( "Should have thrown a LayoutException on the invalid path [" + path + "] because of [" + reason + "]" ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContentTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContentTest.java deleted file mode 100644 index 3a0a77abb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContentTest.java +++ /dev/null @@ -1,223 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.utils.VersionComparator; -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.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.ProjectReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Set; - -/** - * ManagedDefaultRepositoryContentTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ManagedDefaultRepositoryContentTest - extends AbstractDefaultRepositoryContentTestCase -{ - private ManagedRepositoryContent repoContent; - - public void testGetVersionsBadArtifact() - throws Exception - { - assertGetVersions( "bad_artifact", Collections.EMPTY_LIST ); - } - - public void testGetVersionsMissingMultipleVersions() - throws Exception - { - assertGetVersions( "missing_metadata_b", Arrays.asList( "1.0", "1.0.1", "2.0", "2.0.1", "2.0-20070821-dev" ) ); - } - - public void testGetVersionsSimple() - throws Exception - { - assertVersions( "proxied_multi", "2.1", new String[] { "2.1" } ); - } - - public void testGetVersionsSimpleYetIncomplete() - throws Exception - { - assertGetVersions( "incomplete_metadata_a", Collections.singletonList( "1.0" ) ); - } - - public void testGetVersionsSimpleYetMissing() - throws Exception - { - assertGetVersions( "missing_metadata_a", Collections.singletonList( "1.0" ) ); - } - - public void testGetVersionsSnapshotA() - throws Exception - { - assertVersions( "snap_shots_a", "1.0-alpha-11-SNAPSHOT", new String[] { - "1.0-alpha-11-SNAPSHOT", - "1.0-alpha-11-20070221.194724-2", - "1.0-alpha-11-20070302.212723-3", - "1.0-alpha-11-20070303.152828-4", - "1.0-alpha-11-20070305.215149-5", - "1.0-alpha-11-20070307.170909-6", - "1.0-alpha-11-20070314.211405-9", - "1.0-alpha-11-20070316.175232-11" } ); - } - - public void testToMetadataPathFromProjectReference() - { - ProjectReference reference = new ProjectReference(); - reference.setGroupId( "com.foo" ); - reference.setArtifactId( "foo-tool" ); - - assertEquals( "com/foo/foo-tool/maven-metadata.xml", repoContent.toMetadataPath( reference ) ); - } - - public void testToMetadataPathFromVersionReference() - { - VersionedReference reference = new VersionedReference(); - reference.setGroupId( "com.foo" ); - reference.setArtifactId( "foo-tool" ); - reference.setVersion( "1.0" ); - - assertEquals( "com/foo/foo-tool/1.0/maven-metadata.xml", repoContent.toMetadataPath( reference ) ); - } - - public void testToPathOnNullArtifactReference() - { - try - { - ArtifactReference reference = null; - repoContent.toPath( reference ); - fail( "Should have failed due to null artifact reference." ); - } - catch ( IllegalArgumentException e ) - { - /* expected path */ - } - } - - public void testExcludeMetadataFile() - throws Exception - { - assertVersions( "include_xml", "1.0", new String[] { "1.0" } ); - } - - private void assertGetVersions( String artifactId, List expectedVersions ) - throws Exception - { - ProjectReference reference = new ProjectReference(); - reference.setGroupId( "org.apache.archiva.metadata.tests" ); - reference.setArtifactId( artifactId ); - - // Use the test metadata-repository, which is already setup for - // These kind of version tests. - File repoDir = getTestFile( "src/test/repositories/metadata-repository" ); - repoContent.getRepository().setLocation( repoDir.getAbsolutePath() ); - - // Request the versions. - Set testedVersionSet = repoContent.getVersions( reference ); - - // Sort the list (for asserts) - List testedVersions = new ArrayList(); - testedVersions.addAll( testedVersionSet ); - Collections.sort( testedVersions, new VersionComparator() ); - - // Test the expected array of versions, to the actual tested versions - assertEquals( "available versions", expectedVersions, testedVersions ); - } - - private void assertVersions( String artifactId, String version, String[] expectedVersions ) - throws Exception - { - VersionedReference reference = new VersionedReference(); - reference.setGroupId( "org.apache.archiva.metadata.tests" ); - reference.setArtifactId( artifactId ); - reference.setVersion( version ); - - // Use the test metadata-repository, which is already setup for - // These kind of version tests. - File repoDir = getTestFile( "src/test/repositories/metadata-repository" ); - repoContent.getRepository().setLocation( repoDir.getAbsolutePath() ); - - // Request the versions. - Set testedVersionSet = repoContent.getVersions( reference ); - - // Sort the list (for asserts later) - List testedVersions = new ArrayList(); - testedVersions.addAll( testedVersionSet ); - Collections.sort( testedVersions, new VersionComparator() ); - - // Test the expected array of versions, to the actual tested versions - assertEquals( "Assert Versions: length/size", expectedVersions.length, testedVersions.size() ); - - for ( int i = 0; i < expectedVersions.length; i++ ) - { - String actualVersion = testedVersions.get( i ); - assertEquals( "Versions[" + i + "]", expectedVersions[i], actualVersion ); - } - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - File repoDir = getTestFile( "src/test/repositories/default-repository" ); - - ManagedRepositoryConfiguration repository = createRepository( "testRepo", "Unit Test Repo", repoDir ); - - ArchivaConfiguration archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.ROLE ); - FileType fileType = (FileType) archivaConfiguration.getConfiguration().getRepositoryScanning().getFileTypes().get( 0 ); - fileType.addPattern( "**/*.xml" ); - assertEquals( FileTypes.ARTIFACTS, fileType.getId() ); - - FileTypes fileTypes = (FileTypes) lookup( FileTypes.class ); - fileTypes.afterConfigurationChange( null, "fileType", null ); - - repoContent = (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class, "default" ); - repoContent.setRepository( repository ); - } - - @Override - protected ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - return repoContent.toArtifactReference( path ); - } - - @Override - protected String toPath( ArtifactReference reference ) - { - return repoContent.toPath( reference ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContentTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContentTest.java deleted file mode 100644 index 2991832b5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContentTest.java +++ /dev/null @@ -1,193 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.utils.VersionComparator; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.ProjectReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; - -/** - * ManagedLegacyRepositoryContentTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ManagedLegacyRepositoryContentTest - extends AbstractLegacyRepositoryContentTestCase -{ - private ManagedRepositoryContent repoContent; - - public void testGetVersionsFromProjectReference() - throws Exception - { - assertVersions( "org.apache.maven", "testing", new String[] { - "UNKNOWN", -// "1.0-javadoc", -// "1.0-sources", - "1.0", - "1.0-20050611.112233-1" } ); - } - - public void testGetVersionsFromVersionedReference() - throws Exception - { - assertVersions( "org.apache.maven", "testing", "1.0", new String[] { -// "1.0-javadoc", -// "1.0-sources", - "1.0", - "1.0-20050611.112233-1" } ); - } - - private void assertVersions( String groupId, String artifactId, String[] expectedVersions ) - throws Exception - { - ProjectReference reference = new ProjectReference(); - reference.setGroupId( groupId ); - reference.setArtifactId( artifactId ); - - // Request the versions. - Set testedVersionSet = repoContent.getVersions( reference ); - - // Sort the list (for asserts later) - List testedVersions = new ArrayList(); - testedVersions.addAll( testedVersionSet ); - Collections.sort( testedVersions, new VersionComparator() ); - - // Test the expected array of versions, to the actual tested versions - assertEquals( "Assert (Project) Versions: length/size", expectedVersions.length, testedVersions.size() ); - - for ( int i = 0; i < expectedVersions.length; i++ ) - { - String actualVersion = testedVersions.get( i ); - assertEquals( "(Project) Versions[" + i + "]", expectedVersions[i], actualVersion ); - } - } - - private void assertVersions( String groupId, String artifactId, String version, String[] expectedVersions ) - throws Exception - { - VersionedReference reference = new VersionedReference(); - reference.setGroupId( groupId ); - reference.setArtifactId( artifactId ); - reference.setVersion( version ); - - // Request the versions. - Set testedVersionSet = repoContent.getVersions( reference ); - - // Sort the list (for asserts later) - List testedVersions = new ArrayList(); - testedVersions.addAll( testedVersionSet ); - Collections.sort( testedVersions, new VersionComparator() ); - - // Test the expected array of versions, to the actual tested versions - assertEquals( "Assert (Project) Versions: length/size", expectedVersions.length, testedVersions.size() ); - - for ( int i = 0; i < expectedVersions.length; i++ ) - { - String actualVersion = testedVersions.get( i ); - assertEquals( "(Project) Versions[" + i + "]", expectedVersions[i], actualVersion ); - } - } - - public void testGetRelatedArtifacts() - throws Exception - { - ArtifactReference reference = createArtifact( "org.apache.maven", "testing", "1.0", null, "jar" ); - - Set related = repoContent.getRelatedArtifacts( reference ); - assertNotNull( related ); - - String expected[] = new String[] { - "org.apache.maven/jars/testing-1.0.jar", - "org.apache.maven/java-sources/testing-1.0-sources.jar", - "org.apache.maven/jars/testing-1.0-20050611.112233-1.jar", - "org.apache.maven/poms/testing-1.0.pom", - "org.apache.maven/distributions/testing-1.0.tar.gz", - "org.apache.maven/distributions/testing-1.0.zip", - "org.apache.maven/javadoc.jars/testing-1.0-javadoc.jar" }; - - StringBuffer relatedDebugString = new StringBuffer(); - relatedDebugString.append( "[" ); - for ( ArtifactReference ref : related ) - { - String actualPath = repoContent.toPath( ref ); - relatedDebugString.append( actualPath ).append( ":" ); - } - relatedDebugString.append( "]" ); - - for ( String expectedPath : expected ) - { - boolean found = false; - for ( ArtifactReference actualRef : related ) - { - String actualPath = repoContent.toPath( actualRef ); - if ( actualPath.endsWith( expectedPath ) ) - { - found = true; - break; - } - } - if ( !found ) - { - fail( "Unable to find expected artifact [" + expectedPath + "] in list of related artifacts. " - + "Related <" + relatedDebugString + ">" ); - } - } - assertEquals( "Related <" + relatedDebugString + ">:", expected.length, related.size() ); - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - File repoDir = getTestFile( "src/test/repositories/legacy-repository" ); - - ManagedRepositoryConfiguration repository = createRepository( "testRepo", "Unit Test Repo", repoDir ); - repository.setLayout( "legacy" ); - - repoContent = (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class, "legacy" ); - repoContent.setRepository( repository ); - } - - @Override - protected ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - return repoContent.toArtifactReference( path ); - } - - @Override - protected String toPath( ArtifactReference reference ) - { - return repoContent.toPath( reference ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RemoteDefaultRepositoryContentTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RemoteDefaultRepositoryContentTest.java deleted file mode 100644 index 2a3384899..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RemoteDefaultRepositoryContentTest.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.repository.RemoteRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * RemoteDefaultRepositoryContentTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RemoteDefaultRepositoryContentTest - extends AbstractDefaultRepositoryContentTestCase -{ - private RemoteRepositoryContent repoContent; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - RemoteRepositoryConfiguration repository = createRemoteRepository( "testRemoteRepo", "Unit Test Remote Repo", - "http://repo1.maven.org/maven2/" ); - - repoContent = (RemoteRepositoryContent) lookup( RemoteRepositoryContent.class, "default" ); - repoContent.setRepository( repository ); - } - - @Override - protected ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - return repoContent.toArtifactReference( path ); - } - - @Override - protected String toPath( ArtifactReference reference ) - { - return repoContent.toPath( reference ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RemoteLegacyRepositoryContentTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RemoteLegacyRepositoryContentTest.java deleted file mode 100644 index f976c2fdb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RemoteLegacyRepositoryContentTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.repository.RemoteRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; - -/** - * RemoteLegacyRepositoryContentTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RemoteLegacyRepositoryContentTest - extends AbstractLegacyRepositoryContentTestCase -{ - private RemoteRepositoryContent repoContent; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - RemoteRepositoryConfiguration repository = createRemoteRepository( "testRemoteLegacyRepo", - "Unit Test Remote Legacy Repo", - "http://repo1.maven.org/maven/" ); - repository.setLayout( "legacy" ); - - repoContent = (RemoteRepositoryContent) lookup( RemoteRepositoryContent.class, "legacy" ); - repoContent.setRepository( repository ); - } - - @Override - protected ArtifactReference toArtifactReference( String path ) - throws LayoutException - { - return repoContent.toArtifactReference( path ); - } - - @Override - protected String toPath( ArtifactReference reference ) - { - return repoContent.toPath( reference ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java deleted file mode 100644 index f911f4e8c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java +++ /dev/null @@ -1,532 +0,0 @@ -package org.apache.maven.archiva.repository.content; - -/* - * 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.model.ArtifactReference; -import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; - -import java.io.File; - -/** - * RepositoryRequestTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryRequestTest - extends AbstractRepositoryLayerTestCase -{ - public void testInvalidRequestNoArtifactId() - { - assertInvalidRequest( "groupId/jars/-1.0.jar" ); - } - - public void testInvalidLegacyRequestBadLocation() - { - assertInvalidRequest( "org.apache.maven.test/jars/artifactId-1.0.war" ); - } - - public void testInvalidRequestTooShort() - { - assertInvalidRequest( "org.apache.maven.test/artifactId-2.0.jar" ); - } - - public void testInvalidDefaultRequestBadLocation() - { - assertInvalidRequest( "invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar" ); - } - - public void testValidLegacyGanymed() - throws Exception - { - assertValid( "ch.ethz.ganymed/jars/ganymed-ssh2-build210.jar", "ch.ethz.ganymed", "ganymed-ssh2", "build210", - null, "jar" ); - } - - public void testValidDefaultGanymed() - throws Exception - { - assertValid( "ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar", "ch.ethz.ganymed", - "ganymed-ssh2", "build210", null, "jar" ); - } - - public void testValidLegacyJavaxComm() - throws Exception - { - assertValid( "javax/jars/comm-3.0-u1.jar", "javax", "comm", "3.0-u1", null, "jar" ); - } - - public void testValidDefaultJavaxComm() - throws Exception - { - assertValid( "javax/comm/3.0-u1/comm-3.0-u1.jar", "javax", "comm", "3.0-u1", null, "jar" ); - } - - public void testValidLegacyJavaxPersistence() - throws Exception - { - assertValid( "javax.persistence/jars/ejb-3.0-public_review.jar", "javax.persistence", "ejb", - "3.0-public_review", null, "jar" ); - } - - public void testValidDefaultJavaxPersistence() - throws Exception - { - assertValid( "javax/persistence/ejb/3.0-public_review/ejb-3.0-public_review.jar", "javax.persistence", "ejb", - "3.0-public_review", null, "jar" ); - } - - public void testValidLegacyMavenTestPlugin() - throws Exception - { - assertValid( "maven/jars/maven-test-plugin-1.8.2.jar", "maven", "maven-test-plugin", "1.8.2", null, "jar" ); - } - - public void testValidDefaultMavenTestPlugin() - throws Exception - { - assertValid( "maven/maven-test-plugin/1.8.2/maven-test-plugin-1.8.2.pom", "maven", "maven-test-plugin", - "1.8.2", null, "pom" ); - } - - public void testValidLegacyCommonsLangJavadoc() - throws Exception - { - assertValid( "commons-lang/javadoc.jars/commons-lang-2.1-javadoc.jar", "commons-lang", "commons-lang", "2.1", - "javadoc", "javadoc" ); - } - - public void testValidDefaultCommonsLangJavadoc() - throws Exception - { - assertValid( "commons-lang/commons-lang/2.1/commons-lang-2.1-javadoc.jar", "commons-lang", "commons-lang", - "2.1", "javadoc", "javadoc" ); - } - - public void testValidLegacyDerbyPom() - throws Exception - { - assertValid( "org.apache.derby/poms/derby-10.2.2.0.pom", "org.apache.derby", "derby", "10.2.2.0", null, "pom" ); - // Starting slash should not prevent detection. - assertValid( "/org.apache.derby/poms/derby-10.2.2.0.pom", "org.apache.derby", "derby", "10.2.2.0", null, "pom" ); - } - - public void testValidDefaultDerbyPom() - throws Exception - { - assertValid( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0.pom", "org.apache.derby", "derby", "10.2.2.0", - null, "pom" ); - } - - public void testValidLegacyGeronimoEjbSpec() - throws Exception - { - assertValid( "org.apache.geronimo.specs/jars/geronimo-ejb_2.1_spec-1.0.1.jar", "org.apache.geronimo.specs", - "geronimo-ejb_2.1_spec", "1.0.1", null, "jar" ); - } - - public void testValidDefaultGeronimoEjbSpec() - throws Exception - { - assertValid( "org/apache/geronimo/specs/geronimo-ejb_2.1_spec/1.0.1/geronimo-ejb_2.1_spec-1.0.1.jar", - "org.apache.geronimo.specs", "geronimo-ejb_2.1_spec", "1.0.1", null, "jar" ); - } - - public void testValidLegacyLdapSnapshot() - throws Exception - { - assertValid( "directory-clients/poms/ldap-clients-0.9.1-SNAPSHOT.pom", "directory-clients", "ldap-clients", - "0.9.1-SNAPSHOT", null, "pom" ); - } - - public void testValidDefaultLdapSnapshot() - throws Exception - { - assertValid( "directory-clients/ldap-clients/0.9.1-SNAPSHOT/ldap-clients-0.9.1-SNAPSHOT.pom", - "directory-clients", "ldap-clients", "0.9.1-SNAPSHOT", null, "pom" ); - } - - public void testValidLegacyTestArchSnapshot() - throws Exception - { - assertValid( "test.maven-arch/poms/test-arch-2.0.3-SNAPSHOT.pom", "test.maven-arch", "test-arch", - "2.0.3-SNAPSHOT", null, "pom" ); - } - - public void testValidDefaultTestArchSnapshot() - throws Exception - { - assertValid( "test/maven-arch/test-arch/2.0.3-SNAPSHOT/test-arch-2.0.3-SNAPSHOT.pom", "test.maven-arch", - "test-arch", "2.0.3-SNAPSHOT", null, "pom" ); - } - - public void testValidLegacyOddDottedArtifactId() - throws Exception - { - assertValid( "com.company.department/poms/com.company.department.project-0.2.pom", "com.company.department", - "com.company.department.project", "0.2", null, "pom" ); - } - - public void testValidDefaultOddDottedArtifactId() - throws Exception - { - assertValid( "com/company/department/com.company.department.project/0.2/com.company.department.project-0.2.pom", - "com.company.department", "com.company.department.project", "0.2", null, "pom" ); - } - - public void testValidLegacyTimestampedSnapshot() - throws Exception - { - assertValid( "org.apache.archiva.test/jars/redonkulous-3.1-beta-1-20050831.101112-42.jar", - "org.apache.archiva.test", "redonkulous", "3.1-beta-1-20050831.101112-42", null, "jar" ); - } - - public void testValidDefaultTimestampedSnapshot() - throws Exception - { - assertValid( - "org/apache/archiva/test/redonkulous/3.1-beta-1-SNAPSHOT/redonkulous-3.1-beta-1-20050831.101112-42.jar", - "org.apache.archiva.test", "redonkulous", "3.1-beta-1-20050831.101112-42", null, "jar" ); - } - - public void testIsSupportFile() - { - assertTrue( repoRequest.isSupportFile( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz.sha1" ) ); - assertTrue( repoRequest.isSupportFile( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz.md5" ) ); - assertTrue( repoRequest.isSupportFile( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz.asc" ) ); - assertTrue( repoRequest.isSupportFile( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz.pgp" ) ); - assertTrue( repoRequest.isSupportFile( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml.sha1" ) ); - assertTrue( repoRequest.isSupportFile( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml.md5" ) ); - - assertFalse( repoRequest.isSupportFile( "test.maven-arch/poms/test-arch-2.0.3-SNAPSHOT.pom" ) ); - assertFalse( repoRequest.isSupportFile( "test/maven-arch/test-arch/2.0.3-SNAPSHOT/test-arch-2.0.3-SNAPSHOT.jar" ) ); - assertFalse( repoRequest.isSupportFile( "org/apache/archiva/archiva-api/1.0/archiva-api-1.0.xml.zip" ) ); - assertFalse( repoRequest.isSupportFile( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz" ) ); - assertFalse( repoRequest.isSupportFile( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml" ) ); - assertFalse( repoRequest.isSupportFile( "org/apache/derby/derby/maven-metadata.xml" ) ); - } - - public void testIsMetadata() - { - assertTrue( repoRequest.isMetadata( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml" )); - assertTrue( repoRequest.isMetadata( "org/apache/derby/derby/maven-metadata.xml" )); - - assertFalse( repoRequest.isMetadata( "test.maven-arch/poms/test-arch-2.0.3-SNAPSHOT.pom" ) ); - assertFalse( repoRequest.isMetadata( "test/maven-arch/test-arch/2.0.3-SNAPSHOT/test-arch-2.0.3-SNAPSHOT.jar" ) ); - assertFalse( repoRequest.isMetadata( "org/apache/archiva/archiva-api/1.0/archiva-api-1.0.xml.zip" ) ); - assertFalse( repoRequest.isMetadata( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz" ) ); - assertFalse( repoRequest.isMetadata( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz.pgp" ) ); - assertFalse( repoRequest.isMetadata( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml.sha1" ) ); - } - - public void testIsDefault() - { - assertFalse( repoRequest.isDefault( "test.maven-arch/poms/test-arch-2.0.3-SNAPSHOT.pom" ) ); - assertFalse( repoRequest.isDefault( "directory-clients/poms/ldap-clients-0.9.1-SNAPSHOT.pom" ) ); - assertFalse( repoRequest.isDefault( "commons-lang/jars/commons-lang-2.1-javadoc.jar" ) ); - - assertTrue( repoRequest.isDefault( "test/maven-arch/test-arch/2.0.3-SNAPSHOT/test-arch-2.0.3-SNAPSHOT.jar" ) ); - assertTrue( repoRequest.isDefault( "org/apache/archiva/archiva-api/1.0/archiva-api-1.0.xml.zip" ) ); - assertTrue( repoRequest.isDefault( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz" ) ); - assertTrue( repoRequest.isDefault( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz.pgp" ) ); - assertTrue( repoRequest.isDefault( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml.sha1" ) ); - - assertFalse( repoRequest.isDefault( null ) ); - assertFalse( repoRequest.isDefault( "" ) ); - assertFalse( repoRequest.isDefault( "foo" ) ); - assertFalse( repoRequest.isDefault( "some.short/path" ) ); - } - - public void testIsLegacy() - { - assertTrue( repoRequest.isLegacy( "test.maven-arch/poms/test-arch-2.0.3-SNAPSHOT.pom" ) ); - assertTrue( repoRequest.isLegacy( "directory-clients/poms/ldap-clients-0.9.1-SNAPSHOT.pom" ) ); - assertTrue( repoRequest.isLegacy( "commons-lang/jars/commons-lang-2.1-javadoc.jar" ) ); - - assertFalse( repoRequest.isLegacy( "test/maven-arch/test-arch/2.0.3-SNAPSHOT/test-arch-2.0.3-SNAPSHOT.jar" ) ); - assertFalse( repoRequest.isLegacy( "org/apache/archiva/archiva-api/1.0/archiva-api-1.0.xml.zip" ) ); - assertFalse( repoRequest.isLegacy( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz" ) ); - assertFalse( repoRequest.isLegacy( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0-bin.tar.gz.pgp" ) ); - assertFalse( repoRequest.isLegacy( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml.sha1" ) ); - - assertFalse( repoRequest.isLegacy( null ) ); - assertFalse( repoRequest.isLegacy( "" ) ); - assertFalse( repoRequest.isLegacy( "some.short/path" ) ); - } - - private ManagedRepositoryContent createManagedRepo( String layout ) - throws Exception - { - File repoRoot = getTestFile( "target/test-repo" ); - return createManagedRepositoryContent( "test-internal", "Internal Test Repo", repoRoot, layout ); - } - - /** - * [MRM-481] Artifact requests with a .xml.zip extension fail with a 404 Error - */ - public void testToNativePathArtifactDefaultToDefaultDualExtension() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "default" ); - - // Test (artifact) default to default - dual extension - assertEquals( "org/project/example-presentation/3.2/example-presentation-3.2.xml.zip", repoRequest - .toNativePath( "org/project/example-presentation/3.2/example-presentation-3.2.xml.zip", repository ) ); - } - - /** - * [MRM-481] Artifact requests with a .xml.zip extension fail with a 404 Error - */ - public void testToNativePathArtifactLegacyToDefaultDualExtension() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "default" ); - - // Test (artifact) legacy to default - dual extension - // NOTE: The detection of a dual extension is flawed. - assertEquals( "org/project/example-presentation/3.2.xml/example-presentation-3.2.xml.zip", repoRequest - .toNativePath( "org.project/zips/example-presentation-3.2.xml.zip", repository ) ); - } - - public void testToNativePathMetadataDefaultToDefault() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "default" ); - - // Test (metadata) default to default - assertEquals( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml.sha1", repoRequest - .toNativePath( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml.sha1", repository ) ); - } - - public void testNativePathPomLegacyToDefault() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "default" ); - - // Test (pom) legacy to default - assertEquals( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0.pom", - repoRequest.toNativePath( "org.apache.derby/poms/derby-10.2.2.0.pom", repository ) ); - } - - public void testNativePathPomLegacyToLegacy() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "legacy" ); - - // Test (pom) legacy to default - assertEquals( "org.apache.derby/poms/derby-10.2.2.0.pom", - repoRequest.toNativePath( "org.apache.derby/poms/derby-10.2.2.0.pom", repository ) ); - } - - public void testNativePathPomLegacyToDefaultEjb() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "default" ); - - // Test (pom) legacy to default - assertEquals( "mygroup/myejb/1.0/myejb-1.0.jar", - repoRequest.toNativePath( "mygroup/ejbs/myejb-1.0.jar", repository ) ); - } - - public void testNativePathPomLegacyToLegacyEjb() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "legacy" ); - - // Test (pom) legacy to default - assertEquals( "mygroup/ejbs/myejb-1.0.jar", - repoRequest.toNativePath( "mygroup/ejbs/myejb-1.0.jar", repository ) ); - } - - public void testNativePathPomLegacyToLegacyStrutsModule() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "legacy" ); - - // Test (pom) legacy to default - assertEquals( "WebPortal/struts-modules/eventsDB-1.2.3.struts-module", - repoRequest.toNativePath( "WebPortal/struts-modules/eventsDB-1.2.3.struts-module", repository ) ); - } - - public void testNativePathSupportFileLegacyToDefault() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "default" ); - - // Test (supportfile) legacy to default - assertEquals( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0.jar.sha1", repoRequest - .toNativePath( "org.apache.derby/jars/derby-10.2.2.0.jar.sha1", repository ) ); - } - - public void testNativePathBadRequestTooShort() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "default" ); - - // Test bad request path (too short) - try - { - repoRequest.toNativePath( "org.apache.derby/license.txt", repository ); - fail( "Should have thrown an exception about a too short path." ); - } - catch ( LayoutException e ) - { - // expected path. - } - } - - public void testNativePathBadRequestBlank() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "default" ); - - // Test bad request path (too short) - try - { - repoRequest.toNativePath( "", repository ); - fail( "Should have thrown an exception about an blank request." ); - } - catch ( LayoutException e ) - { - // expected path. - } - } - - public void testNativePathBadRequestNull() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "default" ); - - // Test bad request path (too short) - try - { - repoRequest.toNativePath( null, repository ); - fail( "Should have thrown an exception about an null request." ); - } - catch ( LayoutException e ) - { - // expected path. - } - } - - public void testNativePathBadRequestUnknownType() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "default" ); - - // Test bad request path (too short) - try - { - repoRequest.toNativePath( "org/apache/derby/derby/10.2.2.0/license.txt", repository ); - fail( "Should have thrown an exception about an invalid type." ); - } - catch ( LayoutException e ) - { - // expected path. - } - } - - public void testToNativePathLegacyMetadataDefaultToLegacy() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "legacy" ); - - // Test (metadata) default to legacy - - // Special Case: This direction is not supported, should throw a LayoutException. - try - { - repoRequest.toNativePath( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml", repository ); - fail("Should have thrown a LayoutException, can't translate a maven-metadata.xml to a legacy layout."); - } - catch(LayoutException e) - { - // expected path. - } - } - - public void testNativePathPomDefaultToLegacy() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "legacy" ); - - // Test (pom) default to legacy - assertEquals( "org.apache.derby/poms/derby-10.2.2.0.pom", repoRequest - .toNativePath( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0.pom", repository ) ); - } - - public void testNativePathSupportFileDefaultToLegacy() - throws Exception - { - ManagedRepositoryContent repository = createManagedRepo( "legacy" ); - - // Test (supportfile) default to legacy - assertEquals( "org.apache.derby/jars/derby-10.2.2.0.jar.sha1", repoRequest - .toNativePath( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0.jar.sha1", repository ) ); - } - - private void assertValid( String path, String groupId, String artifactId, String version, String classifier, - String type ) - throws Exception - { - String expectedId = "ArtifactReference - " + groupId + ":" + artifactId + ":" + version + ":" - + ( classifier != null ? classifier + ":" : "" ) + type; - - ArtifactReference reference = repoRequest.toArtifactReference( path ); - - assertNotNull( expectedId + " - Should not be null.", reference ); - - assertEquals( expectedId + " - Group ID", groupId, reference.getGroupId() ); - assertEquals( expectedId + " - Artifact ID", artifactId, reference.getArtifactId() ); - if ( StringUtils.isNotBlank( classifier ) ) - { - assertEquals( expectedId + " - Classifier", classifier, reference.getClassifier() ); - } - assertEquals( expectedId + " - Version ID", version, reference.getVersion() ); - assertEquals( expectedId + " - Type", type, reference.getType() ); - } - - private void assertInvalidRequest( String path ) - { - try - { - repoRequest.toArtifactReference( path ); - fail( "Expected a LayoutException on an invalid path [" + path + "]" ); - } - catch ( LayoutException e ) - { - /* expected path */ - } - } - - private RepositoryRequest repoRequest; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - repoRequest = (RepositoryRequest) lookup( RepositoryRequest.class ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java deleted file mode 100644 index c539f52b5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java +++ /dev/null @@ -1,566 +0,0 @@ -package org.apache.maven.archiva.repository.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 org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.common.utils.VersionComparator; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.model.ProjectReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; -import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.MockConfiguration; -import org.apache.maven.archiva.repository.RemoteRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; -import org.custommonkey.xmlunit.DetailedDiff; -import org.custommonkey.xmlunit.Diff; -import org.xml.sax.SAXException; - -import javax.xml.parsers.ParserConfigurationException; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; - -/** - * MetadataToolsTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class MetadataToolsTest - extends AbstractRepositoryLayerTestCase -{ - private MetadataTools tools; - - protected MockConfiguration config; - - public void testGatherSnapshotVersionsA() - throws Exception - { - assertSnapshotVersions( "snap_shots_a", "1.0-alpha-11-SNAPSHOT", new String[] { - "1.0-alpha-11-SNAPSHOT", - "1.0-alpha-11-20070221.194724-2", - "1.0-alpha-11-20070302.212723-3", - "1.0-alpha-11-20070303.152828-4", - "1.0-alpha-11-20070305.215149-5", - "1.0-alpha-11-20070307.170909-6", - "1.0-alpha-11-20070314.211405-9", - "1.0-alpha-11-20070316.175232-11" } ); - } - - public void testGatherSnapshotVersionsAWithProxies() - throws Exception - { - // These proxied repositories do not need to exist for the purposes of this unit test, - // just the repository ids are important. - createProxyConnector( "test-repo", "apache-snapshots" ); - createProxyConnector( "test-repo", "internal-snapshots" ); - createProxyConnector( "test-repo", "snapshots.codehaus.org" ); - - assertSnapshotVersions( "snap_shots_a", "1.0-alpha-11-SNAPSHOT", new String[] { - "1.0-alpha-11-SNAPSHOT", - "1.0-alpha-11-20070221.194724-2", - "1.0-alpha-11-20070302.212723-3", - "1.0-alpha-11-20070303.152828-4", - "1.0-alpha-11-20070305.215149-5", - "1.0-alpha-11-20070307.170909-6", - "1.0-alpha-11-20070314.211405-9", - "1.0-alpha-11-20070315.033030-10" /* Arrives in via snapshots.codehaus.org proxy */, - "1.0-alpha-11-20070316.175232-11" } ); - } - - public void testGetRepositorySpecificName() - throws Exception - { - RemoteRepositoryContent repoJavaNet = createRemoteRepositoryContent( "maven2-repository.dev.java.net", - "Java.net Repository for Maven 2", - "http://download.java.net/maven/2/", - "default" ); - RemoteRepositoryContent repoCentral = createRemoteRepositoryContent( "central", "Central Global Repository", - "http://repo1.maven.org/maven2/", - "default" ); - - String convertedName = tools.getRepositorySpecificName( repoJavaNet, - "commons-lang/commons-lang/maven-metadata.xml" ); - assertMetadataPath( "commons-lang/commons-lang/maven-metadata-maven2-repository.dev.java.net.xml", - convertedName ); - - convertedName = tools.getRepositorySpecificName( repoCentral, "commons-lang/commons-lang/maven-metadata.xml" ); - assertMetadataPath( "commons-lang/commons-lang/maven-metadata-central.xml", convertedName ); - } - - // TODO: replace with group tests -// public void testUpdateProjectBadArtifact() -// throws Exception -// { -// try -// { -// assertUpdatedProjectMetadata( "bad_artifact", null ); -// fail( "Should have thrown an IOException on a bad artifact." ); -// } -// catch ( IOException e ) -// { -// // Expected path -// } -// } - - public void testUpdateProjectMissingMultipleVersions() - throws Exception - { - assertUpdatedProjectMetadata( "missing_metadata_b", new String[] { - "1.0", - "1.0.1", - "2.0", - "2.0.1", - "2.0-20070821-dev" }, "2.0-20070821-dev" , "2.0-20070821-dev" ); - } - - public void testUpdateProjectMissingMultipleVersionsWithProxies() - throws Exception - { - // Attach the (bogus) proxies to the managed repo. - // These proxied repositories do not need to exist for the purposes of this unit test, - // just the repository ids are important. - createProxyConnector( "test-repo", "central" ); - createProxyConnector( "test-repo", "java.net" ); - - assertUpdatedProjectMetadata( "proxied_multi", new String[] { - "1.0-spec" /* in java.net */, - "1.0" /* in managed, and central */, - "1.0.1" /* in central */, - "1.1" /* in managed */, - "2.0-proposal-beta" /* in java.net */, - "2.0-spec" /* in java.net */, - "2.0" /* in central, and java.net */, - "2.0.1" /* in java.net */, - "2.1" /* in managed */, - "3.0" /* in central */, - "3.1" /* in central */}, "3.1", "3.1" ); - } - - public void testUpdateProjectSimpleYetIncomplete() - throws Exception - { - assertUpdatedProjectMetadata( "incomplete_metadata_a", new String[] { "1.0" }, "1.0", "1.0" ); - } - - public void testUpdateProjectSimpleYetMissing() - throws Exception - { - assertUpdatedProjectMetadata( "missing_metadata_a", new String[] { "1.0" }, "1.0", "1.0" ); - } - - public void testUpdateVersionSimple10() - throws Exception - { - assertUpdatedReleaseVersionMetadata( "missing_metadata_a", "1.0" ); - } - - public void testUpdateVersionSimple20() - throws Exception - { - assertUpdatedReleaseVersionMetadata( "missing_metadata_b", "2.0" ); - } - - public void testUpdateVersionSimple20NotSnapshot() - throws Exception - { - assertUpdatedReleaseVersionMetadata( "missing_metadata_b", "2.0-20070821-dev" ); - } - - public void testUpdateVersionSnapshotA() - throws Exception - { - assertUpdatedSnapshotVersionMetadata( "snap_shots_a", "1.0-alpha-11-SNAPSHOT", "20070316", "175232", "11" ); - } - - public void testToPathFromVersionReference() - { - VersionedReference reference = new VersionedReference(); - reference.setGroupId( "com.foo" ); - reference.setArtifactId( "foo-tool" ); - reference.setVersion( "1.0" ); - - assertEquals( "com/foo/foo-tool/1.0/maven-metadata.xml", tools.toPath( reference ) ); - } - - public void testToPathFromProjectReference() - { - ProjectReference reference = new ProjectReference(); - reference.setGroupId( "com.foo" ); - reference.setArtifactId( "foo-tool" ); - - assertEquals( "com/foo/foo-tool/maven-metadata.xml", tools.toPath( reference ) ); - } - - public void testToProjectReferenceFooTools() - throws RepositoryMetadataException - { - assertProjectReference( "com.foo", "foo-tools", "com/foo/foo-tools/maven-metadata.xml" ); - } - - public void testToProjectReferenceAReallyLongPath() - throws RepositoryMetadataException - { - String groupId = "net.i.have.a.really.long.path.just.for.the.hell.of.it"; - String artifactId = "a"; - String path = "net/i/have/a/really/long/path/just/for/the/hell/of/it/a/maven-metadata.xml"; - - assertProjectReference( groupId, artifactId, path ); - } - - public void testToProjectReferenceCommonsLang() - throws RepositoryMetadataException - { - String groupId = "commons-lang"; - String artifactId = "commons-lang"; - String path = "commons-lang/commons-lang/maven-metadata.xml"; - - assertProjectReference( groupId, artifactId, path ); - } - - private void assertProjectReference( String groupId, String artifactId, String path ) - throws RepositoryMetadataException - { - ProjectReference reference = tools.toProjectReference( path ); - - assertNotNull( "Reference should not be null.", reference ); - assertEquals( "ProjectReference.groupId", groupId, reference.getGroupId() ); - assertEquals( "ProjectReference.artifactId", artifactId, reference.getArtifactId() ); - } - - public void testToVersionedReferenceFooTool() - throws RepositoryMetadataException - { - String groupId = "com.foo"; - String artifactId = "foo-tool"; - String version = "1.0"; - String path = "com/foo/foo-tool/1.0/maven-metadata.xml"; - - assertVersionedReference( groupId, artifactId, version, path ); - } - - public void testToVersionedReferenceAReallyLongPath() - throws RepositoryMetadataException - { - String groupId = "net.i.have.a.really.long.path.just.for.the.hell.of.it"; - String artifactId = "a"; - String version = "1.1-alpha-1"; - String path = "net/i/have/a/really/long/path/just/for/the/hell/of/it/a/1.1-alpha-1/maven-metadata.xml"; - - assertVersionedReference( groupId, artifactId, version, path ); - } - - public void testToVersionedReferenceCommonsLang() - throws RepositoryMetadataException - { - String groupId = "commons-lang"; - String artifactId = "commons-lang"; - String version = "2.1"; - String path = "commons-lang/commons-lang/2.1/maven-metadata.xml"; - - assertVersionedReference( groupId, artifactId, version, path ); - } - - public void testToVersionedReferenceSnapshot() - throws RepositoryMetadataException - { - String groupId = "com.foo"; - String artifactId = "foo-connector"; - String version = "2.1-SNAPSHOT"; - String path = "com/foo/foo-connector/2.1-SNAPSHOT/maven-metadata.xml"; - - assertVersionedReference( groupId, artifactId, version, path ); - } - - private void assertVersionedReference( String groupId, String artifactId, String version, String path ) - throws RepositoryMetadataException - { - VersionedReference reference = tools.toVersionedReference( path ); - assertNotNull( "Reference should not be null.", reference ); - - assertEquals( "VersionedReference.groupId", groupId, reference.getGroupId() ); - assertEquals( "VersionedReference.artifactId", artifactId, reference.getArtifactId() ); - assertEquals( "VersionedReference.version", version, reference.getVersion() ); - } - - private void assertSnapshotVersions( String artifactId, String version, String[] expectedVersions ) - throws Exception - { - File repoRootDir = new File( "src/test/repositories/metadata-repository" ); - - VersionedReference reference = new VersionedReference(); - reference.setGroupId( "org.apache.archiva.metadata.tests" ); - reference.setArtifactId( artifactId ); - reference.setVersion( version ); - - ManagedRepositoryConfiguration repo = createRepository( "test-repo", "Test Repository: " + getName(), - repoRootDir ); - ManagedRepositoryContent repoContent = (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class, - "default" ); - repoContent.setRepository( repo ); - - Set testedVersionSet = tools.gatherSnapshotVersions( repoContent, reference ); - - // Sort the list (for asserts) - List testedVersions = new ArrayList(); - testedVersions.addAll( testedVersionSet ); - Collections.sort( testedVersions, new VersionComparator() ); - - // Test the expected array of versions, to the actual tested versions - assertEquals( "Assert Snapshot Versions: length/size", expectedVersions.length, testedVersions.size() ); - - for ( int i = 0; i < expectedVersions.length; i++ ) - { - String actualVersion = testedVersions.get( i ); - assertEquals( "Snapshot Versions[" + i + "]", expectedVersions[i], actualVersion ); - } - } - - private void assertMetadata( String expectedMetadata, ManagedRepositoryContent repository, - ProjectReference reference ) - throws LayoutException, IOException, SAXException, ParserConfigurationException - { - File metadataFile = new File( repository.getRepoRoot(), tools.toPath( reference ) ); - String actualMetadata = FileUtils.readFileToString( metadataFile, null ); - - DetailedDiff detailedDiff = new DetailedDiff( new Diff( expectedMetadata, actualMetadata ) ); - if ( !detailedDiff.similar() ) - { - // If it isn't similar, dump the difference. - assertEquals( expectedMetadata, actualMetadata ); - } - } - - private void assertMetadata( String expectedMetadata, ManagedRepositoryContent repository, - VersionedReference reference ) - throws LayoutException, IOException, SAXException, ParserConfigurationException - { - File metadataFile = new File( repository.getRepoRoot(), tools.toPath( reference ) ); - String actualMetadata = FileUtils.readFileToString( metadataFile, null ); - - DetailedDiff detailedDiff = new DetailedDiff( new Diff( expectedMetadata, actualMetadata ) ); - if ( !detailedDiff.similar() ) - { - // If it isn't similar, dump the difference. - assertEquals( expectedMetadata, actualMetadata ); - } - } - - private void assertMetadataPath( String expected, String actual ) - { - assertEquals( "Repository Specific Metadata Path", expected, actual ); - } - - private void assertUpdatedProjectMetadata( String artifactId, String[] expectedVersions ) - throws Exception - { - assertUpdatedProjectMetadata( artifactId, expectedVersions, null, null ); - } - - private void assertUpdatedProjectMetadata( String artifactId, String[] expectedVersions, String latestVersion, - String releaseVersion ) - throws Exception - { - ManagedRepositoryContent testRepo = createTestRepoContent(); - ProjectReference reference = new ProjectReference(); - reference.setGroupId( "org.apache.archiva.metadata.tests" ); - reference.setArtifactId( artifactId ); - - prepTestRepo( testRepo, reference ); - - tools.updateMetadata( testRepo, reference ); - - StringBuilder buf = new StringBuilder(); - buf.append( "\n" ); - buf.append( " " ).append( reference.getGroupId() ).append( "\n" ); - buf.append( " " ).append( reference.getArtifactId() ).append( "\n" ); - // buf.append( " 1.0\n" ); - - if ( expectedVersions != null ) - { - buf.append( " \n" ); - if ( latestVersion != null ) - { - buf.append( " " ).append( latestVersion ).append( "\n" ); - } - if ( releaseVersion != null ) - { - buf.append( " " ).append( releaseVersion ).append( "\n" ); - } - - buf.append( " \n" ); - for ( int i = 0; i < expectedVersions.length; i++ ) - { - buf.append( " " ).append( expectedVersions[i] ).append( "\n" ); - } - buf.append( " \n" ); - buf.append( " \n" ); - } - buf.append( "" ); - - assertMetadata( buf.toString(), testRepo, reference ); - } - - private void assertUpdatedReleaseVersionMetadata( String artifactId, String version ) - throws Exception - { - ManagedRepositoryContent testRepo = createTestRepoContent(); - VersionedReference reference = new VersionedReference(); - reference.setGroupId( "org.apache.archiva.metadata.tests" ); - reference.setArtifactId( artifactId ); - reference.setVersion( version ); - - prepTestRepo( testRepo, reference ); - - tools.updateMetadata( testRepo, reference ); - - StringBuilder buf = new StringBuilder(); - buf.append( "\n" ); - buf.append( " " ).append( reference.getGroupId() ).append( "\n" ); - buf.append( " " ).append( reference.getArtifactId() ).append( "\n" ); - buf.append( " " ).append( reference.getVersion() ).append( "\n" ); - buf.append( "" ); - - assertMetadata( buf.toString(), testRepo, reference ); - } - - private void assertUpdatedSnapshotVersionMetadata( String artifactId, String version, String expectedDate, - String expectedTime, String expectedBuildNumber ) - throws Exception - { - ManagedRepositoryContent testRepo = createTestRepoContent(); - VersionedReference reference = new VersionedReference(); - reference.setGroupId( "org.apache.archiva.metadata.tests" ); - reference.setArtifactId( artifactId ); - reference.setVersion( version ); - - prepTestRepo( testRepo, reference ); - - tools.updateMetadata( testRepo, reference ); - - StringBuilder buf = new StringBuilder(); - buf.append( "\n" ); - buf.append( " " ).append( reference.getGroupId() ).append( "\n" ); - buf.append( " " ).append( reference.getArtifactId() ).append( "\n" ); - buf.append( " " ).append( reference.getVersion() ).append( "\n" ); - buf.append( " \n" ); - buf.append( " \n" ); - buf.append( " " ).append( expectedBuildNumber ).append( "\n" ); - buf.append( " " ); - buf.append( expectedDate ).append( "." ).append( expectedTime ); - buf.append( "\n" ); - buf.append( " \n" ); - buf.append( " " ).append( expectedDate ).append( expectedTime ).append( "\n" ); - buf.append( " \n" ); - buf.append( "" ); - - assertMetadata( buf.toString(), testRepo, reference ); - } - - private void createProxyConnector( String sourceRepoId, String targetRepoId ) - { - ProxyConnectorConfiguration connectorConfig = new ProxyConnectorConfiguration(); - connectorConfig.setSourceRepoId( sourceRepoId ); - connectorConfig.setTargetRepoId( targetRepoId ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_CHECKSUM, ChecksumPolicy.IGNORE ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_RELEASES, ReleasesPolicy.ALWAYS ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_SNAPSHOTS, SnapshotsPolicy.ALWAYS ); - connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_CACHE_FAILURES, CachedFailuresPolicy.NO ); - - int count = config.getConfiguration().getProxyConnectors().size(); - config.getConfiguration().addProxyConnector( connectorConfig ); - - // Proper Triggering ... - String prefix = "proxyConnectors.proxyConnector(" + count + ")"; - config.triggerChange( prefix + ".sourceRepoId", connectorConfig.getSourceRepoId() ); - config.triggerChange( prefix + ".targetRepoId", connectorConfig.getTargetRepoId() ); - config.triggerChange( prefix + ".proxyId", connectorConfig.getProxyId() ); - config.triggerChange( prefix + ".policies.releases", connectorConfig.getPolicy( "releases", "" ) ); - config.triggerChange( prefix + ".policies.checksum", connectorConfig.getPolicy( "checksum", "" ) ); - config.triggerChange( prefix + ".policies.snapshots", connectorConfig.getPolicy( "snapshots", "" ) ); - config.triggerChange( prefix + ".policies.cache-failures", connectorConfig.getPolicy( "cache-failures", "" ) ); - } - - private ManagedRepositoryContent createTestRepoContent() - throws Exception - { - File repoRoot = new File( "target/metadata-tests/" + getName() ); - if ( repoRoot.exists() ) - { - FileUtils.deleteDirectory( repoRoot ); - } - - repoRoot.mkdirs(); - - ManagedRepositoryConfiguration repoConfig = createRepository( "test-repo", "Test Repository: " + getName(), - repoRoot ); - - ManagedRepositoryContent repoContent = (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class, - "default" ); - repoContent.setRepository( repoConfig ); - return repoContent; - } - - private void prepTestRepo( ManagedRepositoryContent repo, ProjectReference reference ) - throws IOException - { - String groupDir = StringUtils.replaceChars( reference.getGroupId(), '.', '/' ); - String path = groupDir + "/" + reference.getArtifactId(); - - File srcRepoDir = new File( "src/test/repositories/metadata-repository" ); - File srcDir = new File( srcRepoDir, path ); - File destDir = new File( repo.getRepoRoot(), path ); - - assertTrue( "Source Dir exists: " + srcDir, srcDir.exists() ); - destDir.mkdirs(); - - FileUtils.copyDirectory( srcDir, destDir ); - } - - private void prepTestRepo( ManagedRepositoryContent repo, VersionedReference reference ) - throws IOException - { - ProjectReference projectRef = new ProjectReference(); - projectRef.setGroupId( reference.getGroupId() ); - projectRef.setArtifactId( reference.getArtifactId() ); - - prepTestRepo( repo, projectRef ); - } - - protected void setUp() - throws Exception - { - super.setUp(); - - config = (MockConfiguration) lookup( ArchivaConfiguration.class.getName(), "mock" ); - tools = (MetadataTools) lookup( MetadataTools.class ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReaderTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReaderTest.java deleted file mode 100644 index aabcc43fe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReaderTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.apache.maven.archiva.repository.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 org.apache.maven.archiva.model.ArchivaRepositoryMetadata; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; - -/** - * RepositoryMetadataReaderTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryMetadataReaderTest extends PlexusInSpringTestCase -{ - public void testLoadSimple() throws RepositoryMetadataException - { - File defaultRepoDir = new File( getBasedir(), "src/test/repositories/default-repository" ); - File metadataFile = new File( defaultRepoDir, "org/apache/maven/shared/maven-downloader/maven-metadata.xml" ); - - ArchivaRepositoryMetadata metadata = RepositoryMetadataReader.read( metadataFile ); - - assertNotNull( metadata ); - assertEquals( "Group Id", "org.apache.maven.shared", metadata.getGroupId() ); - assertEquals( "Artifact Id", "maven-downloader", metadata.getArtifactId() ); - assertEquals( "Released Version", "1.1", metadata.getReleasedVersion() ); - assertEquals( "List of Available Versions", 2, metadata.getAvailableVersions().size() ); - assertTrue( "Available version 1.0", metadata.getAvailableVersions().contains( "1.0" ) ); - assertTrue( "Available version 1.1", metadata.getAvailableVersions().contains( "1.1" ) ); - } - - public void testLoadComplex() throws RepositoryMetadataException - { - File defaultRepoDir = new File( getBasedir(), "src/test/repositories/default-repository" ); - File metadataFile = new File( defaultRepoDir, "org/apache/maven/samplejar/maven-metadata.xml" ); - - ArchivaRepositoryMetadata metadata = RepositoryMetadataReader.read( metadataFile ); - - assertNotNull( metadata ); - assertEquals( "Group Id", "org.apache.maven", metadata.getGroupId() ); - assertEquals( "Artifact Id", "samplejar", metadata.getArtifactId() ); - assertEquals( "Released Version", "2.0", metadata.getReleasedVersion() ); - assertEquals( "Latest Version", "6.0-SNAPSHOT", metadata.getLatestVersion() ); - assertEquals( "List of Available Versions", 18, metadata.getAvailableVersions().size() ); - assertTrue( "Available version 6.0-20060311.183228-10", metadata.getAvailableVersions().contains( "6.0-20060311.183228-10" ) ); - assertTrue( "Available version 6.0-SNAPSHOT", metadata.getAvailableVersions().contains( "6.0-SNAPSHOT" ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataWriterTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataWriterTest.java deleted file mode 100644 index 9fa2affc3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataWriterTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.apache.maven.archiva.repository.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 org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.model.ArchivaRepositoryMetadata; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.custommonkey.xmlunit.XMLAssert; - -import java.io.File; -import java.io.StringWriter; - -/** - * RepositoryMetadataWriterTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryMetadataWriterTest - extends PlexusInSpringTestCase -{ - public void testWriteSimple() - throws Exception - { - File defaultRepoDir = new File( getBasedir(), "src/test/repositories/default-repository" ); - File expectedFile = new File( defaultRepoDir, "org/apache/maven/shared/maven-downloader/maven-metadata.xml" ); - String expectedContent = FileUtils.readFileToString( expectedFile, null ); - - ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata(); - - metadata.setGroupId( "org.apache.maven.shared" ); - metadata.setArtifactId( "maven-downloader" ); - metadata.setVersion( "1.0" ); - metadata.setReleasedVersion( "1.1" ); - metadata.getAvailableVersions().add( "1.0" ); - metadata.getAvailableVersions().add( "1.1" ); - metadata.setLastUpdated( "20061212214311" ); - - StringWriter actual = new StringWriter(); - RepositoryMetadataWriter.write( metadata, actual ); - - XMLAssert.assertXMLEqual( "XML Contents", expectedContent, actual.toString() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java deleted file mode 100644 index c4f04182b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java +++ /dev/null @@ -1,280 +0,0 @@ -package org.apache.maven.archiva.repository.project.filters; - -/* - * 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.utils.VersionUtil; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.Individual; -import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelFilter; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.apache.maven.archiva.repository.project.ProjectModelResolver; -import org.apache.maven.archiva.repository.project.ProjectModelResolverFactory; -import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; -import org.apache.maven.archiva.repository.project.resolvers.ManagedRepositoryProjectResolver; - -import java.io.File; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * EffectiveProjectModelFilterTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EffectiveProjectModelFilterTest - extends AbstractRepositoryLayerTestCase -{ - private static final String DEFAULT_REPOSITORY = "src/test/repositories/default-repository"; - - private EffectiveProjectModelFilter lookupEffective() - throws Exception - { - return (EffectiveProjectModelFilter) lookup( ProjectModelFilter.class, "effective" ); - } - - private ArchivaProjectModel createArchivaProjectModel( String path ) - throws ProjectModelException - { - ProjectModelReader reader = new ProjectModel400Reader(); - - File pomFile = new File( getBasedir(), path ); - - return reader.read( pomFile ); - } - - private ProjectModelResolver createDefaultRepositoryResolver() throws Exception - { - File defaultRepoDir = new File( getBasedir(), DEFAULT_REPOSITORY ); - - ManagedRepositoryContent repo = createManagedRepositoryContent( "defaultTestRepo", "Default Test Repo", defaultRepoDir, "default" ); - - ProjectModelReader reader = new ProjectModel400Reader(); - ManagedRepositoryProjectResolver resolver = new ManagedRepositoryProjectResolver( repo, reader ); - - return resolver; - } - - public void testBuildEffectiveProject() - throws Exception - { - initTestResolverFactory(); - EffectiveProjectModelFilter filter = lookupEffective(); - - ArchivaProjectModel startModel = createArchivaProjectModel( DEFAULT_REPOSITORY - + "/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom" ); - - ArchivaProjectModel effectiveModel = filter.filter( startModel ); - - ArchivaProjectModel expectedModel = createArchivaProjectModel( "src/test/expected-poms/" - + "/archiva-model-effective.pom" ); - - assertModel( expectedModel, effectiveModel ); - } - - /** - * [MRM-510] In Repository Browse, the first unique snapshot version clicked is getting persisted in the - * request resulting to 'version does not match' error - * - * The purpose of this test is ensure that timestamped SNAPSHOTS do not cache improperly, and each timestamped - * pom can be loaded through the effective project filter correctly. - */ - public void testBuildEffectiveSnapshotProject() - throws Exception - { - initTestResolverFactory(); - EffectiveProjectModelFilter filter = lookupEffective(); - - String axisVersions[] = new String[] { - "1.3-20070725.210059-1", - "1.3-20070725.232304-2", - "1.3-20070726.053327-3", - "1.3-20070726.173653-5", - "1.3-20070727.113106-7", - "1.3-20070728.053229-10", - "1.3-20070728.112043-11", - "1.3-20070729.171937-16", - "1.3-20070730.232112-20", - "1.3-20070731.113304-21", - "1.3-20070731.172936-22", - "1.3-20070802.113139-29" }; - - for ( int i = 0; i < axisVersions.length; i++ ) - { - assertTrue( "Version should be a unique snapshot.", VersionUtil.isUniqueSnapshot( axisVersions[i] ) ); - - ArchivaProjectModel initialModel = createArchivaProjectModel( DEFAULT_REPOSITORY - + "/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-" + axisVersions[i] + ".pom" ); - - // This is the process that ProjectModelToDatabaseConsumer uses, so we mimic it here. - // This logic is related to the MRM-510 jira. - String baseVersion = VersionUtil.getBaseVersion( axisVersions[i] ); - - assertEquals( "Base Version <" + baseVersion + "> of filename <" + axisVersions[i] - + "> should be equal to what is in model.", initialModel.getVersion(), baseVersion ); - - initialModel.setVersion( axisVersions[i] ); - - assertEquals( "Unique snapshot versions of initial model should be equal.", axisVersions[i], initialModel - .getVersion() ); - - ArchivaProjectModel effectiveModel = filter.filter( initialModel ); - - assertEquals( "Unique snapshot versions of initial model should be equal.", axisVersions[i], initialModel - .getVersion() ); - assertEquals( "Unique snapshot versions of filtered/effective model should be equal.", axisVersions[i], - effectiveModel.getVersion() ); - } - } - - private ProjectModelResolverFactory initTestResolverFactory() - throws Exception - { - ProjectModelResolverFactory resolverFactory = (ProjectModelResolverFactory) lookup( ProjectModelResolverFactory.class ); - - resolverFactory.getCurrentResolverStack().clearResolvers(); - resolverFactory.getCurrentResolverStack().addProjectModelResolver( createDefaultRepositoryResolver() ); - - return resolverFactory; - } - - private void assertModel( ArchivaProjectModel expectedModel, ArchivaProjectModel effectiveModel ) - { - assertEquals( "Equivalent Models", expectedModel, effectiveModel ); - - assertContainsSameIndividuals( "Individuals", expectedModel.getIndividuals(), effectiveModel.getIndividuals() ); - dumpDependencyList( "Expected", expectedModel.getDependencies() ); - dumpDependencyList( "Effective", effectiveModel.getDependencies() ); - assertContainsSameDependencies( "Dependencies", expectedModel.getDependencies(), effectiveModel - .getDependencies() ); - assertContainsSameDependencies( "DependencyManagement", expectedModel.getDependencyManagement(), effectiveModel - .getDependencyManagement() ); - } - - private void dumpDependencyList( String type, List deps ) - { - if ( deps == null ) - { - System.out.println( " Dependencies [" + type + "] is null." ); - return; - } - - if ( deps.isEmpty() ) - { - System.out.println( " Dependencies [" + type + "] dependency list is empty." ); - return; - } - - System.out.println( ".\\ [" + type + "] Dependency List (size:" + deps.size() + ") \\.________________" ); - Iterator it = deps.iterator(); - while ( it.hasNext() ) - { - Dependency dep = it.next(); - System.out.println( " " + Dependency.toKey( dep ) ); - } - System.out.println( "" ); - } - - private void assertEquivalentLists( String listId, List expectedList, List effectiveList ) - { - if ( ( expectedList == null ) && ( effectiveList == null ) ) - { - return; - } - - if ( ( expectedList == null ) && ( effectiveList != null ) ) - { - fail( "Effective [" + listId + "] List is instantiated, while expected List is null." ); - } - - if ( ( expectedList != null ) && ( effectiveList == null ) ) - { - fail( "Effective [" + listId + "] List is null, while expected List is instantiated." ); - } - - assertEquals( "[" + listId + "] List Size", expectedList.size(), expectedList.size() ); - } - - private void assertContainsSameIndividuals( String listId, List expectedList, - List effectiveList ) - { - assertEquivalentLists( listId, expectedList, effectiveList ); - - Map expectedMap = getIndividualsMap( expectedList ); - Map effectiveMap = getIndividualsMap( effectiveList ); - - Iterator it = expectedMap.keySet().iterator(); - while ( it.hasNext() ) - { - String key = (String) it.next(); - - assertTrue( "Should exist in Effective [" + listId + "] list: " + key, effectiveMap.containsKey( key ) ); - } - } - - private void assertContainsSameDependencies( String listId, List expectedList, - List effectiveList ) - { - assertEquivalentLists( listId, expectedList, effectiveList ); - - Map expectedMap = getDependencyMap( expectedList ); - Map effectiveMap = getDependencyMap( effectiveList ); - - Iterator it = expectedMap.keySet().iterator(); - while ( it.hasNext() ) - { - String key = it.next(); - - assertTrue( "Should exist in Effective [" + listId + "] list: " + key, effectiveMap.containsKey( key ) ); - } - } - - private Map getIndividualsMap( List individuals ) - { - Map map = new HashMap(); - Iterator it = individuals.iterator(); - while ( it.hasNext() ) - { - Individual individual = it.next(); - String key = individual.getEmail(); - map.put( key, individual ); - } - return map; - } - - private Map getDependencyMap( List deps ) - { - Map map = new HashMap(); - Iterator it = deps.iterator(); - while ( it.hasNext() ) - { - Dependency dep = it.next(); - String key = Dependency.toVersionlessKey( dep ); - map.put( key, dep ); - } - return map; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java deleted file mode 100644 index abb27d9fd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java +++ /dev/null @@ -1,161 +0,0 @@ -package org.apache.maven.archiva.repository.project.filters; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelFilter; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.apache.maven.archiva.repository.project.ProjectModelWriter; -import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; -import org.apache.maven.archiva.repository.project.writers.ProjectModel400Writer; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; -import java.io.IOException; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * ProjectModelExpressionExpanderTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectModelExpressionExpanderTest - extends PlexusInSpringTestCase -{ - private static final String DEFAULT_REPOSITORY = "src/test/repositories/default-repository"; - - private ProjectModelExpressionFilter lookupExpression() - throws Exception - { - return (ProjectModelExpressionFilter) lookup( ProjectModelFilter.class, "expression" ); - } - - public void testExpressionEvaluation() - throws Exception - { - ArchivaProjectModel model = new ArchivaProjectModel(); - model.setGroupId( "org.apache.maven.archiva" ); - model.setArtifactId( "archiva-test-project" ); - model.setVersion( "1.0-SNAPSHOT" ); - - List deps = new ArrayList(); - - deps.add( createDependency( "org.apache.maven.archiva", "archiva-model", "${archiva.version}" ) ); - deps.add( createDependency( "org.apache.maven.archiva", "archiva-common", "${archiva.version}" ) ); - deps.add( createDependency( "org.apache.maven.archiva", "archiva-indexer", "${archiva.version}" ) ); - - model.setDependencies( deps ); - - model.addProperty( "archiva.version", "1.0-SNAPSHOT" ); - - ProjectModelExpressionFilter filter = lookupExpression(); - - model = filter.filter( model ); - - assertNotNull( model ); - assertEquals( "Group ID", "org.apache.maven.archiva", model.getGroupId() ); - assertEquals( "Artifact ID", "archiva-test-project", model.getArtifactId() ); - assertEquals( "Version", "1.0-SNAPSHOT", model.getVersion() ); - assertNotNull( "Dependencies", model.getDependencies() ); - assertEquals( "Dependencies Size", 3, model.getDependencies().size() ); - - Iterator it = model.getDependencies().iterator(); - while ( it.hasNext() ) - { - Dependency dep = it.next(); - assertEquals( "Dependency [" + dep.getArtifactId() + "] Group ID", "org.apache.maven.archiva", dep - .getGroupId() ); - assertEquals( "Dependency [" + dep.getArtifactId() + "] Version", "1.0-SNAPSHOT", dep.getVersion() ); - } - } - - /** - * [MRM-487] pom version is not resolved - * [MRM-488] properties in pom are not resolved (at least while browsing) - * - * This is to ensure that any expression within the pom is evaluated properly. - */ - public void testExpressionHell() - throws Exception - { - ProjectModelExpressionFilter filter = lookupExpression(); - - ArchivaProjectModel initialModel = createArchivaProjectModel( DEFAULT_REPOSITORY - + "/org/apache/maven/test/2.0.4-SNAPSHOT/test-2.0.4-SNAPSHOT.pom" ); - - ArchivaProjectModel filteredModel = filter.filter( initialModel ); - - // Dump the evaluated model to xml - String evaluatedModelText = toModelText( filteredModel ); - - // Test xml buffer for the existance of an unevaluated expression. - boolean foundUnevaluated = false; - if ( evaluatedModelText.indexOf( "${" ) != ( -1 ) ) - { - System.err.println( "Found Expression:\n" + evaluatedModelText ); - foundUnevaluated = true; - } - - if ( foundUnevaluated ) - { - fail( "Found Unevaluated Expression. (see System.err for details)" ); - } - } - - private String toModelText( ArchivaProjectModel model ) - throws ProjectModelException, IOException - { - StringWriter strWriter = new StringWriter(); - - ProjectModelWriter modelWriter = new ProjectModel400Writer(); - modelWriter.write( model, strWriter ); - - return strWriter.toString(); - } - - private ArchivaProjectModel createArchivaProjectModel( String path ) - throws ProjectModelException - { - ProjectModelReader reader = new ProjectModel400Reader(); - - File pomFile = new File( getBasedir(), path ); - - return reader.read( pomFile ); - } - - private Dependency createDependency( String groupId, String artifactId, String version ) - { - Dependency dep = new Dependency(); - - dep.setGroupId( groupId ); - dep.setArtifactId( artifactId ); - dep.setVersion( version ); - dep.setTransitive( false ); - - return dep; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300ReaderTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300ReaderTest.java deleted file mode 100644 index 89453219f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300ReaderTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.apache.maven.archiva.repository.project.readers; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; - -/** - * ProjectModel300ReaderTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectModel300ReaderTest - extends PlexusInSpringTestCase -{ - public void testLoadSimple() - throws ProjectModelException - { - File defaultRepoDir = new File( getBasedir(), "src/test/repositories/legacy-repository" ); - File pomFile = new File( defaultRepoDir, "org.apache.maven/poms/maven-model-v3-2.0.pom" ); - - ProjectModelReader reader = new ProjectModel300Reader(); - - ArchivaProjectModel project = reader.read( pomFile ); - - assertNotNull( project ); - assertEquals( "Group Id", "org.apache.maven", project.getGroupId() ); - assertEquals( "Artifact Id", "maven-model-v3", project.getArtifactId() ); - assertEquals( "Version", "2.0", project.getVersion() ); - assertEquals( "Name", "Maven Model v3", project.getName() ); - assertEquals( "Description", "Maven Model v3", project.getDescription() ); - - assertNull( "Has no parent project.", project.getParentProject() ); - - assertNotNull( "Dependencies", project.getDependencies() ); - assertEquals( "Dependencies.size", 1, project.getDependencies().size() ); - - Dependency dep = (Dependency) project.getDependencies().get( 0 ); - assertNotNull( dep ); - assertEquals( "dep.groupId", "org.codehaus.plexus", dep.getGroupId() ); - assertEquals( "dep.artifactId", "plexus-utils", dep.getArtifactId() ); - assertEquals( "dep.version", "1.0.4", dep.getVersion() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400ReaderTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400ReaderTest.java deleted file mode 100644 index 5d6d0c3b7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400ReaderTest.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.apache.maven.archiva.repository.project.readers; - -/* - * 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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.io.File; - -/** - * ProjectModel400ReaderTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectModel400ReaderTest - extends PlexusInSpringTestCase -{ - public void testLoadSimple() - throws ProjectModelException - { - File defaultRepoDir = new File( getBasedir(), "src/test/repositories/default-repository" ); - File pomFile = new File( defaultRepoDir, - "org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom" ); - - ProjectModelReader reader = new ProjectModel400Reader(); - - ArchivaProjectModel project = reader.read( pomFile ); - - assertNotNull( project ); - assertEquals( "Group Id", "org.apache.maven.shared", project.getGroupId() ); - assertEquals( "Artifact Id", "maven-downloader", project.getArtifactId() ); - assertEquals( "Version", "1.0", project.getVersion() ); - assertEquals( "Name", "Maven Downloader", project.getName() ); - assertEquals( "Description", "Provide a super simple interface for downloading a single artifact.", project - .getDescription() ); - - // Test for parent - VersionedReference parentRef = project.getParentProject(); - assertNotNull( "Parent Reference", parentRef ); - assertEquals( "Parent Group ID", "org.apache.maven.shared", parentRef.getGroupId() ); - assertEquals( "Parent Artifact ID", "maven-shared-components", parentRef.getArtifactId() ); - assertEquals( "Parent Version", "4", parentRef.getVersion() ); - - assertNotNull( "Dependencies", project.getDependencies() ); - assertEquals( "Dependencies.size", 3, project.getDependencies().size() ); - } - - public void testLoadWithNamespace() - throws ProjectModelException - { - File defaultRepoDir = new File( getBasedir(), "src/test/repositories/default-repository" ); - File pomFile = new File( defaultRepoDir, - "org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom" ); - - ProjectModelReader reader = new ProjectModel400Reader(); - - ArchivaProjectModel project = reader.read( pomFile ); - - assertNotNull( project ); - assertEquals( "Group Id", null, project.getGroupId() ); - assertEquals( "Artifact Id", "archiva-model", project.getArtifactId() ); - assertEquals( "Version", null, project.getVersion() ); - assertEquals( "Name", "Archiva Base :: Model", project.getName() ); - assertEquals( "Description", null, project.getDescription() ); - - // Test for parent - VersionedReference parentRef = project.getParentProject(); - assertNotNull( "Parent Reference", parentRef ); - assertEquals( "Parent Group ID", "org.apache.maven.archiva", parentRef.getGroupId() ); - assertEquals( "Parent Artifact ID", "archiva-base", parentRef.getArtifactId() ); - assertEquals( "Parent Version", "1.0-SNAPSHOT", parentRef.getVersion() ); - - assertNotNull( "Dependencies", project.getDependencies() ); - assertEquals( "Dependencies.size", 6, project.getDependencies().size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/writers/ProjectModel400WriterTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/writers/ProjectModel400WriterTest.java deleted file mode 100644 index 55b38e70e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/writers/ProjectModel400WriterTest.java +++ /dev/null @@ -1,150 +0,0 @@ -package org.apache.maven.archiva.repository.project.writers; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.apache.maven.archiva.repository.project.ProjectModelWriter; -import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.custommonkey.xmlunit.DetailedDiff; -import org.custommonkey.xmlunit.Diff; - -import java.io.File; -import java.io.IOException; -import java.io.StringWriter; - -/** - * ProjectModel400WriterTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectModel400WriterTest - extends PlexusInSpringTestCase -{ - private static final String DEFAULT_REPOSITORY = "src/test/repositories/default-repository"; - - private ProjectModelWriter modelWriter; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - modelWriter = new ProjectModel400Writer(); - } - - public void testSimpleWrite() - throws Exception - { - ArchivaProjectModel model = new ArchivaProjectModel(); - model.setGroupId( "org.apache.archiva.test" ); - model.setArtifactId( "simple-model-write" ); - model.setVersion( "1.0" ); - - String actualModel = writeToString( model ); - String expectedModel = getExpectedModelString( "model-write-400-simple.pom" ); - - assertModelSimilar( expectedModel, actualModel ); - } - - public void testReadWriteSimple() - throws Exception - { - String pathToModel = DEFAULT_REPOSITORY + "/org/apache/maven/A/1.0/A-1.0.pom"; - ArchivaProjectModel model = createArchivaProjectModel( pathToModel ); - - String actualModel = writeToString( model ); - String expectedModel = FileUtils.readFileToString( new File( pathToModel ), null ); - - assertModelSimilar( expectedModel, actualModel ); - } - - public void testReadWriteMavenParent() - throws Exception - { - ArchivaProjectModel model = createArchivaProjectModel( DEFAULT_REPOSITORY - + "/org/apache/maven/maven-parent/4/maven-parent-4.pom" ); - - String actualModel = writeToString( model ); - String expectedModel = getExpectedModelString( "maven-parent-4.pom" ); - - assertModelSimilar( expectedModel, actualModel ); - } - - public void testReadWriteCocoon() - throws Exception - { - ArchivaProjectModel model = createArchivaProjectModel( DEFAULT_REPOSITORY - + "/org/apache/cocoon/cocoon/1/cocoon-1.pom" ); - - String actualModel = writeToString( model ); - String expectedModel = getExpectedModelString( "cocoon-1.pom" ); - - assertModelSimilar( expectedModel, actualModel ); - } - - private void assertModelSimilar( String expectedModel, String actualModel ) - throws Exception - { - Diff diff = new Diff( expectedModel, actualModel ); - DetailedDiff detailedDiff = new DetailedDiff( diff ); - if ( !detailedDiff.similar() ) - { - // If it isn't similar, dump the difference. - System.out.println( detailedDiff.toString() ); - System.out.println( "-- Actual Model --\n" + actualModel + "\n---------------\n\n" ); - System.out.println( "-- Expected Model --\n" + expectedModel + "\n---------------\n\n" ); - - assertEquals( expectedModel, actualModel ); - } - } - - private String getExpectedModelString( String pomfilename ) - throws IOException - { - File pomFile = getTestFile( "src/test/expected-poms/" + pomfilename ); - return FileUtils.readFileToString( pomFile, null ); - } - - private ArchivaProjectModel createArchivaProjectModel( String path ) - throws ProjectModelException - { - ProjectModelReader reader = new ProjectModel400Reader(); - - File pomFile = new File( getBasedir(), path ); - - return reader.read( pomFile ); - } - - private String writeToString( ArchivaProjectModel model ) - throws ProjectModelException, IOException - { - StringWriter writer = new StringWriter(); - - modelWriter.write( model, writer ); - - return writer.toString(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/InvalidScanConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/InvalidScanConsumer.java deleted file mode 100644 index 3a6e45ec0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/InvalidScanConsumer.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.apache.maven.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 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 - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class InvalidScanConsumer - extends AbstractMonitoredConsumer - implements InvalidRepositoryContentConsumer -{ - /** - * @plexus.configuration default-value="unset-id" - */ - private String id = "unset-id"; - - private int processCount = 0; - - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - /* do nothing */ - } - - public void completeScan() - { - /* do nothing */ - } - - public List getExcludes() - { - return null; - } - - public List getIncludes() - { - return null; - } - - public void processFile( String path ) - throws ConsumerException - { - processCount++; - } - - public String getDescription() - { - return "Bad Content Scan Consumer (for testing)"; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - - public int getProcessCount() - { - return processCount; - } - - public void setProcessCount( int processCount ) - { - this.processCount = processCount; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/KnownScanConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/KnownScanConsumer.java deleted file mode 100644 index ba0cf6677..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/KnownScanConsumer.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.apache.maven.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 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; - -/** - * ScanConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class KnownScanConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer -{ - private int processCount = 0; - - private List includes = new ArrayList(); - - private boolean processUnmodified = false; - - public List getExcludes() - { - return null; - } - - public void setIncludes( String includesArray[] ) - { - this.includes.clear(); - this.includes.addAll( Arrays.asList( includesArray ) ); - } - - public List getIncludes() - { - return includes; - } - - public String getId() - { - return "test-scan-consumer"; - } - - public String getDescription() - { - return "Scan Consumer (for testing)"; - } - - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - /* do nothing */ - } - - public void processFile( String path ) - throws ConsumerException - { - this.processCount++; - } - - public void completeScan() - { - /* do nothing */ - } - - public int getProcessCount() - { - return processCount; - } - - public void setProcessCount( int processCount ) - { - this.processCount = processCount; - } - - public boolean isPermanent() - { - return false; - } - - public boolean isProcessUnmodified() - { - return processUnmodified; - } - - public void setProcessUnmodified( boolean processUnmodified ) - { - this.processUnmodified = processUnmodified; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersStub.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersStub.java deleted file mode 100644 index 8d3780c26..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersStub.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.apache.maven.archiva.repository.scanner; - -import java.util.Date; - -public class RepositoryContentConsumersStub - extends RepositoryContentConsumers -{ - public Date getStartTime() - { - Date startTimeForTest = new Date( System.currentTimeMillis() ); - startTimeForTest.setTime( 12345678 ); - - return startTimeForTest; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java deleted file mode 100644 index b2bfa7215..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java +++ /dev/null @@ -1,307 +0,0 @@ -package org.apache.maven.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 org.apache.commons.lang.SystemUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -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.AbstractRepositoryLayerTestCase; -import org.easymock.MockControl; - -import java.io.File; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/** - * RepositoryContentConsumersTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryContentConsumersTest - extends AbstractRepositoryLayerTestCase -{ - private RepositoryContentConsumers lookupRepositoryConsumers() - throws Exception - { - RepositoryContentConsumers consumerUtilStub = (RepositoryContentConsumers) lookup( RepositoryContentConsumers.class - .getName(), "test" ); - ArchivaConfiguration archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.ROLE ); - RepositoryContentConsumers consumerUtil = (RepositoryContentConsumers) lookup( RepositoryContentConsumers.class - .getName() ); - - consumerUtilStub.setAvailableKnownConsumers( consumerUtil.getAvailableKnownConsumers() ); - consumerUtilStub.setAvailableInvalidConsumers( consumerUtil.getAvailableInvalidConsumers() ); - consumerUtilStub.setSelectedInvalidConsumers( consumerUtil.getSelectedInvalidConsumers() ); - consumerUtilStub.setSelectedKnownConsumers( consumerUtil.getSelectedKnownConsumers() ); - consumerUtilStub.setArchivaConfiguration( archivaConfiguration ); - - assertNotNull( "RepositoryContentConsumers should not be null.", consumerUtilStub ); - - return consumerUtilStub; - } - - public void testGetSelectedKnownIds() - throws Exception - { - RepositoryContentConsumers consumerutil = lookupRepositoryConsumers(); - - String expectedKnownIds[] = new String[] { - "update-db-artifact", - "create-missing-checksums", - "update-db-repository-metadata", - "validate-checksum", - "validate-signature", - "index-content", - "auto-remove", - "auto-rename" }; - - List knownConsumers = consumerutil.getSelectedKnownConsumerIds(); - assertNotNull( "Known Consumer IDs should not be null", knownConsumers ); - assertEquals( "Known Consumer IDs.size", expectedKnownIds.length, knownConsumers.size() ); - - for ( String expectedId : expectedKnownIds ) - { - assertTrue( "Known id [" + expectedId + "] exists.", knownConsumers.contains( expectedId ) ); - } - } - - public void testGetSelectedInvalidIds() - throws Exception - { - RepositoryContentConsumers consumerutil = lookupRepositoryConsumers(); - - String expectedInvalidIds[] = new String[] { "update-db-bad-content" }; - - List invalidConsumers = consumerutil.getSelectedInvalidConsumerIds(); - assertNotNull( "Invalid Consumer IDs should not be null", invalidConsumers ); - assertEquals( "Invalid Consumer IDs.size", expectedInvalidIds.length, invalidConsumers.size() ); - - for ( String expectedId : expectedInvalidIds ) - { - assertTrue( "Invalid id [" + expectedId + "] exists.", invalidConsumers.contains( expectedId ) ); - } - } - - public void testGetSelectedKnownConsumerMap() - throws Exception - { - RepositoryContentConsumers consumerutil = lookupRepositoryConsumers(); - - String expectedSelectedKnownIds[] = new String[] { - "update-db-artifact", - "create-missing-checksums", - "update-db-repository-metadata", - "validate-checksum", - "index-content", - "auto-remove", - "auto-rename" }; - - Map knownConsumerMap = consumerutil.getSelectedKnownConsumersMap(); - assertNotNull( "Known Consumer Map should not be null", knownConsumerMap ); - assertEquals( "Known Consumer Map.size", expectedSelectedKnownIds.length, knownConsumerMap.size() ); - - for ( String expectedId : expectedSelectedKnownIds ) - { - KnownRepositoryContentConsumer consumer = knownConsumerMap.get( expectedId ); - assertNotNull( "Known[" + expectedId + "] should not be null.", consumer ); - assertEquals( "Known[" + expectedId + "].id", expectedId, consumer.getId() ); - } - } - - public void testGetSelectedInvalidConsumerMap() - throws Exception - { - RepositoryContentConsumers consumerutil = lookupRepositoryConsumers(); - - String expectedSelectedInvalidIds[] = new String[] { "update-db-bad-content" }; - - Map invalidConsumerMap = consumerutil - .getSelectedInvalidConsumersMap(); - assertNotNull( "Invalid Consumer Map should not be null", invalidConsumerMap ); - assertEquals( "Invalid Consumer Map.size", expectedSelectedInvalidIds.length, invalidConsumerMap.size() ); - - for ( String expectedId : expectedSelectedInvalidIds ) - { - InvalidRepositoryContentConsumer consumer = invalidConsumerMap.get( expectedId ); - assertNotNull( "Known[" + expectedId + "] should not be null.", consumer ); - assertEquals( "Known[" + expectedId + "].id", expectedId, consumer.getId() ); - } - } - - public void testGetAvailableKnownList() - throws Exception - { - RepositoryContentConsumers consumerutil = lookupRepositoryConsumers(); - - String expectedKnownIds[] = new String[] { - "update-db-artifact", - "create-missing-checksums", - "update-db-repository-metadata", - "validate-checksum", - "index-content", - "auto-remove", - "auto-rename", - "available-but-unselected" }; - - List knownConsumers = consumerutil.getAvailableKnownConsumers(); - assertNotNull( "known consumers should not be null.", knownConsumers ); - assertEquals( "known consumers", expectedKnownIds.length, knownConsumers.size() ); - - List expectedIds = Arrays.asList( expectedKnownIds ); - for ( KnownRepositoryContentConsumer consumer : knownConsumers ) - { - assertTrue( "Consumer [" + consumer.getId() + "] returned by .getAvailableKnownConsumers() is unexpected.", - expectedIds.contains( consumer.getId() ) ); - } - } - - public void testGetAvailableInvalidList() - throws Exception - { - RepositoryContentConsumers consumerutil = lookupRepositoryConsumers(); - - String expectedInvalidIds[] = new String[] { "update-db-bad-content", "move-to-trash-then-notify" }; - - List invalidConsumers = consumerutil.getAvailableInvalidConsumers(); - assertNotNull( "invalid consumers should not be null.", invalidConsumers ); - assertEquals( "invalid consumers", expectedInvalidIds.length, invalidConsumers.size() ); - - List expectedIds = Arrays.asList( expectedInvalidIds ); - for ( InvalidRepositoryContentConsumer consumer : invalidConsumers ) - { - assertTrue( "Consumer [" + consumer.getId() - + "] returned by .getAvailableInvalidConsumers() is unexpected.", expectedIds.contains( consumer - .getId() ) ); - } - } - - public void testExecution() - throws Exception - { - MockControl knownControl = MockControl.createNiceControl( KnownRepositoryContentConsumer.class ); - RepositoryContentConsumers consumers = lookupRepositoryConsumers(); - KnownRepositoryContentConsumer selectedKnownConsumer = (KnownRepositoryContentConsumer) knownControl.getMock(); - KnownRepositoryContentConsumer unselectedKnownConsumer = - (KnownRepositoryContentConsumer) MockControl.createNiceControl( - KnownRepositoryContentConsumer.class ).getMock(); - consumers.setAvailableKnownConsumers( Arrays.asList( selectedKnownConsumer, unselectedKnownConsumer ) ); - consumers.setSelectedKnownConsumers( Collections.singletonList( selectedKnownConsumer ) ); - - MockControl invalidControl = MockControl.createControl( InvalidRepositoryContentConsumer.class ); - InvalidRepositoryContentConsumer selectedInvalidConsumer = - (InvalidRepositoryContentConsumer) invalidControl.getMock(); - InvalidRepositoryContentConsumer unselectedInvalidConsumer = - (InvalidRepositoryContentConsumer) MockControl.createControl( - InvalidRepositoryContentConsumer.class ).getMock(); - consumers.setAvailableInvalidConsumers( Arrays.asList( selectedInvalidConsumer, unselectedInvalidConsumer ) ); - consumers.setSelectedInvalidConsumers( Collections.singletonList( selectedInvalidConsumer ) ); - - ManagedRepositoryConfiguration repo = createRepository( "id", "name", getTestFile( "target/test-repo" ) ); - File testFile = getTestFile( "target/test-repo/path/to/test-file.txt" ); - - Date startTime = new Date( System.currentTimeMillis() ); - startTime.setTime( 12345678 ); - - selectedKnownConsumer.beginScan( repo, startTime ); - selectedKnownConsumer.getExcludes(); - knownControl.setReturnValue( Collections.EMPTY_LIST ); - selectedKnownConsumer.getIncludes(); - knownControl.setReturnValue( Collections.singletonList( "**/*.txt" ) ); - selectedKnownConsumer.processFile( _OS( "path/to/test-file.txt" ) ); - // knownConsumer.completeScan(); - knownControl.replay(); - - selectedInvalidConsumer.beginScan( repo, startTime ); - // invalidConsumer.completeScan(); - invalidControl.replay(); - - consumers.executeConsumers( repo, testFile ); - - knownControl.verify(); - invalidControl.verify(); - - knownControl.reset(); - invalidControl.reset(); - - File notIncludedTestFile = getTestFile( "target/test-repo/path/to/test-file.xml" ); - - selectedKnownConsumer.beginScan( repo, startTime ); - selectedKnownConsumer.getExcludes(); - knownControl.setReturnValue( Collections.EMPTY_LIST ); - selectedKnownConsumer.getIncludes(); - knownControl.setReturnValue( Collections.singletonList( "**/*.txt" ) ); - // knownConsumer.completeScan(); - knownControl.replay(); - - selectedInvalidConsumer.beginScan( repo, startTime ); - selectedInvalidConsumer.processFile( _OS( "path/to/test-file.xml" ) ); - selectedInvalidConsumer.getId(); - invalidControl.setReturnValue( "invalid" ); - // invalidConsumer.completeScan(); - invalidControl.replay(); - - consumers.executeConsumers( repo, notIncludedTestFile ); - - knownControl.verify(); - invalidControl.verify(); - - knownControl.reset(); - invalidControl.reset(); - - File excludedTestFile = getTestFile( "target/test-repo/path/to/test-file.txt" ); - - selectedKnownConsumer.beginScan( repo, startTime ); - selectedKnownConsumer.getExcludes(); - knownControl.setReturnValue( Collections.singletonList( "**/test-file.txt" ) ); - // knownConsumer.completeScan(); - knownControl.replay(); - - selectedInvalidConsumer.beginScan( repo, startTime ); - selectedInvalidConsumer.processFile( _OS( "path/to/test-file.txt" ) ); - selectedInvalidConsumer.getId(); - invalidControl.setReturnValue( "invalid" ); - // invalidConsumer.completeScan(); - invalidControl.replay(); - - consumers.executeConsumers( repo, excludedTestFile ); - - knownControl.verify(); - invalidControl.verify(); - } - - /** - * Create an OS specific version of the filepath. - * Provide path in unix "/" format. - */ - private String _OS( String path ) - { - if ( SystemUtils.IS_OS_WINDOWS ) - { - return path.replace( '/', '\\' ); - } - return path; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java deleted file mode 100644 index 871925766..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java +++ /dev/null @@ -1,390 +0,0 @@ -package org.apache.maven.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 org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -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; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Locale; -import java.util.TimeZone; - -/** - * RepositoryScannerTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryScannerTest - extends AbstractRepositoryLayerTestCase -{ - private static final String[] ARTIFACT_PATTERNS = - new String[]{"**/*.jar", "**/*.pom", "**/*.rar", "**/*.zip", "**/*.war", "**/*.tar.gz"}; - - private ManagedRepositoryConfiguration createDefaultRepository() - { - File repoDir = new File( getBasedir(), "src/test/repositories/default-repository" ); - - assertTrue( "Default Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() ); - - return createRepository( "testDefaultRepo", "Test Default Repository", repoDir ); - } - - private ManagedRepositoryConfiguration createSimpleRepository() - throws IOException, ParseException - { - File srcDir = new File( getBasedir(), "src/test/repositories/simple-repository" ); - - File repoDir = getTestFile( "target/test-repos/simple-repository" ); - - FileUtils.deleteDirectory( repoDir ); - - FileUtils.copyDirectory( srcDir, repoDir ); - - File repoFile = new File( repoDir, - "groupId/snapshot-artifact/1.0-alpha-1-SNAPSHOT/snapshot-artifact-1.0-alpha-1-20050611.202024-1.pom" ); - repoFile.setLastModified( getTimestampAsMillis( "20050611.202024" ) ); - - assertTrue( "Simple Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() ); - - return createRepository( "testSimpleRepo", "Test Simple Repository", repoDir ); - } - - private static long getTimestampAsMillis( String timestamp ) - throws ParseException - { - SimpleDateFormat fmt = new SimpleDateFormat( "yyyyMMdd.HHmmss", Locale.US ); - fmt.setTimeZone( TimeZone.getTimeZone( "UTC" ) ); - return fmt.parse( timestamp ).getTime(); - } - - private ManagedRepositoryConfiguration createLegacyRepository() - { - File repoDir = new File( getBasedir(), "src/test/repositories/legacy-repository" ); - - assertTrue( "Legacy Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() ); - - ManagedRepositoryConfiguration repo = createRepository( "testLegacyRepo", "Test Legacy Repository", repoDir ); - repo.setLayout( "legacy" ); - - return repo; - } - - private void assertMinimumHits( String msg, int minimumHitCount, long actualCount ) - { - if ( actualCount < minimumHitCount ) - { - fail( "Minimum hit count on " + msg + " not satisfied. Expected more than <" + minimumHitCount + - ">, but actually got <" + actualCount + ">." ); - } - } - - private RepositoryScanner lookupRepositoryScanner() - throws Exception - { - return (RepositoryScanner) lookup( RepositoryScanner.class ); - } - - private List getIgnoreList() - { - List ignores = new ArrayList(); - ignores.addAll( Arrays.asList( RepositoryScanner.IGNORABLE_CONTENT ) ); - return ignores; - } - - public void testTimestampRepositoryScanner() - throws Exception - { - ManagedRepositoryConfiguration repository = createSimpleRepository(); - - List knownConsumers = new ArrayList(); - KnownScanConsumer consumer = new KnownScanConsumer(); - consumer.setIncludes( ARTIFACT_PATTERNS ); - knownConsumers.add( consumer ); - - List invalidConsumers = new ArrayList(); - InvalidScanConsumer badconsumer = new InvalidScanConsumer(); - invalidConsumers.add( badconsumer ); - - RepositoryScanner scanner = lookupRepositoryScanner(); - - RepositoryContentStatistics stats = scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), - getTimestampAsMillis( "20061101.000000" ) ); - - assertNotNull( "Stats should not be null.", stats ); - assertEquals( "Stats.totalFileCount", 4, stats.getTotalFileCount() ); - assertEquals( "Stats.newFileCount", 3, stats.getNewFileCount() ); - assertEquals( "Processed Count", 2, consumer.getProcessCount() ); - assertEquals( "Processed Count (of invalid items)", 1, badconsumer.getProcessCount() ); - } - - public void testTimestampRepositoryScannerFreshScan() - throws Exception - { - ManagedRepositoryConfiguration repository = createSimpleRepository(); - - List knownConsumers = new ArrayList(); - KnownScanConsumer consumer = new KnownScanConsumer(); - consumer.setIncludes( ARTIFACT_PATTERNS ); - knownConsumers.add( consumer ); - - List invalidConsumers = new ArrayList(); - InvalidScanConsumer badconsumer = new InvalidScanConsumer(); - invalidConsumers.add( badconsumer ); - - RepositoryScanner scanner = lookupRepositoryScanner(); - RepositoryContentStatistics stats = - scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN ); - - assertNotNull( "Stats should not be null.", stats ); - assertEquals( "Stats.totalFileCount", 4, stats.getTotalFileCount() ); - assertEquals( "Stats.newFileCount", 4, stats.getNewFileCount() ); - assertEquals( "Processed Count", 3, consumer.getProcessCount() ); - assertEquals( "Processed Count (of invalid items)", 1, badconsumer.getProcessCount() ); - } - - public void testTimestampRepositoryScannerProcessUnmodified() - throws Exception - { - ManagedRepositoryConfiguration repository = createSimpleRepository(); - - List knownConsumers = new ArrayList(); - KnownScanConsumer consumer = new KnownScanConsumer(); - consumer.setProcessUnmodified( true ); - consumer.setIncludes( ARTIFACT_PATTERNS ); - knownConsumers.add( consumer ); - - List invalidConsumers = new ArrayList(); - InvalidScanConsumer badconsumer = new InvalidScanConsumer(); - invalidConsumers.add( badconsumer ); - - RepositoryScanner scanner = lookupRepositoryScanner(); - RepositoryContentStatistics stats = scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), - getTimestampAsMillis( "20061101.000000" ) ); - - assertNotNull( "Stats should not be null.", stats ); - assertEquals( "Stats.totalFileCount", 4, stats.getTotalFileCount() ); - assertEquals( "Stats.newFileCount", 3, stats.getNewFileCount() ); - assertEquals( "Processed Count", 3, consumer.getProcessCount() ); - assertEquals( "Processed Count (of invalid items)", 1, badconsumer.getProcessCount() ); - } - - public void testDefaultRepositoryScanner() - throws Exception - { - ManagedRepositoryConfiguration repository = createDefaultRepository(); - - List knownConsumers = new ArrayList(); - KnownScanConsumer consumer = new KnownScanConsumer(); - consumer.setIncludes( new String[]{"**/*.jar", "**/*.war", "**/*.pom", "**/maven-metadata.xml", "**/*-site.xml", - "**/*.zip", "**/*.tar.gz", "**/*.sha1", "**/*.md5"} ); - knownConsumers.add( consumer ); - - List invalidConsumers = new ArrayList(); - InvalidScanConsumer badconsumer = new InvalidScanConsumer(); - invalidConsumers.add( badconsumer ); - - RepositoryScanner scanner = lookupRepositoryScanner(); - RepositoryContentStatistics stats = - scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN ); - - assertNotNull( "Stats should not be null.", stats ); - assertMinimumHits( "Stats.totalFileCount", 17, stats.getTotalFileCount() ); - assertMinimumHits( "Processed Count", 17, consumer.getProcessCount() ); - assertEquals( "Processed Count (of invalid items)", 6, badconsumer.getProcessCount() ); - } - - public void testDefaultRepositoryArtifactScanner() - throws Exception - { - List actualArtifactPaths = new ArrayList(); - - actualArtifactPaths.add( "invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar" ); - actualArtifactPaths.add( "invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar" ); - actualArtifactPaths.add( "invalid/invalid/1.0/invalid-1.0b.jar" ); - actualArtifactPaths.add( "invalid/invalid/1.0/invalid-2.0.jar" ); - actualArtifactPaths.add( "invalid/invalid-1.0.jar" ); - actualArtifactPaths.add( "org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar" ); - actualArtifactPaths.add( "org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar" ); - actualArtifactPaths.add( "org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar" ); - actualArtifactPaths.add( "org/apache/maven/A/1.0/A-1.0.war" ); - actualArtifactPaths.add( "org/apache/maven/A/1.0/A-1.0.pom" ); - actualArtifactPaths.add( "org/apache/maven/B/2.0/B-2.0.pom" ); - actualArtifactPaths.add( "org/apache/maven/B/1.0/B-1.0.pom" ); - actualArtifactPaths.add( "org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar" ); - actualArtifactPaths.add( "org/apache/maven/C/1.0/C-1.0.war" ); - actualArtifactPaths.add( "org/apache/maven/C/1.0/C-1.0.pom" ); - actualArtifactPaths.add( "org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom" ); - actualArtifactPaths.add( "org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar" ); - actualArtifactPaths.add( "org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom" ); - actualArtifactPaths.add( "org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar" ); - actualArtifactPaths.add( "org/apache/maven/discovery/1.0/discovery-1.0.pom" ); - actualArtifactPaths.add( "org/apache/maven/testing/1.0/testing-1.0-test-sources.jar" ); - actualArtifactPaths.add( "org/apache/maven/testing/1.0/testing-1.0.jar" ); - actualArtifactPaths.add( "org/apache/maven/testing/1.0/testing-1.0-sources.jar" ); - actualArtifactPaths.add( "org/apache/maven/testing/1.0/testing-1.0.zip" ); - actualArtifactPaths.add( "org/apache/maven/testing/1.0/testing-1.0.tar.gz" ); - actualArtifactPaths.add( "org/apache/maven/samplejar/2.0/samplejar-2.0.pom" ); - actualArtifactPaths.add( "org/apache/maven/samplejar/2.0/samplejar-2.0.jar" ); - actualArtifactPaths.add( "org/apache/maven/samplejar/1.0/samplejar-1.0.pom" ); - actualArtifactPaths.add( "org/apache/maven/samplejar/1.0/samplejar-1.0.jar" ); - actualArtifactPaths.add( "org/apache/testgroup/discovery/1.0/discovery-1.0.pom" ); - actualArtifactPaths.add( "javax/sql/jdbc/2.0/jdbc-2.0.jar" ); - - ManagedRepositoryConfiguration repository = createDefaultRepository(); - - List knownConsumers = new ArrayList(); - KnownScanConsumer consumer = new KnownScanConsumer(); - consumer.setIncludes( ARTIFACT_PATTERNS ); - knownConsumers.add( consumer ); - - List invalidConsumers = new ArrayList(); - InvalidScanConsumer badconsumer = new InvalidScanConsumer(); - invalidConsumers.add( badconsumer ); - - RepositoryScanner scanner = lookupRepositoryScanner(); - RepositoryContentStatistics stats = - scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN ); - - assertNotNull( "Stats should not be null.", stats ); - assertMinimumHits( "Stats.totalFileCount", actualArtifactPaths.size(), stats.getTotalFileCount() ); - assertMinimumHits( "Processed Count", actualArtifactPaths.size(), consumer.getProcessCount() ); - } - - public void testDefaultRepositoryMetadataScanner() - throws Exception - { - List actualMetadataPaths = new ArrayList(); - - actualMetadataPaths.add( "org/apache/maven/some-ejb/1.0/maven-metadata.xml" ); - actualMetadataPaths.add( "org/apache/maven/update/test-not-updated/maven-metadata.xml" ); - actualMetadataPaths.add( "org/apache/maven/update/test-updated/maven-metadata.xml" ); - actualMetadataPaths.add( "org/apache/maven/maven-metadata.xml" ); - actualMetadataPaths.add( "org/apache/testgroup/discovery/1.0/maven-metadata.xml" ); - actualMetadataPaths.add( "org/apache/testgroup/discovery/maven-metadata.xml" ); - actualMetadataPaths.add( "javax/sql/jdbc/2.0/maven-metadata-repository.xml" ); - actualMetadataPaths.add( "javax/sql/jdbc/maven-metadata-repository.xml" ); - actualMetadataPaths.add( "javax/sql/maven-metadata-repository.xml" ); - actualMetadataPaths.add( "javax/maven-metadata.xml" ); - - ManagedRepositoryConfiguration repository = createDefaultRepository(); - - List knownConsumers = new ArrayList(); - KnownScanConsumer knownConsumer = new KnownScanConsumer(); - knownConsumer.setIncludes( new String[]{"**/maven-metadata*.xml"} ); - knownConsumers.add( knownConsumer ); - - List invalidConsumers = new ArrayList(); - InvalidScanConsumer badconsumer = new InvalidScanConsumer(); - invalidConsumers.add( badconsumer ); - - RepositoryScanner scanner = lookupRepositoryScanner(); - RepositoryContentStatistics stats = - scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN ); - - assertNotNull( "Stats should not be null.", stats ); - assertMinimumHits( "Stats.totalFileCount", actualMetadataPaths.size(), stats.getTotalFileCount() ); - assertMinimumHits( "Processed Count", actualMetadataPaths.size(), knownConsumer.getProcessCount() ); - } - - public void testDefaultRepositoryProjectScanner() - throws Exception - { - List actualProjectPaths = new ArrayList(); - - actualProjectPaths.add( "org/apache/maven/A/1.0/A-1.0.pom" ); - actualProjectPaths.add( "org/apache/maven/B/2.0/B-2.0.pom" ); - actualProjectPaths.add( "org/apache/maven/B/1.0/B-1.0.pom" ); - actualProjectPaths.add( "org/apache/maven/C/1.0/C-1.0.pom" ); - actualProjectPaths.add( "org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom" ); - actualProjectPaths.add( "org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom" ); - actualProjectPaths.add( "org/apache/maven/discovery/1.0/discovery-1.0.pom" ); - actualProjectPaths.add( "org/apache/maven/samplejar/2.0/samplejar-2.0.pom" ); - actualProjectPaths.add( "org/apache/maven/samplejar/1.0/samplejar-1.0.pom" ); - actualProjectPaths.add( "org/apache/testgroup/discovery/1.0/discovery-1.0.pom" ); - - ManagedRepositoryConfiguration repository = createDefaultRepository(); - - List knownConsumers = new ArrayList(); - KnownScanConsumer consumer = new KnownScanConsumer(); - consumer.setIncludes( new String[]{"**/*.pom"} ); - knownConsumers.add( consumer ); - - List invalidConsumers = new ArrayList(); - InvalidScanConsumer badconsumer = new InvalidScanConsumer(); - invalidConsumers.add( badconsumer ); - - RepositoryScanner scanner = lookupRepositoryScanner(); - RepositoryContentStatistics stats = - scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN ); - - assertNotNull( "Stats should not be null.", stats ); - assertMinimumHits( "Stats.totalFileCount", actualProjectPaths.size(), stats.getTotalFileCount() ); - assertMinimumHits( "Processed Count", actualProjectPaths.size(), consumer.getProcessCount() ); - } - - public void testLegacyRepositoryArtifactScanner() - throws Exception - { - List actualArtifactPaths = new ArrayList(); - - actualArtifactPaths.add( "invalid/jars/1.0/invalid-1.0.jar" ); - actualArtifactPaths.add( "invalid/jars/invalid-1.0.rar" ); - actualArtifactPaths.add( "invalid/jars/invalid.jar" ); - actualArtifactPaths.add( "invalid/invalid-1.0.jar" ); - actualArtifactPaths.add( "javax.sql/jars/jdbc-2.0.jar" ); - actualArtifactPaths.add( "org.apache.maven/jars/some-ejb-1.0-client.jar" ); - actualArtifactPaths.add( "org.apache.maven/jars/testing-1.0.jar" ); - actualArtifactPaths.add( "org.apache.maven/jars/testing-1.0-sources.jar" ); - actualArtifactPaths.add( "org.apache.maven/jars/testing-UNKNOWN.jar" ); - actualArtifactPaths.add( "org.apache.maven/jars/testing-1.0.zip" ); - actualArtifactPaths.add( "org.apache.maven/jars/testing-1.0-20050611.112233-1.jar" ); - actualArtifactPaths.add( "org.apache.maven/jars/testing-1.0.tar.gz" ); - actualArtifactPaths.add( "org.apache.maven.update/jars/test-not-updated-1.0.jar" ); - actualArtifactPaths.add( "org.apache.maven.update/jars/test-updated-1.0.jar" ); - - ManagedRepositoryConfiguration repository = createLegacyRepository(); - - List knownConsumers = new ArrayList(); - KnownScanConsumer consumer = new KnownScanConsumer(); - consumer.setIncludes( ARTIFACT_PATTERNS ); - knownConsumers.add( consumer ); - - List invalidConsumers = new ArrayList(); - InvalidScanConsumer badconsumer = new InvalidScanConsumer(); - invalidConsumers.add( badconsumer ); - - RepositoryScanner scanner = lookupRepositoryScanner(); - RepositoryContentStatistics stats = - scanner.scan( repository, knownConsumers, invalidConsumers, getIgnoreList(), RepositoryScanner.FRESH_SCAN ); - - assertNotNull( "Stats should not be null.", stats ); - assertMinimumHits( "Stats.totalFileCount", actualArtifactPaths.size(), stats.getTotalFileCount() ); - assertMinimumHits( "Processed Count", actualArtifactPaths.size(), consumer.getProcessCount() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/SampleKnownConsumer.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/SampleKnownConsumer.java deleted file mode 100644 index e1f374c3a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/SampleKnownConsumer.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.apache.maven.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 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 - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="sample-known" - */ -public class SampleKnownConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer -{ - /** - * @plexus.configuration default-value="unset-id" - */ - private String id = "unset-id"; - - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - /* nothing to do */ - } - - public void completeScan() - { - /* nothing to do */ - } - - public List getExcludes() - { - return null; - } - - public List getIncludes() - { - return null; - } - - public void processFile( String path ) - throws ConsumerException - { - /* nothing to do */ - } - - public String getDescription() - { - return "Sample Known Consumer"; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/CVS/Root b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/CVS/Root deleted file mode 100644 index 2e65f24a6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -not a real CVS root - for testing exclusions diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/KEYS b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/KEYS deleted file mode 100644 index d3b34d5ad..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/KEYS +++ /dev/null @@ -1 +0,0 @@ -test KEYS file \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-1.0b.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-1.0b.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-2.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1.0/invalid-2.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1/invalid-1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/invalid/invalid/1/invalid-1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/maven-metadata.xml deleted file mode 100644 index b3baf545d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/maven-metadata.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - javax.sql - jdbc - 2.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml deleted file mode 100644 index caf5b6697..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - javax.sql - jdbc - 2.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml deleted file mode 100644 index bb7570891..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - javax.sql - jdbc - 2.0 - - - 2.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml deleted file mode 100644 index caf5b6697..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - javax.sql - jdbc - 2.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom deleted file mode 100644 index 372560004..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom +++ /dev/null @@ -1,300 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - - - - - org.apache.maven.plugins - maven-site-plugin - - ${basedir}/xdocs - ${basedir}/xdocs/resources - - - - org.apache.maven.plugins - maven-javadoc-plugin - - true - - http://java.sun.com/j2ee/1.4/docs/api - http://java.sun.com/j2se/1.5.0/docs/api - http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/ - http://jakarta.apache.org/commons/dbcp/apidocs/ - http://jakarta.apache.org/commons/fileupload/apidocs/ - http://jakarta.apache.org/commons/httpclient/apidocs/ - http://jakarta.apache.org/commons/logging/apidocs/ - http://jakarta.apache.org/commons/pool/apidocs/ - http://www.junit.org/junit/javadoc/ - http://logging.apache.org/log4j/docs/api/ - http://jakarta.apache.org/regexp/apidocs/ - http://jakarta.apache.org/velocity/api/ - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.md5 deleted file mode 100644 index 7e4a5cfdd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.sha1 deleted file mode 100644 index b0a35015d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.210059-1.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom deleted file mode 100644 index 372560004..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom +++ /dev/null @@ -1,300 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - - - - - org.apache.maven.plugins - maven-site-plugin - - ${basedir}/xdocs - ${basedir}/xdocs/resources - - - - org.apache.maven.plugins - maven-javadoc-plugin - - true - - http://java.sun.com/j2ee/1.4/docs/api - http://java.sun.com/j2se/1.5.0/docs/api - http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/ - http://jakarta.apache.org/commons/dbcp/apidocs/ - http://jakarta.apache.org/commons/fileupload/apidocs/ - http://jakarta.apache.org/commons/httpclient/apidocs/ - http://jakarta.apache.org/commons/logging/apidocs/ - http://jakarta.apache.org/commons/pool/apidocs/ - http://www.junit.org/junit/javadoc/ - http://logging.apache.org/log4j/docs/api/ - http://jakarta.apache.org/regexp/apidocs/ - http://jakarta.apache.org/velocity/api/ - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.md5 deleted file mode 100644 index 7e4a5cfdd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.sha1 deleted file mode 100644 index b0a35015d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070725.232304-2.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom deleted file mode 100644 index 372560004..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom +++ /dev/null @@ -1,300 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - - - - - org.apache.maven.plugins - maven-site-plugin - - ${basedir}/xdocs - ${basedir}/xdocs/resources - - - - org.apache.maven.plugins - maven-javadoc-plugin - - true - - http://java.sun.com/j2ee/1.4/docs/api - http://java.sun.com/j2se/1.5.0/docs/api - http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/ - http://jakarta.apache.org/commons/dbcp/apidocs/ - http://jakarta.apache.org/commons/fileupload/apidocs/ - http://jakarta.apache.org/commons/httpclient/apidocs/ - http://jakarta.apache.org/commons/logging/apidocs/ - http://jakarta.apache.org/commons/pool/apidocs/ - http://www.junit.org/junit/javadoc/ - http://logging.apache.org/log4j/docs/api/ - http://jakarta.apache.org/regexp/apidocs/ - http://jakarta.apache.org/velocity/api/ - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.md5 deleted file mode 100644 index 7e4a5cfdd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.sha1 deleted file mode 100644 index b0a35015d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.053327-3.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom deleted file mode 100644 index 372560004..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom +++ /dev/null @@ -1,300 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - - - - - org.apache.maven.plugins - maven-site-plugin - - ${basedir}/xdocs - ${basedir}/xdocs/resources - - - - org.apache.maven.plugins - maven-javadoc-plugin - - true - - http://java.sun.com/j2ee/1.4/docs/api - http://java.sun.com/j2se/1.5.0/docs/api - http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/ - http://jakarta.apache.org/commons/dbcp/apidocs/ - http://jakarta.apache.org/commons/fileupload/apidocs/ - http://jakarta.apache.org/commons/httpclient/apidocs/ - http://jakarta.apache.org/commons/logging/apidocs/ - http://jakarta.apache.org/commons/pool/apidocs/ - http://www.junit.org/junit/javadoc/ - http://logging.apache.org/log4j/docs/api/ - http://jakarta.apache.org/regexp/apidocs/ - http://jakarta.apache.org/velocity/api/ - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.md5 deleted file mode 100644 index 7e4a5cfdd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.sha1 deleted file mode 100644 index b0a35015d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070726.173653-5.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom deleted file mode 100644 index 372560004..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom +++ /dev/null @@ -1,300 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - - - - - org.apache.maven.plugins - maven-site-plugin - - ${basedir}/xdocs - ${basedir}/xdocs/resources - - - - org.apache.maven.plugins - maven-javadoc-plugin - - true - - http://java.sun.com/j2ee/1.4/docs/api - http://java.sun.com/j2se/1.5.0/docs/api - http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/ - http://jakarta.apache.org/commons/dbcp/apidocs/ - http://jakarta.apache.org/commons/fileupload/apidocs/ - http://jakarta.apache.org/commons/httpclient/apidocs/ - http://jakarta.apache.org/commons/logging/apidocs/ - http://jakarta.apache.org/commons/pool/apidocs/ - http://www.junit.org/junit/javadoc/ - http://logging.apache.org/log4j/docs/api/ - http://jakarta.apache.org/regexp/apidocs/ - http://jakarta.apache.org/velocity/api/ - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.md5 deleted file mode 100644 index 7e4a5cfdd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.sha1 deleted file mode 100644 index b0a35015d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070727.113106-7.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom deleted file mode 100644 index 372560004..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom +++ /dev/null @@ -1,300 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - - - - - org.apache.maven.plugins - maven-site-plugin - - ${basedir}/xdocs - ${basedir}/xdocs/resources - - - - org.apache.maven.plugins - maven-javadoc-plugin - - true - - http://java.sun.com/j2ee/1.4/docs/api - http://java.sun.com/j2se/1.5.0/docs/api - http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/ - http://jakarta.apache.org/commons/dbcp/apidocs/ - http://jakarta.apache.org/commons/fileupload/apidocs/ - http://jakarta.apache.org/commons/httpclient/apidocs/ - http://jakarta.apache.org/commons/logging/apidocs/ - http://jakarta.apache.org/commons/pool/apidocs/ - http://www.junit.org/junit/javadoc/ - http://logging.apache.org/log4j/docs/api/ - http://jakarta.apache.org/regexp/apidocs/ - http://jakarta.apache.org/velocity/api/ - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.md5 deleted file mode 100644 index 7e4a5cfdd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.sha1 deleted file mode 100644 index b0a35015d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.053229-10.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom deleted file mode 100644 index 372560004..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom +++ /dev/null @@ -1,300 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - - - - - org.apache.maven.plugins - maven-site-plugin - - ${basedir}/xdocs - ${basedir}/xdocs/resources - - - - org.apache.maven.plugins - maven-javadoc-plugin - - true - - http://java.sun.com/j2ee/1.4/docs/api - http://java.sun.com/j2se/1.5.0/docs/api - http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/ - http://jakarta.apache.org/commons/dbcp/apidocs/ - http://jakarta.apache.org/commons/fileupload/apidocs/ - http://jakarta.apache.org/commons/httpclient/apidocs/ - http://jakarta.apache.org/commons/logging/apidocs/ - http://jakarta.apache.org/commons/pool/apidocs/ - http://www.junit.org/junit/javadoc/ - http://logging.apache.org/log4j/docs/api/ - http://jakarta.apache.org/regexp/apidocs/ - http://jakarta.apache.org/velocity/api/ - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.md5 deleted file mode 100644 index 7e4a5cfdd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.sha1 deleted file mode 100644 index b0a35015d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070728.112043-11.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom deleted file mode 100644 index 372560004..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom +++ /dev/null @@ -1,300 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - - - - - org.apache.maven.plugins - maven-site-plugin - - ${basedir}/xdocs - ${basedir}/xdocs/resources - - - - org.apache.maven.plugins - maven-javadoc-plugin - - true - - http://java.sun.com/j2ee/1.4/docs/api - http://java.sun.com/j2se/1.5.0/docs/api - http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/ - http://jakarta.apache.org/commons/dbcp/apidocs/ - http://jakarta.apache.org/commons/fileupload/apidocs/ - http://jakarta.apache.org/commons/httpclient/apidocs/ - http://jakarta.apache.org/commons/logging/apidocs/ - http://jakarta.apache.org/commons/pool/apidocs/ - http://www.junit.org/junit/javadoc/ - http://logging.apache.org/log4j/docs/api/ - http://jakarta.apache.org/regexp/apidocs/ - http://jakarta.apache.org/velocity/api/ - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.md5 deleted file mode 100644 index 7e4a5cfdd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.sha1 deleted file mode 100644 index b0a35015d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070729.171937-16.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom deleted file mode 100644 index 372560004..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom +++ /dev/null @@ -1,300 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - - - - - org.apache.maven.plugins - maven-site-plugin - - ${basedir}/xdocs - ${basedir}/xdocs/resources - - - - org.apache.maven.plugins - maven-javadoc-plugin - - true - - http://java.sun.com/j2ee/1.4/docs/api - http://java.sun.com/j2se/1.5.0/docs/api - http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/ - http://jakarta.apache.org/commons/dbcp/apidocs/ - http://jakarta.apache.org/commons/fileupload/apidocs/ - http://jakarta.apache.org/commons/httpclient/apidocs/ - http://jakarta.apache.org/commons/logging/apidocs/ - http://jakarta.apache.org/commons/pool/apidocs/ - http://www.junit.org/junit/javadoc/ - http://logging.apache.org/log4j/docs/api/ - http://jakarta.apache.org/regexp/apidocs/ - http://jakarta.apache.org/velocity/api/ - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.md5 deleted file mode 100644 index 7e4a5cfdd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -69add9b3e2b7d27ae5c92de61acb2d23 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.sha1 deleted file mode 100644 index b0a35015d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070730.232112-20.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -e1b45d0a5c28f15e8b235a7b4b350513c790ef39 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom deleted file mode 100644 index 8d5931c0e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom +++ /dev/null @@ -1,268 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/documentation - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.md5 deleted file mode 100644 index 9cebfeecc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -8530af16aa7f3e5268b96ff88dd703a8 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.sha1 deleted file mode 100644 index 45d7111f6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.113304-21.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -d2a036ec537737153980aed1157bad133230f2c8 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom deleted file mode 100644 index 8d5931c0e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom +++ /dev/null @@ -1,268 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/documentation - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.md5 deleted file mode 100644 index 9cebfeecc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -8530af16aa7f3e5268b96ff88dd703a8 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.sha1 deleted file mode 100644 index 45d7111f6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070731.172936-22.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -d2a036ec537737153980aed1157bad133230f2c8 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom deleted file mode 100644 index 8d5931c0e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom +++ /dev/null @@ -1,268 +0,0 @@ - - - - - org.apache - apache - 3 - - 4.0.0 - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - pom - Apache Axis 2.0 - Root - - modules/adb - modules/adb-codegen - modules/addressing - modules/codegen - modules/fastinfoset - modules/integration - modules/java2wsdl - modules/jibx - modules/json - modules/kernel - modules/mex - modules/mex-mar - modules/mtompolicy - modules/parent - modules/ping - modules/samples/version - modules/soapmonitor - modules/spring - modules/tool/axis2-aar-maven-plugin - modules/tool/axis2-ant-plugin - modules/tool/axis2-eclipse-codegen-plugin - modules/tool/axis2-eclipse-service-plugin - modules/tool/axis2-idea-plugin - modules/tool/axis2-java2wsdl-maven-plugin - modules/tool/axis2-mar-maven-plugin - modules/tool/axis2-wsdl2code-maven-plugin - modules/webapp - modules/xmlbeans - modules/samples - modules/scripting - - - - - - release - - - - modules/documentation - modules/distribution - - - - java14 - - 1.4 - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - run - - - - - - - - - java15 - - 1.5 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - java16 - - 1.6 - - - modules/jaxbri - modules/metadata - modules/saaj-api - modules/saaj - modules/jws-api - modules/jaxws-api - modules/jaxws - modules/clustering - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - axis2-jar - package - - - - - - - - - - - - - - - - - run - - - - - - - - - - continuum - http://vmbuild.apache.org/continuum - - - -
axis2-cvs@ws.apache.org
-
-
-
-
- - - scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - - scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ - - http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ - - - - apache-repo - Maven Central Repository - - scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-snapshots - Apache Development Repository - scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - axis2-jar-package - package - - attach-artifact - - - - - target/lib/axis2-${pom.version}.jar - jar - - - - - - - - -
diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.md5 deleted file mode 100644 index 9cebfeecc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -8530af16aa7f3e5268b96ff88dd703a8 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.sha1 deleted file mode 100644 index 45d7111f6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/axis2-1.3-20070802.113139-29.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -d2a036ec537737153980aed1157bad133230f2c8 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 3d2b170fc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,12 +0,0 @@ - - org.apache.axis2 - axis2 - 1.3-SNAPSHOT - - - 20070802.113139 - 29 - - 20070802113139 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.md5 deleted file mode 100644 index f39e1f745..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -f68494b20d262a4974d61e2911f90291 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.sha1 deleted file mode 100644 index ebf6c8ce2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/axis2/axis2/1.3-SNAPSHOT/maven-metadata.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -6d0399f05e374923a3929683b4176fe67d8ed08f \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/cocoon/cocoon/1/cocoon-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/cocoon/cocoon/1/cocoon-1.pom deleted file mode 100644 index 31405768a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/cocoon/cocoon/1/cocoon-1.pom +++ /dev/null @@ -1,379 +0,0 @@ - - - - - - 4.0.0 - - - org.apache - apache - 1 - - - pom - - org.apache.cocoon - cocoon - 1 - - Apache Cocoon - http://cocoon.apache.org - - - Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - - central - Maven central repository - http://ibiblio.org/maven2 - - - apache.snapshot - Apache Snapshot Repository - http://svn.apache.org/maven-snapshot-repository - - - apache-cvs - Apache Maven Repository - http://svn.apache.org/repository - legacy - - - - - The Apache Software Foundation - http://www.apache.org/ - - - - crossley - David Crossley - crossley@apache.org - ASF - http://www.apache.org/ - - Committer - - +10 - - - bdelacretaz - Bertrand Delacretaz - bdelacretaz@apache.org - ASF - http://www.apache.org - - Committer - - +1 - - - danielf - Daniel Fagerstrom - danielf@apache.org - ASF - http://www.apache.org - - Committer - - +1 - - - antonio - Antonio Gallardo - antonio@apache.org - ASF - http://www.apache.org - - Committer - - -6 - - - lgawron - Leszek Gawron - lgawron@apache.org - ASF - http://www.apache.org - - Committer - - +1 - - - joerg - Jorg Heinicke - joerg@apache.org - ASF - http://www.apache.org - +1 - - Committer - - - - jheymans - Jorg Heymans - jheymans@apache.org - ASF - http://www.apache.org - - Committer - - +1 - - - anathaniel - Alfred Nathaniel - anathaniel@apache.org - ASF - http://www.apache.org - - Committer - - +1 - - - giacomo - Giacomo Pati - giacomo@apache.org - ASF - http://www.apache.org - - Committer - - +1 - - - reinhard - Reinhard Poetz - reinhard@apache.org - ASF - http://www.apache.org - - Committer - - +1 - - - jbq - Jean-Baptiste Quenot - jbq@apache.org - ASF - http://www.apache.org - - Committer - - +1 - - - gianugo - Gianugo Rabellino - gianugo@apache.org - ASF - http://www.apache.org - - Committer - - +1 - - - cziegeler - Carsten Ziegeler - cziegeler@apache.org - ASF - http://www.apache.org - - Committer - - +1 - - - vgritsenko - Vadim Gritsenko - vgritsenko@apache.org - ASF - http://www.apache.org - - Committer - - -5 - - - - jira - https://issues.apache.org/jira/browse/COCOON - - - continuum - http://cocoon.zones.apache.org:12000/continuum/servlet/continuum - - - mail - -
dev@cocoon.apache.org
-
-
-
-
- - - Cocoon User List - users-subscribe@cocoon.apache.org - users-unsubscribe@cocoon.apache.org - users@cocoon.apache.org - http://mail-archives.apache.org/mod_mbox/cocoon-users - - http://www.mail-archive.com/users@cocoon.apache.org/ - http://marc.theaimsgroup.com/?l=xml-cocoon-user - http://news.gmane.org/gmane.text.xml.cocoon.user - - - - Cocoon Developer List - dev-subscribe@cocoon.apache.org - dev-unsubscribe@cocoon.apache.org - dev@cocoon.apache.org - http://mail-archives.apache.org/mod_mbox/cocoon-dev - - http://www.mail-archive.com/dev@cocoon.apache.org/ - http://marc.theaimsgroup.com/?l=xml-cocoon-dev - http://news.gmane.org/gmane.text.xml.cocoon.dev - - - - Cocoon Documentation List - docs-subscribe@cocoon.apache.org - docs-unsubscribe@cocoon.apache.org - docs@cocoon.apache.org - http://mail-archives.apache.org/mod_mbox/cocoon-docs - - http://www.mail-archive.com/dev@cocoon.apache.org/ - http://marc.theaimsgroup.com/?l=xml-cocoon-docs - http://news.gmane.org/gmane.text.xml.cocoon.docs - - - - Cocoon Subversion Repository List - cvs-subscribe@cocoon.apache.org - cvs-unsubscribe@cocoon.apache.org - http://mail-archives.apache.org/mod_mbox/cocoon-cvs - - http://www.mail-archive.com/cvs@cocoon.apache.org/ - http://marc.theaimsgroup.com/?l=xml-cocoon-cvs - http://news.gmane.org/gmane.text.xml.cocoon.cvs - - - - - scm:svn:https://svn.apache.org/repos/asf/cocoon/tags/cocoon-1 - scm:svn:https://svn.apache.org/repos/asf/cocoon/tags/cocoon-1 - https://svn.apache.org/repos/asf/cocoon/tags/cocoon-1 - - - - apache-maven - release repository - scpexe://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository - - - apache-maven-snapshot - snapshot repository - scpexe://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.2 - - - - - - org.apache.maven.wagon - wagon-ssh-external - 1.0-alpha-6 - - - - - - maven-release-plugin - - https://svn.apache.org/repos/asf/cocoon/tags - - - - - - - - org.apache.maven.plugins - maven-project-info-reports-plugin - - - - dependencies - project-team - mailing-list - cim - issue-tracking - license - scm - - - - - - -
\ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom deleted file mode 100644 index 202a0a448..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - A - 1.0 - Maven Test Repository Artifact Discovery - war - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom deleted file mode 100644 index fa5f8f6c8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - B - 1.0 - Maven Test Repository Artifact Discovery - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom deleted file mode 100644 index c3034e820..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - B - 2.0 - Maven Test Repository Artifact Discovery - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom deleted file mode 100644 index ae14cd7eb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - C - 1.0 - Maven Test Repository Artifact Discovery - war - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/archiva-applet-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/archiva-applet-1.0-SNAPSHOT.pom deleted file mode 100644 index d48ebf7a8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/archiva-applet-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,69 +0,0 @@ - - - - - 4.0.0 - - org.apache.maven.archiva - archiva - 1.0-SNAPSHOT - - archiva-applet - Archiva Applet - - Applet for performing local operations on files such as creating a checksum of an artifact - before uploading it. - - - - - org.apache.maven.plugins - maven-jar-plugin - 2.1 - - src/keystore/keystore - mykey - password - password - - - - - sign - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - - **/** - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/archiva-base-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/archiva-base-1.0-SNAPSHOT.pom deleted file mode 100644 index cd51f1edc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/archiva-base-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,42 +0,0 @@ - - - - - 4.0.0 - - org.apache.maven.archiva - archiva-parent - 1.0-SNAPSHOT - ../pom.xml - - - archiva-base - Archiva Base - pom - - - archiva-common - archiva-configuration - archiva-consumers - archiva-indexer - archiva-model - - archiva-repository-layer - archiva-xml-tools - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom deleted file mode 100644 index 115bc99ea..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva-parent - 1.0-SNAPSHOT - - 4.0.0 - archiva-cli - Archiva Command Line Client - - - org.apache.maven.archiva - archiva-converter - - - org.apache.maven.archiva - archiva-repository-layer - - - org.codehaus.plexus - plexus-component-api - - - org.codehaus.plexus - plexus-cli - 1.0 - - - commons-lang - commons-lang - - - - - - maven-assembly-plugin - - src/main/assembly/archiva-cli-assembly.xml - - - org.apache.maven.archiva.cli.ArchivaCli - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/archiva-common-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/archiva-common-1.0-SNAPSHOT.pom deleted file mode 100644 index 17a20abd5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/archiva-common-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva-base - 1.0-SNAPSHOT - - 4.0.0 - archiva-common - Archiva Base :: Common - - - - org.codehaus.plexus - plexus-component-api - - - - commons-lang - commons-lang - - - org.codehaus.plexus - plexus-container-default - - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/archiva-configuration-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/archiva-configuration-1.0-SNAPSHOT.pom deleted file mode 100644 index 790d0cfa4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/archiva-configuration-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva-base - 1.0-SNAPSHOT - - 4.0.0 - archiva-configuration - Archiva Base :: Configuration - - - org.codehaus.plexus - plexus-component-api - - - org.codehaus.plexus - plexus-utils - - - commons-lang - commons-lang - - - commons-io - commons-io - - - org.codehaus.plexus.registry - plexus-registry-api - 1.0-alpha-2-SNAPSHOT - - - org.codehaus.plexus.registry - plexus-registry-commons - 1.0-alpha-2-SNAPSHOT - test - - - - easymock - easymock - 1.2_Java1.3 - test - - - org.codehaus.plexus - plexus-container-default - test - - - - - - org.codehaus.modello - modello-maven-plugin - 1.0-alpha-15-SNAPSHOT - - - - java - registry-reader - registry-writer - - - - - 1.0.0 - src/main/mdo/configuration.mdo - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - - org/apache/maven/archiva/configuration/io/** - org/apache/maven/archiva/configuration/*RepositoryConfiguration.* - org/apache/maven/archiva/configuration/Configuration.* - org/apache/maven/archiva/configuration/Proxy.* - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/archiva-consumer-api-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/archiva-consumer-api-1.0-SNAPSHOT.pom deleted file mode 100644 index f331ed074..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/archiva-consumer-api-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,38 +0,0 @@ - - - - - 4.0.0 - - org.apache.maven.archiva - archiva-consumers - 1.0-SNAPSHOT - ../pom.xml - - - archiva-consumer-api - Archiva Consumer API - jar - - - - org.apache.maven.archiva - archiva-model - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/archiva-consumers-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/archiva-consumers-1.0-SNAPSHOT.pom deleted file mode 100644 index 8969b9ed3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/archiva-consumers-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,41 +0,0 @@ - - - - - 4.0.0 - - org.apache.maven.archiva - archiva-base - 1.0-SNAPSHOT - ../pom.xml - - - archiva-consumers - Archiva Consumers - pom - - - archiva-consumer-api - archiva-core-consumers - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/archiva-converter-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/archiva-converter-1.0-SNAPSHOT.pom deleted file mode 100644 index 49bde7bd2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/archiva-converter-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva - 1.0-SNAPSHOT - - 4.0.0 - archiva-converter - Archiva Repository Converter - - - org.apache.maven.archiva - archiva-discoverer - - - org.codehaus.plexus - plexus-utils - - - org.codehaus.plexus - plexus-component-api - - - org.apache.maven - maven-artifact - - - org.apache.maven.shared - maven-model-converter - - - org.codehaus.plexus - plexus-digest - - - org.codehaus.plexus - plexus-i18n - 1.0-beta-6 - - - commons-io - commons-io - - - - hsqldb - hsqldb - 1.7.3.3 - test - - - - org.codehaus.plexus - plexus-container-default - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/archiva-core-consumers-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/archiva-core-consumers-1.0-SNAPSHOT.pom deleted file mode 100644 index 182578f57..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/archiva-core-consumers-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,50 +0,0 @@ - - - - - 4.0.0 - - org.apache.maven.archiva - archiva-consumers - 1.0-SNAPSHOT - ../pom.xml - - - archiva-core-consumers - Archiva Consumers :: Core Consumers - jar - - - - org.apache.maven.archiva - archiva-configuration - - - org.apache.maven.archiva - archiva-consumer-api - - - org.apache.maven.archiva - archiva-repository-layer - - - org.codehaus.plexus - plexus-digest - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-SNAPSHOT/archiva-core-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-SNAPSHOT/archiva-core-1.0-SNAPSHOT.pom deleted file mode 100644 index 18b98fc7b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-SNAPSHOT/archiva-core-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - archiva - org.apache.maven.archiva - 1.0-SNAPSHOT - - 4.0.0 - archiva-core - Archiva Core - - - org.apache.maven.archiva - archiva-configuration - - - org.apache.maven.archiva - archiva-discoverer - - - org.apache.maven.archiva - archiva-proxy - - - org.apache.maven.archiva - archiva-reports-standard - - - org.codehaus.plexus - plexus-component-api - - - org.codehaus.plexus - plexus-quartz - 1.0-alpha-3 - - - org.codehaus.plexus.cache - plexus-cache-ehcache - 1.0-alpha-1-SNAPSHOT - - - org.codehaus.plexus - plexus-taskqueue - 1.0-alpha-6 - - - commons-lang - commons-lang - - - org.codehaus.plexus.registry - plexus-registry-commons - 1.0-SNAPSHOT - test - - - - hsqldb - hsqldb - 1.7.3.3 - test - - - - org.codehaus.plexus - plexus-container-default - test - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - merge - - merge-descriptors - - - - ${basedir}/src/main/resources/META-INF/plexus/components.xml - ${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/archiva-discoverer-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/archiva-discoverer-1.0-SNAPSHOT.pom deleted file mode 100644 index 8a96e39c5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/archiva-discoverer-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva - 1.0-SNAPSHOT - - 4.0.0 - archiva-discoverer - Archiva Discoverer - - - org.apache.maven.archiva - archiva-common - - - org.codehaus.plexus - plexus-utils - - - org.codehaus.plexus - plexus-container-default - - - org.apache.maven - maven-artifact - - - org.apache.maven - maven-repository-metadata - - - org.apache.maven - maven-artifact-manager - - - org.apache.maven - maven-model - - - commons-lang - commons-lang - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/archiva-indexer-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/archiva-indexer-1.0-SNAPSHOT.pom deleted file mode 100644 index 7d77d445f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/archiva-indexer-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva-base - 1.0-SNAPSHOT - - 4.0.0 - archiva-indexer - Archiva Base :: Indexer - - - org.apache.maven.archiva - archiva-configuration - - - org.apache.maven.archiva - archiva-model - - - org.apache.lucene - lucene-core - 2.0.0 - - - org.codehaus.plexus - plexus-utils - - - org.codehaus.plexus - plexus-container-default - - - org.codehaus.plexus - plexus-digest - - - commons-lang - commons-lang - - - commons-io - commons-io - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - 80 - 80 - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom deleted file mode 100644 index 52c185ea7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva-base - 1.0-SNAPSHOT - - 4.0.0 - archiva-model - Archiva Base :: Model - - - org.apache.maven.archiva - archiva-common - - - org.codehaus.plexus - plexus-utils - - - javax.jdo - jdo2-api - 2.0 - - - org.codehaus.plexus - plexus-container-default - - - commons-lang - commons-lang - - - commons-io - commons-io - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - org.codehaus.modello - modello-maven-plugin - 1.0-alpha-15-SNAPSHOT - - 1.0.0 - false - src/main/mdo/archiva-base.xml - - - - archiva-base - - java - xsd - jpox-jdo-mapping - jpox-metadata-class - - - - - - - org.codehaus.mojo - jpox-maven-plugin - 1.1.6 - - - org.apache.derby - derby - 10.2.1.6 - - - - - create-ddl - generate-test-resources - - schema-create - - - ${basedir}/target/classes/org/apache/maven/archiva/model/schema.ddl - - - javax.jdo.option.ConnectionDriverName - org.apache.derby.jdbc.EmbeddedDriver - - - javax.jdo.option.ConnectionURL - jdbc:derby:target/jdo-schema-create;create=true - - - javax.jdo.option.ConnectionUserName - sa - - - javax.jdo.option.ConnectionPassword - - - - log4j.configuration - ${basedir}/src/test/resources/log4j.xml - - - org.jpox.autoCreateTables - true - - - - - - enhance - - enhance - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - - org/apache/maven/archiva/reporting/model/** - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/archiva-parent-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/archiva-parent-1.0-SNAPSHOT.pom deleted file mode 100644 index 970098384..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/archiva-parent-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,566 +0,0 @@ - - - - - 4.0.0 - - org.apache.maven - maven-parent - 4 - ../pom/maven/pom.xml - - org.apache.maven.archiva - archiva-parent - pom - Archiva - 1.0-SNAPSHOT - - Archiva is an application for managing one or more remote repositories, including - administration, artifact handling, - browsing and searching. - - http://maven.apache.org/archiva - - jira - http://jira.codehaus.org/browse/MRM - - - - Maven Archiva User List - archiva-users-subscribe@maven.apache.org - archiva-users-unsubscribe@maven.apache.org - archiva-users@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-users - - - Maven Archiva Developer List - archiva-dev-subscribe@maven.apache.org - archiva-dev-unsubscribe@maven.apache.org - archiva-dev@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-dev - - - Maven Archiva Commits List - archiva-commits-subscribe@maven.apache.org - archiva-commits-unsubscribe@maven.apache.org - archiva-commits@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-commits - - - - scm:svn:http://svn.apache.org/repos/asf/maven/archiva/trunk - scm:svn:https://svn.apache.org/repos/asf/maven/archiva/trunk - http://svn.apache.org/viewcvs.cgi/maven/archiva/trunk - - - - apache.website - scpexe://people.apache.org/www/maven.apache.org/archiva/ - - - - - - org.codehaus.plexus - plexus-maven-plugin - 1.3.3 - - - generate - - descriptor - - - - - - maven-compiler-plugin - - 1.4 - 1.4 - - - - maven-surefire-plugin - 2.2 - - - - - - maven-idea-plugin - - 1.4 - - - - maven-release-plugin - - https://svn.apache.org/repos/asf/maven/archiva/tags - - - - - - - archiva-api - archiva-base - archiva-database - archiva-reporting - archiva-web - archiva-cli - maven-meeper - - - - junit - junit - 3.8.1 - test - - - - - - org.apache.maven.shared - maven-app-configuration-model - 1.0-SNAPSHOT - - - org.apache.maven.shared - maven-app-configuration-web - 1.0-SNAPSHOT - - - org.codehaus.plexus - plexus-container-default - 1.0-alpha-18 - - - org.codehaus.plexus - plexus-component-api - 1.0-alpha-18 - - - org.codehaus.plexus - plexus-utils - 1.4 - - - org.slf4j - slf4j-log4j12 - 1.2 - - - org.apache.maven - maven-repository-metadata - ${maven.version} - - - org.apache.maven - maven-model - ${maven.version} - - - org.apache.maven - maven-artifact - ${maven.version} - - - org.apache.maven - maven-artifact-manager - ${maven.version} - - - org.apache.maven - maven-project - ${maven.version} - - - org.apache.maven.shared - maven-model-converter - 2.0.5-SNAPSHOT - - - org.apache.maven.wagon - wagon-provider-api - ${wagon.version} - - - org.apache.maven.wagon - wagon-ssh - ${wagon.version} - - - org.apache.maven.wagon - wagon-file - ${wagon.version} - - - org.apache.maven.wagon - wagon-http-lightweight - ${wagon.version} - - - org.apache.maven.archiva - archiva-common - ${archiva.version} - - - org.apache.maven.archiva - archiva-core - ${archiva.version} - - - org.apache.maven.archiva - archiva-reports-standard - ${archiva.version} - - - org.apache.maven.archiva - archiva-model - ${archiva.version} - - - org.apache.maven.archiva - archiva-database - ${archiva.version} - - - org.apache.maven.archiva - archiva-consumer-api - ${archiva.version} - - - org.apache.maven.archiva - archiva-model - ${archiva.version} - - - org.apache.maven.archiva - archiva-database - ${archiva.version} - - - org.apache.maven.archiva - archiva-discoverer - ${archiva.version} - - - org.apache.maven.archiva - archiva-repository-layer - ${archiva.version} - - - org.apache.maven.archiva - archiva-indexer - ${archiva.version} - - - org.apache.maven.archiva - archiva-proxy - ${archiva.version} - - - org.apache.maven.archiva - archiva-applet - ${archiva.version} - - - org.apache.maven.archiva - archiva-security - ${archiva.version} - - - org.apache.maven.archiva - archiva-configuration - ${archiva.version} - - - org.apache.maven.archiva - archiva-converter - ${archiva.version} - - - org.apache.maven.archiva - archiva-utils - ${archiva.version} - - - org.apache.maven.archiva - archiva-webapp - ${archiva.version} - war - - - org.codehaus.plexus - plexus-digest - 1.1-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-rbac-profile - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-system - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-system - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-ui-web - ${plexus-security.version} - war - - - org.codehaus.plexus.security - plexus-security-ui-web-integration - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-ui-web-taglib - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authentication-provider-user-manager - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authentication-provider-keystore - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-user-management-api - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-user-management-provider-jdo - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authorization-rbac-store-cached - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authorization-rbac-store-jdo - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authorization-api - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authorization-rbac-authorizer - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-keys-jdo - ${plexus-security.version} - - - commons-lang - commons-lang - 2.2 - - - commons-io - commons-io - 1.2 - - - org.apache.derby - derby - 10.1.3.1 - - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - maven-checkstyle-plugin - - config/maven_checks.xml - - - - org.codehaus.mojo - changelog-maven-plugin - - - org.codehaus.mojo - taglist-maven-plugin - - - maven-jxr-plugin - - true - - - - maven-surefire-report-plugin - - - maven-javadoc-plugin - - 1.4 - true - - - - maven-pmd-plugin - - - - - - - ci - - - enableCiProfile - true - - - - - - org.apache.maven.plugins - maven-pmd-plugin - - - process-sources - - - cpd-check - - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - - - process-sources - - - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - 77 - 95 - - - - - **/*$* - - - - - - clean - - clean - - - - check - - check - - - - - - - - - - - codehaus.org - http://repository.codehaus.org - - true - - - false - - - - - snapshots.codehaus.org - http://snapshots.repository.codehaus.org - - false - - - true - - - - - - - snapshots.codehaus.org - http://snapshots.repository.codehaus.org - - false - - - true - - - - - 1.0-SNAPSHOT - 2.0.5 - 1.0-beta-2 - 1.0-alpha-11-SNAPSHOT - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/archiva-plexus-application-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/archiva-plexus-application-1.0-SNAPSHOT.pom deleted file mode 100644 index 21edbff05..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/archiva-plexus-application-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - archiva - org.apache.maven.archiva - 1.0-SNAPSHOT - - 4.0.0 - archiva-plexus-application - plexus-application - Archiva Plexus Application - - - - org.codehaus.plexus - plexus-appserver-maven-plugin - 2.0-alpha-7 - true - - src/conf/application.xml - src/conf - src/plexus.properties - archiva - src/conf/plexus.xml - src/plexus.properties - target/plexus-archiva-runtime - - - - - - - org.apache.maven.archiva - archiva-webapp - war - - - - - ${project.version} - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/archiva-plexus-runtime-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/archiva-plexus-runtime-1.0-SNAPSHOT.pom deleted file mode 100644 index 1c675dc62..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/archiva-plexus-runtime-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva - 1.0-SNAPSHOT - - 4.0.0 - archiva-plexus-runtime - Archiva Runtime Generator - - - org.codehaus.plexus - plexus-container-default - - - org.codehaus.plexus - plexus-utils - - - org.codehaus.plexus - plexus-appserver-host - 2.0-alpha-7 - - - - org.codehaus.plexus - plexus-appserver-service-jetty - 2.0-alpha-7 - plexus-service - - - - org.apache.maven.archiva - archiva-plexus-application - ${project.version} - plexus-application - - - - - log4j - log4j - 1.2.8 - - - commons-logging - commons-logging-api - 1.0.4 - - - org.apache.derby - derby - runtime - - - org.codehaus.plexus - plexus-naming - 1.0-alpha-3-SNAPSHOT - runtime - - - javax.mail - mail - 1.4 - runtime - - - - - - org.codehaus.plexus - plexus-appserver-maven-plugin - 2.0-alpha-7 - true - - - process-resources - - assemble-runtime - add-services - add-apps - - - - - src/conf/plexus.xml - src/plexus.properties - target/plexus-archiva-runtime - - commons-logging:commons-logging-api - log4j:log4j - org.apache.derby:derby - org.codehaus.plexus:plexus-naming - commons-pool:commons-pool - commons-dbcp:commons-dbcp - commons-collections:commons-collections - directory-naming:naming-core - directory-naming:naming-factory - directory-naming:naming-java - directory-naming:naming-config - javax.mail:mail - javax.activation:activation - - - - - maven-assembly-plugin - 2.1 - - - package - - single - - - - - src/main/assembly/bin.xml - archiva - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-SNAPSHOT/archiva-proxy-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-SNAPSHOT/archiva-proxy-1.0-SNAPSHOT.pom deleted file mode 100644 index 23488ee0a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-SNAPSHOT/archiva-proxy-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva - 1.0-SNAPSHOT - - 4.0.0 - archiva-proxy - Archiva Proxy - - - org.apache.maven.archiva - archiva-common - - - org.apache.maven.wagon - wagon-file - test - - - org.apache.maven.wagon - wagon-provider-api - - - org.codehaus.plexus - plexus-digest - - - easymock - easymock - 1.2_Java1.3 - test - - - commons-io - commons-io - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/archiva-reports-standard-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/archiva-reports-standard-1.0-SNAPSHOT.pom deleted file mode 100644 index 24eb19954..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/archiva-reports-standard-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva - 1.0-SNAPSHOT - - 4.0.0 - archiva-reports-standard - Archiva Standard Reports - - - org.codehaus.plexus - plexus-utils - - - org.codehaus.plexus - plexus-container-default - - - org.apache.maven - maven-artifact - - - org.apache.maven - maven-artifact-manager - - - org.apache.maven - maven-model - - - org.apache.maven - maven-repository-metadata - - - org.apache.maven.wagon - wagon-provider-api - - - org.apache.maven.archiva - archiva-repository-layer - - - org.apache.maven.archiva - archiva-indexer - - - org.apache.maven.archiva - archiva-discoverer - - - commons-lang - commons-lang - - - commons-io - commons-io - - - org.codehaus.plexus - plexus-jdo2 - 1.0-alpha-8 - - - xerces - xercesImpl - - - xerces - xmlParserAPIs - - - - - jpox - jpox - 1.1.6 - compile - - - - javax.sql - jdbc-stdext - - - - - - hsqldb - hsqldb - 1.7.3.3 - test - - - - - - org.codehaus.modello - modello-maven-plugin - 1.0-alpha-14-SNAPSHOT - - 1.0.0 - false - src/main/mdo/reporting.mdo - - - - modello-java - - java - jpox-metadata-class - - - - - jpox-jdo-mapping - - jpox-jdo-mapping - - - ${basedir}/target/classes/org/apache/maven/archiva/reporting/model/ - - - - - - org.codehaus.mojo - jpox-maven-plugin - 1.1.6-SNAPSHOT - - - - enhance - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - - org/apache/maven/archiva/reporting/model/** - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/archiva-repository-layer-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/archiva-repository-layer-1.0-SNAPSHOT.pom deleted file mode 100644 index 6ec87f431..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/archiva-repository-layer-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva-base - 1.0-SNAPSHOT - - 4.0.0 - archiva-repository-layer - Archiva Repository Interface Layer - - - org.apache.maven.archiva - archiva-consumer-api - - - org.apache.maven.archiva - archiva-model - 1.0-SNAPSHOT - - - org.apache.maven.archiva - archiva-xml-tools - 1.0-SNAPSHOT - - - org.codehaus.plexus - plexus-utils - - - org.codehaus.plexus.cache - plexus-cache-api - 1.0-alpha-2-SNAPSHOT - compile - - - org.codehaus.plexus.cache - plexus-cache-ehcache - 1.0-alpha-2-SNAPSHOT - compile - - - - org.slf4j - slf4j-log4j12 - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - merge - - merge-descriptors - - - - ${basedir}/src/main/resources/META-INF/plexus/components.xml - ${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/archiva-security-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/archiva-security-1.0-SNAPSHOT.pom deleted file mode 100644 index 78cbd1282..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/archiva-security-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - archiva - org.apache.maven.archiva - 1.0-SNAPSHOT - - 4.0.0 - archiva-security - Archiva Security Configuration - - - org.codehaus.plexus.security - plexus-security-rbac-profile - - - org.codehaus.plexus.security - plexus-security-system - - - org.codehaus.plexus - plexus-component-api - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/archiva-webapp-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/archiva-webapp-1.0-SNAPSHOT.pom deleted file mode 100644 index 8304d2dd0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/archiva-webapp-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,334 +0,0 @@ - - - - - 4.0.0 - - org.apache.maven.archiva - archiva - 1.0-SNAPSHOT - - archiva-webapp - war - Archiva Web Application - - - javax.servlet - servlet-api - 2.4 - provided - - - javax.servlet - jsp-api - 2.0 - provided - - - opensymphony - sitemesh - 2.2.1 - - - taglibs - standard - 1.1.2 - - - javax.servlet - jstl - 1.1.2 - - - org.apache.maven.shared - maven-app-configuration-model - - - org.apache.maven.shared - maven-app-configuration-web - - - org.codehaus.plexus - plexus-log4j-logging - 1.1-alpha-2 - runtime - - - commons-logging - commons-logging - 1.0.4 - runtime - - - commons-lang - commons-lang - 2.2 - - - org.apache.maven.wagon - wagon-http-lightweight - runtime - - - org.apache.maven.wagon - wagon-file - runtime - - - opensymphony - webwork - 2.2.4 - - - org.codehaus.plexus.registry - plexus-registry-commons - 1.0-SNAPSHOT - - - org.codehaus.plexus - plexus-component-api - - - org.codehaus.plexus - plexus-container-default - - - org.apache.maven.archiva - archiva-proxy - - - org.apache.maven.archiva - archiva-core - - - org.apache.maven.archiva - archiva-common - - - org.apache.maven.archiva - archiva-security - - - org.apache.maven.archiva - archiva-applet - - provided - - - org.apache.maven - maven-project - - - org.apache.maven.shared - maven-dependency-tree - 1.0-alpha-2 - - - - org.codehaus.plexus.security - plexus-security-ui-web - war - runtime - - - org.codehaus.plexus.security - plexus-security-ui-web-taglib - - - - org.codehaus.plexus.webdav - plexus-webdav-simple - 1.0-alpha-1-SNAPSHOT - - - org.codehaus.plexus - plexus-xwork-integration - 1.0-alpha-5 - - - org.codehaus.plexus - plexus-utils - - - org.apache.derby - derby - 10.1.3.1 - provided - - - javax.mail - mail - 1.4 - provided - - - javax.activation - activation - 1.1 - provided - - - - - - org.apache.maven.plugins - maven-clean-plugin - 2.1.1 - - - - - ${basedir}/src/main/webapp - - - META-INF - images/pss - - template/pss - - WEB-INF/classes - - WEB-INF/lib - - WEB-INF/database - - WEB-INF/logs - - pss - - css/pss - WEB-INF/jsp/pss - - WEB-INF/template/pss - - WEB-INF/logs - - WEB-INF/temp - - - - - - - - org.apache.maven.plugins - maven-war-plugin - 2.0.1 - - - false - META-INF/**,WEB-INF/web.xml,WEB-INF/classes/xwork.xml - - - - - compile - - - inplace - - - - - - org.mortbay.jetty - maven-jetty-plugin - 6.1.1 - - 10 - / - src/jetty-env.xml - - - 9091 - 60000 - - - - - appserver.base - ${project.build.directory}/appserver-base - - - derby.system.home - ${project.build.directory}/appserver-base/logs - - - - - - org.apache.derby - derby - 10.1.3.1 - - - - - org.codehaus.mojo - dependency-maven-plugin - - - copy - process-resources - - copy - - - - - ${project.groupId} - archiva-applet - ${project.version} - src/main/webapp - archiva-applet.jar - - - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - - com.opensymphony.xwork.Action - per-lookup - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - **/** - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/archiva-xml-tools-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/archiva-xml-tools-1.0-SNAPSHOT.pom deleted file mode 100644 index efa42d3f0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/archiva-xml-tools-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - org.apache.maven.archiva - archiva-base - 1.0-SNAPSHOT - - 4.0.0 - archiva-xml-tools - Archiva Base :: XML Tools - - - org.apache.maven.archiva - archiva-common - - - dom4j - dom4j - 1.6.1 - - - jaxen - jaxen - 1.1 - - - org.codehaus.plexus - plexus-utils - - - org.slf4j - slf4j-log4j12 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-20061126.005254-2.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-20061126.005254-2.pom deleted file mode 100644 index cf8e32963..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-20061126.005254-2.pom +++ /dev/null @@ -1,505 +0,0 @@ - - - - - 4.0.0 - - org.apache.maven - maven-parent - 4 - ../pom/maven/pom.xml - - org.apache.maven.archiva - archiva - pom - Archiva - 1.0-SNAPSHOT - - Archiva is an application for managing one or more remote repositories, including - administration, artifact handling, - browsing and searching. - - http://maven.apache.org/archiva - - jira - http://jira.codehaus.org/browse/MRM - - - - Maven Archiva User List - archiva-users-subscribe@maven.apache.org - archiva-users-unsubscribe@maven.apache.org - archiva-users@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-users - - - Maven Archiva Developer List - archiva-dev-subscribe@maven.apache.org - archiva-dev-unsubscribe@maven.apache.org - archiva-dev@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-dev - - - Maven Archiva Commits List - archiva-commits-subscribe@maven.apache.org - archiva-commits-unsubscribe@maven.apache.org - archiva-commits@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-commits - - - - scm:svn:http://svn.apache.org/repos/asf/maven/archiva/trunk - scm:svn:https://svn.apache.org/repos/asf/maven/archiva/trunk - http://svn.apache.org/viewcvs.cgi/maven/archiva/trunk - - - - apache.website - scpexe://people.apache.org/www/maven.apache.org/archiva/ - - - - - - org.apache.maven.wagon - wagon-ssh-external - 1.0-alpha-5 - - - - - org.codehaus.plexus - plexus-maven-plugin - 1.3 - - - - descriptor - merge-descriptors - - - - - - maven-compiler-plugin - - 1.4 - 1.4 - - - - maven-surefire-plugin - 2.2 - - - - - - maven-idea-plugin - - 1.4 - - - - maven-release-plugin - - https://svn.apache.org/repos/asf/maven/archiva/tags - - - - - - - archiva-applet - archiva-converter - archiva-discoverer - archiva-reports-standard - archiva-indexer - archiva-webapp - archiva-proxy - archiva-core - archiva-configuration - maven-meeper - archiva-repository-layer - archiva-plexus-application - archiva-plexus-runtime - archiva-security - archiva-cli - - - - junit - junit - 3.8.1 - test - - - - - - org.codehaus.plexus - plexus-container-default - 1.0-alpha-10 - - - org.codehaus.plexus - plexus-utils - 1.3 - - - org.apache.maven - maven-repository-metadata - ${maven.version} - - - org.apache.maven - maven-model - ${maven.version} - - - org.apache.maven - maven-artifact - ${maven.version} - - - org.apache.maven - maven-artifact-manager - ${maven.version} - - - org.apache.maven - maven-project - ${maven.version} - - - org.apache.maven - maven-model-converter - 2.0.4 - - - org.apache.maven.wagon - wagon-provider-api - ${wagon.version} - - - org.apache.maven.wagon - wagon-ssh - ${wagon.version} - - - org.apache.maven.wagon - wagon-file - ${wagon.version} - - - org.apache.maven.wagon - wagon-http-lightweight - ${wagon.version} - - - org.apache.maven.archiva - archiva-core - ${pom.version} - - - org.apache.maven.archiva - archiva-reports-standard - ${pom.version} - - - org.apache.maven.archiva - archiva-discoverer - ${pom.version} - - - org.apache.maven.archiva - archiva-repository-layer - ${pom.version} - - - org.apache.maven.archiva - archiva-indexer - ${pom.version} - - - org.apache.maven.archiva - archiva-proxy - ${pom.version} - - - org.apache.maven.archiva - archiva-applet - ${pom.version} - - - org.apache.maven.archiva - archiva-security - ${pom.version} - - - org.apache.maven.archiva - archiva-configuration - ${pom.version} - - - org.apache.maven.archiva - archiva-converter - ${pom.version} - - - org.apache.maven.archiva - archiva-webapp - ${pom.version} - war - - - org.codehaus.plexus - plexus-digest - 1.0-SNAPSHOT - - - org.codehaus.plexus.security - plexus-security-rbac-profile - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-system - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-system - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-ui-web - ${plexus-security.version} - war - - - org.codehaus.plexus.security - plexus-security-ui-web-integration - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-ui-web-taglib - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authentication-provider-user-manager - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authentication-provider-keystore - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-user-management-api - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-user-management-provider-jdo - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authorization-rbac-store-jdo - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authorization-api - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authorization-rbac-authorizer - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-keys-jdo - ${plexus-security.version} - - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - maven-checkstyle-plugin - - config/maven_checks.xml - - - - org.codehaus.mojo - changelog-maven-plugin - - - org.codehaus.mojo - taglist-maven-plugin - - - maven-jxr-plugin - - true - - - - maven-surefire-report-plugin - - - maven-javadoc-plugin - - true - - - - maven-pmd-plugin - - - - - - - ci - - - enableCiProfile - true - - - - - - org.apache.maven.plugins - maven-pmd-plugin - - - process-sources - - - cpd-check - - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - - - process-sources - - - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - 77 - 95 - - - - - **/*$* - - - - - - clean - - clean - - - - check - - check - - - - - - - - - - - - codehaus.org - http://snapshots.repository.codehaus.org - - false - - - true - - - - - - codehaus.org - http://snapshots.repository.codehaus.org - - false - - - true - - - - - - apache.org - http://people.apache.org/repo/m2-snapshot-repository - - false - - - true - - - - - 2.0.4 - 1.0-beta-1 - 1.0-alpha-6-SNAPSHOT - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml deleted file mode 100644 index ac3c2e716..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - Maven - http://maven.apache.org/images/apache-maven-project-2.png - http://maven.apache.org/ - - - images/archiva-logo-banner.jpg - - - - org.apache.maven.skins - maven-stylus-skin - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom deleted file mode 100644 index 31df31eda..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,556 +0,0 @@ - - - - - 4.0.0 - - org.apache.maven - maven-parent - 4 - ../pom/maven/pom.xml - - - 2.0.5 - - org.apache.maven.archiva - archiva - pom - Archiva - 1.0-SNAPSHOT - - Archiva is an application for managing one or more remote repositories, including - administration, artifact handling, - browsing and searching. - - http://maven.apache.org/archiva - - jira - http://jira.codehaus.org/browse/MRM - - - - Maven Archiva User List - archiva-users-subscribe@maven.apache.org - archiva-users-unsubscribe@maven.apache.org - archiva-users@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-users - - - Maven Archiva Developer List - archiva-dev-subscribe@maven.apache.org - archiva-dev-unsubscribe@maven.apache.org - archiva-dev@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-dev - - - Maven Archiva Commits List - archiva-commits-subscribe@maven.apache.org - archiva-commits-unsubscribe@maven.apache.org - archiva-commits@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-archiva-commits - - - - scm:svn:http://svn.apache.org/repos/asf/maven/archiva/trunk - scm:svn:https://svn.apache.org/repos/asf/maven/archiva/trunk - http://svn.apache.org/viewcvs.cgi/maven/archiva/trunk - - - - apache.website - scpexe://people.apache.org/www/maven.apache.org/archiva/ - - - - - - org.codehaus.plexus - plexus-maven-plugin - 1.3.3 - - - generate - - descriptor - - - - - - maven-compiler-plugin - - 1.4 - 1.4 - - - - maven-surefire-plugin - 2.2 - - - - - - maven-idea-plugin - - 1.4 - - - - maven-release-plugin - - https://svn.apache.org/repos/asf/maven/archiva/tags - - - - - - - archiva-applet - archiva-converter - archiva-common - archiva-discoverer - archiva-reports-standard - archiva-indexer - archiva-webapp - archiva-proxy - archiva-core - archiva-configuration - maven-meeper - archiva-repository-layer - archiva-plexus-application - archiva-plexus-runtime - archiva-security - archiva-cli - - - - junit - junit - 3.8.1 - test - - - - - - org.apache.maven.shared - maven-app-configuration-model - 1.0-SNAPSHOT - - - org.apache.maven.shared - maven-app-configuration-web - 1.0-SNAPSHOT - - - org.codehaus.plexus - plexus-container-default - 1.0-alpha-17 - - - org.codehaus.plexus - plexus-component-api - 1.0-alpha-17 - - - org.codehaus.plexus - plexus-utils - 1.4 - - - org.apache.maven - maven-repository-metadata - ${maven.version} - - - org.apache.maven - maven-model - ${maven.version} - - - org.apache.maven - maven-artifact - ${maven.version} - - - org.apache.maven - maven-artifact-manager - ${maven.version} - - - org.apache.maven - maven-project - ${maven.version} - - - org.apache.maven.shared - maven-model-converter - 2.0.5-SNAPSHOT - - - org.apache.maven.wagon - wagon-provider-api - ${wagon.version} - - - org.apache.maven.wagon - wagon-ssh - ${wagon.version} - - - org.apache.maven.wagon - wagon-file - ${wagon.version} - - - org.apache.maven.wagon - wagon-http-lightweight - ${wagon.version} - - - org.apache.maven.archiva - archiva-common - ${pom.version} - - - - org.apache.maven.archiva - archiva-core - ${pom.version} - - - org.apache.maven.archiva - archiva-reports-standard - ${pom.version} - - - org.apache.maven.archiva - archiva-discoverer - ${pom.version} - - - org.apache.maven.archiva - archiva-repository-layer - ${pom.version} - - - org.apache.maven.archiva - archiva-indexer - ${pom.version} - - - org.apache.maven.archiva - archiva-proxy - ${pom.version} - - - org.apache.maven.archiva - archiva-applet - ${pom.version} - - - org.apache.maven.archiva - archiva-security - ${pom.version} - - - org.apache.maven.archiva - archiva-configuration - ${pom.version} - - - org.apache.maven.archiva - archiva-converter - ${pom.version} - - - org.apache.maven.archiva - archiva-utils - ${pom.version} - - - org.apache.maven.archiva - archiva-webapp - ${pom.version} - war - - - org.codehaus.plexus - plexus-digest - 1.0 - - - org.codehaus.plexus.security - plexus-security-rbac-profile - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-system - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-system - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-ui-web - ${plexus-security.version} - war - - - org.codehaus.plexus.security - plexus-security-ui-web-integration - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-ui-web-taglib - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authentication-provider-user-manager - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authentication-provider-keystore - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-user-management-api - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-user-management-provider-jdo - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authorization-rbac-store-cached - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authorization-rbac-store-jdo - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authorization-api - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-authorization-rbac-authorizer - ${plexus-security.version} - - - org.codehaus.plexus.security - plexus-security-keys-jdo - ${plexus-security.version} - - - commons-lang - commons-lang - 2.2 - - - commons-io - commons-io - 1.2 - - - org.apache.derby - derby - 10.1.3.1 - - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - maven-checkstyle-plugin - - config/maven_checks.xml - - - - org.codehaus.mojo - changelog-maven-plugin - - - org.codehaus.mojo - taglist-maven-plugin - - - maven-jxr-plugin - - true - - - - maven-surefire-report-plugin - - - maven-javadoc-plugin - - 1.4 - true - - - - maven-pmd-plugin - - - - - - - ci - - - enableCiProfile - true - - - - - - org.apache.maven.plugins - maven-pmd-plugin - - - process-sources - - - cpd-check - - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - - - process-sources - - - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - 77 - 95 - - - - - **/*$* - - - - - - clean - - clean - - - - check - - check - - - - - - - - - - - codehaus.org - http://repository.codehaus.org - - true - - - false - - - - - codehaus.org - http://snapshots.repository.codehaus.org - - false - - - true - - - - - - - codehaus.org - http://snapshots.repository.codehaus.org - - false - - - true - - - - - 2.0.5 - 1.0-beta-2 - 1.0-alpha-10-SNAPSHOT - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/discovery/1.0/discovery-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/discovery/1.0/discovery-1.0.pom deleted file mode 100644 index 5a29f6117..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/discovery/1.0/discovery-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - discovery - 1.0 - Maven Test Repository Artifact Discovery - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml deleted file mode 100644 index 8ce7fc7bb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - org.apache.maven - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site.xml deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site_en.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site_en.xml deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom deleted file mode 100644 index 132d9d736..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - 4.0.0 - - org.apache - apache - 3 - ../asf/pom.xml - - org.apache.maven - maven-parent - 4 - pom - Apache Maven - - 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. - - http://maven.apache.org/ - - jira - http://jira.codehaus.org/browse/MPA - - - continuum - http://maven.zones.apache.org:8080/continuum - - - mail - -
notifications@maven.apache.org
-
-
-
-
- 2002 - - - Maven Announcements List - announce@maven.apache.org - announce-subscribe@maven.apache.org - announce-unsubscribe@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-announce/ - - - Maven Issues List - issues@maven.apache.org - issues-subscribe@maven.apache.org - issues-unsubscribe@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-issues/ - - - Maven Notifications List - notifications@maven.apache.org - notifications-subscribe@maven.apache.org - notifications-unsubscribe@maven.apache.org - http://mail-archives.apache.org/mod_mbox/maven-notifications/ - - - - - - jvanzyl - Jason van Zyl - jason@maven.org - ASF - - PMC Chair - - -5 - - - brett - Brett Porter - brett@apache.org - ASF - - PMC Member - - +10 - - - evenisse - Emmanuel Venisse - evenisse@apache.org - ASF - - PMC Member - - +1 - - - kenney - Kenney Westerhof - kenney@apache.org - Neonics - - PMC Member - - - - snicoll - Stephane Nicoll - snicoll@apache.org - ASF - - PMC Member - - +1 - - - vmassol - Vincent Massol - vmassol@apache.org - ASF - - PMC Member - - +1 - - - fgiust - Fabrizio Giustina - fgiust@apache.org - openmind - - PMC Member - - +1 - - - epunzalan - Edwin Punzalan - epunzalan@mergere.com - Mergere - - Committer - - +8 - - - mperham - Mike Perham - mperham@gmail.com - IBM - - PMC Member - - -6 - - - jdcasey - John Casey - jdcasey@apache.org - ASF - - PMC Member - - -5 - - - trygvis - Trygve Laugstol - trygvis@apache.org - ASF - - PMC Member - - +1 - - - vsiveton - Vincent Siveton - vsiveton@apache.org - ASF - - PMC Member - - -5 - - - carlos - Carlos Sanchez - carlos@apache.org - ASF - - PMC Member - - +1 - - - dennisl - Dennis Lundberg - dennisl@apache.org - ASF - - PMC Member - - +1 - - - - - - apache.website - scp://people.apache.org/www/maven.apache.org - - - - - - - - - org.apache.maven.plugins - maven-surefire-report-plugin - - - org.apache.maven.plugins - maven-checkstyle-plugin - - http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-checkstyle-plugin/src/main/resources/config/maven_checks.xml - http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-checkstyle-plugin/src/main/resources/config/maven-header.txt - - - - org.apache.maven.plugins - maven-pmd-plugin - - - org.codehaus.mojo - cobertura-maven-plugin - - - org.codehaus.mojo - taglist-maven-plugin - - - org.apache.maven.plugins - maven-jxr-plugin - - - org.apache.maven.plugins - maven-javadoc-plugin - - - http://java.sun.com/j2ee/1.4/docs/api - http://java.sun.com/j2se/1.5.0/docs/api - http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/ - http://jakarta.apache.org/commons/dbcp/apidocs/ - http://jakarta.apache.org/commons/fileupload/apidocs/ - http://jakarta.apache.org/commons/httpclient/apidocs/ - http://jakarta.apache.org/commons/logging/apidocs/ - http://jakarta.apache.org/commons/pool/apidocs/ - http://www.junit.org/junit/javadoc/ - http://logging.apache.org/log4j/docs/api/ - http://jakarta.apache.org/regexp/apidocs/ - http://jakarta.apache.org/velocity/api/ - - - - - - - - scm:svn:http://svn.apache.org/repos/asf/maven/pom/maven/tags/maven-parent-4 - scm:svn:https://svn.apache.org/repos/asf/maven/pom/maven/tags/maven-parent-4 - http://svn.apache.org/viewvc/maven/pom/maven/tags/maven-parent-4 - -
- diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1 deleted file mode 100644 index b6caacf5e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -0fc039b0bd4d17d7c147a30e1d83994629c5297c \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom deleted file mode 100644 index 6ab57d162..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/1.0/samplejar-1.0.pom +++ /dev/null @@ -1,29 +0,0 @@ - - - - 4.0.0 - org.apache.maven - C - 1.0 - Maven Test Repository Artifact Discovery - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom deleted file mode 100644 index a959980df..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/2.0/samplejar-2.0.pom +++ /dev/null @@ -1,29 +0,0 @@ - - - - 4.0.0 - org.apache.maven - C - 1.0 - Maven Test Repository Artifact Discovery - - jar - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/maven-metadata.xml deleted file mode 100644 index 89de35f4e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/samplejar/maven-metadata.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - org.apache.maven - samplejar - 6.0-SNAPSHOT - - 2.0 - 6.0-SNAPSHOT - - 26 - - - 6.0-SNAPSHOT - 6.0-20060311.093250-41 - 6.0-20060311.183228-42 - 6.0-20060311.183228-40 - 6.0-20060311.183228-37 - 6.0-20060311.183228-30 - 6.0-20060311.183228-29 - 6.0-20060311.183228-6 - 6.0-20060311.183228-9 - 6.0-20060311.183228-10 - 6.0-20060313.001659-43 - 6.0-20060313.001659-41 - 6.0-20060313.001659-38 - 6.0-20060313.001659-31 - 6.0-20060313.001659-30 - 6.0-20060313.001659-7 - 6.0-20060313.001659-10 - 6.0-20060313.001659-11 - - 20060313010719 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar deleted file mode 100644 index ae0cb2e320facf4eb54f2f5ca71f3286b9001762..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38527 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 Wyjg)~wKFiN0O2)Yi)C^*hz9^LtTqq; diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.md5 deleted file mode 100644 index 15a0630f6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -69af4ffaf5e65d02b6ca50467e79b42a \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.sha1 deleted file mode 100644 index 107f46801..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-javadoc.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -902005afa0e151d7750735180f692d32fa5d76e2 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar deleted file mode 100644 index faa0d98cccdc4478f73b5cc4b48b5712bdf712fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2819 zcmWIWW@h1H0Dfd*X9KYavNB&s zKTkK;;1E4ux6i(3PWyQ4>RsgZ*3~+9=KSU$gDb`lo)+nNojal9t?R_W{$xqm6fx}s zDiu5DbO#B02L+eR)pD%z`O;Hz_Kb+h6d7)=q9D;ZpNqM@yo0(+L~K4!`Z~p=a%aU( z2AFFY7>=Sjng!^Z{GxQYdofjTLscXeBqnF1;!!AwsxUXPEHw|0atUn8i!&07Qd98g zQpTezCBHl`CqFSIwFqti2iU`3_$GyjF)=W(axgGh5@&!*YFc7xPKgWLNWHAYvc$8Y zxAUY71#0iFm-y%+Xe8gDwKdDZ>&i0G%=oC#i&v}}mmj;=x0jpa+IgfYFku;jJztAh8Qp>>EQrYl$Q%`|$ikEAaxLdSOXS?U3XERgpZ*l$higBs< z`|{ZjD=&XK{7K8{*zNn`3NwvfUlFVj>eoADy_)+`$G)v~ImMIvrcE+hzvid-B+tqT z(_c)#EYg0n?g&%srld6{y#0KKv!iN4^p;pleyQU8@<8@kU7BRxg-B*rsUQ0;U3FcS zIn!D(SHU2q#zICV@}IXhXVBu}0$2VS+4Z8@^Bf``I{JQQ;9&bbyRb z>*qG9?LT4B^0Y~A-ljEwE`}|-m;KY`bN_q+p(I<^2}6#y0X*jTG^v_ho9>&{(W-$?e*8^yVbt1Q7S(r_0IWW=$-Y^wku}uo>zXi;G-e{fu1TC?Je>%Khgpq+E ziJ5`Hh{(i-mdb(-dNDil>^&d;PGdP3s&2VpJ#sJTywS3y4*ARQ-z6=YccyRKL@FO$GvczH5J5(Q<&j;Nt@E^;Ms?ZISj`lY4nu zyWyYR94x*nZqGK&o;mmC#uMu!1SG;$GA4R^P+vDP{B)IJ2sRatt4X3#YHgl9k zux850T$JWD&DwD%RDa2tu$@|#1+DiE*KLxE@-v&_X8gi2S3%ci&&}fp{IBU>X7f8Z zbr*wu-`fJ)s<;nRRkzQ)nj>JfP0e`T;c11_&Y8^6ZZgQX&ptB0z1}S9V~XOQWPj9f zxO`*T^&P-)_y`OKN7B-oUw(;Oera9`YIw}`GvqsDz;ov_SARh0TjpH`49v{jJ~??w zTSXQ7CT(d5`0tk)nAqS|(7o3B{!g7#%3>^Ux>$5iO`0TZmLe3tNO`J;o%GoiCsLi3 z1ga=Bv0hu4!Y=(KXMrPg`|5WsAvdh9Pi0wou{y$TZ8Tr@y56W*m74(@1urz}HTHb^ zkd$xxzvoBRyn}i>PKi8dH+&!4{GBmAx@dFY*{X%2|5J`9zcBf>^s(`?SqeS3Q`Y|Y z`{8(-z0L0rOGL{9ycwB9m~q$3z_0-V0fx7rP(rSyVcM|Q(;&qlu%uBPNWv?3q*@!< zVr+FQSUcF_tw1KEriIywy{<**xDM3;uX%B61l7F|0QMs=Ie@H!YJ}CqxV3}oVuW^m zY}(;9Gj3Brbu+@0R6M4j)YLEovDeiwBbPKTBhEnVH8&!jAl9Il(g>wTh D*3;c- diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.md5 deleted file mode 100644 index 3a84ad832..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -f7d54f505b8affa8a8235e01fbc38219 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.sha1 deleted file mode 100644 index 3a72dc7bb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0-sources.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -821f8ec6e32c3fecd1b1fb85f83bfea148a86da8 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar deleted file mode 100644 index 712c664dda8ea6bedb9163817453eb1b3cc2cbf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6480 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 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.md5 deleted file mode 100644 index 04d4ce468..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -a2af4d8c1c00d8405ae2074fbcca87aa \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.sha1 deleted file mode 100644 index 19ae195e0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -43dfd03d32f70b8b72cdbefa1678dbeacf9a1f8c \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom deleted file mode 100644 index d3c136b8c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom +++ /dev/null @@ -1,56 +0,0 @@ - - - maven-shared-components - org.apache.maven.shared - 4 - - 4.0.0 - org.apache.maven.shared - maven-downloader - Maven Downloader - 1.0 - Provide a super simple interface for downloading a single artifact. - http://maven.apache.org - - scm:svn:https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.0 - scm:svn:https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.0 - https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.0 - - - - - org.codehaus.plexus - plexus-maven-plugin - 1.1 - - - - descriptor - - - - - - - - - org.apache.maven - maven-artifact-manager - 2.0 - - - org.apache.maven - maven-artifact - 2.0 - - - junit - junit - 3.8.1 - test - - - - deployed - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.md5 deleted file mode 100644 index 89e705b79..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -8ab3c303c12323c469be9beb591f3f12 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.sha1 deleted file mode 100644 index 1a75091fa..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -e4484abb15526e31b8ea514d3ba68e31189c12b0 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-javadoc.jar deleted file mode 100644 index 3114e1ae642ae2adda79bb821ad03179a50500f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38215 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 L2NqZ}*+D!20matL diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.md5 deleted file mode 100644 index aada2770b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -c892f8533031750419c77dc87ed35a3b \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.sha1 deleted file mode 100644 index 37af4fe89..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1-sources.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -8aa5027d2688c4540eec9c2b85bbee496f6d4e7c \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar deleted file mode 100644 index ae6638b797da482d7ebb56c178095fa7717f798f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6478 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 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.md5 deleted file mode 100644 index f5c14a937..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -b8e59f5b162f8c0f6ef23d8d249cfed8 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.sha1 deleted file mode 100644 index 1bcc406e0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -923bf441d4ab0d80d45e77576dff86e2b22d2ac4 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom deleted file mode 100644 index db5fe99e7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom +++ /dev/null @@ -1,56 +0,0 @@ - - - maven-shared-components - org.apache.maven.shared - 4 - - 4.0.0 - org.apache.maven.shared - maven-downloader - Maven Downloader - 1.1 - Provide a super simple interface for downloading a single artifact. - http://maven.apache.org - - scm:svn:https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.1 - scm:svn:https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.1 - https://svn.apache.org/repos/asf/maven/shared/tags/maven-downloader-1.1 - - - - - org.codehaus.plexus - plexus-maven-plugin - 1.1 - - - - descriptor - - - - - - - - - org.apache.maven - maven-artifact-manager - 2.0 - - - org.apache.maven - maven-artifact - 2.0 - - - junit - junit - 3.8.1 - test - - - - deployed - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.md5 deleted file mode 100644 index bffe895ee..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -f4d26363c090391c0b8f5a1c4d5c946a \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.sha1 deleted file mode 100644 index fb062b05f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/1.1/maven-downloader-1.1.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -59f81ef23c583f0dd8e7f432ba88595c645e1fc1 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml deleted file mode 100644 index 6fbced025..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - org.apache.maven.shared - maven-downloader - 1.0 - - 1.1 - - 1.0 - 1.1 - - 20061212214311 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.md5 deleted file mode 100644 index 354ec6c58..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -f18235bd6072aa77beb7e01f07905e53 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.sha1 deleted file mode 100644 index 0ff8edcaf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/shared/maven-downloader/maven-metadata.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -7f87ddac6169d99fa54f29bc9a3f7af5a9c8741f \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/maven-metadata.xml deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/2.0.4-SNAPSHOT/test-2.0.4-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/2.0.4-SNAPSHOT/test-2.0.4-SNAPSHOT.pom deleted file mode 100644 index ca115b505..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/test/2.0.4-SNAPSHOT/test-2.0.4-SNAPSHOT.pom +++ /dev/null @@ -1,143 +0,0 @@ - - - - 4.0.0 - - org.apache.maven - test - pom - - ${prj.ver.maj}.${prj.ver.min}.${prj.ver.inc}${prj.ver.suf} - - - Test Archiva - - ${pom.name} [version ${pom.version}]. Confluence: - ${kb.confluence.url}/display/${prj.confluence.path} - - - - - - org.apache.maven.wagon - - wagon-webdav - 1.0-beta-2 - - - - - - jira - - ${kb.jira.url}/browse/${prj.jira.key} - - - hudson - - ${kb.hudson.url}/view/${prj.hudson.view.root} - -=${prj.svn.branch}=-/ - - - 2005 - - - - KB Internal License - repo - This is internal project of KB. - - - - - KB, a.s. - http://www.kb.cz/ - - - - - http://svn-server/renaissance - - http://svn-server/renaissance - http://tools-server/projects - - scp://tools-server/home/tools/var/maven-sites - - http://jira-server/jira - - http://confluence-server/confluence - - http://tools-server/hudson - - - ${pom.groupId} - ${pom.groupId} - ${kb.svn.url}/${prj.svn.path} - ${prj.svn}/tags - trunk - - 1.5 - UTF-8 - - - - 2 - 0 - 4 - -SNAPSHOT - - - - ${prj.url.root}/${prj.ver.maj}.${prj.ver.min}${prj.ver.suf} - - test/maven-arch/test-arch - TSTARCH - - TEST/Archiva - - - - http://j.random.server.com/docs/${project.groupId}/${project.artifactId}/${project.version} - - - scm:svn:${prj.svn}/${prj.svn.branch} - - scm:svn:${prj.svn}/${prj.svn.branch} - - - ${kb.svn.view.url}/${prj.svn.path}/${prj.svn.branch} - - - - - internal - Internal Release Repository - - dav:http://tools-server/archiva/repository/internal - - - false - - - snapshots - Internal Snapshot Repository - - dav:http://tools-server/archiva/repository/snapshots - - false - - - - website - Internal Maven Website - ${kb.site.dir}/${prj.url.relative} - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-test-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0-test-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.tar.gz deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.zip b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/testing/1.0/testing-1.0.zip deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom deleted file mode 100644 index 452727f28..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom +++ /dev/null @@ -1,29 +0,0 @@ - - - - 4.0.0 - org.apache.maven.update - test-not-updated - 1.0 - Maven Test Repository Artifact Discovery - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/maven-metadata.xml deleted file mode 100644 index bd56a21c1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-not-updated/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - org.apache.maven.update - test-not-updated - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom deleted file mode 100644 index edd7b6479..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom +++ /dev/null @@ -1,29 +0,0 @@ - - - - 4.0.0 - org.apache.maven.update - test-updated - 1.0 - Maven Test Repository Artifact Discovery - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-updated/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-updated/maven-metadata.xml deleted file mode 100644 index 86e063ca8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/update/test-updated/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - org.apache.maven.update - test-updated - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom deleted file mode 100644 index 12538e81a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.testgroup - discovery - 1.0 - Maven Test Repository Artifact Discovery - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml deleted file mode 100644 index 8ee18048c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - org.apache.testgroup - discovery - 1.0 - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml deleted file mode 100644 index b024ef7ef..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - org.apache.testgroup - discovery - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/CVS/Root b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/CVS/Root deleted file mode 100644 index 2e65f24a6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -not a real CVS root - for testing exclusions diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/KEYS b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/KEYS deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/foo/invalid-1.0.foo b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/foo/invalid-1.0.foo deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/invalid-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/invalid-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/1.0/invalid-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/1.0/invalid-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/invalid-1.0.rar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/invalid-1.0.rar deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/invalid.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/invalid.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/no-extension b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/invalid/jars/no-extension deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/javax.sql/jars/jdbc-2.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/javax.sql/jars/jdbc-2.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/maven/poms/wagon-ssh-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/maven/poms/wagon-ssh-1.0.pom deleted file mode 100644 index e6a72b9d6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/maven/poms/wagon-ssh-1.0.pom +++ /dev/null @@ -1,52 +0,0 @@ - - - - ../../project.xml - 3 - maven - wagon-ssh - wagon-ssh - Wagon SSH provider - 1.0-SNAPSHOT - - Wagon Provider for protocols from SSH2 family based on JSCH - org.apache.maven.wagon.providers.ssh - 2003 - http://maven.apache.org/wagon/wagon-providers/ssh - http://jira.codehaus.org/BrowseProject.jspa?id=10319 - /www/maven.apache.org/wagon/wagon-providers/ssh - - scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:maven-wagon/wagon-providers/ssh - http://cvs.apache.org/viewcvs/maven-wagon/wagon-providers/ssh/ - - - - - Michal Maczka - michal - michal.maczka@dimatics.com - Dimatics - - Creator - Developer - Release Manager - - - - - - - maven - wagon-api - 0.9-SNAPSHOT - jar - - - jsch - jsch - 0.1.14 - jar - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-not-updated-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-not-updated-1.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-updated-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven.update/jars/test-updated-1.0.jar deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/some-ejb-1.0-client.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/some-ejb-1.0-client.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0-20050611.112233-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0-20050611.112233-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.tar.gz b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.tar.gz deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.zip b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-1.0.zip deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-UNKNOWN.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/jars/testing-UNKNOWN.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/java-sources/testing-1.0-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/java-sources/testing-1.0-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/javadoc.jars/testing-1.0-javadoc.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/javadoc.jars/testing-1.0-javadoc.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/poms/maven-model-v3-2.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/poms/maven-model-v3-2.0.pom deleted file mode 100644 index 509552ef9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/poms/maven-model-v3-2.0.pom +++ /dev/null @@ -1,15 +0,0 @@ - - 3 - org.apache.maven - maven-model-v3 - Maven Model v3 - 2.0 - Maven Model v3 - - - org.codehaus.plexus - plexus-utils - 1.0.4 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/poms/testing-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/legacy-repository/org.apache.maven/poms/testing-1.0.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/include_xml-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/include_xml-1.0.pom deleted file mode 100644 index 18cd43943..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/include_xml-1.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - org.apache.archiva.metadata.tests - include_xml - 1.0 - xml - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/include_xml-1.0.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/include_xml-1.0.xml deleted file mode 100644 index 176a50bcf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/include_xml-1.0.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/maven-metadata.xml deleted file mode 100644 index 624cbdace..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/include_xml/1.0/maven-metadata.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/incomplete_metadata_a/1.0/incomplete_metadata_a-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/incomplete_metadata_a/1.0/incomplete_metadata_a-1.0.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/incomplete_metadata_a/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/incomplete_metadata_a/maven-metadata.xml deleted file mode 100644 index 5ecf49673..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/incomplete_metadata_a/maven-metadata.xml +++ /dev/null @@ -1,5 +0,0 @@ - - org.apache.archiva.metadata.tests - incomplete_metadata_a - 1.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_a/1.0/missing_metadata_a-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_a/1.0/missing_metadata_a-1.0.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/1.0.1/missing_metadata_b-1.0.1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/1.0.1/missing_metadata_b-1.0.1.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/1.0/missing_metadata_b-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/1.0/missing_metadata_b-1.0.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/2.0-20070821-dev/missing_metadata_b-2.0-20070821-dev.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/2.0-20070821-dev/missing_metadata_b-2.0-20070821-dev.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/2.0.1/missing_metadata_b-2.0.1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/2.0.1/missing_metadata_b-2.0.1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/2.0/missing_metadata_b-2.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_metadata_b/2.0/missing_metadata_b-2.0.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/1.0/proxied_multi-1.0.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/1.0/proxied_multi-1.0.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/1.1/proxied_multi-1.1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/1.1/proxied_multi-1.1.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/2.1/proxied_multi-2.1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/2.1/proxied_multi-2.1.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata-central.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata-central.xml deleted file mode 100644 index a8b764bd7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata-central.xml +++ /dev/null @@ -1,16 +0,0 @@ - - org.apache.archiva.metadata.tests - proxied_multi - 1.0 - - 3.1 - 3.1 - - 1.0 - 1.0.1 - 2.0 - 3.0 - 3.1 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata-java.net.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata-java.net.xml deleted file mode 100644 index 13024c74e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata-java.net.xml +++ /dev/null @@ -1,16 +0,0 @@ - - org.apache.archiva.metadata.tests - proxied_multi - 1.0 - - 2.0.1 - 2.0.1 - - 1.0-spec - 2.0 - 2.0-proposal-beta - 2.0-spec - 2.0.1 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata.xml deleted file mode 100644 index a1e402c94..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/proxied_multi/maven-metadata.xml +++ /dev/null @@ -1,14 +0,0 @@ - - org.apache.archiva.metadata.tests - proxied_multi - 1.0 - - 2.1 - 2.1 - - 1.0 - 1.1 - 2.1 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-apache-snapshots.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-apache-snapshots.xml deleted file mode 100644 index f3e0dbd0a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-apache-snapshots.xml +++ /dev/null @@ -1,5 +0,0 @@ - - org.apache.archiva.metadata.tests - snap_shots_a - 1.0-alpha-11-SNAPSHOT - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-internal-snapshots.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-internal-snapshots.xml deleted file mode 100644 index f3e0dbd0a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-internal-snapshots.xml +++ /dev/null @@ -1,5 +0,0 @@ - - org.apache.archiva.metadata.tests - snap_shots_a - 1.0-alpha-11-SNAPSHOT - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-snapshots.codehaus.org.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-snapshots.codehaus.org.xml deleted file mode 100644 index f62d4482f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata-snapshots.codehaus.org.xml +++ /dev/null @@ -1,12 +0,0 @@ - - org.apache.archiva.metadata.tests - snap_shots_a - 1.0-alpha-11-SNAPSHOT - - - 20070315.033030 - 10 - - 20070315.033030 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 3265734bd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,9 +0,0 @@ - - org.apache.archiva.metadata.tests - snap_shots_a - 1.0-alpha-11-SNAPSHOT - - - 20070314163205 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2-javadoc.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2-javadoc.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070221.194724-2.war deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070302.212723-3-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070302.212723-3-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070302.212723-3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070302.212723-3.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070302.212723-3.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070302.212723-3.war deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070303.152828-4-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070303.152828-4-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070303.152828-4.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070303.152828-4.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070303.152828-4.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070303.152828-4.war deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.war deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.war.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070305.215149-5.war.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.war deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.war.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070307.170909-6.war.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.war deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.war.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070314.211405-9.war.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.war deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.war.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-20070316.175232-11.war.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-SNAPSHOT-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-SNAPSHOT-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-SNAPSHOT.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-SNAPSHOT.war b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_a/1.0-alpha-11-SNAPSHOT/snap_shots_a-1.0-alpha-11-SNAPSHOT.war deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index efda5def5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,12 +0,0 @@ - - org.apache.archiva.metadata.tests - snap_shots_b - 2.2-SNAPSHOT - - - 20070316.153953 - 10 - - 20070316153953 - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.172940-1.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2-sources.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2-sources.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2-sources.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2-sources.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070221.194724-2.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3-sources.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3-sources.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3-sources.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3-sources.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070302.212723-3.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4-sources.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4-sources.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4-sources.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4-sources.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070303.152828-4.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070305.215149-5.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070307.170909-6.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.190911-7.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.193642-8.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-javadoc.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-javadoc.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-javadoc.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-javadoc.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-javadoc.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-javadoc.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-sources.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-sources.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-sources.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-sources.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-sources.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9-sources.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070314.211405-9.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.jar b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.jar.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.jar.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.jar.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.pom deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.pom.md5 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.pom.md5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/snap_shots_b/2.2-SNAPSHOT/snap_shots_b-2.2-20070316.153953-10.pom.sha1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/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-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.jar deleted file mode 100644 index c2ea777c166ef02a078a9b92d2cead0124845d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45568 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 diff --git a/archiva-security-fix/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-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom deleted file mode 100644 index a987f03ec..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - groupId - artifactId - 1.0-alpha-1 - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/maven-metadata.xml deleted file mode 100644 index 526cc825a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/simple-repository/groupId/artifactId/maven-metadata.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - groupId - artifactId - 1.0-alpha-1 - - - 1.0-alpha-1 - - - diff --git a/archiva-security-fix/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-security-fix/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 deleted file mode 100644 index cf613e847..000000000 --- a/archiva-security-fix/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 +++ /dev/null @@ -1,19 +0,0 @@ - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/log4j.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/log4j.xml deleted file mode 100644 index 23d4d08d6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/log4j.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/m1-repo-filelist.txt b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/m1-repo-filelist.txt deleted file mode 100644 index 3ddb2c4ce..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/m1-repo-filelist.txt +++ /dev/null @@ -1,6230 +0,0 @@ -# Directory listing from people.apache.org -# of path /www/people.apache.org/repo/m1-ibiblio-rsync-repository -# Taken September 9, 2007 -# -# File listing has been filtered using the following sed command. -# -# sed -e "/\.md5$/d" -e "/\.sha1$/d" -e "/\.asc$/d" -e "/\.meta$/d" \ -# -e "/LICENSE/d" -e "/\/licenses\//d" -# -# Any entries in here that are blatently wrong should be deleted. -# -ant/jars/ant-1.4.1.jar -ant/jars/ant-1.5.1.jar -ant/jars/ant-1.5.2.jar -ant/jars/ant-1.5.3-1.jar -ant/jars/ant-1.5.4.jar -ant/jars/ant-1.6.3.jar -ant/jars/ant-1.5.jar -ant/jars/ant-1.6.1.jar -ant/jars/ant-1.6.2.jar -ant/jars/ant-1.6.jar -ant/jars/ant-1.6.4.jar -ant/jars/ant-1.6.5.jar -ant/jars/ant-antlr-1.6.1.jar -ant/jars/ant-antlr-1.6.2.jar -ant/jars/ant-antlr-1.6.3.jar -ant/jars/ant-antlr-1.6.4.jar -ant/jars/ant-apache-oro-1.6.5.jar -ant/jars/ant-antlr-1.6.5.jar -ant/jars/ant-antlr-1.6.jar -ant/jars/ant-apache-bcel-1.6.2.jar -ant/jars/ant-apache-bcel-1.6.3.jar -ant/jars/ant-apache-bcel-1.6.4.jar -ant/jars/ant-apache-bcel-1.6.5.jar -ant/jars/ant-apache-bsf-1.6.1.jar -ant/jars/ant-apache-bsf-1.6.2.jar -ant/jars/ant-apache-bsf-1.6.3.jar -ant/jars/ant-apache-bsf-1.6.4.jar -ant/jars/ant-apache-bsf-1.6.5.jar -ant/jars/ant-apache-bsf-1.6.jar -ant/jars/ant-apache-log4j-1.6.2.jar -ant/jars/ant-apache-log4j-1.6.3.jar -ant/jars/ant-apache-log4j-1.6.4.jar -ant/jars/ant-apache-log4j-1.6.5.jar -ant/jars/ant-apache-oro-1.6.2.jar -ant/jars/ant-apache-oro-1.6.3.jar -ant/jars/ant-apache-oro-1.6.4.jar -ant/jars/ant-apache-regexp-1.6.2.jar -ant/jars/ant-apache-regexp-1.6.3.jar -ant/jars/ant-apache-regexp-1.6.4.jar -ant/jars/ant-apache-regexp-1.6.5.jar -ant/jars/ant-apache-resolver-1.6.jar -ant/jars/ant-apache-resolver-1.6.1.jar -ant/jars/ant-apache-resolver-1.6.2.jar -ant/jars/ant-apache-resolver-1.6.3.jar -ant/jars/ant-apache-resolver-1.6.4.jar -ant/jars/ant-apache-resolver-1.6.5.jar -ant/jars/ant-commons-logging-1.6.1.jar -ant/jars/ant-commons-logging-1.6.2.jar -ant/jars/ant-commons-logging-1.6.3.jar -ant/jars/ant-commons-logging-1.6.4.jar -ant/jars/ant-commons-logging-1.6.5.jar -ant/jars/ant-commons-logging-1.6.jar -ant/jars/ant-commons-net-1.6.1.jar -ant/jars/ant-commons-net-1.6.2.jar -ant/jars/ant-commons-net-1.6.3.jar -ant/jars/ant-commons-net-1.6.jar -ant/jars/ant-commons-net-1.6.4.jar -ant/jars/ant-commons-net-1.6.5.jar -ant/jars/ant-icontract-1.6.1.jar -ant/jars/ant-icontract-1.6.2.jar -ant/jars/ant-icontract-1.6.3.jar -ant/jars/ant-icontract-1.6.4.jar -ant/jars/ant-icontract-1.6.5.jar -ant/jars/ant-icontract-1.6.jar -ant/jars/ant-jai-1.6.1.jar -ant/jars/ant-jai-1.6.2.jar -ant/jars/ant-jai-1.6.3.jar -ant/jars/ant-jakarta-bcel-1.6.1.jar -ant/jars/ant-jai-1.6.4.jar -ant/jars/ant-jai-1.6.5.jar -ant/jars/ant-jai-1.6.jar -ant/jars/ant-jakarta-bcel-1.6.jar -ant/jars/ant-jakarta-log4j-1.6.1.jar -ant/jars/ant-jakarta-log4j-1.6.jar -ant/jars/ant-jakarta-oro-1.6.1.jar -ant/jars/ant-jakarta-oro-1.6.jar -ant/jars/ant-jakarta-regexp-1.6.1.jar -ant/jars/ant-jakarta-regexp-1.6.jar -ant/jars/ant-javamail-1.6.1.jar -ant/jars/ant-javamail-1.6.2.jar -ant/jars/ant-javamail-1.6.3.jar -ant/jars/ant-javamail-1.6.4.jar -ant/jars/ant-javamail-1.6.5.jar -ant/jars/ant-javamail-1.6.jar -ant/jars/ant-jdepend-1.6.1.jar -ant/jars/ant-jdepend-1.6.2.jar -ant/jars/ant-jdepend-1.6.jar -ant/jars/ant-jdepend-1.6.3.jar -ant/jars/ant-jdepend-1.6.4.jar -ant/jars/ant-jdepend-1.6.5.jar -ant/jars/ant-jmf-1.6.1.jar -ant/jars/ant-jmf-1.6.2.jar -ant/jars/ant-jmf-1.6.3.jar -ant/jars/ant-jmf-1.6.4.jar -ant/jars/ant-jmf-1.6.5.jar -ant/jars/ant-jmf-1.6.jar -ant/jars/ant-jsch-1.6.1.jar -ant/jars/ant-jsch-1.6.2.jar -ant/jars/ant-jsch-1.6.3.jar -ant/jars/ant-jsch-1.6.4.jar -ant/jars/ant-jsch-1.6.5.jar -ant/jars/ant-jsch-1.6.jar -ant/jars/ant-junit-1.6.1.jar -ant/jars/ant-junit-1.6.2.jar -ant/jars/ant-junit-1.6.3.jar -ant/jars/ant-junit-1.6.4.jar -ant/jars/ant-junit-1.6.5.jar -ant/jars/ant-junit-1.6.jar -ant/jars/ant-launcher-1.6.1.jar -ant/jars/ant-launcher-1.6.2.jar -ant/jars/ant-launcher-1.6.3.jar -ant/jars/ant-launcher-1.6.4.jar -ant/jars/ant-launcher-1.6.5.jar -ant/jars/ant-launcher-1.6.jar -ant/jars/ant-netrexx-1.6.1.jar -ant/jars/ant-netrexx-1.6.2.jar -ant/jars/ant-netrexx-1.6.3.jar -ant/jars/ant-netrexx-1.6.4.jar -ant/jars/ant-netrexx-1.6.5.jar -ant/jars/ant-netrexx-1.6.jar -ant/jars/ant-nodeps-1.6.1.jar -ant/jars/ant-nodeps-1.6.2.jar -ant/jars/ant-nodeps-1.6.3.jar -ant/jars/ant-nodeps-1.6.4.jar -ant/jars/ant-nodeps-1.6.5.jar -ant/jars/ant-nodeps-1.6.jar -ant/jars/ant-optional-1.4.1.jar -ant/jars/ant-optional-1.5.1.jar -ant/jars/ant-optional-1.5.2.jar -ant/jars/ant-optional-1.5.3-1.jar -ant/jars/ant-optional-1.5.jar -ant/jars/ant-starteam-1.6.1.jar -ant/jars/ant-starteam-1.6.2.jar -ant/jars/ant-starteam-1.6.3.jar -ant/jars/ant-starteam-1.6.4.jar -ant/jars/ant-starteam-1.6.5.jar -ant/jars/ant-swing-1.6.1.jar -ant/jars/ant-starteam-1.6.jar -ant/jars/ant-stylebook-1.6.1.jar -ant/jars/ant-stylebook-1.6.2.jar -ant/jars/ant-stylebook-1.6.3.jar -ant/jars/ant-stylebook-1.6.4.jar -ant/jars/ant-swing-1.6.5.jar -ant/jars/ant-stylebook-1.6.5.jar -ant/jars/ant-stylebook-1.6.jar -ant/jars/ant-swing-1.6.2.jar -ant/jars/ant-swing-1.6.3.jar -ant/jars/ant-swing-1.6.4.jar -ant/jars/ant-swing-1.6.jar -ant/jars/ant-trax-1.6.1.jar -ant/jars/ant-trax-1.6.2.jar -ant/jars/ant-trax-1.6.3.jar -ant/jars/ant-trax-1.6.4.jar -ant/jars/ant-trax-1.6.5.jar -ant/jars/ant-trax-1.6.jar -ant/jars/ant-vaj-1.6.1.jar -ant/jars/ant-vaj-1.6.2.jar -ant/jars/ant-vaj-1.6.3.jar -ant/jars/ant-vaj-1.6.4.jar -ant/jars/ant-vaj-1.6.5.jar -ant/jars/ant-vaj-1.6.jar -ant/jars/ant-weblogic-1.6.1.jar -ant/jars/ant-weblogic-1.6.2.jar -ant/jars/ant-weblogic-1.6.3.jar -ant/jars/ant-weblogic-1.6.4.jar -ant/jars/ant-weblogic-1.6.5.jar -ant/jars/ant-weblogic-1.6.jar -ant/jars/ant-xalan1-1.6.1.jar -ant/jars/ant-xalan1-1.6.2.jar -ant/jars/ant-xalan1-1.6.3.jar -ant/jars/ant-xalan1-1.6.4.jar -ant/jars/ant-xalan1-1.6.5.jar -ant/jars/ant-xalan1-1.6.jar -ant/jars/ant-xalan2-1.6.1.jar -ant/jars/ant-xalan2-1.6.jar -ant/jars/ant-xslp-1.6.1.jar -ant/jars/ant-xslp-1.6.2.jar -ant/jars/ant-xslp-1.6.3.jar -ant/jars/ant-xslp-1.6.4.jar -ant/jars/ant-xslp-1.6.5.jar -ant/jars/ant-xslp-1.6.jar -ant/jars/optional-1.5.4.jar -ant-contrib/jars/ant-contrib-20020829.jar -ant-contrib/jars/cpptasks-20030309.134440.jar -ant-doxygen/jars/ant-doxygen-1.2.jar -apache-jaxme/jars/jaxme-incubation-0.2.jar -apache-jaxme/jars/jaxme-rt-incubation-0.2.jar -apache-jaxme/jars/jaxmeapi-incubation-0.2.jar -apache-jaxme/jars/jaxmejs-incubation-0.2.jar -apache-jaxme/jars/jaxmepm-incubation-0.2.jar -apache-jaxme/jars/jaxmexs-incubation-0.2.jar -avalon/jars/avalon-activation-1.0.jar -avalon/jars/avalon-activation-spi-1.0.jar -avalon/jars/avalon-assembly-1.0.jar -avalon/jars/avalon-assembly-spi-1.0.jar -avalon/jars/avalon-composition-1.0.jar -avalon/jars/avalon-meta-1.0.jar -avalon/jars/avalon-composition-spi-1.0.jar -avalon/jars/avalon-framework-4.1.4.jar -avalon/jars/avalon-framework-api-4.1.4.jar -avalon/jars/avalon-logkit-1.2.2.jar -avalon/jars/avalon-logkit-1.2.jar -avalon/jars/avalon-meta-spi-1.0.jar -avalon/jars/avalon-meta-tools-1.0.jar -avalon-activation/jars/avalon-activation-api-1.0-beta-1-RC1.jar -avalon-activation/jars/avalon-activation-api-1.0b1.jar -avalon-activation/jars/avalon-activation-api-1.1-dev.jar -avalon-activation/jars/avalon-activation-api-1.2-dev.jar -avalon-activation/jars/avalon-activation-api-1.2.1-dev.jar -avalon-activation/jars/avalon-activation-api-1.2.1.jar -avalon-activation/jars/avalon-activation-api-1.2.2.jar -avalon-activation/jars/avalon-activation-api-2.0-DEV.jar -avalon-activation/jars/avalon-activation-api-2.0.0.jar -avalon-activation/jars/avalon-activation-impl-1.0-beta-1-RC1.jar -avalon-activation/jars/avalon-activation-impl-1.0b1.jar -avalon-activation/jars/avalon-activation-impl-1.0b2.jar -avalon-activation/jars/avalon-activation-impl-1.1-dev.jar -avalon-activation/jars/avalon-activation-impl-1.2-dev.jar -avalon-activation/jars/avalon-activation-impl-1.2.1-dev.jar -avalon-activation/jars/avalon-activation-impl-1.2.2-dev.jar -avalon-activation/jars/avalon-activation-impl-1.2.3-dev.jar -avalon-activation/jars/avalon-activation-impl-1.2.3.jar -avalon-activation/jars/avalon-activation-impl-1.2.4.jar -avalon-activation/jars/avalon-activation-impl-1.2.5.jar -avalon-activation/jars/avalon-activation-impl-1.2.6.jar -avalon-activation/jars/avalon-activation-impl-2.0-DEV.jar -avalon-activation/jars/avalon-activation-impl-2.0.0.jar -avalon-activation/jars/avalon-activation-spi-1.0-beta-1-RC1.jar -avalon-activation/jars/avalon-activation-spi-1.0b1.jar -avalon-activation/jars/avalon-activation-spi-1.1-dev.jar -avalon-activation/jars/avalon-activation-spi-1.2-dev.jar -avalon-activation/jars/avalon-activation-spi-1.2.1-dev.jar -avalon-activation/jars/avalon-activation-spi-1.2.2-dev.jar -avalon-activation/jars/avalon-activation-spi-1.2.2.jar -avalon-activation/jars/avalon-activation-spi-2.0-DEV.jar -avalon-apps/jars/avalon-apps-hsql-0.1.jar -avalon-apps/jars/avalon-apps-sevak-api-0.1.jar -avalon-apps/jars/avalon-apps-sevak-jo-0.1.jar -avalon-composition/jars/avalon-composition-api-1.0-beta-1-RC1.jar -avalon-composition/jars/avalon-composition-api-1.0b1.jar -avalon-composition/jars/avalon-composition-api-1.1-dev.jar -avalon-composition/jars/avalon-composition-api-1.2-dev.jar -avalon-composition/jars/avalon-composition-api-1.2.1-dev.jar -avalon-composition/jars/avalon-composition-api-1.2.1.jar -avalon-composition/jars/avalon-composition-api-1.2.2.jar -avalon-composition/jars/avalon-composition-api-1.2.3.jar -avalon-composition/jars/avalon-composition-api-2.0-DEV.jar -avalon-composition/jars/avalon-composition-api-2.0.0.jar -avalon-composition/jars/avalon-composition-impl-1.0-beta-1-RC1.jar -avalon-composition/jars/avalon-composition-impl-1.0b1.jar -avalon-composition/jars/avalon-composition-impl-1.1-dev.jar -avalon-composition/jars/avalon-composition-impl-1.2-dev.jar -avalon-composition/jars/avalon-composition-impl-1.2.1-dev.jar -avalon-composition/jars/avalon-composition-impl-1.2.2-dev.jar -avalon-composition/jars/avalon-composition-impl-1.2.2.jar -avalon-composition/jars/avalon-composition-impl-1.2.3.jar -avalon-composition/jars/avalon-composition-impl-1.2.4.jar -avalon-composition/jars/avalon-composition-impl-1.2.5.jar -avalon-composition/jars/avalon-composition-impl-2.0-DEV.jar -avalon-composition/jars/avalon-composition-impl-2.0.0.jar -avalon-composition/jars/avalon-composition-spi-1.0-beta-1-RC1.jar -avalon-composition/jars/avalon-composition-spi-1.0b1.jar -avalon-composition/jars/avalon-composition-spi-1.1-dev.jar -avalon-composition/jars/avalon-composition-spi-1.2-dev.jar -avalon-composition/jars/avalon-composition-spi-1.2.1-dev.jar -avalon-composition/jars/avalon-composition-spi-1.2.1.jar -avalon-composition/jars/avalon-composition-spi-2.0-DEV.jar -avalon-composition/jars/avalon-composition-spi-2.0.0.jar -avalon-cornerstone/jars/avalon-cornerstone-4.0.jar -avalon-extension/jars/avalon-extension-impl-1.0-RC1.jar -avalon-extension/jars/avalon-extension-impl-1.0.jar -avalon-extension/jars/avalon-extension-impl-1.1.jar -avalon-extension/jars/avalon-extension-spi-1.0-RC1.jar -avalon-extension/jars/avalon-extension-spi-1.0.jar -avalon-extension/jars/avalon-extension-spi-1.1.jar -avalon-framework/distributions/avalon-framework-4.1.5-RC3-src.tar.gz -avalon-framework/distributions/avalon-framework-4.1.5-RC3-src.zip -avalon-framework/distributions/avalon-framework-4.1.5-RC3.tar.gz -avalon-framework/distributions/avalon-framework-4.1.5-RC3.zip -avalon-framework/distributions/avalon-framework-4.1.5.src.tar.gz -avalon-framework/distributions/avalon-framework-4.1.5.src.zip -avalon-framework/distributions/avalon-framework-4.1.5.tar.gz -avalon-framework/distributions/avalon-framework-4.1.5.zip -avalon-framework/jars/avalon-framework-20020627.jar -avalon-framework/jars/avalon-framework-4.0.jar -avalon-framework/jars/avalon-framework-4.1.3.jar -avalon-framework/jars/avalon-framework-4.1.4.jar -avalon-framework/jars/avalon-framework-4.1.5-RC2.jar -avalon-framework/jars/avalon-framework-4.1.5-dev.jar -avalon-framework/jars/avalon-framework-4.1.5.jar -avalon-framework/jars/avalon-framework-api-4.1.5-RC2.jar -avalon-framework/jars/avalon-framework-api-4.1.5-RC3.jar -avalon-framework/jars/avalon-framework-api-4.1.5-dev.jar -avalon-framework/jars/avalon-framework-api-4.1.5.jar -avalon-framework/jars/avalon-framework-api-4.2.0.jar -avalon-framework/jars/avalon-framework-api-4.3.jar -avalon-framework/jars/avalon-framework-impl-4.1.5-RC2.jar -avalon-framework/jars/avalon-framework-impl-4.1.5-RC3.jar -avalon-framework/jars/avalon-framework-impl-4.1.5-dev.jar -avalon-framework/jars/avalon-framework-impl-4.1.5.jar -avalon-framework/jars/avalon-framework-impl-4.2.0.jar -avalon-framework/jars/avalon-framework-impl-4.3.jar -avalon-framework/poms/avalon-framework-api-4.3.pom -avalon-framework/poms/avalon-framework-impl-4.3.pom -avalon-http/blocks/avalon-http-1.3.block -avalon-http/jars/avalon-http-api-1.3.jar -avalon-http/jars/avalon-http-impl-1.3.jar -avalon-logging/jars/avalon-logging-api-1.0.0.jar -avalon-logging/jars/avalon-logging-impl-1.0.0.jar -avalon-logging/jars/avalon-logging-logkit-api-1.0.0.jar -avalon-logging/jars/avalon-logging-logkit-impl-1.0.0.jar -avalon-logging/jars/avalon-logging-spi-1.0.0.jar -avalon-logkit/jars/avalon-logkit-2.0.0.jar -avalon-logkit/jars/avalon-logkit-2.0.jar -avalon-logkit/jars/avalon-logkit-2.1.jar -avalon-logkit/poms/avalon-logkit-2.1.pom -avalon-meta/distributions/1.1/avalon-meta-1.1-src.tar.gz -avalon-meta/distributions/1.1/avalon-meta-1.1-src.zip -avalon-meta/distributions/1.1/avalon-meta-1.1.tar.gz -avalon-meta/distributions/1.1/avalon-meta-1.1.zip -avalon-meta/distributions/1.3/avalon-meta-1.3-src.tar.gz.MD5 -avalon-meta/distributions/1.3/avalon-meta-1.3-src.tar.gz -avalon-meta/distributions/1.3/avalon-meta-1.3-src.zip.MD5 -avalon-meta/distributions/1.3/avalon-meta-1.3-src.zip -avalon-meta/distributions/1.3/avalon-meta-1.3.tar.gz.MD5 -avalon-meta/distributions/1.3/avalon-meta-1.3.tar.gz -avalon-meta/distributions/1.3/avalon-meta-1.3.zip.MD5 -avalon-meta/distributions/1.3/avalon-meta-1.3.zip -avalon-meta/distributions/1.3.1/avalon-meta-1.3.1-src.tar.gz.MD5 -avalon-meta/distributions/1.3.1/avalon-meta-1.3.1-src.tar.gz -avalon-meta/distributions/1.3.1/avalon-meta-1.3.1-src.zip.MD5 -avalon-meta/distributions/1.3.1/avalon-meta-1.3.1-src.zip -avalon-meta/distributions/1.3.1/avalon-meta-1.3.1.tar.gz.MD5 -avalon-meta/distributions/1.3.1/avalon-meta-1.3.1.tar.gz -avalon-meta/distributions/1.3.1/avalon-meta-1.3.1.zip.MD5 -avalon-meta/distributions/1.3.1/avalon-meta-1.3.1.zip -avalon-meta/jars/avalon-meta-api-1.2.1-dev.jar -avalon-meta/jars/avalon-meta-api-1.1-RC1.jar -avalon-meta/jars/avalon-meta-api-1.1.jar -avalon-meta/jars/avalon-meta-api-1.2-dev.jar -avalon-meta/jars/avalon-meta-api-1.4.0.jar -avalon-meta/jars/avalon-meta-api-1.3.jar -avalon-meta/jars/avalon-meta-spi-1.2.1-dev.jar -avalon-meta/jars/avalon-meta-impl-1.1-RC1.jar -avalon-meta/jars/avalon-meta-impl-1.1.jar -avalon-meta/jars/avalon-meta-impl-1.2-dev.jar -avalon-meta/jars/avalon-meta-spi-1.2-dev.jar -avalon-meta/jars/avalon-meta-impl-1.2.1-dev.jar -avalon-meta/jars/avalon-meta-impl-1.3.1.jar -avalon-meta/jars/avalon-meta-impl-1.3.jar -avalon-meta/jars/avalon-meta-impl-1.4.0.jar -avalon-meta/jars/avalon-meta-plugin-1.1.jar -avalon-meta/jars/avalon-meta-plugin-1.2.jar -avalon-meta/jars/avalon-meta-plugin-1.3.1.jar -avalon-meta/jars/avalon-meta-plugin-1.3.2.jar -avalon-meta/jars/avalon-meta-plugin-1.3.jar -avalon-meta/jars/avalon-meta-spi-1.1-RC1.jar -avalon-meta/jars/avalon-meta-spi-1.1.jar -avalon-meta/jars/avalon-meta-spi-1.4.0.jar -avalon-meta/jars/avalon-meta-spi-1.3.jar -avalon-meta/jars/avalon-meta-tools-1.1-RC1.jar -avalon-meta/jars/avalon-meta-tools-1.1.jar -avalon-meta/jars/avalon-meta-tools-1.2-dev.jar -avalon-meta/jars/avalon-meta-tools-1.2.1-dev.jar -avalon-meta/jars/avalon-meta-tools-1.3.1.jar -avalon-meta/jars/avalon-meta-tools-1.3.jar -avalon-meta/jars/avalon-meta-tools-1.4.0.jar -avalon-meta/plugins/avalon-meta-plugin-1.3.1.jar -avalon-meta/plugins/avalon-meta-plugin-1.1.jar -avalon-meta/plugins/avalon-meta-plugin-1.2.jar -avalon-meta/plugins/avalon-meta-plugin-1.3.2.jar -avalon-meta/plugins/avalon-meta-plugin-1.3.jar -avalon-meta/plugins/avalon-meta-plugin-1.4.0.jar -avalon-phoenix/jars/avalon-phoenix-bsh-commands-4.0.4.jar -avalon-phoenix/jars/avalon-phoenix-client-4.0.4.jar -avalon-phoenix/jars/avalon-phoenix-client-4.0.jar -avalon-phoenix/jars/avalon-phoenix-engine-4.0.4.jar -avalon-phoenix/jars/avalon-phoenix-loader-4.0.4.jar -avalon-phoenix/jars/avalon-phoenix-metagenerate-4.0.jar -avalon-repository/distributions/1.2/avalon-repository-1.2-src.tar.gz.MD5 -avalon-repository/distributions/1.2/avalon-repository-1.2-src.tar.gz -avalon-repository/distributions/1.2/avalon-repository-1.2-src.zip.MD5 -avalon-repository/distributions/1.2/avalon-repository-1.2-src.zip -avalon-repository/distributions/1.2/avalon-repository-1.2.tar.gz.MD5 -avalon-repository/distributions/1.2/avalon-repository-1.2.tar.gz -avalon-repository/distributions/1.2/avalon-repository-1.2.zip.MD5 -avalon-repository/distributions/1.2/avalon-repository-1.2.zip -avalon-repository/jars/avalon-repository-api-1.2-dev.jar -avalon-repository/jars/avalon-repository-api-1.2.jar -avalon-repository/jars/avalon-repository-api-2.0.0.jar -avalon-repository/jars/avalon-repository-cli-2.0.0.jar -avalon-repository/jars/avalon-repository-impl-1.2.jar -avalon-repository/jars/avalon-repository-impl-1.0-beta-1-RC1.jar -avalon-repository/jars/avalon-repository-impl-1.0b1.jar -avalon-repository/jars/avalon-repository-impl-1.1-dev.jar -avalon-repository/jars/avalon-repository-impl-1.2-dev.jar -avalon-repository/jars/avalon-repository-impl-2.0.0.jar -avalon-repository/jars/avalon-repository-main-1.2-dev.jar -avalon-repository/jars/avalon-repository-main-1.2.jar -avalon-repository/jars/avalon-repository-main-2.0.0.jar -avalon-repository/jars/avalon-repository-spi-1.0-beta-1-RC1.jar -avalon-repository/jars/avalon-repository-spi-1.0b1.jar -avalon-repository/jars/avalon-repository-spi-1.1-dev.jar -avalon-repository/jars/avalon-repository-spi-1.2-dev.jar -avalon-repository/jars/avalon-repository-spi-1.2.jar -avalon-repository/jars/avalon-repository-spi-2.0.0.jar -avalon-repository/jars/avalon-repository-util-1.2-dev.jar -avalon-repository/jars/avalon-repository-util-1.2.jar -avalon-repository/jars/avalon-repository-util-2.0.0.jar -avalon-repository/propertiess/repository.properties -avalon-util/distributions/1.0/avalon-util-1.0-src.tar.gz.MD5 -avalon-util/distributions/1.0/avalon-util-1.0-src.tar.gz -avalon-util/distributions/1.0/avalon-util-1.0-src.zip.MD5 -avalon-util/distributions/1.0/avalon-util-1.0-src.zip -avalon-util/distributions/1.0/avalon-util-1.0.tar.gz.MD5 -avalon-util/distributions/1.0/avalon-util-1.0.tar.gz -avalon-util/distributions/1.0/avalon-util-1.0.zip.MD5 -avalon-util/distributions/1.0/avalon-util-1.0.zip -avalon-util/jars/avalon-util-criteria-1.0-dev.jar -avalon-util/jars/avalon-plugin-1.0-dev.jar -avalon-util/jars/avalon-plugin-1.0.jar -avalon-util/jars/avalon-util-criteria-1.0.jar -avalon-util/jars/avalon-util-criteria-1.1.0.jar -avalon-util/jars/avalon-util-defaults-1.0-dev.jar -avalon-util/jars/avalon-util-defaults-1.1-dev.jar -avalon-util/jars/avalon-util-defaults-1.1.jar -avalon-util/jars/avalon-util-defaults-1.2.1.jar -avalon-util/jars/avalon-util-env-1.0-dev.jar -avalon-util/jars/avalon-util-env-1.0.jar -avalon-util/jars/avalon-util-env-1.1.1.jar -avalon-util/jars/avalon-util-exception-1.0-dev.jar -avalon-util/jars/avalon-util-exception-1.0.0.jar -avalon-util/jars/avalon-util-exception-1.0.jar -avalon-util/jars/avalon-util-extension-api-1.2.0.jar -avalon-util/jars/avalon-util-extension-impl-1.2.0.jar -avalon-util/jars/avalon-util-i18n-1.0.0.jar -avalon-util/plugins/avalon-util-plugin-1.0.0.jar -avalon-util/plugins/avalon-plugin-1.0-dev.jar -avalon-util/plugins/avalon-plugin-1.0.jar -axis/jars/axis-1.0.jar -axis/jars/axis-1.1-beta.jar -axis/jars/axis-1.1.jar -axis/jars/axis-1.2-RC1.jar -axis/jars/axis-1.2-RC2.jar -axis/jars/axis-1.2-RC3.jar -axis/jars/axis-1.2-beta-2.jar -axis/jars/axis-1.2-alpha-1.jar -axis/jars/axis-1.2-beta-3.jar -axis/jars/axis-1.2.1.jar -axis/jars/axis-1.2.jar -axis/jars/axis-1.3.jar -axis/jars/axis-1.4.jar -axis/jars/axis-1.4.jar.sha -axis/jars/axis-ant-1.1.jar -axis/jars/axis-ant-1.2-RC1.jar -axis/jars/axis-ant-1.2.1.jar -axis/jars/axis-ant-1.2-RC2.jar -axis/jars/axis-ant-1.2-RC3.jar -axis/jars/axis-ant-1.2-beta-2.jar -axis/jars/axis-ant-1.2-beta-3.jar -axis/jars/axis-ant-1.2.jar -axis/jars/axis-ant-1.3.jar -axis/jars/axis-ant-1.4.jar -axis/jars/axis-jaxrpc-1.2.jar -axis/jars/axis-ant-1.4.jar.sha -axis/jars/axis-jaxrpc-1.2-RC1.jar -axis/jars/axis-jaxrpc-1.2-RC2.jar -axis/jars/axis-jaxrpc-1.2-RC3.jar -axis/jars/axis-jaxrpc-1.2-alpha-1.jar -axis/jars/axis-jaxrpc-1.2-beta-2.jar -axis/jars/axis-jaxrpc-1.2-beta-3.jar -axis/jars/axis-jaxrpc-1.2.1.jar -axis/jars/axis-jaxrpc-1.3.jar -axis/jars/axis-jaxrpc-1.4.jar -axis/jars/axis-jaxrpc-1.4.jar.sha -axis/jars/axis-saaj-1.2-RC1.jar -axis/jars/axis-saaj-1.2-RC2.jar -axis/jars/axis-saaj-1.2-RC3.jar -axis/jars/axis-saaj-1.2-alpha-1.jar -axis/jars/axis-saaj-1.2-beta-2.jar -axis/jars/axis-saaj-1.2-beta-3.jar -axis/jars/axis-saaj-1.2.1.jar -axis/jars/axis-saaj-1.2.jar -axis/jars/axis-saaj-1.3.jar -axis/jars/axis-saaj-1.4.jar -axis/jars/axis-saaj-1.4.jar.sha -axis/jars/axis-schema-1.3.jar -axis/jars/axis-wsdl4j-1.2-RC1.jar -axis/jars/axis-wsdl4j-1.2-RC2.jar -axis/jars/axis-wsdl4j-1.2-RC3.jar -axis/jars/axis-wsdl4j-1.2-beta-2.jar -axis/jars/axis-wsdl4j-1.2-beta-3.jar -axis/jars/axis-wsdl4j-1.2.1.jar -axis/jars/axis-wsdl4j-1.2.jar -axis/jars/axis-wsdl4j-1.3.jar -axis/poms/axis-1.2.1.pom -axis2/jars/addressing-0.94.mar -axis2/jars/axis2-0.9.jar -axis2/jars/axis2-0.95.jar -axis2/jars/axis2-1.0.jar -axis2/jars/axis2-adb-0.94.jar -axis2/jars/axis2-adb-0.95.jar -axis2/jars/axis2-adb-1.0.jar -axis2/jars/axis2-codegen-0.94.jar -axis2/jars/axis2-codegen-0.95.jar -axis2/jars/axis2-codegen-1.0.jar -axis2/jars/axis2-core-0.94.jar -axis2/jars/axis2-doom-0.94.jar -axis2/jars/axis2-doom-0.95.jar -axis2/jars/axis2-java2wsdl-1.0.jar -axis2/jars/axis2-jibx-1.0.jar -axis2/jars/axis2-kernel-0.95.jar -axis2/jars/axis2-kernel-1.0.jar -axis2/jars/axis2-xmlbeans-1.0.jar -axis2/mars/addressing-0.94.mar -axis2/mars/addressing-0.95.mar -axis2/mars/addressing-1.0.mar -axis2/mars/rampart-1.0.mar -axis2/mars/security-0.95.mar -axis2/mars/soapmonitor-1.0.mar -batik/jars/batik-1.1.1.jar -batik/jars/batik-1.5.jar -batik/jars/batik-awt-util-1.5.jar -batik/jars/batik-awt-util-1.6.jar -batik/jars/batik-bridge-1.5.jar -batik/jars/batik-bridge-1.6.jar -batik/jars/batik-css-1.5.jar -batik/jars/batik-css-1.6.jar -batik/jars/batik-dom-1.5.jar -batik/jars/batik-dom-1.6.jar -batik/jars/batik-ext-1.5.jar -batik/jars/batik-ext-1.6.jar -batik/jars/batik-extension-1.5.jar -batik/jars/batik-extension-1.6.jar -batik/jars/batik-gui-util-1.5.jar -batik/jars/batik-gui-util-1.6.jar -batik/jars/batik-gvt-1.5.jar -batik/jars/batik-gvt-1.6.jar -batik/jars/batik-parser-1.5.jar -batik/jars/batik-parser-1.6.jar -batik/jars/batik-rasterizer-1.5.jar -batik/jars/batik-rasterizer-1.6.jar -batik/jars/batik-script-1.5.jar -batik/jars/batik-rasterizer-ext-1.6.jar -batik/jars/batik-rasterizer-ext.jar -batik/jars/batik-script-1.6.jar -batik/jars/batik-slideshow-1.6.jar -batik/jars/batik-squiggle-1.6.jar -batik/jars/batik-squiggle-ext-1.6.jar -batik/jars/batik-squiggle-ext.jar -batik/jars/batik-svg-dom-1.5.jar -batik/jars/batik-svg-dom-1.6.jar -batik/jars/batik-svggen-1.5.jar -batik/jars/batik-svggen-1.6.jar -batik/jars/batik-svgpp-1.6.jar -batik/jars/batik-swing-1.5.jar -batik/jars/batik-swing-1.6.jar -batik/jars/batik-transcoder-1.5.jar -batik/jars/batik-transcoder-1.6.jar -batik/jars/batik-ttf2svg-1.6.jar -batik/jars/batik-util-1.5.jar -batik/jars/batik-util-1.6.jar -batik/jars/batik-xml-1.5.jar -batik/jars/batik-xml-1.6.jar -batik/poms/batik-awt-util-1.6.pom -batik/poms/batik-bridge-1.6.pom -batik/poms/batik-css-1.6.pom -batik/poms/batik-dom-1.6.pom -batik/poms/batik-ext-1.6.pom -batik/poms/batik-extension-1.6.pom -batik/poms/batik-gvt-1.6.pom -batik/poms/batik-gui-util-1.6.pom -batik/poms/batik-parser-1.6.pom -batik/poms/batik-rasterizer-1.6.pom -batik/poms/batik-rasterizer-ext-1.6.pom -batik/poms/batik-script-1.6.pom -batik/poms/batik-slideshow-1.6.pom -batik/poms/batik-squiggle-1.6.pom -batik/poms/batik-squiggle-ext-1.6.pom -batik/poms/batik-svg-dom-1.6.pom -batik/poms/batik-svggen-1.6.pom -batik/poms/batik-svgpp-1.6.pom -batik/poms/batik-swing-1.6.pom -batik/poms/batik-transcoder-1.6.pom -batik/poms/batik-ttf2svg-1.6.pom -batik/poms/batik-util-1.6.pom -batik/poms/batik-xml-1.6.pom -bsf/jars/bsf-2.2.jar -bsf/jars/bsf-2.3.0-rc1.jar -bcel/jars/bcel-5.0.jar -bcel/jars/bcel-5.1.jar -beehive/jars/apache-xbean-beehive-1.0-alpha.jar -beehive/jars/beehive-netui-compiler-1.0-alpha.jar -beehive/jars/beehive-netui-pageflow-1.0-alpha.jar -beehive/jars/beehive-netui-scoping-1.0-alpha.jar -beehive/jars/controls-1.0-alpha.jar -beehive/jars/beehive-netui-tags-databinding-1.0-alpha.jar -beehive/jars/beehive-netui-tags-html-1.0-alpha.jar -beehive/jars/beehive-netui-tags-template-1.0-alpha.jar -beehive/jars/beehive-netui-util-1.0-alpha.jar -beehive/jars/wsdltypes-beehive-1.0-alpha.jar -beehive/jars/wsm-1.0-alpha.jar -beehive/jars/wsm-axis-1.0-alpha.jar -beehive/poms/beehive-controls-1.0.pom -beehive/tlds/beehive-netui-tags-databinding-1.0-alpha.tld -beehive/tlds/beehive-netui-tags-html-1.0-alpha.tld -beehive/tlds/beehive-netui-tags-template-1.0-alpha.tld -beehive/xmls/buildWebappCore.xml -beehive/xmls/buildWebapp.xml -beehive/xmls/webappRuntimeCore.xml -beehive/xmls/runTomcatCore.xml -cactus/distributions/jakarta-cactus-1.5-beta1-src.zip -cactus/distributions/jakarta-cactus-12-1.5-beta1.zip -cactus/distributions/jakarta-cactus-13-1.5-beta1.zip -cactus/jars/cactus-1.4b1.jar -cactus/jars/cactus-12-1.4.1.jar -cactus/jars/cactus-12-1.5-beta1.jar -cactus/jars/cactus-12-1.7.1.jar -cactus/jars/cactus-12-1.7.2.jar -cactus/jars/cactus-13-1.4.1.jar -cactus/jars/cactus-13-1.5-beta1.jar -cactus/jars/cactus-13-1.5-rc1.jar -cactus/jars/cactus-13-1.5dev-20030522.jar -cactus/jars/cactus-13-1.5dev-20030607.jar -cactus/jars/cactus-13-1.5dev-20030619.jar -cactus/jars/cactus-13-1.6.1.jar -cactus/jars/cactus-13-1.6dev-20030807.jar -cactus/jars/cactus-13-1.6.jar -cactus/jars/cactus-13-1.6dev-20030809.jar -cactus/jars/cactus-13-1.6dev-20030829.jar -cactus/jars/cactus-13-1.6dev-20040115.jar -cactus/jars/cactus-13-1.7.1.jar -cactus/jars/cactus-13-1.7.2.jar -cactus/jars/cactus-ant-13-1.6.1.jar -cactus/jars/cactus-ant-13-1.6.jar -cactus/jars/cactus-13-1.7.jar -cactus/jars/cactus-13-1.7dev-20040815.jar -cactus/jars/cactus-ant-1.4.1.jar -cactus/jars/cactus-ant-12-1.5-beta1.jar -cactus/jars/cactus-ant-12-1.7.1.jar -cactus/jars/cactus-ant-12-1.7.2.jar -cactus/jars/cactus-ant-13-1.5-beta1.jar -cactus/jars/cactus-ant-13-1.5-rc1.jar -cactus/jars/cactus-ant-13-1.5dev-20030522.jar -cactus/jars/cactus-ant-13-1.5dev-20030607.jar -cactus/jars/cactus-ant-13-1.5dev-20030619.jar -cactus/jars/cactus-ant-13-1.6dev-20030807.jar -cactus/jars/cactus-ant-13-1.6dev-20030809.jar -cactus/jars/cactus-ant-13-1.6dev-20030829.jar -cactus/jars/cactus-ant-13-1.6dev-20040115.jar -cactus/jars/cactus-ant-13-1.7.1.jar -cactus/jars/cactus-ant-13-1.7dev-20040815.jar -cactus/jars/cactus-ant-13-1.7.2.jar -cactus/jars/cactus-ant-13-1.7.jar -cactus/jars/cactus-framework-13-1.5dev-20030322.jar -cactus/jars/cactus-framework-13-1.5dev-20030407.jar -cactus/jars/cactus-integration-ant-1.5dev-20030322.jar -cactus/jars/cactus-integration-ant-1.5dev-20030407.jar -cactus/plugins/cactus-maven-1.6.1.jar -cactus/plugins/cactus-maven-1.6.jar -cactus/plugins/cactus-maven-1.6dev-20031031.jar -cactus/plugins/cactus-maven-1.6dev-20040115.jar -cactus/plugins/cactus-maven-1.7.1.jar -cactus/plugins/cactus-maven-1.7dev-20040815.jar -cactus/plugins/cactus-maven-1.7.2.jar -cactus/plugins/cactus-maven-1.7.jar -cactus/poms/cactus-maven-1.7.1.pom -cactus/poms/cactus-maven-1.7.2.pom -cactus/zips/jakarta-cactus-integration-ant-13-1.5dev-20030325.zip -cactus/zips/jakarta-cactus-integration-ant-13-1.5dev-20030329.zip -cactus/zips/jakarta-cactus-integration-ant-13-1.5dev-20030407.zip -cactus/zips/jakarta-cactus-integration-ant-13-1.5dev-20030426.zip -cocoon/jars/cocoon-2.1.3.jar -cocoon/jars/cocoon-2.1.4.jar -cocoon/jars/cocoon-2.1.5.1-deprecated.jar -cocoon/jars/cocoon-2.1.5.1.jar -cocoon/jars/cocoon-2.1.6.jar -cocoon/jars/cocoon-2.1.7.jar -cocoon/jars/cocoon-2.1.8.jar -cocoon/jars/cocoon-2.1.9.jar -cocoon/jars/cocoon-ajax-2.1.8.jar -cocoon/jars/cocoon-ajax-2.1.9.jar -cocoon/jars/cocoon-apples-2.1.3.jar -cocoon/jars/cocoon-apples-2.1.4.jar -cocoon/jars/cocoon-apples-2.1.5.1.jar -cocoon/jars/cocoon-apples-2.1.6.jar -cocoon/jars/cocoon-apples-2.1.7.jar -cocoon/jars/cocoon-apples-2.1.8.jar -cocoon/jars/cocoon-apples-2.1.9.jar -cocoon/jars/cocoon-asciiart-2.1.3.jar -cocoon/jars/cocoon-asciiart-2.1.4.jar -cocoon/jars/cocoon-asciiart-2.1.5.1.jar -cocoon/jars/cocoon-asciiart-2.1.6.jar -cocoon/jars/cocoon-asciiart-2.1.7.jar -cocoon/jars/cocoon-asciiart-2.1.8.jar -cocoon/jars/cocoon-asciiart-2.1.9.jar -cocoon/jars/cocoon-authentication-fw-2.1.3.jar -cocoon/jars/cocoon-authentication-fw-2.1.4.jar -cocoon/jars/cocoon-authentication-fw-2.1.5.1.jar -cocoon/jars/cocoon-authentication-fw-2.1.6.jar -cocoon/jars/cocoon-authentication-fw-2.1.7.jar -cocoon/jars/cocoon-authentication-fw-2.1.8.jar -cocoon/jars/cocoon-authentication-fw-2.1.9.jar -cocoon/jars/cocoon-axis-2.1.3.jar -cocoon/jars/cocoon-axis-2.1.4.jar -cocoon/jars/cocoon-axis-2.1.5.1.jar -cocoon/jars/cocoon-axis-2.1.6.jar -cocoon/jars/cocoon-axis-2.1.7.jar -cocoon/jars/cocoon-axis-2.1.8.jar -cocoon/jars/cocoon-axis-2.1.9.jar -cocoon/jars/cocoon-batik-2.1.3.jar -cocoon/jars/cocoon-batik-2.1.4.jar -cocoon/jars/cocoon-batik-2.1.5.1.jar -cocoon/jars/cocoon-batik-2.1.6.jar -cocoon/jars/cocoon-batik-2.1.7.jar -cocoon/jars/cocoon-batik-2.1.8.jar -cocoon/jars/cocoon-batik-2.1.9.jar -cocoon/jars/cocoon-bsf-2.1.3.jar -cocoon/jars/cocoon-bsf-2.1.4.jar -cocoon/jars/cocoon-bsf-2.1.5.1.jar -cocoon/jars/cocoon-bsf-2.1.6.jar -cocoon/jars/cocoon-bsf-2.1.7.jar -cocoon/jars/cocoon-bsf-2.1.8.jar -cocoon/jars/cocoon-bsf-2.1.9.jar -cocoon/jars/cocoon-captcha-2.1.8.jar -cocoon/jars/cocoon-captcha-2.1.9.jar -cocoon/jars/cocoon-chaperon-2.1.3.jar -cocoon/jars/cocoon-chaperon-2.1.4.jar -cocoon/jars/cocoon-chaperon-2.1.5.1.jar -cocoon/jars/cocoon-chaperon-2.1.6.jar -cocoon/jars/cocoon-chaperon-2.1.7.jar -cocoon/jars/cocoon-chaperon-2.1.8.jar -cocoon/jars/cocoon-chaperon-2.1.9.jar -cocoon/jars/cocoon-cron-2.1.3.jar -cocoon/jars/cocoon-cron-2.1.4.jar -cocoon/jars/cocoon-cron-2.1.5.1.jar -cocoon/jars/cocoon-cron-2.1.6.jar -cocoon/jars/cocoon-cron-2.1.7.jar -cocoon/jars/cocoon-cron-2.1.8.jar -cocoon/jars/cocoon-cron-2.1.9.jar -cocoon/jars/cocoon-databases-2.1.3.jar -cocoon/jars/cocoon-databases-2.1.4.jar -cocoon/jars/cocoon-databases-2.1.5.1.jar -cocoon/jars/cocoon-databases-2.1.6.jar -cocoon/jars/cocoon-databases-2.1.7.jar -cocoon/jars/cocoon-deli-2.1.6.jar -cocoon/jars/cocoon-databases-2.1.8.jar -cocoon/jars/cocoon-databases-2.1.9.jar -cocoon/jars/cocoon-deli-2.1.3.jar -cocoon/jars/cocoon-deli-2.1.4.jar -cocoon/jars/cocoon-deli-2.1.5.1.jar -cocoon/jars/cocoon-deli-2.1.7.jar -cocoon/jars/cocoon-deli-2.1.8.jar -cocoon/jars/cocoon-deli-2.1.9.jar -cocoon/jars/cocoon-deprecated-2.1.3.jar -cocoon/jars/cocoon-deprecated-2.1.4.jar -cocoon/jars/cocoon-deprecated-2.1.6.jar -cocoon/jars/cocoon-deprecated-2.1.5.1.jar -cocoon/jars/cocoon-deprecated-2.1.7.jar -cocoon/jars/cocoon-deprecated-2.1.8.jar -cocoon/jars/cocoon-deprecated-2.1.9.jar -cocoon/jars/cocoon-eventcache-2.1.3.jar -cocoon/jars/cocoon-eventcache-2.1.4.jar -cocoon/jars/cocoon-eventcache-2.1.5.1.jar -cocoon/jars/cocoon-eventcache-2.1.6.jar -cocoon/jars/cocoon-eventcache-2.1.7.jar -cocoon/jars/cocoon-eventcache-2.1.8.jar -cocoon/jars/cocoon-eventcache-2.1.9.jar -cocoon/jars/cocoon-faces-2.1.6.jar -cocoon/jars/cocoon-faces-2.1.7.jar -cocoon/jars/cocoon-faces-2.1.8.jar -cocoon/jars/cocoon-faces-2.1.9.jar -cocoon/jars/cocoon-fop-2.1.3.jar -cocoon/jars/cocoon-fop-2.1.4.jar -cocoon/jars/cocoon-fop-2.1.5.1.jar -cocoon/jars/cocoon-fop-2.1.6.jar -cocoon/jars/cocoon-fop-2.1.7.jar -cocoon/jars/cocoon-fop-2.1.8.jar -cocoon/jars/cocoon-fop-2.1.9.jar -cocoon/jars/cocoon-forms-2.1.6.jar -cocoon/jars/cocoon-forms-2.1.5.1.jar -cocoon/jars/cocoon-forms-2.1.7.jar -cocoon/jars/cocoon-forms-2.1.8.jar -cocoon/jars/cocoon-forms-2.1.9.jar -cocoon/jars/cocoon-hsqldb-2.1.3.jar -cocoon/jars/cocoon-hsqldb-2.1.4.jar -cocoon/jars/cocoon-hsqldb-2.1.5.1.jar -cocoon/jars/cocoon-hsqldb-2.1.6.jar -cocoon/jars/cocoon-hsqldb-2.1.7.jar -cocoon/jars/cocoon-hsqldb-2.1.8.jar -cocoon/jars/cocoon-hsqldb-2.1.9.jar -cocoon/jars/cocoon-html-2.1.3.jar -cocoon/jars/cocoon-html-2.1.4.jar -cocoon/jars/cocoon-html-2.1.5.1.jar -cocoon/jars/cocoon-html-2.1.6.jar -cocoon/jars/cocoon-html-2.1.7.jar -cocoon/jars/cocoon-html-2.1.8.jar -cocoon/jars/cocoon-html-2.1.9.jar -cocoon/jars/cocoon-imageop-2.1.9.jar -cocoon/jars/cocoon-itext-2.1.3.jar -cocoon/jars/cocoon-itext-2.1.4.jar -cocoon/jars/cocoon-itext-2.1.5.1.jar -cocoon/jars/cocoon-itext-2.1.6.jar -cocoon/jars/cocoon-itext-2.1.7.jar -cocoon/jars/cocoon-itext-2.1.8.jar -cocoon/jars/cocoon-itext-2.1.9.jar -cocoon/jars/cocoon-javaflow-2.1.5.1.jar -cocoon/jars/cocoon-javaflow-2.1.6.jar -cocoon/jars/cocoon-javaflow-2.1.7.jar -cocoon/jars/cocoon-javaflow-2.1.8.jar -cocoon/jars/cocoon-javaflow-2.1.9.jar -cocoon/jars/cocoon-jcr-2.1.8.jar -cocoon/jars/cocoon-jcr-2.1.9.jar -cocoon/jars/cocoon-jfor-2.1.3.jar -cocoon/jars/cocoon-jfor-2.1.4.jar -cocoon/jars/cocoon-jfor-2.1.5.1.jar -cocoon/jars/cocoon-jfor-2.1.6.jar -cocoon/jars/cocoon-jfor-2.1.7.jar -cocoon/jars/cocoon-jfor-2.1.8.jar -cocoon/jars/cocoon-jfor-2.1.9.jar -cocoon/jars/cocoon-jms-2.1.4.jar -cocoon/jars/cocoon-jms-2.1.5.1.jar -cocoon/jars/cocoon-jms-2.1.6.jar -cocoon/jars/cocoon-jms-2.1.7.jar -cocoon/jars/cocoon-jms-2.1.8.jar -cocoon/jars/cocoon-jms-2.1.9.jar -cocoon/jars/cocoon-jsp-2.1.3.jar -cocoon/jars/cocoon-jsp-2.1.4.jar -cocoon/jars/cocoon-jsp-2.1.5.1.jar -cocoon/jars/cocoon-jsp-2.1.6.jar -cocoon/jars/cocoon-jsp-2.1.7.jar -cocoon/jars/cocoon-jsp-2.1.8.jar -cocoon/jars/cocoon-jsp-2.1.9.jar -cocoon/jars/cocoon-jxforms-2.1.3.jar -cocoon/jars/cocoon-jxforms-2.1.4.jar -cocoon/jars/cocoon-linkrewriter-2.1.3.jar -cocoon/jars/cocoon-linkrewriter-2.1.4.jar -cocoon/jars/cocoon-linkrewriter-2.1.5.1.jar -cocoon/jars/cocoon-linkrewriter-2.1.6.jar -cocoon/jars/cocoon-linkrewriter-2.1.7.jar -cocoon/jars/cocoon-linkrewriter-2.1.8.jar -cocoon/jars/cocoon-linkrewriter-2.1.9.jar -cocoon/jars/cocoon-linotype-2.1.3.jar -cocoon/jars/cocoon-linotype-2.1.4.jar -cocoon/jars/cocoon-linotype-2.1.5.1.jar -cocoon/jars/cocoon-linotype-2.1.6.jar -cocoon/jars/cocoon-linotype-2.1.7.jar -cocoon/jars/cocoon-linotype-2.1.8.jar -cocoon/jars/cocoon-linotype-2.1.9.jar -cocoon/jars/cocoon-lucene-2.1.3.jar -cocoon/jars/cocoon-lucene-2.1.4.jar -cocoon/jars/cocoon-lucene-2.1.5.1.jar -cocoon/jars/cocoon-mail-2.1.4.jar -cocoon/jars/cocoon-lucene-2.1.6.jar -cocoon/jars/cocoon-lucene-2.1.7.jar -cocoon/jars/cocoon-lucene-2.1.8.jar -cocoon/jars/cocoon-lucene-2.1.9.jar -cocoon/jars/cocoon-mail-2.1.3.jar -cocoon/jars/cocoon-mail-2.1.5.1.jar -cocoon/jars/cocoon-mail-2.1.6.jar -cocoon/jars/cocoon-mail-2.1.7.jar -cocoon/jars/cocoon-mail-2.1.8.jar -cocoon/jars/cocoon-mail-2.1.9.jar -cocoon/jars/cocoon-midi-2.1.3.jar -cocoon/jars/cocoon-midi-2.1.4.jar -cocoon/jars/cocoon-midi-2.1.5.1.jar -cocoon/jars/cocoon-midi-2.1.6.jar -cocoon/jars/cocoon-midi-2.1.7.jar -cocoon/jars/cocoon-midi-2.1.8.jar -cocoon/jars/cocoon-midi-2.1.9.jar -cocoon/jars/cocoon-naming-2.1.3.jar -cocoon/jars/cocoon-naming-2.1.4.jar -cocoon/jars/cocoon-naming-2.1.5.1.jar -cocoon/jars/cocoon-naming-2.1.6.jar -cocoon/jars/cocoon-naming-2.1.7.jar -cocoon/jars/cocoon-naming-2.1.8.jar -cocoon/jars/cocoon-naming-2.1.9.jar -cocoon/jars/cocoon-ojb-2.1.4.jar -cocoon/jars/cocoon-ojb-2.1.5.1.jar -cocoon/jars/cocoon-ojb-2.1.6.jar -cocoon/jars/cocoon-ojb-2.1.7.jar -cocoon/jars/cocoon-ojb-2.1.8.jar -cocoon/jars/cocoon-ojb-2.1.9.jar -cocoon/jars/cocoon-paranoid-2.1.4.jar -cocoon/jars/cocoon-paranoid-2.1.5.1.jar -cocoon/jars/cocoon-paranoid-2.1.6.jar -cocoon/jars/cocoon-paranoid-2.1.7.jar -cocoon/jars/cocoon-paranoid-2.1.8.jar -cocoon/jars/cocoon-paranoid-2.1.9.jar -cocoon/jars/cocoon-petstore-2.1.3.jar -cocoon/jars/cocoon-petstore-2.1.4.jar -cocoon/jars/cocoon-petstore-2.1.5.1.jar -cocoon/jars/cocoon-portal-2.1.6.jar -cocoon/jars/cocoon-petstore-2.1.6.jar -cocoon/jars/cocoon-petstore-2.1.7.jar -cocoon/jars/cocoon-petstore-2.1.8.jar -cocoon/jars/cocoon-petstore-2.1.9.jar -cocoon/jars/cocoon-php-2.1.3.jar -cocoon/jars/cocoon-php-2.1.4.jar -cocoon/jars/cocoon-php-2.1.5.1.jar -cocoon/jars/cocoon-poi-2.1.3.jar -cocoon/jars/cocoon-poi-2.1.4.jar -cocoon/jars/cocoon-poi-2.1.5.1.jar -cocoon/jars/cocoon-poi-2.1.6.jar -cocoon/jars/cocoon-poi-2.1.7.jar -cocoon/jars/cocoon-poi-2.1.8.jar -cocoon/jars/cocoon-poi-2.1.9.jar -cocoon/jars/cocoon-portal-2.1.3.jar -cocoon/jars/cocoon-portal-2.1.4.jar -cocoon/jars/cocoon-portal-2.1.5.1.jar -cocoon/jars/cocoon-portal-2.1.7.jar -cocoon/jars/cocoon-portal-2.1.8.jar -cocoon/jars/cocoon-portal-2.1.9.jar -cocoon/jars/cocoon-portal-fw-2.1.3.jar -cocoon/jars/cocoon-portal-fw-2.1.4.jar -cocoon/jars/cocoon-portal-fw-2.1.5.1.jar -cocoon/jars/cocoon-precept-2.1.3.jar -cocoon/jars/cocoon-precept-2.1.4.jar -cocoon/jars/cocoon-profiler-2.1.3.jar -cocoon/jars/cocoon-profiler-2.1.4.jar -cocoon/jars/cocoon-profiler-2.1.5.1.jar -cocoon/jars/cocoon-profiler-2.1.6.jar -cocoon/jars/cocoon-profiler-2.1.7.jar -cocoon/jars/cocoon-profiler-2.1.8.jar -cocoon/jars/cocoon-profiler-2.1.9.jar -cocoon/jars/cocoon-proxy-2.1.3.jar -cocoon/jars/cocoon-proxy-2.1.4.jar -cocoon/jars/cocoon-proxy-2.1.5.1.jar -cocoon/jars/cocoon-proxy-2.1.6.jar -cocoon/jars/cocoon-proxy-2.1.7.jar -cocoon/jars/cocoon-proxy-2.1.8.jar -cocoon/jars/cocoon-proxy-2.1.9.jar -cocoon/jars/cocoon-python-2.1.3.jar -cocoon/jars/cocoon-python-2.1.4.jar -cocoon/jars/cocoon-python-2.1.5.1.jar -cocoon/jars/cocoon-python-2.1.6.jar -cocoon/jars/cocoon-python-2.1.7.jar -cocoon/jars/cocoon-python-2.1.8.jar -cocoon/jars/cocoon-python-2.1.9.jar -cocoon/jars/cocoon-qdox-2.1.3.jar -cocoon/jars/cocoon-qdox-2.1.4.jar -cocoon/jars/cocoon-qdox-2.1.5.1.jar -cocoon/jars/cocoon-qdox-2.1.6.jar -cocoon/jars/cocoon-qdox-2.1.7.jar -cocoon/jars/cocoon-qdox-2.1.8.jar -cocoon/jars/cocoon-qdox-2.1.9.jar -cocoon/jars/cocoon-querybean-2.1.7.jar -cocoon/jars/cocoon-querybean-2.1.8.jar -cocoon/jars/cocoon-querybean-2.1.9.jar -cocoon/jars/cocoon-repository-2.1.3.jar -cocoon/jars/cocoon-repository-2.1.4.jar -cocoon/jars/cocoon-repository-2.1.5.1.jar -cocoon/jars/cocoon-repository-2.1.6.jar -cocoon/jars/cocoon-repository-2.1.7.jar -cocoon/jars/cocoon-repository-2.1.8.jar -cocoon/jars/cocoon-repository-2.1.9.jar -cocoon/jars/cocoon-scratchpad-2.1.3.jar -cocoon/jars/cocoon-scratchpad-2.1.4.jar -cocoon/jars/cocoon-scratchpad-2.1.5.1.jar -cocoon/jars/cocoon-scratchpad-2.1.6.jar -cocoon/jars/cocoon-serializers-2.1.9.jar -cocoon/jars/cocoon-serializers-2.1.5.1.jar -cocoon/jars/cocoon-serializers-2.1.6.jar -cocoon/jars/cocoon-serializers-2.1.7.jar -cocoon/jars/cocoon-serializers-2.1.8.jar -cocoon/jars/cocoon-session-fw-2.1.3.jar -cocoon/jars/cocoon-session-fw-2.1.4.jar -cocoon/jars/cocoon-session-fw-2.1.5.1.jar -cocoon/jars/cocoon-session-fw-2.1.6.jar -cocoon/jars/cocoon-session-fw-2.1.7.jar -cocoon/jars/cocoon-session-fw-2.1.8.jar -cocoon/jars/cocoon-session-fw-2.1.9.jar -cocoon/jars/cocoon-slide-2.1.3.jar -cocoon/jars/cocoon-slide-2.1.4.jar -cocoon/jars/cocoon-slide-2.1.5.1.jar -cocoon/jars/cocoon-slide-2.1.6.jar -cocoon/jars/cocoon-slide-2.1.7.jar -cocoon/jars/cocoon-slide-2.1.8.jar -cocoon/jars/cocoon-slide-2.1.9.jar -cocoon/jars/cocoon-slop-2.1.3.jar -cocoon/jars/cocoon-slop-2.1.4.jar -cocoon/jars/cocoon-slop-2.1.5.1.jar -cocoon/jars/cocoon-slop-2.1.6.jar -cocoon/jars/cocoon-slop-2.1.7.jar -cocoon/jars/cocoon-slop-2.1.8.jar -cocoon/jars/cocoon-slop-2.1.9.jar -cocoon/jars/cocoon-snapshot.version -cocoon/jars/cocoon-stx-2.1.3.jar -cocoon/jars/cocoon-stx-2.1.4.jar -cocoon/jars/cocoon-stx-2.1.5.1.jar -cocoon/jars/cocoon-stx-2.1.6.jar -cocoon/jars/cocoon-stx-2.1.7.jar -cocoon/jars/cocoon-stx-2.1.8.jar -cocoon/jars/cocoon-stx-2.1.9.jar -cocoon/jars/cocoon-swf-2.1.3.jar -cocoon/jars/cocoon-swf-2.1.4.jar -cocoon/jars/cocoon-swf-2.1.5.1.jar -cocoon/jars/cocoon-taglib-2.1.3.jar -cocoon/jars/cocoon-taglib-2.1.4.jar -cocoon/jars/cocoon-taglib-2.1.5.1.jar -cocoon/jars/cocoon-testcase-2.1.3.jar -cocoon/jars/cocoon-taglib-2.1.6.jar -cocoon/jars/cocoon-taglib-2.1.7.jar -cocoon/jars/cocoon-taglib-2.1.8.jar -cocoon/jars/cocoon-taglib-2.1.9.jar -cocoon/jars/cocoon-template-2.1.9.jar -cocoon/jars/cocoon-woody-2.1.3.jar -cocoon/jars/cocoon-testcase-2.1.4.jar -cocoon/jars/cocoon-testcase-2.1.6.jar -cocoon/jars/cocoon-testcase-2.1.7.jar -cocoon/jars/cocoon-testcase-2.1.9.jar -cocoon/jars/cocoon-tour-2.1.5.1.jar -cocoon/jars/cocoon-tour-2.1.6.jar -cocoon/jars/cocoon-tour-2.1.7.jar -cocoon/jars/cocoon-tour-2.1.8.jar -cocoon/jars/cocoon-tour-2.1.9.jar -cocoon/jars/cocoon-validation-2.1.8.jar -cocoon/jars/cocoon-validation-2.1.9.jar -cocoon/jars/cocoon-velocity-2.1.3.jar -cocoon/jars/cocoon-velocity-2.1.4.jar -cocoon/jars/cocoon-velocity-2.1.5.1.jar -cocoon/jars/cocoon-velocity-2.1.6.jar -cocoon/jars/cocoon-velocity-2.1.7.jar -cocoon/jars/cocoon-velocity-2.1.8.jar -cocoon/jars/cocoon-velocity-2.1.9.jar -cocoon/jars/cocoon-web3-2.1.3.jar -cocoon/jars/cocoon-web3-2.1.4.jar -cocoon/jars/cocoon-web3-2.1.5.1.jar -cocoon/jars/cocoon-web3-2.1.6.jar -cocoon/jars/cocoon-web3-2.1.7.jar -cocoon/jars/cocoon-web3-2.1.8.jar -cocoon/jars/cocoon-web3-2.1.9.jar -cocoon/jars/cocoon-webdav-2.1.3.jar -cocoon/jars/cocoon-webdav-2.1.4.jar -cocoon/jars/cocoon-webdav-2.1.6.jar -cocoon/jars/cocoon-webdav-2.1.5.1.jar -cocoon/jars/cocoon-webdav-2.1.7.jar -cocoon/jars/cocoon-webdav-2.1.8.jar -cocoon/jars/cocoon-webdav-2.1.9.jar -cocoon/jars/cocoon-woody-2.1.4.jar -cocoon/jars/cocoon-xmldb-2.1.3.jar -cocoon/jars/cocoon-xmldb-2.1.4.jar -cocoon/jars/cocoon-xmldb-2.1.5.1.jar -cocoon/jars/cocoon-xmldb-2.1.6.jar -cocoon/jars/cocoon-xmldb-2.1.7.jar -cocoon/jars/cocoon-xmldb-2.1.8.jar -cocoon/jars/cocoon-xmldb-2.1.9.jar -cocoon/jars/cocoon-xsltal-2.1.8.jar -cocoon/jars/cocoon-xsltal-2.1.9.jar -cocoon/jars/cocoon-xsp-2.1.5.1.jar -cocoon/jars/cocoon-xsp-2.1.6.jar -cocoon/jars/cocoon-xsp-2.1.7.jar -cocoon/jars/cocoon-xsp-2.1.8.jar -cocoon/jars/cocoon-xsp-2.1.9.jar -cocoon/wars/cocoon-2.1.8.war -cocoon/wars/cocoon-war-2.1.3.war -cocoon/wars/cocoon-war-2.1.4.war -cocoon/wars/cocoon-war-2.1.6.war -cocoon/wars/cocoon-war-2.1.7.war -commons-attributes/jars/commons-attributes-2.1-javadoc.jar -commons-attributes/jars/commons-attributes-api-2.1.jar -commons-attributes/jars/commons-attributes-api-2.2.jar -commons-attributes/jars/commons-attributes-compiler-2.1.jar -commons-attributes/jars/commons-attributes-compiler-2.2.jar -commons-attributes/plugins/commons-attributes-plugin-2.1.jar -commons-attributes/plugins/commons-attributes-plugin-2.2.jar -commons-attributes/poms/commons-attributes-api-2.2.pom -commons-attributes/poms/commons-attributes-compiler-2.2.pom -commons-beanutils/jars/commons-beanutils-1.0-dev.20020812.082103.jar -commons-beanutils/jars/commons-beanutils-1.0-dev.20020913.114846.jar -commons-beanutils/jars/commons-beanutils-1.0.jar -commons-beanutils/jars/commons-beanutils-1.3.jar -commons-beanutils/jars/commons-beanutils-1.4-dev.20020812.084325.jar -commons-beanutils/jars/commons-beanutils-1.4-dev.jar -commons-beanutils/jars/commons-beanutils-1.4.1.jar -commons-beanutils/jars/commons-beanutils-1.4.jar -commons-beanutils/jars/commons-beanutils-1.5-javadoc.jar -commons-beanutils/jars/commons-beanutils-1.5.jar -commons-beanutils/jars/commons-beanutils-1.6-dev.20021128.082114.jar -commons-beanutils/jars/commons-beanutils-1.6-javadoc.jar -commons-beanutils/jars/commons-beanutils-1.6.1-javadoc.jar -commons-beanutils/jars/commons-beanutils-1.6.1.jar -commons-beanutils/jars/commons-beanutils-1.6.jar -commons-beanutils/jars/commons-beanutils-1.7-dev.jar -commons-beanutils/jars/commons-beanutils-1.7.0-javadoc.jar -commons-beanutils/jars/commons-beanutils-1.7.0.jar -commons-beanutils/jars/commons-beanutils-20020520.jar -commons-beanutils/jars/commons-beanutils-20030211.134440.jar -commons-beanutils/jars/commons-beanutils-bean-collections-1.7.0.jar -commons-beanutils/jars/commons-beanutils-core-1.7.0.jar -commons-beanutils/jars/commons-beanutils-dev.jar -commons-beanutils/jars/commons-beanutils-1.8.0-BETA-javadoc.jar -commons-beanutils/jars/commons-beanutils-snapshot-version -commons-beanutils/jars/commons-beanutils-1.8.0-BETA.jar -commons-beanutils/jars/commons-beanutils-1.8.0-BETA-sources.jar -commons-beanutils/jars/commons-beanutils-core-1.8.0-BETA.jar -commons-beanutils/jars/commons-beanutils-bean-collections-1.8.0-BETA.jar -commons-beanutils/poms/commons-beanutils-1.4.1.pom -commons-beanutils/poms/commons-beanutils-1.4.pom -commons-beanutils/poms/commons-beanutils-1.5.pom -commons-beanutils/poms/commons-beanutils-1.6.1.pom -commons-beanutils/poms/commons-beanutils-1.6.pom -commons-beanutils/poms/commons-beanutils-1.8.0-BETA.pom -commons-betwixt/jars/commons-betwixt-0.5-javadoc.jar -commons-betwixt/jars/commons-betwixt-0.5.jar -commons-betwixt/jars/commons-betwixt-0.6-javadoc.jar -commons-betwixt/jars/commons-betwixt-1.0-alpha-1-javadoc.jar -commons-betwixt/jars/commons-betwixt-0.6.jar -commons-betwixt/jars/commons-betwixt-0.7-javadoc.jar -commons-betwixt/jars/commons-betwixt-0.7.jar -commons-betwixt/jars/commons-betwixt-1.0-beta-1.20020910.124754.jar -commons-betwixt/jars/commons-betwixt-1.0-alpha-1.jar -commons-betwixt/jars/commons-betwixt-0.8.jar.sha -commons-betwixt/jars/commons-betwixt-0.8.jar -commons-betwixt/jars/commons-betwixt-1.0-beta-1.jar -commons-betwixt/jars/commons-betwixt-1.0-beta-1.20020912.014405.jar -commons-betwixt/jars/commons-betwixt-1.0-beta-1.20020920.020057.jar -commons-betwixt/jars/commons-betwixt-1.0-beta-1.20030111.103454.jar -commons-betwixt/jars/commons-betwixt-1.0-dev.20020712.083337.jar -commons-betwixt/jars/commons-betwixt-1.0-dev.20020719.010630.jar -commons-betwixt/jars/commons-betwixt-1.0-dev.jar -commons-betwixt/jars/commons-betwixt-20030211.133854.jar -commons-betwixt/jars/commons-betwixt-snapshot-version -commons-betwixt/poms/commons-betwixt-0.8.pom -commons-betwixt/poms/commons-betwixt-0.6.pom -commons-betwixt/poms/commons-betwixt-0.7.pom -commons-chain/jars/commons-chain-1.0-javadoc.jar -commons-chain/jars/commons-chain-1.0.jar -commons-chain/jars/commons-chain-1.1.jar -commons-chain/poms/commons-chain-1.0.pom -commons-chain/poms/commons-chain-1.1.pom -commons-cli/jars/commons-cli-1.0-beta-1.jar -commons-cli/jars/commons-cli-1.0-beta-2-dev.20021004.111657.jar -commons-cli/jars/commons-cli-1.0-beta-2-dev.jar -commons-cli/jars/commons-cli-1.0-beta-2.jar -commons-cli/jars/commons-cli-1.0-dev.jar -commons-cli/jars/commons-cli-1.0-dev.20020710.025055.jar -commons-cli/jars/commons-cli-1.0-dev.20020727.104720.jar -commons-cli/jars/commons-cli-1.0-javadoc.jar -commons-cli/jars/commons-cli-1.0.jar -commons-cli/jars/commons-cli-1.1-javadoc.jar -commons-cli/jars/commons-cli-1.0.jar.sha -commons-cli/jars/commons-cli-1.1-sources.jar -commons-cli/jars/commons-cli-1.1.jar -commons-cli/poms/commons-cli-1.0.pom -commons-cli/poms/commons-cli-1.1.pom -commons-codec/jars/commons-codec-1.0-dev.jar -commons-codec/jars/commons-codec-1.1-javadoc.jar -commons-codec/jars/commons-codec-1.1.jar -commons-codec/jars/commons-codec-1.2-javadoc.jar -commons-codec/jars/commons-codec-1.2.jar -commons-codec/jars/commons-codec-1.3-javadoc.jar -commons-codec/jars/commons-codec-1.3.jar -commons-codec/jars/commons-codec-20041127.091804.jar -commons-codec/jars/commons-codec-snapshot-version -commons-codec/poms/commons-codec-1.1.pom -commons-codec/poms/commons-codec-1.2.pom -commons-codec/poms/commons-codec-1.3.pom -commons-codec/poms/commons-codec-20041127.091804.pom -commons-codec/poms/commons-codec-snapshot-version -commons-collections/jars/commons-collections-1.0-javadoc.jar -commons-collections/jars/commons-collections-1.0.jar -commons-collections/jars/commons-collections-2.0-javadoc.jar -commons-collections/jars/commons-collections-2.0.20020914.015953.jar -commons-collections/jars/commons-collections-3.1.jar -commons-collections/jars/commons-collections-snapshot-version -commons-collections/jars/commons-collections-2.0.20020914.020746.jar -commons-collections/jars/commons-collections-2.0.20020914.020858.jar -commons-collections/jars/commons-collections-2.0.jar -commons-collections/jars/commons-collections-2.1-dev.jar -commons-collections/jars/commons-collections-2.1-javadoc.jar -commons-collections/jars/commons-collections-2.1.jar -commons-collections/jars/commons-collections-2.1.1-javadoc.jar -commons-collections/jars/commons-collections-2.1.1.jar -commons-collections/jars/commons-collections-20030418.083655.jar -commons-collections/jars/commons-collections-20031027.000000.jar -commons-collections/jars/commons-collections-3.0-dev.jar -commons-collections/jars/commons-collections-20040102.233541.jar -commons-collections/jars/commons-collections-20040616.jar -commons-collections/jars/commons-collections-3.0-javadoc.jar -commons-collections/jars/commons-collections-3.0.jar -commons-collections/jars/commons-collections-3.1-javadoc.jar -commons-collections/jars/commons-collections-3.2.jar -commons-collections/jars/commons-collections-testframework-20031027.000000.jar -commons-collections/jars/commons-collections-testframework-20040102.233541.jar -commons-collections/jars/commons-collections-testframework-3.1.jar -commons-collections/jars/commons-collections-testframework-3.2.jar -commons-collections/poms/commons-collections-2.1.pom -commons-collections/poms/commons-collections-3.0.pom -commons-collections/poms/commons-collections-3.2.pom -commons-configuration/jars/commons-configuration-1.0-dev-2.20021231.045254.jar -commons-configuration/jars/commons-configuration-1.0-dev-3.20030603.101200.jar -commons-configuration/jars/commons-configuration-1.0-dev-3.20030607.194155.jar -commons-configuration/jars/commons-configuration-1.4-javadoc.jar -commons-configuration/jars/commons-configuration-1.0-dev.jar -commons-configuration/jars/commons-configuration-1.0-javadoc.jar -commons-configuration/jars/commons-configuration-1.0-rc1.jar -commons-configuration/jars/commons-configuration-1.0-rc2.jar -commons-configuration/jars/commons-configuration-1.0.jar -commons-configuration/jars/commons-configuration-1.1-javadoc.jar -commons-configuration/jars/commons-configuration-1.1.jar -commons-configuration/jars/commons-configuration-1.2.jar -commons-configuration/jars/commons-configuration-20030311.152757.jar -commons-configuration/jars/commons-configuration-20030620.073343.jar -commons-configuration/jars/commons-configuration-20030706.202021.jar -commons-configuration/jars/commons-configuration-20041012.002623.jar -commons-configuration/jars/commons-configuration-20041012.002804.jar -commons-configuration/jars/commons-configuration-snapshot-version -commons-configuration/jars/commons-configuration-1.4-sources.jar -commons-configuration/jars/commons-configuration-1.4.jar -commons-configuration/poms/commons-configuration-20041012.002623.pom -commons-configuration/poms/commons-configuration-1.0-rc1.pom -commons-configuration/poms/commons-configuration-1.0.pom -commons-configuration/poms/commons-configuration-1.1.pom -commons-configuration/poms/commons-configuration-1.2.pom -commons-configuration/poms/commons-configuration-20041012.002804.pom -commons-configuration/poms/commons-configuration-snapshot-version -commons-configuration/poms/commons-configuration-1.4.pom -commons-daemon/jars/commons-daemon-1.0-dev.20021002.084851.jar -commons-dbcp/jars/commons-dbcp-1.0-dev-20020806.jar -commons-dbcp/jars/commons-dbcp-1.0-dev.jar -commons-dbcp/jars/commons-dbcp-1.0-javadoc.jar -commons-dbcp/jars/commons-dbcp-1.0.jar -commons-dbcp/jars/commons-dbcp-1.1-RC1.jar -commons-dbcp/jars/commons-dbcp-1.1-RC2.jar -commons-dbcp/jars/commons-dbcp-1.1-dev.20021231.054941.jar -commons-dbcp/jars/commons-dbcp-1.1-dev.20021231.055112.jar -commons-dbcp/jars/commons-dbcp-1.1-javadoc.jar -commons-dbcp/jars/commons-dbcp-1.1.jar -commons-dbcp/jars/commons-dbcp-1.2-javadoc.jar -commons-dbcp/jars/commons-dbcp-1.2.1-javadoc.jar -commons-dbcp/jars/commons-dbcp-1.2.1.jar -commons-dbcp/jars/commons-dbcp-1.2.jar -commons-dbcp/jars/commons-dbcp-20030818.201141.jar -commons-dbcp/jars/commons-dbcp-20030821.193421.jar -commons-dbcp/jars/commons-dbcp-20030825.184428.jar -commons-dbcp/jars/commons-dbcp-snapshot-version -commons-dbcp/jars/commons-dbcp-1.2.2.jar -commons-dbcp/poms/commons-dbcp-1.0.pom -commons-dbcp/poms/commons-dbcp-1.1.pom -commons-dbcp/poms/commons-dbcp-1.2.1.pom -commons-dbcp/poms/commons-dbcp-1.2.pom -commons-dbcp/poms/commons-dbcp-1.2.2.pom -commons-dbutils/jars/commons-dbutils-1.0-javadoc.jar -commons-dbutils/jars/commons-dbutils-1.0.jar -commons-dbutils/jars/commons-dbutils-1.1.jar -commons-dbutils/jars/commons-dbutils-1.1-sources.jar -commons-dbutils/poms/commons-dbutils-1.0.pom -commons-dbutils/poms/commons-dbutils-1.1.pom -commons-digester/jars/commons-digester-1.0-dev.20020731.104901.jar -commons-digester/jars/commons-digester-1.2.jar -commons-digester/jars/commons-digester-1.3.jar -commons-digester/jars/commons-digester-1.4-javadoc.jar -commons-digester/jars/commons-digester-1.4.1-javadoc.jar -commons-digester/jars/commons-digester-1.4.1.jar -commons-digester/jars/commons-digester-1.5-javadoc.jar -commons-digester/jars/commons-digester-1.5.jar -commons-digester/jars/commons-digester-1.6-javadoc.jar -commons-digester/jars/commons-digester-1.6.jar -commons-digester/jars/commons-digester-1.7-javadoc.jar -commons-digester/jars/commons-digester-1.7.jar -commons-digester/jars/commons-digester-1.8.jar -commons-digester/jars/commons-digester-1.8-javadoc.jar -commons-digester/jars/commons-digester-1.8-sources.jar -commons-digester/poms/commons-digester-1.3.pom -commons-digester/poms/commons-digester-1.4.1.pom -commons-digester/poms/commons-digester-1.5.pom -commons-digester/poms/commons-digester-1.7.pom -commons-digester/poms/commons-digester-1.8.pom -commons-digester/distributions/commons-digester-1.8-src.zip -commons-digester/distributions/commons-digester-1.8-src.tar.gz -commons-digester/distributions/commons-digester-1.8.tar.gz -commons-digester/distributions/commons-digester-1.8.zip -commons-discovery/jars/commons-discovery-0.1-javadoc.jar -commons-discovery/jars/commons-discovery-0.1.jar -commons-discovery/jars/commons-discovery-0.2-javadoc.jar -commons-discovery/jars/commons-discovery-0.2-dev.jar -commons-discovery/jars/commons-discovery-0.2.jar -commons-discovery/jars/commons-discovery-1.0-dev.20021010.101254.jar -commons-discovery/jars/commons-discovery-20030211.213356.jar -commons-discovery/jars/commons-discovery-20040218.194635.jar -commons-discovery/jars/commons-discovery-snapshot-version -commons-discovery/jars/commons-discovery-0.4.jar -commons-discovery/poms/commons-discovery-0.1.pom -commons-discovery/poms/commons-discovery-0.2.pom -commons-discovery/poms/commons-discovery-0.4.pom -commons-el/jars/commons-el-1.0-javadoc.jar -commons-el/jars/commons-el-1.0.jar -commons-el/poms/commons-el-1.0.pom -commons-email/distributions/commons-email-1.0-src.tar.gz -commons-email/distributions/commons-email-1.0-src.zip -commons-email/distributions/commons-email-1.0.tar.gz -commons-email/distributions/commons-email-1.0.zip -commons-email/jars/commons-email-0.1-dev.jar -commons-email/jars/commons-email-1.0-javadoc.jar -commons-email/jars/commons-email-1.0.jar -commons-email/jars/commons-email-20030310.165926.jar -commons-email/jars/commons-email-snapshot-version -commons-email/poms/commons-email-1.0.pom -commons-fileupload/jars/commons-fileupload-1.0-beta-1-javadoc.jar -commons-fileupload/jars/commons-fileupload-1.0-beta-1.jar -commons-fileupload/jars/commons-fileupload-1.0-dev.jar -commons-fileupload/jars/commons-fileupload-1.0-javadoc.jar -commons-fileupload/jars/commons-fileupload-1.0-rc1-javadoc.jar -commons-fileupload/jars/commons-fileupload-1.0-rc1.jar -commons-fileupload/jars/commons-fileupload-1.0.jar -commons-fileupload/jars/commons-fileupload-1.1.1.jar -commons-fileupload/jars/commons-fileupload-1.1.jar -commons-fileupload/poms/commons-fileupload-1.0.pom -commons-fileupload/poms/commons-fileupload-1.1.1.pom -commons-fileupload/poms/commons-fileupload-1.1.pom -ecs/jars/ecs-1.4.1.jar -ecs/jars/ecs-1.4.2.jar -commons-grant/jars/commons-grant-1.0-b1.jar -commons-grant/jars/commons-grant-1.0-beta-2.jar -commons-grant/jars/commons-grant-1.0-beta-3.jar -commons-grant/jars/commons-grant-1.0-beta-4.jar -commons-grant/jars/commons-grant-1.0-beta-5.jar -commons-graph/jars/commons-graph-0.8.1.jar -commons-graph/jars/commons-graph-0.8.jar -commons-http/jars/commons-http-1.1.jar -commons-httpclient/jars/commons-httpclient-1.0.jar -commons-httpclient/jars/commons-httpclient-2.0-alpha1-javadoc.jar -commons-httpclient/jars/commons-httpclient-2.0-alpha2-javadoc.jar -commons-httpclient/jars/commons-httpclient-2.0.jar -commons-httpclient/jars/commons-httpclient-3.0.jar -commons-httpclient/jars/commons-httpclient-2.0-alpha2.20020903.070259.jar -commons-httpclient/jars/commons-httpclient-2.0-alpha2.20021115.044352.jar -commons-httpclient/jars/commons-httpclient-2.0-alpha2.jar -commons-httpclient/jars/commons-httpclient-2.0-alpha3-javadoc.jar -commons-httpclient/jars/commons-httpclient-2.0-alpha3.jar -commons-httpclient/jars/commons-httpclient-2.0-beta1-javadoc.jar -commons-httpclient/jars/commons-httpclient-2.0-beta1.jar -commons-httpclient/jars/commons-httpclient-2.0-beta2-javadoc.jar -commons-httpclient/jars/commons-httpclient-2.0-beta2.jar -commons-httpclient/jars/commons-httpclient-2.0-dev.20020705.071400.jar -commons-httpclient/jars/commons-httpclient-2.0-dev.jar -commons-httpclient/jars/commons-httpclient-2.0-javadoc.jar -commons-httpclient/jars/commons-httpclient-2.0-rc1-javadoc.jar -commons-httpclient/jars/commons-httpclient-2.0-rc1.jar -commons-httpclient/jars/commons-httpclient-2.0-rc2-javadoc.jar -commons-httpclient/jars/commons-httpclient-2.0-rc2.jar -commons-httpclient/jars/commons-httpclient-2.0-rc3-javadoc.jar -commons-httpclient/jars/commons-httpclient-2.0-rc3.jar -commons-httpclient/jars/commons-httpclient-2.0.1-javadoc.jar -commons-httpclient/jars/commons-httpclient-2.0.1.jar -commons-httpclient/jars/commons-httpclient-2.0.2-javadoc.jar -commons-httpclient/jars/commons-httpclient-2.0.2.jar -commons-httpclient/jars/commons-httpclient-2.0alpha1-20020606.jar -commons-httpclient/jars/commons-httpclient-2.0alpha1-20020829.jar -commons-httpclient/jars/commons-httpclient-2.0alpha1.jar -commons-httpclient/jars/commons-httpclient-20020423.jar -commons-httpclient/jars/commons-httpclient-3.0-alpha1-javadoc.jar -commons-httpclient/jars/commons-httpclient-3.0-beta1.jar -commons-httpclient/jars/commons-httpclient-3.1.jar -commons-httpclient/jars/commons-httpclient-3.0-alpha1.jar -commons-httpclient/jars/commons-httpclient-3.0-alpha2-javadoc.jar -commons-httpclient/jars/commons-httpclient-3.0-alpha2.jar -commons-httpclient/jars/commons-httpclient-3.0-beta1-javadoc.jar -commons-httpclient/jars/commons-httpclient-3.0-rc1-javadoc.jar -commons-httpclient/jars/commons-httpclient-3.0-rc1.jar -commons-httpclient/jars/commons-httpclient-3.0-rc2-javadoc.jar -commons-httpclient/jars/commons-httpclient-3.0-rc2.jar -commons-httpclient/jars/commons-httpclient-3.0-rc3-javadoc.jar -commons-httpclient/jars/commons-httpclient-3.0-rc3.jar -commons-httpclient/jars/commons-httpclient-3.0-rc4-javadoc.jar -commons-httpclient/jars/commons-httpclient-3.0-rc4.jar -commons-httpclient/jars/commons-httpclient-3.0.1.jar -commons-httpclient/jars/commons-httpclient-3.1-alpha1.jar -commons-httpclient/jars/commons-httpclient-3.1-beta1.jar -commons-httpclient/jars/commons-httpclient-3.1-rc1.jar -commons-httpclient/poms/commons-httpclient-3.0alpha2.pom -commons-httpclient/poms/commons-httpclient-2.0.2.pom -commons-httpclient/poms/commons-httpclient-3.0.1.pom -commons-httpclient/poms/commons-httpclient-3.0.pom -commons-httpclient/poms/commons-httpclient-3.1-alpha1.pom -commons-httpclient/poms/commons-httpclient-3.0beta1.pom -commons-httpclient/poms/commons-httpclient-3.0rc1.pom -commons-httpclient/poms/commons-httpclient-3.0rc2.pom -commons-httpclient/poms/commons-httpclient-3.0rc3.pom -commons-httpclient/poms/commons-httpclient-3.0rc4.pom -commons-httpclient/poms/commons-httpclient-3.1-beta1.pom -commons-httpclient/poms/commons-httpclient-3.1-rc1.pom -commons-httpclient/poms/commons-httpclient-3.1.pom -commons-i18n/distributions/commons-i18n-0.3-src.tar.gz -commons-i18n/distributions/commons-i18n-0.3-src.zip -commons-i18n/distributions/commons-i18n-0.3.tar.gz -commons-i18n/distributions/commons-i18n-0.3.zip -commons-i18n/distributions/commons-i18n-0.4-src.tar.gz -commons-i18n/distributions/commons-i18n-0.4-src.zip -commons-i18n/distributions/commons-i18n-0.4.tar.gz -commons-i18n/distributions/commons-i18n-0.4.zip -commons-i18n/distributions/commons-i18n-0.5-src.tar.gz -commons-i18n/distributions/commons-i18n-0.5-src.zip -commons-i18n/distributions/commons-i18n-0.5.tar.gz -commons-i18n/distributions/commons-i18n-0.5.zip -commons-i18n/jars/commons-i18n-0.4.jar -commons-i18n/jars/commons-i18n-0.5.jar -commons-i18n/poms/commons-i18n-0.3.pom -commons-i18n/poms/commons-i18n-0.4.pom -commons-i18n/poms/commons-i18n-0.5.pom -commons-io/jars/commons-io-0.1.jar -commons-io/jars/commons-io-0.2-dev.20020614.122300.jar -commons-io/jars/commons-io-0.2-dev.20020717.100545.jar -commons-io/jars/commons-io-1.0-javadoc.jar -commons-io/jars/commons-io-1.0.jar -commons-io/jars/commons-io-1.3.jar -commons-io/jars/commons-io-1.1-javadoc.jar -commons-io/jars/commons-io-1.1.jar -commons-io/jars/commons-io-1.2-javadoc.jar -commons-io/jars/commons-io-1.2.jar -commons-io/jars/commons-io-20030203.000550.jar -commons-io/jars/commons-io-1.3-javadoc.jar -commons-io/jars/commons-io-1.3-sources.jar -commons-io/jars/commons-io-1.3.1-javadoc.jar -commons-io/jars/commons-io-1.3.1.jar -commons-io/jars/commons-io-1.3.1-sources.jar -commons-io/poms/commons-io-1.0.pom -commons-io/poms/commons-io-1.1.pom -commons-io/poms/commons-io-1.2.pom -commons-io/poms/commons-io-1.3.pom -commons-io/poms/commons-io-1.3.1.pom -commons-jdbc2pool/jars/commons-jdbc2pool-1.0-dev.jar -commons-jelly/distributions/KEYS -commons-jelly/distributions/commons-jelly-1.0-beta-3-src.tar.gz -commons-jelly/distributions/commons-jelly-1.0-beta-3-src.zip -commons-jelly/distributions/commons-jelly-1.0-beta-3.tar.gz -commons-jelly/distributions/commons-jelly-1.0-beta-3.zip -commons-jelly/distributions/commons-jelly-1.0-beta-4-src.tar.gz -commons-jelly/distributions/commons-jelly-1.0-beta-4-src.zip -commons-jelly/distributions/commons-jelly-1.0-beta-4.tar.gz -commons-jelly/distributions/commons-jelly-1.0-beta-4.zip -commons-jelly/distributions/commons-jelly-1.0-dev-src.tar.gz -commons-jelly/distributions/commons-jelly-1.0-dev-src.zip -commons-jelly/distributions/commons-jelly-1.0-dev.tar.gz -commons-jelly/distributions/commons-jelly-1.0-dev.zip -commons-jelly/jars/commons-jelly-1.0-RC1-javadoc.jar -commons-jelly/jars/commons-jelly-1.0-RC1.jar -commons-jelly/jars/commons-jelly-1.0-beta-1.jar -commons-jelly/jars/commons-jelly-1.0-beta-2.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020714.020704.jar -commons-jelly/jars/commons-jelly-1.0-beta-3.20020819.043231.jar -commons-jelly/jars/commons-jelly-1.0-beta-3.20020819.043406.jar -commons-jelly/jars/commons-jelly-1.0-beta-3.20020820.043616.jar -commons-jelly/jars/commons-jelly-1.0-beta-3.20020828.023547.jar -commons-jelly/jars/commons-jelly-1.0-beta-3.20020828.032644.jar -commons-jelly/jars/commons-jelly-1.0-beta-3.20020904.063114.jar -commons-jelly/jars/commons-jelly-1.0-beta-3.20020910.061420.jar -commons-jelly/jars/commons-jelly-1.0-beta-3.20020911.045717.jar -commons-jelly/jars/commons-jelly-1.0-beta-3.jar -commons-jelly/jars/commons-jelly-1.0-beta-3.20020913.010946.jar -commons-jelly/jars/commons-jelly-1.0-beta-3.20020913.120853.jar -commons-jelly/jars/commons-jelly-1.0-beta-4-javadoc.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20020923.123659.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20020924.123511.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021002.050543.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021002.113628.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021005.025546.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021005.070650.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021008.094131.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021008.112820.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021012.035615.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021017.053011.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021023.094006.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021023.153932.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021105.013628.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021112.084337.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021113.125954.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021113.192421.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021120.034859.jar -commons-jelly/jars/commons-jelly-1.0-javadoc.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021210.123241.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021222.042553.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021231.013337.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20021231.034645.jar -commons-jelly/jars/commons-jelly-20030211.141339.jar -commons-jelly/jars/commons-jelly-1.0-beta-4.20030104.110205.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020711.024953.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020713.015328.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020713.020804.jar -commons-jelly/jars/commons-jelly-1.0.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020715.041648.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020715.044906.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020715.045302.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020715.100851.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020715.112252.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020716.055015.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020716.064746.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020716.065225.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020719.074608.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020719.082922.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020720.080105.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020731.041103.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020731.122236.jar -commons-jelly/jars/commons-jelly-1.0-dev.20020811.014845.jar -commons-jelly/jars/commons-jelly-1.0-dev.20021021.132700.jar -commons-jelly/jars/commons-jelly-20030303.054314.jar -commons-jelly/jars/commons-jelly-20030310.073407.jar -commons-jelly/jars/commons-jelly-snapshot-version -commons-jelly/jars/commons-jelly-20030303.180550.jar -commons-jelly/jars/commons-jelly-20030305.075341.jar -commons-jelly/jars/commons-jelly-20030307.121112.jar -commons-jelly/jars/commons-jelly-20030307.135732.jar -commons-jelly/jars/commons-jelly-20030308.101032.jar -commons-jelly/jars/commons-jelly-20030320.080622.jar -commons-jelly/jars/commons-jelly-20030320.080836.jar -commons-jelly/jars/commons-jelly-20030320.165458.jar -commons-jelly/jars/commons-jelly-20030522.212428.jar -commons-jelly/jars/commons-jelly-20030609.133047.jar -commons-jelly/jars/commons-jelly-20030711.034327.jar -commons-jelly/jars/commons-jelly-avalon-20030211.143621.jar -commons-jelly/jars/commons-jelly-20030724.033229.jar -commons-jelly/jars/commons-jelly-20030902.160215.jar -commons-jelly/jars/commons-jelly-20040902.064518.jar -commons-jelly/jars/commons-jelly-20040902.070806.jar -commons-jelly/jars/commons-jelly-avalon-snapshot-version -commons-jelly/jars/commons-jelly-tags-ant-1.0.jar -commons-jelly/jars/commons-jelly-tags-ant-1.1.jar -commons-jelly/jars/commons-jelly-tags-ant-20030211.142045.jar -commons-jelly/jars/commons-jelly-tags-ant-20040902.000000.jar -commons-jelly/jars/commons-jelly-tags-bean-1.0.jar -commons-jelly/jars/commons-jelly-tags-ant-20030310.080026.jar -commons-jelly/jars/commons-jelly-tags-ant-20030625.025346.jar -commons-jelly/jars/commons-jelly-tags-ant-20030625.025706.jar -commons-jelly/jars/commons-jelly-tags-ant-20030625.032346.jar -commons-jelly/jars/commons-jelly-tags-dynabean-snapshot-version -commons-jelly/jars/commons-jelly-tags-ant-20040902.071105.jar -commons-jelly/jars/commons-jelly-tags-ant-snapshot-version -commons-jelly/jars/commons-jelly-tags-antlr-1.0.jar -commons-jelly/jars/commons-jelly-tags-antlr-20030211.143720.jar -commons-jelly/jars/commons-jelly-tags-antlr-20040902.071159.jar -commons-jelly/jars/commons-jelly-tags-antlr-snapshot-version -commons-jelly/jars/commons-jelly-tags-avalon-1.0.jar -commons-jelly/jars/commons-jelly-tags-avalon-20040902.071300.jar -commons-jelly/jars/commons-jelly-tags-avalon-snapshot-version -commons-jelly/jars/commons-jelly-tags-bean-20030211.144357.jar -commons-jelly/jars/commons-jelly-tags-betwixt-1.0.jar -commons-jelly/jars/commons-jelly-tags-bean-20030320.165723.jar -commons-jelly/jars/commons-jelly-tags-bean-20040902.071526.jar -commons-jelly/jars/commons-jelly-tags-bean-snapshot-version -commons-jelly/jars/commons-jelly-tags-beanshell-1.0.jar -commons-jelly/jars/commons-jelly-tags-beanshell-20030211.141835.jar -commons-jelly/jars/commons-jelly-tags-beanshell-20040902.071629.jar -commons-jelly/jars/commons-jelly-tags-beanshell-snapshot-version -commons-jelly/jars/commons-jelly-tags-betwixt-1.0-beta-1.20030104.095958.jar -commons-jelly/jars/commons-jelly-tags-betwixt-20030211.144504.jar -commons-jelly/jars/commons-jelly-tags-betwixt-20040902.071752.jar -commons-jelly/jars/commons-jelly-tags-betwixt-snapshot-version -commons-jelly/jars/commons-jelly-tags-bsf-1.0.jar -commons-jelly/jars/commons-jelly-tags-bsf-20030211.142259.jar -commons-jelly/jars/commons-jelly-tags-bsf-20030305.080050.jar -commons-jelly/jars/commons-jelly-tags-fmt-1.0.jar -commons-jelly/jars/commons-jelly-tags-bsf-20040902.071900.jar -commons-jelly/jars/commons-jelly-tags-bsf-snapshot-version -commons-jelly/jars/commons-jelly-tags-define-1.0.jar -commons-jelly/jars/commons-jelly-tags-define-20030211.142932.jar -commons-jelly/jars/commons-jelly-tags-define-20040902.072141.jar -commons-jelly/jars/commons-jelly-tags-define-snapshot-version -commons-jelly/jars/commons-jelly-tags-dynabean-1.0.jar -commons-jelly/jars/commons-jelly-tags-dynabean-20030211.142601.jar -commons-jelly/jars/commons-jelly-tags-dynabean-20040902.071946.jar -commons-jelly/jars/commons-jelly-tags-email-1.0.jar -commons-jelly/jars/commons-jelly-tags-email-20030211.144034.jar -commons-jelly/jars/commons-jelly-tags-email-20040902.072224.jar -commons-jelly/jars/commons-jelly-tags-email-snapshot-version -commons-jelly/jars/commons-jelly-tags-fmt-20030211.142201.jar -commons-jelly/jars/commons-jelly-tags-html-1.0.jar -commons-jelly/jars/commons-jelly-tags-fmt-20040902.072321.jar -commons-jelly/jars/commons-jelly-tags-fmt-snapshot-version -commons-jelly/jars/commons-jelly-tags-html-1.0-beta-1.20030104.103227.jar -commons-jelly/jars/commons-jelly-tags-html-20030211.143308.jar -commons-jelly/jars/commons-jelly-tags-html-20030317.100924.jar -commons-jelly/jars/commons-jelly-tags-html-20040902.072530.jar -commons-jelly/jars/commons-jelly-tags-html-snapshot-version -commons-jelly/jars/commons-jelly-tags-http-1.0-beta-1.20030104.141847.jar -commons-jelly/jars/commons-jelly-tags-http-1.0.jar -commons-jelly/jars/commons-jelly-tags-jaxme-1.0.jar -commons-jelly/jars/commons-jelly-tags-http-20030211.143043.jar -commons-jelly/jars/commons-jelly-tags-http-20040902.072620.jar -commons-jelly/jars/commons-jelly-tags-http-snapshot-version -commons-jelly/jars/commons-jelly-tags-interaction-1.0.jar -commons-jelly/jars/commons-jelly-tags-interaction-1.1.jar -commons-jelly/jars/commons-jelly-tags-jetty-1.0.jar -commons-jelly/jars/commons-jelly-tags-interaction-20030211.143817.jar -commons-jelly/jars/commons-jelly-tags-interaction-20040902.072702.jar -commons-jelly/jars/commons-jelly-tags-interaction-snapshot-version -commons-jelly/jars/commons-jelly-tags-jaxme-20040902.072852.jar -commons-jelly/jars/commons-jelly-tags-jms-1.0.jar -commons-jelly/jars/commons-jelly-tags-jms-20030211.142459.jar -commons-jelly/jars/commons-jelly-tags-jaxme-snapshot-version -commons-jelly/jars/commons-jelly-tags-jetty-1.0-beta-1.20030104.151258.jar -commons-jelly/jars/commons-jelly-tags-jetty-20030211.144139.jar -commons-jelly/jars/commons-jelly-tags-jetty-20040902.072943.jar -commons-jelly/jars/commons-jelly-tags-jface-1.0.jar -commons-jelly/jars/commons-jelly-tags-jetty-snapshot-version -commons-jelly/jars/commons-jelly-tags-jface-20040902.073130.jar -commons-jelly/jars/commons-jelly-tags-jface-snapshot-version -commons-jelly/jars/commons-jelly-tags-jms-20040902.073216.jar -commons-jelly/jars/commons-jelly-tags-jmx-1.0.jar -commons-jelly/jars/commons-jelly-tags-jmx-20030320.165705.jar -commons-jelly/jars/commons-jelly-tags-jms-snapshot-version -commons-jelly/jars/commons-jelly-tags-jmx-20030320.165904.jar -commons-jelly/jars/commons-jelly-tags-jmx-20040902.073310.jar -commons-jelly/jars/commons-jelly-tags-jsl-1.0.jar -commons-jelly/jars/commons-jelly-tags-jsl-20030211.143151.jar -commons-jelly/jars/commons-jelly-tags-jmx-snapshot-version -commons-jelly/jars/commons-jelly-tags-jsl-20040902.072431.jar -commons-jelly/jars/commons-jelly-tags-jsl-snapshot-version -commons-jelly/jars/commons-jelly-tags-junit-1.0.jar -commons-jelly/jars/commons-jelly-tags-junit-snapshot-version -commons-jelly/jars/commons-jelly-tags-junit-20030211.141731.jar -commons-jelly/jars/commons-jelly-tags-junit-20040902.064627.jar -commons-jelly/jars/commons-jelly-tags-junit-20040902.070920.jar -commons-jelly/jars/commons-jelly-tags-log-1.0.jar -commons-jelly/jars/commons-jelly-tags-log-20030211.142821.jar -commons-jelly/jars/commons-jelly-tags-log-20040902.071410.jar -commons-jelly/jars/commons-jelly-tags-log-snapshot-version -commons-jelly/jars/commons-jelly-tags-ojb-1.0.jar -commons-jelly/jars/commons-jelly-tags-ojb-20030211.141630.jar -commons-jelly/jars/commons-jelly-tags-ojb-20040902.073352.jar -commons-jelly/jars/commons-jelly-tags-ojb-snapshot-version -commons-jelly/jars/commons-jelly-tags-quartz-1.0.jar -commons-jelly/jars/commons-jelly-tags-quartz-20030211.144716.jar -commons-jelly/jars/commons-jelly-tags-quartz-20040902.073433.jar -commons-jelly/jars/commons-jelly-tags-quartz-snapshot-version -commons-jelly/jars/commons-jelly-tags-regexp-1.0.jar -commons-jelly/jars/commons-jelly-tags-soap-20030211.142401.jar -commons-jelly/jars/commons-jelly-tags-soap-1.0.jar -commons-jelly/jars/commons-jelly-tags-soap-20040902.073516.jar -commons-jelly/jars/commons-jelly-tags-soap-snapshot-version -commons-jelly/jars/commons-jelly-tags-sql-1.0.jar -commons-jelly/jars/commons-jelly-tags-sql-20030211.144816.jar -commons-jelly/jars/commons-jelly-tags-sql-20040902.073600.jar -commons-jelly/jars/commons-jelly-tags-sql-snapshot-version -commons-jelly/jars/commons-jelly-tags-swing-1.0-beta-1.20030104.104105.jar -commons-jelly/jars/commons-jelly-tags-swing-1.0.jar -commons-jelly/jars/commons-jelly-tags-swing-20030211.143925.jar -commons-jelly/jars/commons-jelly-tags-swing-20040902.073656.jar -commons-jelly/jars/commons-jelly-tags-swing-snapshot-version -commons-jelly/jars/commons-jelly-tags-swt-1.0.jar -commons-jelly/jars/commons-jelly-tags-swt-20030211.144614.jar -commons-jelly/jars/commons-jelly-tags-swt-20030226.103913.jar -commons-jelly/jars/commons-jelly-tags-util-1.0.jar -commons-jelly/jars/commons-jelly-tags-swt-20030226.122214.jar -commons-jelly/jars/commons-jelly-tags-swt-20040902.073028.jar -commons-jelly/jars/commons-jelly-tags-swt-snapshot-version -commons-jelly/jars/commons-jelly-tags-threads-1.0.jar -commons-jelly/jars/commons-jelly-tags-threads-20030211.143515.jar -commons-jelly/jars/commons-jelly-tags-threads-20040902.073749.jar -commons-jelly/jars/commons-jelly-tags-threads-snapshot-version -commons-jelly/jars/commons-jelly-tags-util-1.1.1.jar -commons-jelly/jars/commons-jelly-tags-util-1.1.jar -commons-jelly/jars/commons-jelly-tags-util-20030211.141939.jar -commons-jelly/jars/commons-jelly-tags-util-20040902.071012.jar -commons-jelly/jars/commons-jelly-tags-util-snapshot-version -commons-jelly/jars/commons-jelly-tags-validate-1.0.jar -commons-jelly/jars/commons-jelly-tags-validate-20030211.143411.jar -commons-jelly/jars/commons-jelly-tags-validate-20030420.031608.jar -commons-jelly/jars/commons-jelly-tags-validate-20030420.041030.jar -commons-jelly/jars/commons-jelly-tags-validate-20040902.073836.jar -commons-jelly/jars/commons-jelly-tags-validate-snapshot-version -commons-jelly/jars/commons-jelly-tags-velocity-1.0.jar -commons-jelly/jars/commons-jelly-tags-velocity-20030211.144921.jar -commons-jelly/jars/commons-jelly-tags-velocity-20030303.205659.jar -commons-jelly/jars/commons-jelly-tags-velocity-20040902.073917.jar -commons-jelly/jars/commons-jelly-tags-velocity-snapshot-version -commons-jelly/jars/commons-jelly-tags-xml-1.0.jar -commons-jelly/jars/commons-jelly-tags-xml-1.1.jar -commons-jelly/jars/commons-jelly-tags-xml-20030211.142705.jar -commons-jelly/jars/commons-jelly-tags-xml-20040902.072037.jar -commons-jelly/jars/commons-jelly-tags-xml-snapshot-version -commons-jelly/jars/commons-jelly-tags-xmlunit-1.0.jar -commons-jelly/jars/commons-jelly-tags-xmlunit-20030211.144251.jar -commons-jelly/jars/commons-jelly-tags-xmlunit-20040902.072757.jar -commons-jelly/jars/commons-jelly-tags-xmlunit-snapshot-version -commons-jelly/poms/commons-jelly-1.0-RC1.pom -commons-jelly/poms/commons-jelly-1.0.pom -commons-jelly/poms/commons-jelly-20040902.064518.pom -commons-jelly/poms/commons-jelly-tags-ant-20040902.000000.pom -commons-jelly/poms/commons-jelly-20040902.070806.pom -commons-jelly/poms/commons-jelly-snapshot-version -commons-jelly/poms/commons-jelly-tags-ant-1.1.pom -commons-jelly/poms/commons-jelly-tags-ant-20040902.071105.pom -commons-jelly/poms/commons-jelly-tags-ant-snapshot-version -commons-jelly/poms/commons-jelly-tags-antlr-20040902.071159.pom -commons-jelly/poms/commons-jelly-tags-avalon-20040902.071300.pom -commons-jelly/poms/commons-jelly-tags-antlr-snapshot-version -commons-jelly/poms/commons-jelly-tags-avalon-snapshot-version -commons-jelly/poms/commons-jelly-tags-bean-20040902.071526.pom -commons-jelly/poms/commons-jelly-tags-bean-snapshot-version -commons-jelly/poms/commons-jelly-tags-beanshell-20040902.071629.pom -commons-jelly/poms/commons-jelly-tags-beanshell-snapshot-version -commons-jelly/poms/commons-jelly-tags-betwixt-20040902.071752.pom -commons-jelly/poms/commons-jelly-tags-betwixt-snapshot-version -commons-jelly/poms/commons-jelly-tags-bsf-20040902.071900.pom -commons-jelly/poms/commons-jelly-tags-define-20040902.072141.pom -commons-jelly/poms/commons-jelly-tags-bsf-snapshot-version -commons-jelly/poms/commons-jelly-tags-define-snapshot-version -commons-jelly/poms/commons-jelly-tags-dynabean-20040902.071946.pom -commons-jelly/poms/commons-jelly-tags-dynabean-snapshot-version -commons-jelly/poms/commons-jelly-tags-email-20040902.072224.pom -commons-jelly/poms/commons-jelly-tags-email-snapshot-version -commons-jelly/poms/commons-jelly-tags-fmt-20040902.072321.pom -commons-jelly/poms/commons-jelly-tags-fmt-snapshot-version -commons-jelly/poms/commons-jelly-tags-html-20040902.072530.pom -commons-jelly/poms/commons-jelly-tags-html-snapshot-version -commons-jelly/poms/commons-jelly-tags-http-20040902.072620.pom -commons-jelly/poms/commons-jelly-tags-http-snapshot-version -commons-jelly/poms/commons-jelly-tags-interaction-1.1.pom -commons-jelly/poms/commons-jelly-tags-interaction-20040902.072702.pom -commons-jelly/poms/commons-jelly-tags-interaction-snapshot-version -commons-jelly/poms/commons-jelly-tags-jaxme-20040902.072852.pom -commons-jelly/poms/commons-jelly-tags-jaxme-snapshot-version -commons-jelly/poms/commons-jelly-tags-jetty-20040902.072943.pom -commons-jelly/poms/commons-jelly-tags-jetty-snapshot-version -commons-jelly/poms/commons-jelly-tags-jface-20040902.073130.pom -commons-jelly/poms/commons-jelly-tags-jface-snapshot-version -commons-jelly/poms/commons-jelly-tags-jms-20040902.073216.pom -commons-jelly/poms/commons-jelly-tags-jms-snapshot-version -commons-jelly/poms/commons-jelly-tags-jmx-20040902.073310.pom -commons-jelly/poms/commons-jelly-tags-jmx-snapshot-version -commons-jelly/poms/commons-jelly-tags-jsl-20040902.072431.pom -commons-jelly/poms/commons-jelly-tags-xml-1.1.pom -commons-jelly/poms/commons-jelly-tags-jsl-snapshot-version -commons-jelly/poms/commons-jelly-tags-junit-20040902.064627.pom -commons-jelly/poms/commons-jelly-tags-junit-20040902.070920.pom -commons-jelly/poms/commons-jelly-tags-junit-snapshot-version -commons-jelly/poms/commons-jelly-tags-log-20040902.071410.pom -commons-jelly/poms/commons-jelly-tags-log-snapshot-version -commons-jelly/poms/commons-jelly-tags-ojb-20040902.073352.pom -commons-jelly/poms/commons-jelly-tags-ojb-snapshot-version -commons-jelly/poms/commons-jelly-tags-quartz-20040902.073433.pom -commons-jelly/poms/commons-jelly-tags-quartz-snapshot-version -commons-jelly/poms/commons-jelly-tags-soap-20040902.073516.pom -commons-jelly/poms/commons-jelly-tags-soap-snapshot-version -commons-jelly/poms/commons-jelly-tags-sql-20040902.073600.pom -commons-jelly/poms/commons-jelly-tags-sql-snapshot-version -commons-jelly/poms/commons-jelly-tags-swing-20040902.073656.pom -commons-jelly/poms/commons-jelly-tags-swing-snapshot-version -commons-jelly/poms/commons-jelly-tags-swt-20040902.073028.pom -commons-jelly/poms/commons-jelly-tags-swt-snapshot-version -commons-jelly/poms/commons-jelly-tags-threads-20040902.073749.pom -commons-jelly/poms/commons-jelly-tags-threads-snapshot-version -commons-jelly/poms/commons-jelly-tags-util-20040902.064720.pom -commons-jelly/poms/commons-jelly-tags-util-20040902.071012.pom -commons-jelly/poms/commons-jelly-tags-util-snapshot-version -commons-jelly/poms/commons-jelly-tags-validate-20040902.073836.pom -commons-jelly/poms/commons-jelly-tags-validate-snapshot-version -commons-jelly/poms/commons-jelly-tags-velocity-20040902.073917.pom -commons-jelly/poms/commons-jelly-tags-velocity-snapshot-version -commons-jelly/poms/commons-jelly-tags-xml-20040902.072037.pom -commons-jelly/poms/commons-jelly-tags-xml-snapshot-version -commons-jelly/poms/commons-jelly-tags-xmlunit-20040902.072757.pom -commons-jelly/poms/commons-jelly-tags-xmlunit-snapshot-version -commons-jexl/distributions/KEYS -commons-jexl/distributions/commons-jexl-1.0-RC1-src.tar.gz -commons-jexl/distributions/commons-jexl-1.0-RC1-src.zip -commons-jexl/distributions/commons-jexl-1.0-RC1.tar.gz -commons-jexl/distributions/commons-jexl-1.0-RC1.zip -commons-jexl/distributions/commons-jexl-1.0-src.tar.gz -commons-jexl/distributions/commons-jexl-1.0-src.zip -commons-jexl/distributions/commons-jexl-1.0.tar.gz -commons-jexl/distributions/commons-jexl-1.0.zip -commons-jexl/jars/commons-jexl-1.0-RC1.jar -commons-jexl/jars/commons-jexl-1.0-beta-1.jar -commons-jexl/jars/commons-jexl-1.0-beta-2.jar -commons-jexl/jars/commons-jexl-1.0-dev.20020731.122830.jar -commons-jexl/jars/commons-jexl-1.0-dev.jar -commons-jexl/jars/commons-jexl-1.0-javadoc.jar -commons-jexl/jars/commons-jexl-1.0.jar -commons-jexl/jars/commons-jexl-20030307.151331.jar -commons-jexl/jars/commons-jexl-20040901.055348.jar -commons-jexl/jars/commons-jexl-snapshot-version -commons-jexl/poms/commons-jexl-1.0-RC1.pom -commons-jexl/poms/commons-jexl-20040901.055348.pom -commons-jexl/poms/commons-jexl-snapshot-version -commons-jux/jars/commons-jux-20030306.065700.jar -commons-jux/jars/commons-jux-snapshot-version -commons-jxpath/jars/commons-jxpath-0.1-dev.jar -commons-jxpath/jars/commons-jxpath-1.0-javadoc.jar -commons-jxpath/jars/commons-jxpath-1.0.jar -commons-jxpath/jars/commons-jxpath-1.1-javadoc.jar -commons-jxpath/jars/commons-jxpath-1.1.jar -commons-jxpath/jars/commons-jxpath-1.2.jar -commons-jxpath/poms/commons-jxpath-1.0.pom -commons-jxpath/poms/commons-jxpath-1.1.pom -commons-jxpath/poms/commons-jxpath-1.2.pom -commons-lang/distributions/commons-lang-2.0.zip -commons-lang/jars/commons-lang-0.1-dev.jar -commons-lang/jars/commons-lang-1.0-b1.1.jar -commons-lang/jars/commons-lang-1.0-b1.jar -commons-lang/jars/commons-lang-2.3-javadoc.jar -commons-lang/jars/commons-lang-1.0-dev.20020910.034641.jar -commons-lang/jars/commons-lang-1.0-dev.jar -commons-lang/jars/commons-lang-1.0-javadoc.jar -commons-lang/jars/commons-lang-1.0.1-javadoc.jar -commons-lang/jars/commons-lang-1.0.1.jar -commons-lang/jars/commons-lang-1.0.jar -commons-lang/jars/commons-lang-1.1-dev.20021217.062015.jar -commons-lang/jars/commons-lang-2.0-dev.20030203.000129.jar -commons-lang/jars/commons-lang-2.0-javadoc.jar -commons-lang/jars/commons-lang-2.0.jar -commons-lang/jars/commons-lang-2.1-javadoc.jar -commons-lang/jars/commons-lang-2.1.jar -commons-lang/jars/commons-lang-snapshot-version -commons-lang/jars/commons-lang-2.3.jar -commons-lang/jars/commons-lang-2.3-sources.jar -commons-lang/poms/commons-lang-1.0.1.pom -commons-lang/poms/commons-lang-1.0.pom -commons-lang/poms/commons-lang-2.0.pom -commons-lang/poms/commons-lang-2.1.pom -commons-lang/poms/commons-lang-2.3.pom -commons-latka/jars/commons-latka-1.0-alpha1-javadoc.jar -commons-latka/jars/commons-latka-1.0-dev.20021208.082252.jar -commons-latka/jars/commons-latka-1.0-dev.20021208.125541.jar -commons-latka/jars/commons-latka-1.0-dev.20021208.130300.jar -commons-latka/jars/commons-latka-1.0-dev.20021217.141322.jar -commons-latka/jars/commons-latka-1.0-dev.20030107.163533.jar -commons-launcher/jars/commons-launcher-0.9-javadoc.jar -commons-launcher/jars/commons-launcher-1.1-javadoc.jar -commons-logging/jars/commons-logging-1.0-javadoc.jar -commons-logging/jars/commons-logging-1.0.1-javadoc.jar -commons-logging/jars/commons-logging-1.0.1.jar -commons-logging/jars/commons-logging-1.0.2-javadoc.jar -commons-logging/jars/commons-logging-1.0.2.jar -commons-logging/jars/commons-logging-1.0.3-javadoc.jar -commons-logging/jars/commons-logging-1.0.3.jar -commons-logging/jars/commons-logging-1.0.4-javadoc.jar -commons-logging/jars/commons-logging-1.0.4.jar -commons-logging/jars/commons-logging-1.0.jar -commons-logging/jars/commons-logging-1.1-dev.jar -commons-logging/jars/commons-logging-1.1.jar -commons-logging/jars/commons-logging-adapters-1.1.jar -commons-logging/jars/commons-logging-api-1.0.3.jar -commons-logging/jars/commons-logging-api-1.0.4.jar -commons-logging/jars/commons-logging-api-1.1.jar -commons-logging/jars/commons-logging-api-snapshot-version -commons-logging/jars/commons-logging-snapshot-version -commons-logging/poms/commons-logging-1.0.1.pom -commons-logging/poms/commons-logging-1.0.2.pom -commons-logging/poms/commons-logging-1.0.3.pom -commons-logging/poms/commons-logging-1.0.4.pom -commons-logging/poms/commons-logging-1.1.pom -commons-logging/poms/commons-logging-api-1.1.pom -commons-math/distributions/commons-math-20040118.003950-src.tar.gz -commons-math/distributions/commons-math-20040118.003950-src.zip -commons-math/distributions/commons-math-20040118.003950.tar.gz -commons-math/distributions/commons-math-20040118.003950.zip -commons-math/jars/commons-math-1.0-javadoc.jar -commons-math/jars/commons-math-1.0.jar -commons-math/jars/commons-math-1.1.jar -commons-math/jars/commons-math-20040118.003354.jar -commons-math/jars/commons-math-20040218.045431.jar -commons-math/jars/commons-math-snapshot-version -commons-math/poms/commons-math-1.0.pom -commons-math/poms/commons-math-1.1.pom -commons-messenger/jars/commons-messenger-1.0-dev-10.jar -commons-messenger/jars/commons-messenger-1.0-dev-11.jar -commons-messenger/jars/commons-messenger-1.0-dev-12.jar -commons-messenger/jars/commons-messenger-1.0-dev-13.jar -commons-messenger/jars/commons-messenger-1.0-dev-14.jar -commons-messenger/jars/commons-messenger-1.0-dev-2.jar -commons-messenger/jars/commons-messenger-1.0-dev-4.jar -commons-messenger/jars/commons-messenger-1.0-dev-5.jar -commons-messenger/jars/commons-messenger-1.0-dev-6.jar -commons-messenger/jars/commons-messenger-1.0-dev-8.jar -commons-messenger/jars/commons-messenger-1.0-dev.20020708.025623.jar -commons-messenger/jars/commons-messenger-1.0-dev.20020708.042042.jar -commons-messenger/jars/commons-messenger-1.0-dev.20020906.115547.jar -commons-messenger/jars/commons-messenger-1.0-dev.jar -commons-modeler/jars/commons-modeler-1.0-javadoc.jar -commons-modeler/jars/commons-modeler-1.1-dev.jar -commons-modeler/jars/commons-modeler-1.1-javadoc.jar -commons-modeler/jars/commons-modeler-1.1.jar -commons-modeler/jars/commons-modeler-2.0.1.jar -commons-modeler/jars/commons-modeler-1.1M1.jar -commons-modeler/jars/commons-modeler-2.0.jar -commons-modeler/jars/commons-modeler-2.0.1-javadoc.jar -commons-modeler/jars/commons-modeler-2.0.1-sources.jar -commons-modeler/poms/commons-modeler-1.1.pom -commons-modeler/poms/commons-modeler-2.0.pom -commons-modeler/poms/commons-modeler-2.0.1.pom -commons-naming/jars/commons-naming-core-20031116.223527.jar -commons-naming/jars/commons-naming-factory-20031116.223742.jar -commons-naming/jars/commons-naming-core-snapshot-version -commons-naming/jars/commons-naming-factory-20031201.015542.jar -commons-naming/jars/commons-naming-factory-snapshot-version -commons-net/jars/commons-net-1.0.0-javadoc.jar -commons-net/jars/commons-net-1.0.0.jar -commons-net/jars/commons-net-1.1.0-javadoc.jar -commons-net/jars/commons-net-1.1.0.jar -commons-net/jars/commons-net-1.2.0-javadoc.jar -commons-net/jars/commons-net-1.2.1-javadoc.jar -commons-net/jars/commons-net-1.2.1.jar -commons-net/jars/commons-net-1.2.2-javadoc.jar -commons-net/jars/commons-net-1.3.0-javadoc.jar -commons-net/jars/commons-net-1.3.0.jar -commons-net/jars/commons-net-1.4.0-javadoc.jar -commons-net/jars/commons-net-1.4.0.jar -commons-net/jars/commons-net-1.4.1-javadoc.jar -commons-net/jars/commons-net-1.4.1.jar -commons-net/jars/commons-net-20030211.160026.jar -commons-net/jars/commons-net-20030623.125255.jar -commons-net/jars/commons-net-20030805.205232.jar -commons-net/jars/commons-net-snapshot-version -commons-net/poms/commons-net-1.0.0.pom -commons-net/poms/commons-net-1.1.0.pom -commons-net/poms/commons-net-1.2.1.pom -commons-net/poms/commons-net-1.3.0.pom -commons-net/poms/commons-net-1.4.0.pom -commons-net/poms/commons-net-1.4.1.pom -commons-pool/jars/commons-pool-1.0-javadoc.jar -commons-pool/jars/commons-pool-1.0.1-javadoc.jar -commons-pool/jars/commons-pool-1.0.1.jar -commons-pool/jars/commons-pool-1.0.jar -commons-pool/jars/commons-pool-1.1-RC1.jar -commons-pool/jars/commons-pool-1.1-RC2.jar -commons-pool/jars/commons-pool-1.1-dev.jar -commons-pool/jars/commons-pool-1.1-javadoc.jar -commons-pool/jars/commons-pool-1.1.jar -commons-pool/jars/commons-pool-1.2-javadoc.jar -commons-pool/jars/commons-pool-1.2.jar -commons-pool/jars/commons-pool-1.3.jar -commons-pool/jars/commons-pool-20020501.jar -commons-pool/jars/commons-pool-20030623.172700.jar -commons-pool/jars/commons-pool-20030818.195203.jar -commons-pool/jars/commons-pool-20030821.192746.jar -commons-pool/jars/commons-pool-20030825.183949.jar -commons-pool/jars/commons-pool-snapshot-version -commons-pool/poms/commons-pool-1.0.1.pom -commons-pool/poms/commons-pool-1.1.pom -commons-pool/poms/commons-pool-1.2.pom -commons-pool/poms/commons-pool-1.3.pom -commons-primitives/jars/commons-primitives-1.0-javadoc.jar -commons-primitives/poms/commons-primitives.xml -commons-scxml/distributions/commons-scxml-0.5-src.tar.gz -commons-scxml/distributions/commons-scxml-0.5-src.zip -commons-scxml/distributions/commons-scxml-0.5.tar.gz -commons-scxml/distributions/commons-scxml-0.5.zip -commons-scxml/distributions/commons-scxml-0.6-src.zip -commons-scxml/distributions/commons-scxml-0.6-src.tar.gz -commons-scxml/distributions/commons-scxml-0.6.tar.gz -commons-scxml/distributions/commons-scxml-0.6.zip -commons-scxml/jars/commons-scxml-0.5.jar -commons-scxml/jars/commons-scxml-0.6.jar -commons-scxml/poms/commons-scxml-0.5.pom -commons-scxml/poms/commons-scxml-0.6.pom -commons-sql/jars/commons-sql-1.0-dev.jar -commons-sql/jars/commons-sql-20040118.000852.jar -commons-sql/jars/commons-sql-snapshot-version -commons-threadpool/jars/commons-threadpool-1.0-dev.20021010.081157.jar -commons-threadpool/jars/commons-threadpool-20030513.073905.jar -commons-threadpool/jars/commons-threadpool-snapshot-version -commons-transaction/jars/commons-transaction-1.0-javadoc.jar -commons-transaction/jars/commons-transaction-1.0.1-javadoc.jar -commons-transaction/jars/commons-transaction-1.1-javadoc.jar -commons-transaction/jars/commons-transaction-1.1.jar -commons-transaction/jars/commons-transaction-1.2.jar -commons-transaction/poms/commons-transaction-1.1.pom -commons-transaction/poms/commons-transaction-1.2.pom -commons-util/jars/commons-util-1.0-rc2-dev.20020814.103359.jar -commons-util/jars/commons-util-1.0-rc2-dev.20021217.063141.jar -commons-util/jars/commons-util-1.0-rc2-dev.jar -commons-util/jars/commons-utils-snapshot-version -commons-validator/distributions/commons-validator-1.1.3-src.tar.gz.MD5 -commons-validator/distributions/commons-validator-1.1.3-src.tar.gz -commons-validator/distributions/commons-validator-1.1.3-src.zip.MD5 -commons-validator/distributions/commons-validator-1.1.3-src.zip -commons-validator/distributions/commons-validator-1.1.3.tar.gz.MD5 -commons-validator/distributions/commons-validator-1.1.3.tar.gz -commons-validator/distributions/commons-validator-1.1.3.zip.MD5 -commons-validator/distributions/commons-validator-1.1.3.zip -commons-validator/jars/commons-validator-1.0-javadoc.jar -commons-validator/jars/commons-validator-1.0.1-javadoc.jar -commons-validator/jars/commons-validator-1.0.1.jar -commons-validator/jars/commons-validator-1.0.2-javadoc.jar -commons-validator/jars/commons-validator-1.3.1.jar -commons-validator/jars/commons-validator-1.0.2.jar -commons-validator/jars/commons-validator-1.0.jar -commons-validator/jars/commons-validator-1.1.3-javadoc.jar -commons-validator/jars/commons-validator-1.1.3-src.tar.gz -commons-validator/jars/commons-validator-1.1.3-src.tar.gz.MD5 -commons-validator/jars/commons-validator-1.1.3-src.zip -commons-validator/jars/commons-validator-1.1.3-src.zip.MD5 -commons-validator/jars/commons-validator-1.1.3.jar -commons-validator/jars/commons-validator-1.1.3.tar.gz -commons-validator/jars/commons-validator-1.1.3.tar.gz.MD5 -commons-validator/jars/commons-validator-1.1.3.zip -commons-validator/jars/commons-validator-1.1.3.zip.MD5 -commons-validator/jars/commons-validator-1.1.4-javadoc.jar -commons-validator/jars/commons-validator-1.1.4.jar -commons-validator/jars/commons-validator-1.2.0-javadoc.jar -commons-validator/jars/commons-validator-1.2.0.jar -commons-validator/jars/commons-validator-1.3.0.jar -commons-validator/jars/struts-help.html -commons-validator/jars/commons-validator-1.3.1-sources.jar -commons-validator/poms/commons-validator-1.0.1.pom -commons-validator/poms/commons-validator-1.0.2.pom -commons-validator/poms/commons-validator-1.0.pom -commons-validator/poms/commons-validator-1.2.0.pom -commons-validator/poms/commons-validator-1.3.1.pom -commons-validator/poms/commons-validator-1.3.0.pom -commons-vfs/jars/commons-vfs-1.0.jar -commons-vfs/poms/commons-vfs-1.0.pom -commons-xo/jars/commons-xo-0.8.jar -commons-xo/jars/commons-xo-1.0-20020507.jar -cornerstone-connection/jars/cornerstone-connection-api-1.0.jar -cornerstone-connection/jars/cornerstone-connection-api-2.1.jar -cornerstone-connection/jars/cornerstone-connection-impl-1.0.jar -cornerstone-connection/jars/cornerstone-connection-impl-2.1.jar -cornerstone-connection/poms/cornerstone-connection-api-2.1.pom -cornerstone-connection/poms/cornerstone-connection-impl-2.1.pom -cornerstone-datasources/jars/cornerstone-datasources-api-1.0.jar -cornerstone-datasources/jars/cornerstone-datasources-api-2.1.jar -cornerstone-datasources/jars/cornerstone-datasources-impl-1.0.jar -cornerstone-datasources/jars/cornerstone-datasources-impl-2.1.jar -cornerstone-datasources/poms/cornerstone-datasources-api-2.1.pom -cornerstone-datasources/poms/cornerstone-datasources-impl-2.1.pom -cornerstone-scheduler/jars/cornerstone-scheduler-api-1.0.jar -cornerstone-scheduler/jars/cornerstone-scheduler-api-2.1.jar -cornerstone-scheduler/jars/cornerstone-scheduler-impl-1.0.jar -cornerstone-scheduler/jars/cornerstone-scheduler-impl-2.1.jar -cornerstone-scheduler/poms/cornerstone-scheduler-api-2.1.pom -cornerstone-scheduler/poms/cornerstone-scheduler-impl-2.1.pom -cornerstone-sockets/jars/cornerstone-sockets-api-1.0.jar -cornerstone-sockets/jars/cornerstone-sockets-api-2.1.jar -cornerstone-sockets/jars/cornerstone-sockets-impl-1.0.jar -cornerstone-sockets/jars/cornerstone-sockets-impl-2.1.jar -cornerstone-sockets/poms/cornerstone-sockets-api-2.1.pom -cornerstone-sockets/poms/cornerstone-sockets-impl-2.1.pom -cornerstone-store/jars/cornerstone-store-api-1.0.jar -cornerstone-store/jars/cornerstone-store-api-2.1.jar -cornerstone-store/jars/cornerstone-store-impl-1.0.jar -cornerstone-store/jars/cornerstone-store-impl-1.1.jar -cornerstone-store/jars/cornerstone-store-impl-2.1.jar -cornerstone-store/poms/cornerstone-store-api-2.1.pom -cornerstone-store/poms/cornerstone-store-impl-2.1.pom -cornerstone-threads/jars/cornerstone-threads-api-1.0.jar -cornerstone-threads/jars/cornerstone-threads-api-2.1.jar -cornerstone-threads/jars/cornerstone-threads-impl-1.0.jar -cornerstone-threads/jars/cornerstone-threads-impl-2.1.jar -cornerstone-threads/jars/cornerstone-threads-tutorial-1.0.jar -cornerstone-threads/jars/cornerstone-threads-tutorial-2.1.jar -cornerstone-threads/poms/cornerstone-threads-api-2.1.pom -cornerstone-threads/poms/cornerstone-threads-impl-2.1.pom -cornerstone-threads/poms/cornerstone-threads-tutorial-2.1.pom -crimson/jars/crimson-1.1.3.jar -directory/distributions/apacheds-0.9-src.tar.gz -directory/distributions/apacheds-0.9-src.zip -directory/distributions/apacheds-0.9.2-src.tar.gz -directory/distributions/apacheds-0.9.2-src.zip -directory/distributions/apacheds-0.9.tar.gz -directory/distributions/apacheds-0.9.zip -directory/jars/apacheds-core-0.9.1.jar -directory/jars/apacheds-core-0.9.2.jar -directory/jars/apacheds-core-0.9.3.jar -directory/jars/apacheds-core-0.9.jar -directory/jars/apacheds-main-0.9.1.jar -directory/jars/apacheds-main-0.9.2.jar -directory/jars/apacheds-main-0.9.3.jar -directory/jars/apacheds-main-0.9.jar -directory/jars/apacheds-shared-0.9.1.jar -directory/jars/apacheds-shared-0.9.2.jar -directory/jars/apacheds-shared-0.9.3.jar -directory/jars/apacheds-shared-0.9.jar -directory/jars/ldap-common-20031205.013436.jar -directory/plugins/maven-directory-plugin-0.9.1.jar -directory/plugins/maven-directory-plugin-0.9.2.jar -directory/plugins/maven-directory-plugin-0.9.3.jar -directory/plugins/maven-directory-plugin-0.9.jar -directory/poms/apacheds-0.9.pom -directory/poms/apacheds-core-0.9.2.pom -directory/poms/apacheds-core-0.9.3.pom -directory/poms/apacheds-core-0.9.pom -directory/poms/apacheds-main-0.9.2.pom -directory/poms/apacheds-main-0.9.3.pom -directory/poms/apacheds-main-0.9.pom -directory/poms/apacheds-shared-0.9.2.pom -directory/poms/apacheds-shared-0.9.3.pom -directory/poms/maven-directory-plugin-0.9.2.pom -directory/poms/apacheds-shared-0.9.pom -directory/poms/maven-directory-plugin-0.9.3.pom -directory/poms/maven-directory-plugin-0.9.pom -directory-asn1/jars/asn1-ber-0.3.2.jar -directory-asn1/jars/asn1-ber-0.3.3.jar -directory-asn1/jars/asn1-ber-0.3.jar -directory-asn1/jars/asn1-codec-0.3.2.jar -directory-asn1/jars/asn1-codec-0.3.3.jar -directory-asn1/jars/asn1-codec-0.3.jar -directory-asn1/jars/asn1-der-0.3.2.jar -directory-asn1/jars/asn1-der-0.3.3.jar -directory-asn1/jars/asn1-der-0.3.jar -directory-asn1/jars/asn1-new-ber-0.3.3.jar -directory-asn1/jars/stub-compiler-0.3.2.jar -directory-asn1/jars/stub-compiler-0.3.jar -directory-asn1/poms/asn1-0.3.3.pom -directory-asn1/poms/asn1-ber-0.3.2.pom -directory-asn1/poms/asn1-ber-0.3.3.pom -directory-asn1/poms/asn1-ber-0.3.pom -directory-asn1/poms/asn1-codec-0.3.2.pom -directory-asn1/poms/asn1-codec-0.3.3.pom -directory-asn1/poms/asn1-codec-0.3.pom -directory-asn1/poms/asn1-der-0.3.2.pom -directory-asn1/poms/asn1-der-0.3.3.pom -directory-asn1/poms/asn1-der-0.3.pom -directory-asn1/poms/asn1-new-ber-0.3.3.pom -directory-asn1/poms/stub-compiler-0.3.2.pom -directory-asn1/poms/stub-compiler-0.3.pom -directory-clients/jars/ldap-clients-0.9.jar -directory-clients/poms/ldap-clients-0.9-SNAPSHOT.pom -directory-clients/poms/ldap-clients-0.9.1-SNAPSHOT.pom -directory-clients/poms/ldap-clients-0.9.pom -directory-naming/jars/naming-config-0.8.jar -directory-naming/jars/naming-core-0.8.jar -directory-naming/jars/naming-factory-0.8.jar -directory-naming/jars/naming-java-0.8.jar -directory-naming/jars/naming-management-0.8.jar -directory-naming/jars/naming-resources-0.8.jar -directory-naming/poms/naming-config-0.8.pom -directory-naming/poms/naming-core-0.8.pom -directory-naming/poms/naming-core-0.9-dev.pom -directory-naming/poms/naming-factory-0.8.pom -directory-naming/poms/naming-java-0.8.pom -directory-naming/poms/naming-management-0.8.pom -directory-naming/poms/naming-resources-0.8.pom -directory-network/jars/mina-0.7.1.jar -directory-network/jars/mina-0.7.2.jar -directory-network/jars/mina-0.7.3.jar -directory-network/jars/mina-0.7.4.jar -directory-network/jars/mina-0.7.jar -directory-network/jars/mina-0.8.0.jar -directory-network/jars/mina-0.8.1.jar -directory-network/jars/mina-0.8.2.jar -directory-network/jars/mina-0.9.0.jar -directory-network/poms/mina-0.7.1.pom -directory-network/poms/mina-0.7.2.pom -directory-network/poms/mina-0.7.3.pom -directory-network/poms/mina-0.7.4.pom -directory-network/poms/mina-0.7.pom -directory-network/poms/mina-0.8.0.pom -directory-network/poms/mina-0.8.1.pom -directory-network/poms/mina-0.8.2.pom -directory-network/poms/mina-0.9.0.pom -directory-network/KEYS -directory-protocols/jars/kerberos-protocol-0.4.jar -directory-protocols/jars/ldap-protocol-0.9.jar -directory-protocols/poms/kerberos-protocol-0.4.pom -directory-protocols/poms/ldap-protocol-0.9.pom -directory-shared/jars/apache-ldapber-provider-0.9.2.jar -directory-shared/jars/apache-ldapber-provider-0.9.3.jar -directory-shared/jars/apache-ldapber-provider-0.9.jar -directory-shared/jars/apache-new-ldapber-provider-0.9.3.jar -directory-shared/jars/kerberos-common-0.4.jar -directory-shared/jars/kerberos-common-0.5.jar -directory-shared/jars/ldap-common-0.9.2.jar -directory-shared/jars/ldap-common-0.9.3.jar -directory-shared/jars/ldap-common-0.9.jar -directory-shared/jars/ldap-snacc-provider-0.9.2.jar -directory-shared/jars/ldap-snacc-provider-0.9.3.jar -directory-shared/jars/ldap-snacc-provider-0.9.jar -directory-shared/poms/apache-ldapber-provider-0.9.2.pom -directory-shared/poms/apache-ldapber-provider-0.9.3.pom -directory-shared/poms/apache-ldapber-provider-0.9.pom -directory-shared/poms/apache-new-ldapber-provider-0.9.3.pom -directory-shared/poms/kerberos-common-0.4.pom -directory-shared/poms/kerberos-common-0.5.pom -directory-shared/poms/ldap-common-0.9.2.pom -directory-shared/poms/ldap-common-0.9.3.pom -directory-shared/poms/ldap-common-0.9.pom -directory-shared/poms/ldap-snacc-provider-0.9.2.pom -directory-shared/poms/ldap-snacc-provider-0.9.3.pom -directory-shared/poms/ldap-snacc-provider-0.9.pom -excalibur/jars/excalibur-collections-1.0.jar -excalibur/jars/excalibur-configuration-1.0.jar -excalibur/jars/excalibur-event-2.0.jar -excalibur/jars/excalibur-extension-1.0.jar -excalibur/jars/excalibur-i18n-1.0.jar -excalibur/jars/excalibur-instrument-0.3.jar -excalibur/jars/excalibur-testcase-1.0.jar -excalibur/jars/excalibur-thread-1.1.jar -excalibur/jars/excalibur-threadcontext-1.0.jar -excalibur/jars/excalibur-util-concurrent-1.3.1.jar -excalibur-altrmi/jars/excalibur-altrmi-client-impl-0.7.jar -excalibur-altrmi/jars/excalibur-altrmi-client-interfaces-0.7.jar -excalibur-altrmi/jars/excalibur-altrmi-common-0.7.jar -excalibur-altrmi/jars/excalibur-altrmi-generator-0.7.jar -excalibur-altrmi/jars/excalibur-altrmi-server-impl-0.7.jar -excalibur-altrmi/jars/excalibur-altrmi-server-interfaces-0.7.jar -excalibur-cli/jars/excalibur-cli-1.0.jar -excalibur-collections/jars/excalibur-collections-1.0.jar -excalibur-collections/jars/excalibur-collections-20020820.jar -excalibur-component/jars/excalibur-component-1.0.jar -excalibur-component/jars/excalibur-component-1.1.jar -excalibur-component/jars/excalibur-component-1.2.jar -excalibur-component/jars/excalibur-component-2.1.jar -excalibur-component/jars/excalibur-component-20020916.jar -excalibur-component/jars/excalibur-testcase-2.1.jar -excalibur-component/poms/excalibur-component-2.1.pom -excalibur-component/poms/excalibur-testcase-2.1.pom -excalibur-component-examples/jars/excalibur-component-examples-2.1.jar -excalibur-component-examples/poms/excalibur-component-examples-2.1.pom -excalibur-component-tests/jars/excalibur-component-tests-2.1.jar -excalibur-component-tests/poms/excalibur-component-tests-2.1.pom -excalibur-concurrent/jars/excalibur-concurrent-1.0.jar -excalibur-concurrent/jars/excalibur-concurrent-20020820.jar -excalibur-configuration/distributions/excalibur-configuration-1.1-RC1-src.tar.gz -excalibur-configuration/distributions/excalibur-configuration-1.1-RC1-src.zip -excalibur-configuration/distributions/excalibur-configuration-1.1-RC1.tar.gz -excalibur-configuration/distributions/excalibur-configuration-1.1-RC1.zip -excalibur-configuration/distributions/excalibur-configuration-1.1-src.tar.gz -excalibur-configuration/distributions/excalibur-configuration-1.1-src.zip -excalibur-configuration/distributions/excalibur-configuration-1.1.tar.gz -excalibur-configuration/distributions/excalibur-configuration-1.1.zip -excalibur-configuration/jars/excalibur-configuration-1.0.jar -excalibur-configuration/jars/excalibur-configuration-1.1-RC1.jar -excalibur-configuration/jars/excalibur-configuration-1.1-dev.jar -excalibur-configuration/jars/excalibur-configuration-1.1.jar -excalibur-configuration/jars/excalibur-configuration-1.2.jar -excalibur-containerkit/jars/excalibur-containerkit-1.0.jar -excalibur-datasource/jars/excalibur-datasource-1.1.1.jar -excalibur-datasource/jars/excalibur-datasource-1.2.0.jar -excalibur-datasource/jars/excalibur-datasource-cluster-1.1.1a.jar -excalibur-datasource/jars/excalibur-datasource-2.1.jar -excalibur-datasource/jars/excalibur-datasource-ids-1.1.1a.jar -excalibur-datasource/jars/excalibur-datasource-vm14-20021121.jar -excalibur-datasource/poms/excalibur-datasource-2.1.pom -fop/jars/fop-0.20.3.jar -fop/jars/fop-0.20.4.jar -fop/jars/fop-0.20.5-rc3-alpha.jar -fop/jars/fop-0.20.5.jar -fop/jars/fop-0.20.5rc2.jar -fop/jars/fop-0.93-jdk15.jar -fop/jars/fop-0.93-jdk14.jar -excalibur-event/distributions/excalibur-event-1.0.3.zip -excalibur-event/jars/excalibur-event-1.0.3.jar -excalibur-event/jars/excalibur-event-1.0a.jar -excalibur-event/jars/excalibur-event-20030217.000000.jar -excalibur-event/jars/excalibur-event-api-1.0.4-dev.jar -excalibur-event/jars/excalibur-event-api-2.1.jar -excalibur-event/jars/excalibur-event-impl-1.0.4-dev.jar -excalibur-event/jars/excalibur-event-impl-2.1.jar -excalibur-event/jars/excalibur-event-snapshot-version -excalibur-event/poms/excalibur-event-api-2.1.pom -excalibur-event/poms/excalibur-event-impl-2.1.pom -excalibur-extension/jars/excalibur-extension-1.0.jar -excalibur-fortress/jars/excalibur-fortress-1.0.jar -excalibur-fortress/jars/excalibur-fortress-bean-1.2.jar -excalibur-fortress/jars/excalibur-fortress-cli-1.2.jar -excalibur-fortress/jars/excalibur-fortress-complete-1.0.jar -excalibur-fortress/jars/excalibur-fortress-container-api-1.2.jar -excalibur-fortress/jars/excalibur-fortress-container-impl-1.2.jar -excalibur-fortress/jars/excalibur-fortress-container-test-1.2.jar -excalibur-fortress/jars/excalibur-fortress-examples-1.2.jar -excalibur-fortress/jars/excalibur-fortress-meta-1.2.jar -excalibur-fortress/jars/excalibur-fortress-migration-1.2.jar -excalibur-fortress/jars/excalibur-fortress-servlet-1.2.jar -excalibur-fortress/jars/excalibur-fortress-testcase-1.2.jar -excalibur-fortress/jars/excalibur-fortress-tools-1.0.jar -excalibur-fortress/poms/excalibur-fortress-bean-1.2.pom -excalibur-fortress/poms/excalibur-fortress-cli-1.2.pom -excalibur-fortress/poms/excalibur-fortress-container-api-1.2.pom -excalibur-fortress/poms/excalibur-fortress-container-impl-1.2.pom -excalibur-fortress/poms/excalibur-fortress-meta-1.2.pom -excalibur-fortress/poms/excalibur-fortress-container-test-1.2.pom -excalibur-fortress/poms/excalibur-fortress-examples-1.2.pom -excalibur-fortress/poms/excalibur-fortress-migration-1.2.pom -excalibur-fortress/poms/excalibur-fortress-platform-1.2.pom -excalibur-fortress/poms/excalibur-fortress-servlet-1.2.pom -excalibur-fortress/poms/excalibur-fortress-testcase-1.2.pom -excalibur-i18n/distributions/excalibur-i18n-1.1-RC1-src.tar.gz -excalibur-i18n/distributions/excalibur-i18n-1.1-RC1-src.zip -excalibur-i18n/distributions/excalibur-i18n-1.1-RC1.tar.gz -excalibur-i18n/distributions/excalibur-i18n-1.1-RC1.zip -excalibur-i18n/distributions/excalibur-i18n-1.1-src.tar.gz -excalibur-i18n/distributions/excalibur-i18n-1.1-src.zip -excalibur-i18n/distributions/excalibur-i18n-1.1-tar.gz -excalibur-i18n/distributions/excalibur-i18n-1.1.zip -excalibur-i18n/jars/excalibur-i18n-1.0.jar -excalibur-i18n/jars/excalibur-i18n-1.1-RC1.jar -excalibur-i18n/jars/excalibur-i18n-1.1.jar -excalibur-instrument/jars/excalibur-instrument-0.1.jar -excalibur-instrument/jars/excalibur-instrument-1.0.jar -excalibur-instrument/jars/excalibur-instrument-20021108.jar -excalibur-instrument/jars/excalibur-instrument-api-2.1.jar -excalibur-instrument/jars/excalibur-instrument-client-2.1.jar -excalibur-instrument/jars/excalibur-instrument-mgr-api-2.1.jar -excalibur-instrument/jars/excalibur-instrument-mgr-http-2.1.jar -excalibur-instrument/jars/excalibur-instrument-mgr-impl-2.1.jar -excalibur-instrument/poms/excalibur-instrument-api-2.1.pom -excalibur-instrument/poms/excalibur-instrument-client-2.1.pom -excalibur-instrument/poms/excalibur-instrument-mgr-api-2.1.pom -excalibur-instrument/poms/excalibur-instrument-mgr-http-2.1.pom -excalibur-instrument/poms/excalibur-instrument-mgr-impl-2.1.pom -excalibur-instrument-manager/jars/excalibur-instrument-manager-0.1.jar -excalibur-instrument-manager/jars/excalibur-instrument-manager-1.0.jar -excalibur-instrument-manager/jars/excalibur-instrument-manager-20021108.jar -excalibur-instrument-manager-interfaces/jars/excalibur-instrument-manager-interfaces-0.1.jar -excalibur-instrument-manager-interfaces/jars/excalibur-instrument-manager-interfaces-1.0.jar -excalibur-instrument-manager-interfaces/jars/excalibur-instrument-manager-interfaces-20021108.jar -excalibur-io/jars/excalibur-io-1.1.jar -excalibur-lifecycle/jars/excalibur-lifecycle-1.0.jar -excalibur-lifecycle/jars/excalibur-lifecycle-api-1.0.jar -excalibur-lifecycle/jars/excalibur-lifecycle-api-1.1.0.jar -excalibur-lifecycle/jars/excalibur-lifecycle-api-1.1.jar -excalibur-lifecycle/jars/excalibur-lifecycle-api-2.1.jar -excalibur-lifecycle/jars/excalibur-lifecycle-impl-1.0.jar -excalibur-lifecycle/jars/excalibur-lifecycle-impl-1.1.0.jar -excalibur-lifecycle/jars/excalibur-lifecycle-impl-1.1.jar -excalibur-lifecycle/jars/excalibur-lifecycle-impl-2.1.jar -excalibur-lifecycle/poms/excalibur-lifecycle-api-2.1.pom -excalibur-lifecycle/poms/excalibur-lifecycle-impl-2.1.pom -excalibur-logger/jars/excalibur-logger-1.0.1.jar -excalibur-logger/jars/excalibur-logger-1.0.jar -excalibur-logger/jars/excalibur-logger-1.1.jar -excalibur-logger/jars/excalibur-logger-2.1.jar -excalibur-logger/jars/excalibur-logger-20020820.jar -excalibur-logger/poms/excalibur-logger-2.1.pom -excalibur-monitor/jars/excalibur-monitor-1.0.jar -excalibur-monitor/jars/excalibur-monitor-2.1.jar -excalibur-monitor/jars/excalibur-monitor-20020820.jar -excalibur-monitor/poms/excalibur-monitor-2.1.pom -excalibur-mpool/jars/excalibur-mpool-1.0.jar -excalibur-naming/jars/excalibur-naming-1.0.jar -excalibur-pool/jars/excalibur-pool-1.0.jar -excalibur-pool/jars/excalibur-pool-1.2.jar -excalibur-pool/jars/excalibur-pool-20020820.jar -excalibur-pool/jars/excalibur-pool-api-2.0.0.jar -excalibur-pool/jars/excalibur-pool-instrumented-2.0.0.jar -excalibur-pool/jars/excalibur-pool-api-2.0.jar -excalibur-pool/jars/excalibur-pool-api-2.1.jar -excalibur-pool/jars/excalibur-pool-impl-2.0.0.jar -excalibur-pool/jars/excalibur-pool-impl-2.0.jar -excalibur-pool/jars/excalibur-pool-impl-2.1.jar -excalibur-pool/jars/excalibur-pool-instrumented-2.0.jar -excalibur-pool/jars/excalibur-pool-instrumented-2.1.jar -excalibur-pool/poms/excalibur-pool-api-2.1.pom -excalibur-pool/poms/excalibur-pool-impl-2.1.pom -excalibur-pool/poms/excalibur-pool-instrumented-2.1.pom -excalibur-sourceresolve/jars/excalibur-sourceresolve-1.0.1.jar -excalibur-sourceresolve/jars/excalibur-sourceresolve-1.0.jar -excalibur-sourceresolve/jars/excalibur-sourceresolve-1.1.jar -excalibur-sourceresolve/jars/excalibur-sourceresolve-2.0.jar -excalibur-sourceresolve/jars/excalibur-sourceresolve-2.1.jar -excalibur-sourceresolve/jars/excalibur-sourceresolve-20020820.jar -excalibur-sourceresolve/poms/excalibur-sourceresolve-2.1.pom -excalibur-store/jars/excalibur-store-1.0.jar -excalibur-store/jars/excalibur-store-2.1.jar -excalibur-store/jars/excalibur-store-20020820.jar -excalibur-store/poms/excalibur-store-2.1.pom -excalibur-thread/distributions/excalibur-thread-1.1.1.zip -excalibur-thread/jars/excalibur-thread-1.0.jar -excalibur-thread/jars/excalibur-thread-1.1.1.jar -excalibur-thread/jars/excalibur-thread-api-2.0.0.jar -excalibur-thread/jars/excalibur-thread-instrumented-2.0.0.jar -excalibur-thread/jars/excalibur-thread-api-2.0.jar -excalibur-thread/jars/excalibur-thread-api-2.1.jar -excalibur-thread/jars/excalibur-thread-impl-2.0.0.jar -excalibur-thread/jars/excalibur-thread-impl-2.0.jar -excalibur-thread/jars/excalibur-thread-impl-2.1.jar -excalibur-thread/jars/excalibur-thread-instrumented-2.0.jar -excalibur-thread/jars/excalibur-thread-instrumented-2.1.jar -excalibur-thread/poms/excalibur-thread-api-2.1.pom -excalibur-thread/poms/excalibur-thread-impl-2.1.pom -excalibur-thread/poms/excalibur-thread-instrumented-2.1.pom -fulcrum/jars/fulcrum-1.0.jar -fulcrum/jars/fulcrum-3.0-b1.jar -fulcrum/jars/fulcrum-3.0-b2-dev.jar -fulcrum/jars/fulcrum-crypto-1.0.5.jar -fulcrum/jars/fulcrum-bsf-1.0.2.jar -fulcrum/jars/fulcrum-cache-1.0.5.jar -fulcrum/jars/fulcrum-factory-1.0.3.jar -fulcrum/jars/fulcrum-dvsl-1.0.5.jar -fulcrum/jars/fulcrum-osworkflow-1.0.1.jar -fulcrum/jars/fulcrum-localization-1.0.5.jar -fulcrum/jars/fulcrum-mimetype-1.0.4.jar -fulcrum/jars/fulcrum-naming-1.0.2.jar -fulcrum/jars/fulcrum-security-api-1.0.7.jar -fulcrum/jars/fulcrum-pool-1.0.3.jar -fulcrum/jars/fulcrum-quartz-1.0.jar -fulcrum/jars/fulcrum-security-adapter-opensymphony-1.0.7.jar -fulcrum/jars/fulcrum-security-adapter-turbine-1.0.7.jar -fulcrum/jars/fulcrum-security-hibernate-1.0.7.jar -fulcrum/jars/fulcrum-security-memory-1.0.7.jar -fulcrum/jars/fulcrum-security-nt-1.0.7.jar -fulcrum/jars/fulcrum-testcontainer-1.0.4.jar -fulcrum/jars/fulcrum-upload-1.0.3.jar -fulcrum/jars/fulcrum-xmlrpc-1.0.5.jar -fulcrum/jars/fulcrum-xslt-1.0.3.jar -fulcrum/jars/fulcrum-yaafi-1.0.3.jar -excalibur-util/jars/excalibur-util-1.0.jar -excalibur-xmlutil/jars/excalibur-xmlutil-1.0.jar -excalibur-xmlutil/jars/excalibur-xmlutil-2.1.jar -excalibur-xmlutil/jars/excalibur-xmlutil-20020820.jar -excalibur-xmlutil/poms/excalibur-xmlutil-2.1.pom -geronimo/cars/activemq-1.0.car -geronimo/cars/activemq-broker-1.0.car -geronimo/cars/client-1.0.car -geronimo/cars/client-corba-1.0.car -geronimo/cars/client-security-1.0.car -geronimo/cars/javamail-1.0.car -geronimo/cars/client-system-1.0.car -geronimo/cars/daytrader-derby-jetty-1.0.car -geronimo/cars/daytrader-derby-tomcat-1.0.car -geronimo/cars/daytrader-derby-jetty-streamer-client-1.0.car -geronimo/cars/directory-1.0.car -geronimo/cars/daytrader-derby-tomcat-streamer-client-1.0.car -geronimo/cars/geronimo-gbean-deployer-1.0.car -geronimo/cars/hot-deployer-1.0.car -geronimo/cars/j2ee-system-experimental-1.0.car -geronimo/cars/j2ee-corba-1.0.car -geronimo/cars/j2ee-deployer-1.0.car -geronimo/cars/j2ee-security-1.0.car -geronimo/cars/j2ee-server-1.0.car -geronimo/cars/j2ee-system-1.0.car -geronimo/cars/jetty-1.0.car -geronimo/cars/jetty-deployer-1.0.car -geronimo/cars/jmxdebug-jetty-1.0.car -geronimo/cars/jmxdebug-tomcat-1.0.car -geronimo/cars/jsp-examples-jetty-1.0.car -geronimo/cars/tomcat-1.0.car -geronimo/cars/tomcat-deployer-1.0.car -geronimo/cars/jsp-examples-tomcat-1.0.car -geronimo/cars/ldap-demo-jetty-1.0.car -geronimo/cars/ldap-demo-tomcat-1.0.car -geronimo/cars/ldap-realm-1.0.car -geronimo/cars/rmi-naming-1.0.car -geronimo/cars/online-deployer-1.0.car -geronimo/cars/remote-deploy-jetty-1.0.car -geronimo/cars/remote-deploy-tomcat-1.0.car -geronimo/cars/servlets-examples-jetty-1.0.car -geronimo/cars/servlets-examples-tomcat-1.0.car -geronimo/cars/shutdown-1.0.car -geronimo/cars/system-database-1.0.car -geronimo/cars/uddi-jetty-1.0.car -geronimo/cars/uddi-tomcat-1.0.car -geronimo/cars/webconsole-jetty-1.0.car -geronimo/cars/webconsole-tomcat-1.0.car -geronimo/cars/welcome-jetty-1.0.car -geronimo/cars/welcome-tomcat-1.0.car -geronimo/distributions/geronimo-installer-1.0.jar.MD5 -geronimo/distributions/geronimo-installer-1.0.jar -geronimo/distributions/geronimo-installer-1.0.jar.SHA -geronimo/distributions/geronimo-jetty-j2ee-1.0.tar.gz -geronimo/distributions/geronimo-jetty-j2ee-1.0.zip -geronimo/distributions/geronimo-tomcat-j2ee-1.0.tar.gz -geronimo/distributions/geronimo-tomcat-j2ee-1.0.zip -geronimo/ears/daytrader-ear-1.0.ear -geronimo/ears/daytrader-ear-1.1.ear -geronimo/ears/geronimo-console-1.0.ear -geronimo/ejbs/daytrader-ejb-1.0.jar -geronimo/jars/daytrader-core-1.0.jar -geronimo/jars/daytrader-streamer-1.0.jar -geronimo/jars/daytrader-wsappclient-1.0.jar -geronimo/jars/geronimo-activation-1.0-M4.jar -geronimo/jars/geronimo-1.0-M5.jar -geronimo/jars/geronimo-activation-1.0-M5.jar -geronimo/jars/geronimo-activation-1.0.jar -geronimo/jars/geronimo-activation-1.1.jar -geronimo/jars/geronimo-assembly-1.0-M3.jar -geronimo/jars/geronimo-assembly-1.0-M4.jar -geronimo/jars/geronimo-assembly-plugin-1.0-M4.jar -geronimo/jars/geronimo-assembly-plugin-1.0-M5.jar -geronimo/jars/geronimo-axis-1.0-M2.jar -geronimo/jars/geronimo-axis-1.0-M3.jar -geronimo/jars/geronimo-axis-1.0-M4.jar -geronimo/jars/geronimo-axis-1.0-M5.jar -geronimo/jars/geronimo-axis-1.0.jar -geronimo/jars/geronimo-axis-1.1.jar -geronimo/jars/geronimo-axis-builder-1.0-M4.jar -geronimo/jars/geronimo-axis-builder-1.0-M5.jar -geronimo/jars/geronimo-axis-builder-1.0.jar -geronimo/jars/geronimo-axis-builder-1.1.jar -geronimo/jars/geronimo-client-1.0-M3.jar -geronimo/jars/geronimo-client-1.0-M4.jar -geronimo/jars/geronimo-client-1.0-M5.jar -geronimo/jars/geronimo-client-1.0.jar -geronimo/jars/geronimo-client-1.1.jar -geronimo/jars/geronimo-client-builder-1.0-M3.jar -geronimo/jars/geronimo-client-builder-1.0-M4.jar -geronimo/jars/geronimo-client-builder-1.0-M5.jar -geronimo/jars/geronimo-client-builder-1.0.jar -geronimo/jars/geronimo-client-builder-1.1.jar -geronimo/jars/geronimo-clustering-1.0-M1.jar -geronimo/jars/geronimo-clustering-1.0-M2.jar -geronimo/jars/geronimo-clustering-1.0-M3.jar -geronimo/jars/geronimo-clustering-1.0-M4.jar -geronimo/jars/geronimo-clustering-1.0-M5.jar -geronimo/jars/geronimo-common-1.0-M1.jar -geronimo/jars/geronimo-common-1.0-M2.jar -geronimo/jars/geronimo-common-1.0-M3.jar -geronimo/jars/geronimo-common-1.0-M4.jar -geronimo/jars/geronimo-common-1.0-M5.jar -geronimo/jars/geronimo-common-1.0.jar -geronimo/jars/geronimo-common-1.1.jar -geronimo/jars/geronimo-connector-1.0-M1.jar -geronimo/jars/geronimo-connector-1.0-M2.jar -geronimo/jars/geronimo-connector-1.0-M3.jar -geronimo/jars/geronimo-connector-1.0-M4.jar -geronimo/jars/geronimo-connector-1.0-M5.jar -geronimo/jars/geronimo-connector-1.0.jar -geronimo/jars/geronimo-connector-1.1.jar -geronimo/jars/geronimo-connector-builder-1.0-M3.jar -geronimo/jars/geronimo-connector-builder-1.0-M4.jar -geronimo/jars/geronimo-connector-builder-1.0-M5.jar -geronimo/jars/geronimo-connector-builder-1.0.jar -geronimo/jars/geronimo-connector-builder-1.1.jar -geronimo/jars/geronimo-console-1.0-M5.jar -geronimo/jars/geronimo-console-core-1.0-M5.jar -geronimo/jars/geronimo-console-core-1.0.jar -geronimo/jars/geronimo-console-core-1.1.jar -geronimo/jars/geronimo-converter-1.0.jar -geronimo/jars/geronimo-console-framework-1.0-M5.jar -geronimo/jars/geronimo-console-standard-1.0-M5.jar -geronimo/jars/geronimo-console-web-1.0-M2.jar -geronimo/jars/geronimo-console-web-1.0-M3.jar -geronimo/jars/geronimo-console-web-1.0-M4.jar -geronimo/jars/geronimo-console-web-1.0-M5.jar -geronimo/jars/geronimo-core-1.0-M1.jar -geronimo/jars/geronimo-console-web-1.0.jar -geronimo/jars/geronimo-console-web-1.1.jar -geronimo/jars/geronimo-converter-1.1.jar -geronimo/jars/geronimo-core-1.0-M2.jar -geronimo/jars/geronimo-core-1.0-M3.jar -geronimo/jars/geronimo-core-1.0-M4.jar -geronimo/jars/geronimo-core-1.0-M5.jar -geronimo/jars/geronimo-core-1.0.jar -geronimo/jars/geronimo-core-1.1.jar -geronimo/jars/geronimo-daytrader-derby-db-1.0.jar -geronimo/jars/geronimo-derby-1.0.jar -geronimo/jars/geronimo-daytrader-derby-db-1.1.jar -geronimo/jars/geronimo-demo-1.0-M2.jar -geronimo/jars/geronimo-deploy-config-1.0-M4.jar -geronimo/jars/geronimo-deploy-config-1.0-M5.jar -geronimo/jars/geronimo-deploy-config-1.0.jar -geronimo/jars/geronimo-installer-support-1.1.jar -geronimo/jars/geronimo-deploy-config-1.1.jar -geronimo/jars/geronimo-deploy-jsr88-1.0-M4.jar -geronimo/jars/geronimo-deploy-jsr88-1.0-M5.jar -geronimo/jars/geronimo-deploy-jsr88-1.0.jar -geronimo/jars/geronimo-deploy-jsr88-1.1.jar -geronimo/jars/geronimo-derby-1.1.jar -geronimo/jars/geronimo-deploy-tool-1.0-M4.jar -geronimo/jars/geronimo-deploy-tool-1.0-M5.jar -geronimo/jars/geronimo-deploy-tool-1.0.jar -geronimo/jars/geronimo-deploy-tool-1.1.jar -geronimo/jars/geronimo-deployment-1.0-M1.jar -geronimo/jars/geronimo-deployment-1.0-M2.jar -geronimo/jars/geronimo-deployment-1.0-M3.jar -geronimo/jars/geronimo-deployment-1.0-M4.jar -geronimo/jars/geronimo-deployment-1.0-M5.jar -geronimo/jars/geronimo-deployment-1.0.jar -geronimo/jars/geronimo-deployment-1.1.jar -geronimo/jars/geronimo-derby-1.0-M3.jar -geronimo/jars/geronimo-j2ee-1.0.jar -geronimo/jars/geronimo-derby-1.0-M4.jar -geronimo/jars/geronimo-derby-1.0-M5.jar -geronimo/jars/geronimo-derby-connector-1.0-M3.jar -geronimo/jars/geronimo-derby-connector-1.0-M4.jar -geronimo/jars/geronimo-directory-1.0-M5.jar -geronimo/jars/geronimo-directory-1.0.jar -geronimo/jars/geronimo-directory-1.1.jar -geronimo/jars/geronimo-hot-deploy-1.0.jar -geronimo/jars/geronimo-hot-deploy-1.1.jar -geronimo/jars/geronimo-installer-processing-1.1.jar -geronimo/jars/geronimo-interop-1.0-M4.jar -geronimo/jars/geronimo-interop-1.0-M5.jar -geronimo/jars/geronimo-j2ee-1.0-M1.jar -geronimo/jars/geronimo-j2ee-1.0-M2.jar -geronimo/jars/geronimo-j2ee-1.0-M3.jar -geronimo/jars/geronimo-j2ee-1.0-M4.jar -geronimo/jars/geronimo-j2ee-1.0-M5.jar -geronimo/jars/geronimo-j2ee-builder-1.0-M3.jar -geronimo/jars/geronimo-j2ee-1.1.jar -geronimo/jars/geronimo-j2ee-builder-1.0-M4.jar -geronimo/jars/geronimo-j2ee-builder-1.0-M5.jar -geronimo/jars/geronimo-j2ee-builder-1.0.jar -geronimo/jars/geronimo-j2ee-schema-1.1.jar -geronimo/jars/geronimo-j2ee-builder-1.1.jar -geronimo/jars/geronimo-j2ee-schema-1.0-M2.jar -geronimo/jars/geronimo-j2ee-schema-1.0-M3.jar -geronimo/jars/geronimo-j2ee-schema-1.0-M4.jar -geronimo/jars/geronimo-j2ee-schema-1.0-M5.jar -geronimo/jars/geronimo-j2ee-schema-1.0.jar -geronimo/jars/geronimo-javamail-transport-1.0.jar -geronimo/jars/geronimo-javamail-transport-1.1.jar -geronimo/jars/geronimo-jetty-1.0-M1.jar -geronimo/jars/geronimo-jetty-1.0-M2.jar -geronimo/jars/geronimo-jetty-1.0-M3.jar -geronimo/jars/geronimo-jetty-1.0-M4.jar -geronimo/jars/geronimo-jetty-1.0-M5.jar -geronimo/jars/geronimo-jetty-1.0.jar -geronimo/jars/geronimo-jetty-1.1.jar -geronimo/jars/geronimo-jetty-builder-1.0-M3.jar -geronimo/jars/geronimo-jetty-builder-1.0-M4.jar -geronimo/jars/geronimo-jetty-builder-1.0-M5.jar -geronimo/jars/geronimo-kernel-1.0.jar -geronimo/jars/geronimo-jetty-builder-1.0.jar -geronimo/jars/geronimo-jetty-builder-1.1.jar -geronimo/jars/geronimo-jmxdebug-1.0-M2.jar -geronimo/jars/geronimo-jmxremoting-1.0-M2.jar -geronimo/jars/geronimo-jmxremoting-1.0-M3.jar -geronimo/jars/geronimo-jmxremoting-1.0-M4.jar -geronimo/jars/geronimo-jmxremoting-1.0-M5.jar -geronimo/jars/geronimo-jmxremoting-1.0.jar -geronimo/jars/geronimo-jmxremoting-1.1.jar -geronimo/jars/geronimo-kernel-1.0-M1.jar -geronimo/jars/geronimo-kernel-1.0-M2.jar -geronimo/jars/geronimo-kernel-1.0-M3.jar -geronimo/jars/geronimo-kernel-1.0-M4.jar -geronimo/jars/geronimo-kernel-1.0-M5.jar -geronimo/jars/geronimo-kernel-1.1.jar -geronimo/jars/geronimo-mail-1.0-M3.jar -geronimo/jars/geronimo-mail-1.0-M4.jar -geronimo/jars/geronimo-mail-1.0-M5.jar -geronimo/jars/geronimo-mail-1.0.jar -geronimo/jars/geronimo-mail-1.1.jar -geronimo/jars/geronimo-management-1.0-M5.jar -geronimo/jars/geronimo-management-1.0.jar -geronimo/jars/geronimo-management-1.1.jar -geronimo/jars/geronimo-naming-1.0-M1.jar -geronimo/jars/geronimo-naming-1.0-M2.jar -geronimo/jars/geronimo-naming-1.0-M3.jar -geronimo/jars/geronimo-naming-1.0-M4.jar -geronimo/jars/geronimo-naming-1.0-M5.jar -geronimo/jars/geronimo-naming-1.0.jar -geronimo/jars/geronimo-naming-1.1.jar -geronimo/jars/geronimo-naming-builder-1.0-M3.jar -geronimo/jars/geronimo-naming-builder-1.0-M4.jar -geronimo/jars/geronimo-naming-builder-1.0-M5.jar -geronimo/jars/geronimo-network-1.0-M1.jar -geronimo/jars/geronimo-naming-builder-1.0.jar -geronimo/jars/geronimo-naming-builder-1.1.jar -geronimo/jars/geronimo-network-1.0-M2.jar -geronimo/jars/geronimo-network-1.0-M3.jar -geronimo/jars/geronimo-packaging-plugin-1.0-M5.jar -geronimo/jars/geronimo-scripts-1.0.jar -geronimo/jars/geronimo-remote-deploy-lib-1.0.jar -geronimo/jars/geronimo-remote-deploy-lib-1.1.jar -geronimo/jars/geronimo-remoting-1.0-M1.jar -geronimo/jars/geronimo-remoting-1.0-M2.jar -geronimo/jars/geronimo-remoting-1.0-M3.jar -geronimo/jars/geronimo-spring-1.0-M3.jar -geronimo/jars/geronimo-scripts-1.1.jar -geronimo/jars/geronimo-security-1.0-M1.jar -geronimo/jars/geronimo-security-1.0-M2.jar -geronimo/jars/geronimo-security-1.0-M3.jar -geronimo/jars/geronimo-security-1.0-M4.jar -geronimo/jars/geronimo-security-1.0-M5.jar -geronimo/jars/geronimo-security-1.0.jar -geronimo/jars/geronimo-security-1.1.jar -geronimo/jars/geronimo-security-builder-1.0-M3.jar -geronimo/jars/geronimo-security-builder-1.0-M4.jar -geronimo/jars/geronimo-security-builder-1.0-M5.jar -geronimo/jars/geronimo-security-builder-1.0.jar -geronimo/jars/geronimo-security-builder-1.1.jar -geronimo/jars/geronimo-service-builder-1.0-M4.jar -geronimo/jars/geronimo-service-builder-1.0-M5.jar -geronimo/jars/geronimo-service-builder-1.0.jar -geronimo/jars/geronimo-service-builder-1.1.jar -geronimo/jars/geronimo-servicemix-1.0-M4.jar -geronimo/jars/geronimo-servicemix-1.0-M5.jar -geronimo/jars/geronimo-servicemix-builder-1.0-M4.jar -geronimo/jars/geronimo-servicemix-builder-1.0-M5.jar -geronimo/jars/geronimo-spring-1.0-M2.jar -geronimo/jars/geronimo-spring-1.0-M4.jar -geronimo/jars/geronimo-spring-1.0-M5.jar -geronimo/jars/geronimo-spring-builder-1.0-M4.jar -geronimo/jars/geronimo-spring-builder-1.0-M5.jar -geronimo/jars/geronimo-system-1.0-M1.jar -geronimo/jars/geronimo-system-1.0-M2.jar -geronimo/jars/geronimo-system-1.0-M3.jar -geronimo/jars/geronimo-system-1.0-M4.jar -geronimo/jars/geronimo-system-1.0-M5.jar -geronimo/jars/geronimo-system-1.0.jar -geronimo/jars/geronimo-system-1.1.jar -geronimo/jars/geronimo-test-ddbean-1.0-M4.jar -geronimo/jars/geronimo-test-ddbean-1.0-M5.jar -geronimo/jars/geronimo-test-ddbean-1.0.jar -geronimo/jars/geronimo-test-ddbean-1.1.jar -geronimo/jars/geronimo-timer-1.0-M2.jar -geronimo/jars/geronimo-timer-1.0-M3.jar -geronimo/jars/geronimo-timer-1.0-M4.jar -geronimo/jars/geronimo-timer-1.0-M5.jar -geronimo/jars/geronimo-timer-1.0.jar -geronimo/jars/geronimo-timer-1.1.jar -geronimo/jars/geronimo-tomcat-1.0-M3.jar -geronimo/jars/geronimo-tomcat-1.0-M4.jar -geronimo/jars/geronimo-tomcat-1.0-M5.jar -geronimo/jars/geronimo-tomcat-1.0.jar -geronimo/jars/geronimo-tomcat-1.1.jar -geronimo/jars/geronimo-transaction-1.0-M2.jar -geronimo/jars/geronimo-tomcat-builder-1.0-M4.jar -geronimo/jars/geronimo-tomcat-builder-1.0-M5.jar -geronimo/jars/geronimo-tomcat-builder-1.0.jar -geronimo/jars/geronimo-tomcat-builder-1.1.jar -geronimo/jars/geronimo-transaction-1.0-M1.jar -geronimo/jars/geronimo-util-1.0.jar -geronimo/jars/geronimo-transaction-1.0-M3.jar -geronimo/jars/geronimo-transaction-1.0-M4.jar -geronimo/jars/geronimo-transaction-1.0-M5.jar -geronimo/jars/geronimo-transaction-1.0.jar -geronimo/jars/geronimo-transaction-1.1.jar -geronimo/jars/geronimo-uddi-db-1.0.jar -geronimo/jars/geronimo-uddi-db-1.1.jar -geronimo/jars/geronimo-uddi-server-1.0-M4.jar -geronimo/jars/geronimo-uddi-server-1.0-M5.jar -geronimo/jars/geronimo-upgrade-1.1.jar -geronimo/jars/geronimo-util-1.0-M5.jar -geronimo/jars/geronimo-web-builder-1.0-M4.jar -geronimo/jars/geronimo-util-1.1.jar -geronimo/jars/geronimo-web-builder-1.0-M5.jar -geronimo/jars/geronimo-web-builder-1.0.jar -geronimo/jars/geronimo-web-builder-1.1.jar -geronimo/jars/geronimo-webservices-1.0-M4.jar -geronimo/jars/geronimo-webservices-1.0-M5.jar -geronimo/jars/geronimo-webservices-1.0.jar -geronimo/jars/geronimo-webservices-1.1.jar -geronimo/jars/geronimo-welcome-1.0-M5.jar -geronimo/jars/geronimo-xmlbeans-plugin-1.0-M2.jar -geronimo/plugins/geronimo-assembly-plugin-1.0.2.jar -geronimo/plugins/geronimo-dependency-plugin-1.0.0.jar -geronimo/plugins/geronimo-deployment-plugin-1.0-M1.jar -geronimo/plugins/geronimo-deployment-plugin-1.0-M3.jar -geronimo/plugins/geronimo-deployment-plugin-1.0-M4.jar -geronimo/plugins/geronimo-deployment-plugin-1.0-M5.jar -geronimo/plugins/geronimo-deployment-plugin-1.0.0.jar -geronimo/plugins/geronimo-izpack-plugin-1.0.jar -geronimo/plugins/geronimo-packaging-plugin-1.0.1.jar -geronimo/plugins/geronimo-xmlbeans-plugin-1.0-M1.jar -geronimo/plugins/geronimo-xmlbeans-plugin-1.0-M3.jar -geronimo/plugins/geronimo-xmlbeans-plugin-1.0-M4.jar -geronimo/plugins/geronimo-xpom-plugin-1.0-M3.jar -geronimo/plugins/geronimo-xpom-plugin-1.0-M4.jar -geronimo/plugins/xmlbeans-maven-plugin-2.0.0-beta1.jar -geronimo/poms/activemq-1.0.pom -geronimo/poms/activemq-broker-1.0.pom -geronimo/poms/client-1.0.pom -geronimo/poms/client-corba-1.0.pom -geronimo/poms/client-security-1.0.pom -geronimo/poms/client-system-1.0.pom -geronimo/poms/client-system-1.1.pom -geronimo/poms/daytrader-core-1.0.pom -geronimo/poms/daytrader-derby-jetty-1.0.pom -geronimo/poms/daytrader-derby-tomcat-1.0.pom -geronimo/poms/daytrader-ear-1.0.pom -geronimo/poms/daytrader-ear-1.1.pom -geronimo/poms/daytrader-ejb-1.0.pom -geronimo/poms/directory-1.0.pom -geronimo/poms/daytrader-streamer-1.0.pom -geronimo/poms/daytrader-web-1.0.pom -geronimo/poms/daytrader-wsappclient-1.0.pom -geronimo/poms/ge-activemq-rar-1.1.pom -geronimo/poms/geronimo-1.0-M5.pom -geronimo/poms/geronimo-activation-1.0-M4.pom -geronimo/poms/geronimo-activation-1.0-M5.pom -geronimo/poms/geronimo-activation-1.0.pom -geronimo/poms/geronimo-activation-1.1.pom -geronimo/poms/geronimo-axis-1.0.pom -geronimo/poms/geronimo-axis-builder-1.0-M4.pom -geronimo/poms/geronimo-assembly-1.0-M3.pom -geronimo/poms/geronimo-assembly-1.0-M4.pom -geronimo/poms/geronimo-assembly-plugin-1.0-M4.pom -geronimo/poms/geronimo-assembly-plugin-1.0-M5.pom -geronimo/poms/geronimo-assembly-plugin-1.0.2.pom -geronimo/poms/j2ee-corba-1.0.pom -geronimo/poms/geronimo-assembly-plugin-1.1.0-12.pom -geronimo/poms/geronimo-axis-1.0-M2.pom -geronimo/poms/geronimo-axis-1.0-M3.pom -geronimo/poms/geronimo-axis-1.0-M4.pom -geronimo/poms/geronimo-axis-1.0-M5.pom -geronimo/poms/geronimo-axis-1.1.pom -geronimo/poms/geronimo-axis-builder-1.0-M5.pom -geronimo/poms/geronimo-axis-builder-1.0.pom -geronimo/poms/geronimo-client-1.1.pom -geronimo/poms/geronimo-axis-builder-1.1.pom -geronimo/poms/geronimo-client-1.0-M3.pom -geronimo/poms/geronimo-client-1.0-M4.pom -geronimo/poms/geronimo-client-1.0-M5.pom -geronimo/poms/geronimo-client-1.0.pom -geronimo/poms/geronimo-client-builder-1.0-M3.pom -geronimo/poms/geronimo-client-builder-1.0-M4.pom -geronimo/poms/geronimo-client-builder-1.0-M5.pom -geronimo/poms/geronimo-client-builder-1.0.pom -geronimo/poms/geronimo-client-builder-1.1.pom -geronimo/poms/geronimo-common-1.0-M4.pom -geronimo/poms/geronimo-common-1.0-M5.pom -geronimo/poms/geronimo-clustering-1.0-M2.pom -geronimo/poms/geronimo-clustering-1.0-M3.pom -geronimo/poms/geronimo-clustering-1.0-M4.pom -geronimo/poms/geronimo-clustering-1.0-M5.pom -geronimo/poms/geronimo-common-1.0-M2.pom -geronimo/poms/geronimo-common-1.0-M3.pom -geronimo/poms/geronimo-common-1.0.pom -geronimo/poms/geronimo-common-1.1.pom -geronimo/poms/geronimo-connector-1.0-M2.pom -geronimo/poms/geronimo-connector-1.0-M3.pom -geronimo/poms/geronimo-connector-1.0-M4.pom -geronimo/poms/geronimo-connector-1.0-M5.pom -geronimo/poms/geronimo-connector-1.0.pom -geronimo/poms/geronimo-connector-1.1.pom -geronimo/poms/geronimo-connector-builder-1.0-M3.pom -geronimo/poms/geronimo-connector-builder-1.0-M4.pom -geronimo/poms/geronimo-connector-builder-1.0-M5.pom -geronimo/poms/geronimo-connector-builder-1.0.pom -geronimo/poms/geronimo-connector-builder-1.1.pom -geronimo/poms/geronimo-console-1.0-M5.pom -geronimo/poms/geronimo-console-1.0.pom -geronimo/poms/geronimo-console-1.1.pom -geronimo/poms/geronimo-console-core-1.0-M5.pom -geronimo/poms/geronimo-console-core-1.0.pom -geronimo/poms/geronimo-console-core-1.1.pom -geronimo/poms/geronimo-console-framework-1.0-M5.pom -geronimo/poms/geronimo-console-framework-1.0.pom -geronimo/poms/geronimo-deployment-1.1.pom -geronimo/poms/jetty-1.0.pom -geronimo/poms/geronimo-console-framework-1.1.pom -geronimo/poms/geronimo-console-standard-1.0-M5.pom -geronimo/poms/geronimo-console-standard-1.0.pom -geronimo/poms/geronimo-core-1.0.pom -geronimo/poms/geronimo-console-standard-1.1.pom -geronimo/poms/geronimo-console-web-1.0-M2.pom -geronimo/poms/geronimo-console-web-1.0-M3.pom -geronimo/poms/geronimo-console-web-1.0-M4.pom -geronimo/poms/geronimo-console-web-1.0-M5.pom -geronimo/poms/tomcat-1.0.pom -geronimo/poms/geronimo-console-web-1.0.pom -geronimo/poms/geronimo-console-web-1.1.pom -geronimo/poms/geronimo-converter-1.0.pom -geronimo/poms/geronimo-converter-1.1.pom -geronimo/poms/geronimo-core-1.0-M2.pom -geronimo/poms/geronimo-core-1.0-M3.pom -geronimo/poms/geronimo-core-1.0-M4.pom -geronimo/poms/geronimo-core-1.0-M5.pom -geronimo/poms/geronimo-core-1.1.pom -geronimo/poms/geronimo-demo-1.0.pom -geronimo/poms/geronimo-daytrader-derby-db-1.0.pom -geronimo/poms/geronimo-daytrader-derby-db-1.1.pom -geronimo/poms/geronimo-demo-1.0-M2.pom -geronimo/poms/geronimo-demo-1.0-M3.pom -geronimo/poms/geronimo-demo-1.0-M4.pom -geronimo/poms/geronimo-demo-1.1.pom -geronimo/poms/geronimo-demo-1.0-M5.pom -geronimo/poms/geronimo-dependency-plugin-1.0.0.pom -geronimo/poms/geronimo-dependency-plugin-1.1.0-3.pom -geronimo/poms/geronimo-deploy-config-1.0-M4.pom -geronimo/poms/geronimo-deploy-config-1.0-M5.pom -geronimo/poms/geronimo-deploy-config-1.0.pom -geronimo/poms/geronimo-deploy-config-1.1.pom -geronimo/poms/geronimo-deploy-jsr88-1.0-M4.pom -geronimo/poms/geronimo-deploy-jsr88-1.0-M5.pom -geronimo/poms/geronimo-deploy-jsr88-1.0.pom -geronimo/poms/geronimo-deploy-jsr88-1.1.pom -geronimo/poms/j2ee-server-1.0.pom -geronimo/poms/geronimo-deploy-tool-1.0-M4.pom -geronimo/poms/geronimo-deploy-tool-1.0-M5.pom -geronimo/poms/geronimo-deploy-tool-1.0.pom -geronimo/poms/geronimo-deploy-tool-1.1.pom -geronimo/poms/geronimo-deployment-1.0-M2.pom -geronimo/poms/geronimo-deployment-1.0-M3.pom -geronimo/poms/geronimo-deployment-1.0-M4.pom -geronimo/poms/geronimo-deployment-1.0-M5.pom -geronimo/poms/geronimo-deployment-1.0.pom -geronimo/poms/geronimo-deployment-plugin-1.0-M2.pom -geronimo/poms/geronimo-deployment-plugin-1.0-M4.pom -geronimo/poms/geronimo-deployment-plugin-1.0-M5.pom -geronimo/poms/geronimo-deployment-plugin-1.0.0.pom -geronimo/poms/geronimo-derby-1.0-M3.pom -geronimo/poms/geronimo-deployment-plugin-1.1.0-3.pom -geronimo/poms/geronimo-derby-1.0-M4.pom -geronimo/poms/geronimo-derby-1.0-M5.pom -geronimo/poms/geronimo-derby-1.0.pom -geronimo/poms/geronimo-derby-1.1.pom -geronimo/poms/geronimo-derby-connector-1.0-M3.pom -geronimo/poms/geronimo-derby-connector-1.0-M4.pom -geronimo/poms/geronimo-directory-1.0-M5.pom -geronimo/poms/geronimo-directory-1.0.pom -geronimo/poms/geronimo-directory-1.1.pom -geronimo/poms/geronimo-gbean-deployer-1.0.pom -geronimo/poms/geronimo-gbean-deployer-1.1.pom -geronimo/poms/geronimo-hot-deploy-1.0.pom -geronimo/poms/geronimo-hot-deploy-1.1.pom -geronimo/poms/geronimo-installer-processing-1.1.pom -geronimo/poms/geronimo-installer-support-1.1.pom -geronimo/poms/geronimo-jetty-1.0-M3.pom -geronimo/poms/j2ee-system-1.0.pom -geronimo/poms/geronimo-interop-1.0-M4.pom -geronimo/poms/geronimo-interop-1.0-M5.pom -geronimo/poms/geronimo-izpack-plugin-1.0.pom -geronimo/poms/geronimo-izpack-plugin-1.1.pom -geronimo/poms/geronimo-j2ee-1.0-M2.pom -geronimo/poms/geronimo-j2ee-1.0-M3.pom -geronimo/poms/geronimo-j2ee-1.0-M4.pom -geronimo/poms/geronimo-j2ee-1.0-M5.pom -geronimo/poms/geronimo-j2ee-1.0.pom -geronimo/poms/geronimo-j2ee-1.1.pom -geronimo/poms/geronimo-j2ee-builder-1.0-M3.pom -geronimo/poms/geronimo-j2ee-builder-1.0-M4.pom -geronimo/poms/geronimo-j2ee-builder-1.0-M5.pom -geronimo/poms/geronimo-j2ee-builder-1.0.pom -geronimo/poms/geronimo-j2ee-builder-1.1.pom -geronimo/poms/j2ee-system-1.1.pom -geronimo/poms/geronimo-j2ee-schema-1.0-M2.pom -geronimo/poms/geronimo-j2ee-schema-1.0-M3.pom -geronimo/poms/geronimo-j2ee-schema-1.0-M4.pom -geronimo/poms/geronimo-j2ee-schema-1.0-M5.pom -geronimo/poms/geronimo-j2ee-schema-1.0.pom -geronimo/poms/geronimo-j2ee-schema-1.1.pom -geronimo/poms/geronimo-javamail-transport-1.0.pom -geronimo/poms/geronimo-javamail-transport-1.1.pom -geronimo/poms/geronimo-jetty-1.0-M2.pom -geronimo/poms/geronimo-jetty-1.0-M4.pom -geronimo/poms/geronimo-jetty-1.0-M5.pom -geronimo/poms/geronimo-jetty-1.0.pom -geronimo/poms/geronimo-jetty-1.1.pom -geronimo/poms/geronimo-jetty-builder-1.0-M3.pom -geronimo/poms/geronimo-jetty-builder-1.0-M4.pom -geronimo/poms/javamail-1.0.pom -geronimo/poms/geronimo-jetty-builder-1.0-M5.pom -geronimo/poms/geronimo-jetty-builder-1.0.pom -geronimo/poms/geronimo-jetty-builder-1.1.pom -geronimo/poms/geronimo-jmxdebug-1.0-M2.pom -geronimo/poms/geronimo-jmxdebug-1.0.pom -geronimo/poms/geronimo-jmxdebug-1.0-M3.pom -geronimo/poms/geronimo-jmxdebug-1.0-M4.pom -geronimo/poms/geronimo-jmxdebug-1.0-M5.pom -geronimo/poms/geronimo-jmxremoting-1.0-M2.pom -geronimo/poms/geronimo-jmxremoting-1.0-M3.pom -geronimo/poms/geronimo-jmxremoting-1.0-M4.pom -geronimo/poms/geronimo-jmxremoting-1.0-M5.pom -geronimo/poms/geronimo-kernel-1.0-M5.pom -geronimo/poms/geronimo-jmxremoting-1.0.pom -geronimo/poms/geronimo-jmxremoting-1.1.pom -geronimo/poms/geronimo-kernel-1.0-M2.pom -geronimo/poms/geronimo-kernel-1.0-M3.pom -geronimo/poms/geronimo-kernel-1.0-M4.pom -geronimo/poms/geronimo-kernel-1.0.pom -geronimo/poms/geronimo-kernel-1.1.pom -geronimo/poms/geronimo-ldap-demo-1.0.pom -geronimo/poms/geronimo-ldap-demo-1.1.pom -geronimo/poms/geronimo-mail-1.0-M3.pom -geronimo/poms/geronimo-mail-1.0-M4.pom -geronimo/poms/geronimo-mail-1.0-M5.pom -geronimo/poms/geronimo-mail-1.0.pom -geronimo/poms/geronimo-mail-1.1.pom -geronimo/poms/geronimo-naming-1.0.pom -geronimo/poms/geronimo-management-1.0-M5.pom -geronimo/poms/geronimo-management-1.0.pom -geronimo/poms/geronimo-management-1.1.pom -geronimo/poms/geronimo-naming-1.1.pom -geronimo/poms/geronimo-naming-1.0-M2.pom -geronimo/poms/geronimo-naming-1.0-M3.pom -geronimo/poms/geronimo-naming-1.0-M4.pom -geronimo/poms/geronimo-naming-1.0-M5.pom -geronimo/poms/geronimo-naming-builder-1.0-M3.pom -geronimo/poms/geronimo-naming-builder-1.0-M4.pom -geronimo/poms/geronimo-naming-builder-1.0-M5.pom -geronimo/poms/geronimo-naming-builder-1.0.pom -geronimo/poms/geronimo-naming-builder-1.1.pom -geronimo/poms/geronimo-network-1.0-M2.pom -geronimo/poms/geronimo-network-1.0-M3.pom -geronimo/poms/geronimo-packaging-plugin-0.1.1.pom -geronimo/poms/geronimo-packaging-plugin-0.1.pom -geronimo/poms/geronimo-packaging-plugin-1.0-M5.pom -geronimo/poms/geronimo-packaging-plugin-1.0.1.pom -geronimo/poms/geronimo-packaging-plugin-1.1.0-10.pom -geronimo/poms/geronimo-remote-deploy-1.0.pom -geronimo/poms/geronimo-remote-deploy-1.1.pom -geronimo/poms/geronimo-remote-deploy-lib-1.0.pom -geronimo/poms/geronimo-remote-deploy-lib-1.1.pom -geronimo/poms/geronimo-remoting-1.0-M2.pom -geronimo/poms/geronimo-remoting-1.0-M3.pom -geronimo/poms/geronimo-scripts-1.0.pom -geronimo/poms/geronimo-scripts-1.1.pom -geronimo/poms/geronimo-security-1.0-M2.pom -geronimo/poms/geronimo-security-1.0-M3.pom -geronimo/poms/geronimo-security-1.0-M4.pom -geronimo/poms/geronimo-security-1.0-M5.pom -geronimo/poms/geronimo-security-1.0.pom -geronimo/poms/geronimo-security-1.1.pom -geronimo/poms/geronimo-system-1.0.pom -geronimo/poms/geronimo-security-builder-1.0-M3.pom -geronimo/poms/geronimo-security-builder-1.0-M4.pom -geronimo/poms/geronimo-security-builder-1.0-M5.pom -geronimo/poms/geronimo-security-builder-1.0.pom -geronimo/poms/geronimo-security-builder-1.1.pom -geronimo/poms/geronimo-service-builder-1.0-M4.pom -geronimo/poms/geronimo-service-builder-1.0-M5.pom -geronimo/poms/geronimo-service-builder-1.0.pom -geronimo/poms/geronimo-service-builder-1.1.pom -geronimo/poms/geronimo-servicemix-1.0-M4.pom -geronimo/poms/geronimo-servicemix-1.0-M5.pom -geronimo/poms/geronimo-servicemix-builder-1.0-M4.pom -geronimo/poms/geronimo-servicemix-builder-1.0-M5.pom -geronimo/poms/geronimo-spring-1.0-M2.pom -geronimo/poms/geronimo-test-ddbean-1.0-M5.pom -geronimo/poms/ldap-realm-1.0.pom -geronimo/poms/geronimo-spring-1.0-M3.pom -geronimo/poms/geronimo-spring-1.0-M4.pom -geronimo/poms/geronimo-spring-1.0-M5.pom -geronimo/poms/geronimo-spring-builder-1.0-M4.pom -geronimo/poms/geronimo-spring-builder-1.0-M5.pom -geronimo/poms/geronimo-system-1.0-M2.pom -geronimo/poms/geronimo-system-1.0-M3.pom -geronimo/poms/geronimo-system-1.0-M4.pom -geronimo/poms/geronimo-system-1.0-M5.pom -geronimo/poms/geronimo-system-1.1.pom -geronimo/poms/geronimo-test-ddbean-1.0-M4.pom -geronimo/poms/geronimo-timer-1.0-M4.pom -geronimo/poms/magicGball-1.0.pom -geronimo/poms/geronimo-test-ddbean-1.0.pom -geronimo/poms/geronimo-test-ddbean-1.1.pom -geronimo/poms/geronimo-timer-1.0-M2.pom -geronimo/poms/geronimo-timer-1.0-M3.pom -geronimo/poms/geronimo-tomcat-builder-1.0-M4.pom -geronimo/poms/geronimo-timer-1.0-M5.pom -geronimo/poms/geronimo-timer-1.0.pom -geronimo/poms/geronimo-timer-1.1.pom -geronimo/poms/geronimo-tomcat-1.0-M3.pom -geronimo/poms/geronimo-tomcat-1.0-M4.pom -geronimo/poms/geronimo-tomcat-1.0-M5.pom -geronimo/poms/geronimo-tomcat-1.0.pom -geronimo/poms/geronimo-tomcat-1.1.pom -geronimo/poms/geronimo-tomcat-builder-1.0-M5.pom -geronimo/poms/geronimo-uddi-db-1.0.pom -geronimo/poms/geronimo-tomcat-builder-1.0.pom -geronimo/poms/geronimo-tomcat-builder-1.1.pom -geronimo/poms/geronimo-transaction-1.0-M2.pom -geronimo/poms/geronimo-transaction-1.0-M3.pom -geronimo/poms/geronimo-transaction-1.0-M4.pom -geronimo/poms/geronimo-transaction-1.0-M5.pom -geronimo/poms/geronimo-transaction-1.0.pom -geronimo/poms/geronimo-transaction-1.1.pom -geronimo/poms/geronimo-uddi-db-1.1.pom -geronimo/poms/geronimo-uddi-server-1.0-M4.pom -geronimo/poms/geronimo-uddi-server-1.0-M5.pom -geronimo/poms/geronimo-uddi-server-1.0.pom -geronimo/poms/geronimo-uddi-server-1.1.pom -geronimo/poms/geronimo-upgrade-1.1.pom -geronimo/poms/geronimo-util-1.0-M5.pom -geronimo/poms/geronimo-util-1.0.pom -geronimo/poms/geronimo-util-1.1.pom -geronimo/poms/geronimo-web-builder-1.0-M4.pom -geronimo/poms/geronimo-web-builder-1.0-M5.pom -geronimo/poms/geronimo-web-builder-1.0.pom -geronimo/poms/geronimo-web-builder-1.1.pom -geronimo/poms/rmi-naming-1.0.pom -geronimo/poms/geronimo-webservices-1.0-M4.pom -geronimo/poms/geronimo-webservices-1.0-M5.pom -geronimo/poms/geronimo-webservices-1.0.pom -geronimo/poms/geronimo-webservices-1.1.pom -geronimo/poms/geronimo-welcome-1.0-M5.pom -geronimo/poms/geronimo-welcome-1.0.pom -geronimo/poms/geronimo-welcome-1.1.pom -geronimo/poms/geronimo-xmlbeans-plugin-1.0-20040908.pom -geronimo/poms/geronimo-xmlbeans-plugin-1.0-46009.pom -geronimo/poms/geronimo-xmlbeans-plugin-1.0-M2.pom -geronimo/poms/geronimo-xmlbeans-plugin-1.0-M3.pom -geronimo/poms/geronimo-xmlbeans-plugin-1.0-M4.pom -geronimo/poms/geronimo-xpom-plugin-1.0-M4.pom -geronimo/poms/hot-deployer-1.0.pom -geronimo/poms/j2ee-deployer-1.0.pom -geronimo/poms/j2ee-security-1.0.pom -geronimo/poms/j2ee-system-experimental-1.0.pom -geronimo/poms/jetty-deployer-1.0.pom -geronimo/poms/jmxdebug-jetty-1.0.pom -geronimo/poms/jmxdebug-tomcat-1.0.pom -geronimo/poms/jsp-examples-jetty-1.0.pom -geronimo/poms/jsp-examples-tomcat-1.0.pom -geronimo/poms/ldap-demo-jetty-1.0.pom -geronimo/poms/ldap-demo-tomcat-1.0.pom -geronimo/poms/magicGball-1.1.pom -geronimo/poms/maven-metadata-mavenOneRepository.xml -geronimo/poms/online-deployer-1.0.pom -geronimo/poms/online-deployer-1.1.pom -geronimo/poms/remote-deploy-jetty-1.0.pom -geronimo/poms/servlets-examples-jetty-1.0.pom -geronimo/poms/remote-deploy-tomcat-1.0.pom -geronimo/poms/servlets-examples-tomcat-1.0.pom -geronimo/poms/shutdown-1.0.pom -geronimo/poms/shutdown-1.1.pom -geronimo/poms/system-database-1.0.pom -geronimo/poms/tomcat-deployer-1.0.pom -geronimo/poms/uddi-jetty-1.0.pom -geronimo/poms/uddi-tomcat-1.0.pom -geronimo/poms/upgrade-cli-1.1.pom -geronimo/poms/webconsole-jetty-1.0.pom -geronimo/poms/webconsole-tomcat-1.0.pom -geronimo/poms/welcome-jetty-1.0.pom -geronimo/poms/welcome-tomcat-1.0.pom -geronimo/poms/xmlbeans-maven-plugin-2.0.0-beta1.pom -geronimo/rars/geronimo-derby-connector-1.0-M3.rar -geronimo/rars/geronimo-derby-connector-1.0-M4.rar -geronimo/wars/daytrader-web-1.0.war -geronimo/wars/geronimo-console-framework-1.0.war -geronimo/wars/geronimo-servlet-examples-tomcat-5.5.12.war -geronimo/wars/geronimo-console-standard-1.0.war -geronimo/wars/geronimo-console-web-1.0-M1.war -geronimo/wars/geronimo-demo-1.0-M3.war -geronimo/wars/geronimo-demo-1.0-M4.war -geronimo/wars/geronimo-demo-1.0-M5.war -geronimo/wars/geronimo-demo-1.0.war -geronimo/wars/geronimo-jmxdebug-1.0-M1.war -geronimo/wars/geronimo-jmxdebug-1.0-M3.war -geronimo/wars/geronimo-jmxdebug-1.0-M4.war -geronimo/wars/geronimo-jmxdebug-1.0-M5.war -geronimo/wars/geronimo-jmxdebug-1.0.war -geronimo/wars/geronimo-jsp-examples-tomcat-5.5.12.war -geronimo/wars/geronimo-ldap-demo-1.0.war -geronimo/wars/geronimo-remote-deploy-1.0.war -geronimo/wars/geronimo-uddi-server-1.0.war -geronimo/wars/geronimo-welcome-1.0.war -geronimo/wars/magicGball-1.0.war -geronimo/KEYS -geronimo-spec/jars/geronimo-spec-activation-1.0.2-rc1.jar -geronimo-spec/jars/geronimo-spec-activation-1.0.2-rc2.jar -geronimo-spec/jars/geronimo-spec-activation-1.0.2-rc3.jar -geronimo-spec/jars/geronimo-spec-activation-1.0.2-rc4.jar -geronimo-spec/jars/geronimo-spec-corba-2.3-rc4.jar -geronimo-spec/jars/geronimo-spec-ejb-1.0-M1.jar -geronimo-spec/jars/geronimo-spec-ejb-2.1-rc1.jar -geronimo-spec/jars/geronimo-spec-ejb-2.1-rc2.jar -geronimo-spec/jars/geronimo-spec-ejb-2.1-rc3.jar -geronimo-spec/jars/geronimo-spec-ejb-2.1-rc4.jar -geronimo-spec/jars/geronimo-spec-ejb-DEV.jar -geronimo-spec/jars/geronimo-spec-j2ee-1.0-M1.jar -geronimo-spec/jars/geronimo-spec-j2ee-connector-1.0-M1.jar -geronimo-spec/jars/geronimo-spec-j2ee-1.4-rc1.jar -geronimo-spec/jars/geronimo-spec-j2ee-1.4-rc2.jar -geronimo-spec/jars/geronimo-spec-j2ee-1.4-rc3.jar -geronimo-spec/jars/geronimo-spec-j2ee-1.4-rc4.jar -geronimo-spec/jars/geronimo-spec-jaxr-1.0-rc1.jar -geronimo-spec/jars/geronimo-spec-j2ee-connector-1.5-rc1.jar -geronimo-spec/jars/geronimo-spec-j2ee-connector-1.5-rc2.jar -geronimo-spec/jars/geronimo-spec-j2ee-connector-1.5-rc3.jar -geronimo-spec/jars/geronimo-spec-j2ee-connector-1.5-rc4.jar -geronimo-spec/jars/geronimo-spec-j2ee-deployment-1.0-M1.jar -geronimo-spec/jars/geronimo-spec-j2ee-deployment-1.1-rc1.jar -geronimo-spec/jars/geronimo-spec-j2ee-deployment-1.1-rc2.jar -geronimo-spec/jars/geronimo-spec-j2ee-deployment-1.1-rc3.jar -geronimo-spec/jars/geronimo-spec-jaxr-1.0-rc2.jar -geronimo-spec/jars/geronimo-spec-j2ee-deployment-1.1-rc4.jar -geronimo-spec/jars/geronimo-spec-j2ee-jacc-1.0-M1.jar -geronimo-spec/jars/geronimo-spec-j2ee-jacc-1.0-rc1.jar -geronimo-spec/jars/geronimo-spec-j2ee-jacc-1.0-rc2.jar -geronimo-spec/jars/geronimo-spec-j2ee-jacc-1.0-rc3.jar -geronimo-spec/jars/geronimo-spec-j2ee-jacc-1.0-rc4.jar -geronimo-spec/jars/geronimo-spec-j2ee-management-1.0-M1.jar -geronimo-spec/jars/geronimo-spec-javamail-1.3.1-rc5.jar -geronimo-spec/jars/geronimo-spec-j2ee-management-1.0-rc1.jar -geronimo-spec/jars/geronimo-spec-jaxr-1.0-rc3.jar -geronimo-spec/jars/geronimo-spec-j2ee-management-1.0-rc2.jar -geronimo-spec/jars/geronimo-spec-j2ee-management-1.0-rc3.jar -geronimo-spec/jars/geronimo-spec-j2ee-management-1.0-rc4.jar -geronimo-spec/jars/geronimo-spec-j2eeschema-1.0-M1.jar -geronimo-spec/jars/geronimo-spec-javamail-1.3.1-rc1.jar -geronimo-spec/jars/geronimo-spec-javamail-1.3.1-rc2.jar -geronimo-spec/jars/geronimo-spec-javamail-1.3.1-rc3.jar -geronimo-spec/jars/geronimo-spec-javamail-1.3.1-rc4.jar -geronimo-spec/jars/geronimo-spec-jaxr-1.0-rc4.jar -geronimo-spec/jars/geronimo-spec-jaxrpc-1.1-rc4.jar -geronimo-spec/jars/geronimo-spec-jms-1.0-M1.jar -geronimo-spec/jars/geronimo-spec-jms-1.1-rc1.jar -geronimo-spec/jars/geronimo-spec-jms-1.1-rc2.jar -geronimo-spec/jars/geronimo-spec-jms-1.1-rc3.jar -geronimo-spec/jars/geronimo-spec-jms-1.1-rc4.jar -geronimo-spec/jars/geronimo-spec-jms-DEV.jar -geronimo-spec/jars/geronimo-spec-jsp-1.0-M1.jar -geronimo-spec/jars/geronimo-spec-jsp-2.0-rc1.jar -geronimo-spec/jars/geronimo-spec-jsp-2.0-rc2.jar -geronimo-spec/jars/geronimo-spec-jsp-2.0-rc3.jar -geronimo-spec/jars/geronimo-spec-jsp-2.0-rc4.jar -geronimo-spec/jars/geronimo-spec-jta-1.0-M1.jar -geronimo-spec/jars/geronimo-spec-jta-1.0.1B-rc1.jar -geronimo-spec/jars/geronimo-spec-jta-1.0.1B-rc2.jar -geronimo-spec/jars/geronimo-spec-jta-1.0.1B-rc3.jar -geronimo-spec/jars/geronimo-spec-jta-1.0.1B-rc4.jar -geronimo-spec/jars/geronimo-spec-jta-DEV.jar -geronimo-spec/jars/geronimo-spec-qname-1.1-rc4.jar -geronimo-spec/jars/geronimo-spec-saaj-1.1-rc4.jar -geronimo-spec/jars/geronimo-spec-servlet-1.0-M1.jar -geronimo-spec/jars/geronimo-spec-servlet-2.4-rc1.jar -geronimo-spec/jars/geronimo-spec-servlet-2.4-rc2.jar -geronimo-spec/jars/geronimo-spec-servlet-2.4-rc3.jar -geronimo-spec/jars/geronimo-spec-servlet-2.4-rc4.jar -geronimo-spec/poms/geronimo-spec-j2ee-connector-1.5-rc1.pom -geronimo-spec/poms/geronimo-spec-activation-1.0.2-rc1.pom -geronimo-spec/poms/geronimo-spec-activation-1.0.2-rc2.pom -geronimo-spec/poms/geronimo-spec-activation-1.0.2-rc3.pom -geronimo-spec/poms/geronimo-spec-activation-1.0.2-rc4.pom -geronimo-spec/poms/geronimo-spec-corba-2.3-rc4.pom -geronimo-spec/poms/geronimo-spec-ejb-2.1-rc1.pom -geronimo-spec/poms/geronimo-spec-ejb-2.1-rc2.pom -geronimo-spec/poms/geronimo-spec-ejb-2.1-rc3.pom -geronimo-spec/poms/geronimo-spec-ejb-2.1-rc4.pom -geronimo-spec/poms/geronimo-spec-j2ee-1.4-rc1.pom -geronimo-spec/poms/geronimo-spec-j2ee-1.4-rc2.pom -geronimo-spec/poms/geronimo-spec-j2ee-1.4-rc3.pom -geronimo-spec/poms/geronimo-spec-j2ee-1.4-rc4.pom -geronimo-spec/poms/geronimo-spec-saaj-1.1-rc4.pom -geronimo-spec/poms/geronimo-spec-j2ee-connector-1.5-rc2.pom -geronimo-spec/poms/geronimo-spec-j2ee-connector-1.5-rc3.pom -geronimo-spec/poms/geronimo-spec-j2ee-connector-1.5-rc4.pom -geronimo-spec/poms/geronimo-spec-j2ee-deployment-1.1-rc1.pom -geronimo-spec/poms/geronimo-spec-j2ee-deployment-1.1-rc2.pom -geronimo-spec/poms/geronimo-spec-j2ee-deployment-1.1-rc3.pom -geronimo-spec/poms/geronimo-spec-j2ee-deployment-1.1-rc4.pom -geronimo-spec/poms/geronimo-spec-j2ee-jacc-1.0-rc1.pom -geronimo-spec/poms/geronimo-spec-j2ee-jacc-1.0-rc2.pom -geronimo-spec/poms/geronimo-spec-j2ee-jacc-1.0-rc3.pom -geronimo-spec/poms/geronimo-spec-j2ee-jacc-1.0-rc4.pom -geronimo-spec/poms/geronimo-spec-j2ee-management-1.0-rc1.pom -geronimo-spec/poms/geronimo-spec-j2ee-management-1.0-rc2.pom -geronimo-spec/poms/geronimo-spec-j2ee-management-1.0-rc3.pom -geronimo-spec/poms/geronimo-spec-j2ee-management-1.0-rc4.pom -geronimo-spec/poms/geronimo-spec-javamail-1.3.1-rc1.pom -geronimo-spec/poms/geronimo-spec-javamail-1.3.1-rc2.pom -geronimo-spec/poms/geronimo-spec-javamail-1.3.1-rc3.pom -geronimo-spec/poms/geronimo-spec-javamail-1.3.1-rc4.pom -geronimo-spec/poms/geronimo-spec-javamail-1.3.1-rc5.pom -geronimo-spec/poms/geronimo-spec-jaxr-1.0-rc1.pom -geronimo-spec/poms/geronimo-spec-jaxr-1.0-rc2.pom -geronimo-spec/poms/geronimo-spec-jaxr-1.0-rc3.pom -geronimo-spec/poms/geronimo-spec-jaxr-1.0-rc4.pom -geronimo-spec/poms/geronimo-spec-jaxrpc-1.1-rc4.pom -geronimo-spec/poms/geronimo-spec-jms-1.1-rc1.pom -geronimo-spec/poms/geronimo-spec-jms-1.1-rc2.pom -geronimo-spec/poms/geronimo-spec-jms-1.1-rc3.pom -geronimo-spec/poms/geronimo-spec-jms-1.1-rc4.pom -geronimo-spec/poms/geronimo-spec-jsp-2.0-rc1.pom -geronimo-spec/poms/geronimo-spec-jsp-2.0-rc2.pom -geronimo-spec/poms/geronimo-spec-jsp-2.0-rc3.pom -geronimo-spec/poms/geronimo-spec-jsp-2.0-rc4.pom -geronimo-spec/poms/geronimo-spec-jta-1.0.1B-rc1.pom -geronimo-spec/poms/geronimo-spec-jta-1.0.1B-rc2.pom -geronimo-spec/poms/geronimo-spec-jta-1.0.1B-rc3.pom -geronimo-spec/poms/geronimo-spec-jta-1.0.1B-rc4.pom -geronimo-spec/poms/geronimo-spec-qname-1.1-rc4.pom -geronimo-spec/poms/geronimo-spec-servlet-2.4-rc1.pom -geronimo-spec/poms/geronimo-spec-servlet-2.4-rc2.pom -geronimo-spec/poms/geronimo-spec-servlet-2.4-rc3.pom -geronimo-spec/poms/geronimo-spec-servlet-2.4-rc4.pom -hivemind/jars/hivemind-1.0-beta-1.jar -hivemind/jars/hivemind-1.0-beta-2.jar -hivemind/jars/hivemind-1.0-beta-3-snapshot.jar -hivemind/jars/hivemind-1.0-rc-1.jar -hivemind/jars/hivemind-1.0-rc-2.jar -hivemind/jars/hivemind-1.0.jar -hivemind/jars/hivemind-1.1.1.jar -hivemind/jars/hivemind-1.1-alpha-1.jar -hivemind/jars/hivemind-1.1-alpha-2.jar -hivemind/jars/hivemind-1.1-alpha-3.jar -hivemind/jars/hivemind-1.1-beta-1.jar -hivemind/jars/hivemind-1.1-beta-2.jar -hivemind/jars/hivemind-1.1-beta-3.jar -hivemind/jars/hivemind-1.1-rc-1.jar -hivemind/jars/hivemind-1.1.jar -hivemind/jars/hivemind-jmx-1.1-beta-1.jar -hivemind/jars/hivemind-jmx-1.1-beta-2.jar -hivemind/jars/hivemind-jmx-1.1-beta-3.jar -hivemind/jars/hivemind-jmx-1.1-rc-1.jar -hivemind/jars/hivemind-jmx-1.1.1.jar -hivemind/jars/hivemind-jmx-1.1.jar -hivemind/jars/hivemind-lib-1.0-beta-3-snapshot.jar -hivemind/jars/hivemind-lib-1.0-beta-1.jar -hivemind/jars/hivemind-lib-1.0-beta-2.jar -hivemind/jars/hivemind-lib-1.0-rc-1.jar -hivemind/jars/hivemind-lib-1.0-rc-2.jar -hivemind/jars/hivemind-lib-1.0.jar -hivemind/jars/hivemind-lib-1.1-alpha-1.jar -hivemind/jars/hivemind-lib-1.1-alpha-2.jar -hivemind/jars/hivemind-lib-1.1-alpha-3.jar -hivemind/jars/hivemind-lib-1.1-beta-1.jar -hivemind/jars/hivemind-lib-1.1-beta-2.jar -hivemind/jars/hivemind-lib-1.1-beta-3.jar -hivemind/jars/hivemind-lib-1.1.1.jar -hivemind/jars/hivemind-lib-1.1-rc-1.jar -hivemind/jars/hivemind-lib-1.1.jar -httpcomponents-httpcore/jars/jakarta-httpcore-4.0-alpha3.jar -httpcomponents-httpcore/jars/jakarta-httpcore-4.0-alpha2.jar -httpcomponents-httpcore/jars/jakarta-httpcore-nio-4.0-alpha3.jar -httpcomponents-httpcore/jars/jakarta-httpcore-4.0-alpha4.jar -httpcomponents-httpcore/jars/jakarta-httpcore-niossl-4.0-alpha4.jar -httpcomponents-httpcore/jars/jakarta-httpcore-nio-4.0-alpha4.jar -httpcomponents-httpcore/jars/httpcore-4.0-alpha5.jar -httpcomponents-httpcore/jars/httpcore-nio-4.0-alpha5.jar -httpcomponents-httpcore/jars/httpcore-niossl-4.0-alpha5.jar -jakarta-regexp/jars/jakarta-regexp-1.4.jar -james/bars/james-server-3.0a.bar -james/blocks/james-server-3.0a.block -james/configs/james-server-3.0a.config -james/jars/james-3.0a1.jar -james/jars/mailet-1.0.jar -james/jars/mailet-3.0.jar -james/jars/mailet-api-1.0.jar -james/jars/mailet-api-3.0.jar -james/xmls/block.xml -james/xmls/config.xml -javax.jdo/jars/jdo2-api-2.0-beta.jar -javax.jdo/jars/jdo2-api-2.0-rc1.jar -javax.jdo/jars/jdo2-api-2.0.jar -javax.jdo/poms/jdo2-api-2.0-beta.pom -javax.jdo/poms/jdo2-api-2.0-rc1.pom -javax.jdo/poms/jdo2-api-2.0.pom -jaxme/jars/jaxme-0.2.jar -jaxme/jars/jaxme-0.3.1.jar -jaxme/jars/jaxme-0.3.jar -jaxme/jars/jaxme-api-0.2.jar -jaxme/jars/jaxme-api-0.3.1.jar -jaxme/jars/jaxme-api-0.3.jar -jaxme/jars/jaxme2-0.4beta.jar -jaxme/jars/jaxme-js-0.2.jar -jaxme/jars/jaxme-js-0.3.1.jar -jaxme/jars/jaxme-js-0.3.jar -jaxme/jars/jaxme-pm-0.2.jar -jaxme/jars/jaxme-pm-0.3.1.jar -jaxme/jars/jaxme-pm-0.3.jar -jaxme/jars/jaxme-rt-0.2.jar -jaxme/jars/jaxme-rt-0.3.1.jar -jaxme/jars/jaxme-rt-0.3.jar -jaxme/jars/jaxme-xs-0.2.jar -jaxme/jars/jaxme-xs-0.3.1.jar -jaxme/jars/jaxme-xs-0.3.jar -jaxme/jars/jaxme2-0.4-src.zip -jaxme/jars/jaxme2-0.4.jar -jaxme/jars/jaxme2-0.4beta-src.zip -jaxme/jars/jaxme2-0.5.1-sources.jar -jaxme/jars/jaxme2-0.5.1.jar -jaxme/jars/jaxme2-0.5.jar -jaxme/jars/jaxme2-0.5beta.jar -jaxme/jars/jaxme2-src.zip -jaxme/jars/jaxme2-rt-0.4.jar -jaxme/jars/jaxme2-rt-0.4beta.jar -jaxme/jars/jaxme2-rt-0.5.1-sources.jar -jaxme/jars/jaxme2-rt-0.5.1.jar -jaxme/jars/jaxme2-rt-0.5.jar -jaxme/jars/jaxme2-rt-0.5beta.jar -jaxme/jars/jaxme2-src-0.5.zip -jaxme/jars/jaxme2-src-0.5beta.zip -jaxme/jars/jaxmeapi-0.4-src.zip -jaxme/jars/jaxmeapi-0.5.1.jar -jaxme/jars/jaxmejs-0.4.jar -jaxme/jars/jaxmeapi-0.4.jar -jaxme/jars/jaxmeapi-0.4beta-src.zip -jaxme/jars/jaxmeapi-0.4beta.jar -jaxme/jars/jaxmeapi-0.5.1-sources.jar -jaxme/jars/jaxmeapi-0.5.jar -jaxme/jars/jaxmeapi-0.5beta.jar -jaxme/jars/jaxmeapi-src-0.5.zip -jaxme/jars/jaxmeapi-src-0.5beta.zip -jaxme/jars/jaxmejs-0.4-src.zip -jaxme/jars/jaxmejs-0.4beta-src.zip -jaxme/jars/jaxmejs-0.4beta.jar -jaxme/jars/jaxmejs-0.5.1-sources.jar -jaxme/jars/jaxmejs-0.5.1.jar -jaxme/jars/jaxmejs-0.5.jar -jaxme/jars/jaxmejs-0.5beta.jar -jaxme/jars/jaxmejs-src-0.5.zip -jaxme/jars/jaxmejs-src-0.5beta.zip -jaxme/jars/jaxmepm-0.4-src.zip -jaxme/jars/jaxmepm-0.4.jar -jaxme/jars/jaxmepm-0.4beta-src.zip -jaxme/jars/jaxmepm-0.4beta.jar -jaxme/jars/jaxmepm-0.5.1-sources.jar -jaxme/jars/jaxmepm-0.5.1.jar -jaxme/jars/jaxmepm-0.5.jar -jaxme/jars/jaxmepm-0.5beta.jar -jaxme/jars/jaxmepm-src-0.5.zip -jaxme/jars/jaxmepm-src-0.5beta.zip -jaxme/jars/jaxmexs-0.4-src.zip -jaxme/jars/jaxmexs-0.4.jar -jaxme/jars/jaxmexs-0.5.jar -jaxme/jars/jaxmexs-0.4beta-src.zip -jaxme/jars/jaxmexs-0.4beta.jar -jaxme/jars/jaxmexs-0.5.1-sources.jar -jaxme/jars/jaxmexs-0.5.1.jar -jaxme/jars/jaxmexs-0.5beta.jar -jaxme/jars/jaxmexs-src-0.5.zip -jaxme/jars/jaxmexs-src-0.5beta.zip -jcs/jars/jcs-1.0-dev.20020801.123921.jar -jcs/jars/jcs-1.0-dev.20020801.125151.jar -jcs/jars/jcs-1.0-dev.jar -jcs/jars/jcs-20030822.182132.jar -jcs/jars/jcs-snapshot-version -jcs/jars/jcs-1.3.jar -jcs/poms/jcs-1.3.pom -jcs-javagroups/jars/jcs-javagroups-alpha-0.20020813.013703.jar -jspapi/jars/jsp-api-2.0-20040521.jar -jstl/jars/jstl-1.0.1.jar -jstl/jars/jstl-1.0.2.jar -jstl/jars/jstl-1.0.3.jar -jstl/jars/jstl-1.0.4.jar -jstl/jars/jstl-1.0.5.jar -jstl/jars/jstl-1.0.6.jar -jstl/jars/jstl-1.0.jar -jstl/jars/jstl-1.1.0.jar -jstl/jars/jstl-1.1.1.jar -jstl/jars/jstl-1.1.2.jar -jstl/README -log4j/jars/log4j-1.1.3.jar -log4j/jars/log4j-1.2.11.jar -log4j/jars/log4j-1.2.14.jar -log4j/jars/log4j-1.2.12.jar -log4j/jars/log4j-1.2.13.jar -log4j/jars/log4j-1.2.4.jar -log4j/jars/log4j-1.2.5.jar -log4j/jars/log4j-1.2.6.jar -log4j/jars/log4j-1.2.7.jar -log4j/jars/log4j-1.2.8.jar -log4j/jars/log4j-1.2.9.jar -log4j/jars/log4j-1.2.15.jar -log4j/java-sources/log4j-1.2.13-sources.jar -log4j/java-sources/log4j-1.2.14-sources.jar -log4j/java-sources/log4j-1.2.15-sources.jar -log4j/poms/log4j-1.2.12.pom -log4j/poms/log4j-1.2.13.pom -log4j/poms/log4j-1.2.14.pom -log4j/poms/log4j-1.2.15.pom -logkit/distributions/LogKit-1.2-bin.zip -logkit/jars/logkit-1.0.1.jar -logkit/jars/logkit-1.2.2.jar.asc.txt -logkit/jars/logkit-1.2.2.jar -logkit/jars/logkit-1.2.jar -logkit/jars/logkit-20020529.jar -lucene/jars/lucene-1.2.jar -lucene/jars/lucene-1.3-rc1.jar -lucene/jars/lucene-1.4.1.jar -lucene/jars/lucene-1.4.2.jar -lucene/jars/lucene-1.4.3.jar -magicGball/jars/magicGball-0.01234-alpha0.jar -magicGball/poms/magicGball-0.01234-alpha0.pom -maven/jars/commons-jelly-1.0.1-20060717.jar -maven/jars/maven-1.0.1.jar -maven/jars/maven-1.0-rc3.jar -maven/jars/maven-1.0-rc4.jar -maven/jars/maven-1.1-beta-1.jar -maven/jars/maven-1.0.2.jar -maven/jars/maven-1.0.jar -maven/jars/maven-1.1-beta-2.jar -maven/jars/maven-1.1-beta-3.jar -maven/jars/maven-1.1-RC1.jar -maven/jars/maven-jar-plugin-1.5.jar -maven/jars/maven-java-plugin-1.5.jar -maven/jars/maven-jelly-tags-1.0.1.jar -maven/jars/velocity-1.5-20060721.044818.jar -maven/jars/maven-jelly-tags-1.0.jar -maven/jars/maven-model-3.0.0.jar -maven/jars/maven-1.1.jar -maven/jars/maven-model-3.0.1.jar -maven/jars/maven-model-3.0.2.jar -maven/jars/wagon-file-1.0-alpha-3.jar -maven/jars/wagon-http-1.0-alpha-3.jar -maven/jars/wagon-provider-api-1.0-alpha-3.jar -maven/java-sources/maven-1.1-beta-3-sources.jar -maven/java-sources/maven-ant-plugin-1.10-sources.jar -maven/java-sources/maven-ear-plugin-1.9-sources.jar -maven/java-sources/maven-linkcheck-plugin-1.4-sources.jar -maven/java-sources/maven-modello-plugin-1.0-sources.jar -maven/java-sources/maven-pdf-plugin-2.5-sources.jar -maven/java-sources/maven-pmd-plugin-1.9-sources.jar -maven/java-sources/maven-site-plugin-1.7.2-sources.jar -maven/java-sources/maven-announcement-plugin-1.4.1-sources.jar -maven/java-sources/maven-developer-activity-plugin-1.6.1-sources.jar -maven/java-sources/maven-file-activity-plugin-1.6.1-sources.jar -maven/java-sources/maven-model-3.0.2-sources.jar -maven/java-sources/maven-plugin-plugin-1.7.1-sources.jar -maven/java-sources/maven-1.1-RC1-sources.jar -maven/java-sources/maven-idea-plugin-1.7-sources.jar -maven/java-sources/maven-jalopy-plugin-1.5.1-sources.jar -maven/java-sources/maven-jar-plugin-1.8.1-sources.jar -maven/java-sources/maven-javadoc-plugin-1.9-sources.jar -maven/java-sources/maven-multichanges-plugin-1.3-sources.jar -maven/java-sources/maven-1.1-sources.jar -maven/javadoc.jars/maven-1.1-beta-3.javadoc.jar -maven/javadoc.jars/maven-modello-plugin-1.0.javadoc.jar -maven/javadoc.jars/maven-announcement-plugin-1.4.1.javadoc.jar -maven/javadoc.jars/maven-model-3.0.2.javadoc.jar -maven/javadoc.jars/maven-plugin-plugin-1.7.1.javadoc.jar -maven/javadoc.jars/maven-jalopy-plugin-1.5.1.javadoc.jar -maven/javadoc.jars/maven-jar-plugin-1.8.1.javadoc.jar -maven/javadoc.jars/maven-javadoc-plugin-1.9.javadoc.jar -maven/javadoc.jars/maven-multichanges-plugin-1.3.javadoc.jar -maven/javadoc.jars/maven-1.1-RC1.javadoc.jar -maven/javadoc.jars/maven-1.1.javadoc.jar -maven/plugins/maven-abbot-plugin-1.0.jar -maven/plugins/maven-abbot-plugin-1.1.jar -maven/plugins/maven-announcement-plugin-1.1.jar -maven/plugins/maven-announcement-plugin-1.2.jar -maven/plugins/maven-announcement-plugin-1.3.jar -maven/plugins/maven-changelog-plugin-1.9.1.jar -maven/plugins/maven-announcement-plugin-1.4.jar -maven/plugins/maven-ant-plugin-1.10.jar -maven/plugins/maven-ant-plugin-1.7.jar -maven/plugins/maven-ant-plugin-1.8.1.jar -maven/plugins/maven-ant-plugin-1.8.jar -maven/plugins/maven-ant-plugin-1.9.jar -maven/plugins/maven-antlr-plugin-1.2.1.jar -maven/plugins/maven-antlr-plugin-1.2.2.jar -maven/plugins/maven-antlr-plugin-1.2.jar -maven/plugins/maven-appserver-plugin-2.0.jar -maven/plugins/maven-artifact-plugin-1.2.jar -maven/plugins/maven-artifact-plugin-1.3.jar -maven/plugins/maven-artifact-plugin-1.4.1.jar -maven/plugins/maven-artifact-plugin-1.4.jar -maven/plugins/maven-artifact-plugin-1.5.1.jar -maven/plugins/maven-artifact-plugin-1.5.2.jar -maven/plugins/maven-caller-plugin-1.1.jar -maven/plugins/maven-artifact-plugin-1.5.jar -maven/plugins/maven-artifact-plugin-1.6.jar -maven/plugins/maven-artifact-plugin-1.7.jar -maven/plugins/maven-castor-plugin-1.2.jar -maven/plugins/maven-artifact-plugin-1.8.jar -maven/plugins/maven-ashkelon-plugin-1.2.jar -maven/plugins/maven-aspectj-plugin-3.0.jar -maven/plugins/maven-aspectj-plugin-3.1.1.jar -maven/plugins/maven-aspectj-plugin-3.1.jar -maven/plugins/maven-aspectj-plugin-3.2.jar -maven/plugins/maven-aspectj-plugin-4.0.jar -maven/plugins/maven-aspectwerkz-plugin-1.2.jar -maven/plugins/maven-clean-plugin-1.2.jar -maven/plugins/maven-changelog-plugin-1.5.jar -maven/plugins/maven-changelog-plugin-1.6.jar -maven/plugins/maven-changelog-plugin-1.7.1.jar -maven/plugins/maven-changelog-plugin-1.7.2.jar -maven/plugins/maven-changelog-plugin-1.7.jar -maven/plugins/maven-changelog-plugin-1.8.1.jar -maven/plugins/maven-changelog-plugin-1.8.2.jar -maven/plugins/maven-changelog-plugin-1.8.jar -maven/plugins/maven-changelog-plugin-1.9.jar -maven/plugins/maven-changes-plugin-1.4.jar -maven/plugins/maven-changes-plugin-1.5.1.jar -maven/plugins/maven-changes-plugin-1.5.jar -maven/plugins/maven-clean-plugin-1.3.jar -maven/plugins/maven-changes-plugin-1.6.jar -maven/plugins/maven-checkstyle-plugin-2.4.1.jar -maven/plugins/maven-checkstyle-plugin-2.4.jar -maven/plugins/maven-checkstyle-plugin-2.5.jar -maven/plugins/maven-checkstyle-plugin-3.0.1.jar -maven/plugins/maven-checkstyle-plugin-3.0.jar -maven/plugins/maven-clean-plugin-1.4.jar -maven/plugins/maven-clover-plugin-1.10.jar -maven/plugins/maven-clover-plugin-1.11.jar -maven/plugins/maven-clover-plugin-1.5.jar -maven/plugins/maven-clover-plugin-1.6.jar -maven/plugins/maven-clover-plugin-1.7.jar -maven/plugins/maven-clover-plugin-1.8.jar -maven/plugins/maven-clover-plugin-1.9.1.jar -maven/plugins/maven-clover-plugin-1.9.jar -maven/plugins/maven-console-plugin-1.1.jar -maven/plugins/maven-console-plugin-1.2.jar -maven/plugins/maven-cruisecontrol-plugin-1.2.jar -maven/plugins/maven-cruisecontrol-plugin-1.3.jar -maven/plugins/maven-cruisecontrol-plugin-1.4.jar -maven/plugins/maven-cruisecontrol-plugin-1.5.jar -maven/plugins/maven-cruisecontrol-plugin-1.6.jar -maven/plugins/maven-cruisecontrol-plugin-1.7.jar -maven/plugins/maven-cruisecontrol-plugin-1.8.jar -maven/plugins/maven-dashboard-plugin-1.3.jar -maven/plugins/maven-developer-activity-plugin-1.5.1.jar -maven/plugins/maven-dashboard-plugin-1.4.jar -maven/plugins/maven-dashboard-plugin-1.5.jar -maven/plugins/maven-dashboard-plugin-1.6.jar -maven/plugins/maven-dashboard-plugin-1.7.jar -maven/plugins/maven-dashboard-plugin-1.8.jar -maven/plugins/maven-dashboard-plugin-1.9.jar -maven/plugins/maven-deploy-plugin-1.3.jar -maven/plugins/maven-developer-activity-plugin-1.5.2.jar -maven/plugins/maven-dist-plugin-1.5.jar -maven/plugins/maven-developer-activity-plugin-1.5.jar -maven/plugins/maven-developer-activity-plugin-1.6.jar -maven/plugins/maven-dist-plugin-1.6.1.jar -maven/plugins/maven-dist-plugin-1.6.jar -maven/plugins/maven-dist-plugin-1.7.jar -maven/plugins/maven-docbook-plugin-1.2.jar -maven/plugins/maven-ear-plugin-1.5.jar -maven/plugins/maven-ear-plugin-1.6.1.jar -maven/plugins/maven-ear-plugin-1.6.jar -maven/plugins/maven-ear-plugin-1.7.jar -maven/plugins/maven-ear-plugin-1.8.jar -maven/plugins/maven-ear-plugin-1.9.jar -maven/plugins/maven-eclipse-plugin-1.10.jar -maven/plugins/maven-eclipse-plugin-1.11.jar -maven/plugins/maven-eclipse-plugin-1.7.jar -maven/plugins/maven-eclipse-plugin-1.8.jar -maven/plugins/maven-eclipse-plugin-1.9.jar -maven/plugins/maven-ejb-plugin-1.4.jar -maven/plugins/maven-ejb-plugin-1.5.jar -maven/plugins/maven-ejb-plugin-1.6.jar -maven/plugins/maven-ejb-plugin-1.7.1.jar -maven/plugins/maven-ejb-plugin-1.7.2.jar -maven/plugins/maven-ejb-plugin-1.7.jar -maven/plugins/maven-faq-plugin-1.3.jar -maven/plugins/maven-faq-plugin-1.4.jar -maven/plugins/maven-faq-plugin-1.5.jar -maven/plugins/maven-faq-plugin-1.6.1.jar -maven/plugins/maven-file-activity-plugin-1.5.1.jar -maven/plugins/maven-faq-plugin-1.6.jar -maven/plugins/maven-file-activity-plugin-1.5.2.jar -maven/plugins/maven-genapp-plugin-2.3.jar -maven/plugins/maven-gump-plugin-1.3.jar -maven/plugins/maven-file-activity-plugin-1.5.jar -maven/plugins/maven-file-activity-plugin-1.6.jar -maven/plugins/maven-genapp-plugin-2.2.jar -maven/plugins/maven-gump-plugin-1.4.jar -maven/plugins/maven-gump-plugin-2.0.1.jar -maven/plugins/maven-gump-plugin-2.0.jar -maven/plugins/maven-hibernate-plugin-1.1.jar -maven/plugins/maven-hibernate-plugin-1.2.jar -maven/plugins/maven-hibernate-plugin-1.3.jar -maven/plugins/maven-html2xdoc-plugin-1.3.1.jar -maven/plugins/maven-idea-plugin-1.4.jar -maven/plugins/maven-html2xdoc-plugin-1.3.jar -maven/plugins/maven-html2xdoc-plugin-1.4.jar -maven/plugins/maven-idea-plugin-1.5.jar -maven/plugins/maven-idea-plugin-1.6.jar -maven/plugins/maven-jar-plugin-1.7.jar -maven/plugins/maven-j2ee-plugin-1.5.1.jar -maven/plugins/maven-j2ee-plugin-1.5.jar -maven/plugins/maven-jalopy-plugin-1.2.jar -maven/plugins/maven-jalopy-plugin-1.3.1.jar -maven/plugins/maven-jalopy-plugin-1.3.jar -maven/plugins/maven-jalopy-plugin-1.4.jar -maven/plugins/maven-jalopy-plugin-1.5.jar -maven/plugins/maven-jar-plugin-1.5.jar -maven/plugins/maven-jar-plugin-1.6.1.jar -maven/plugins/maven-jar-plugin-1.6.jar -maven/plugins/maven-jar-plugin-1.8.jar -maven/plugins/maven-java-plugin-1.4.jar -maven/plugins/maven-java-plugin-1.5.jar -maven/plugins/maven-java-plugin-1.6.jar -maven/plugins/maven-javacc-plugin-1.1.jar -maven/plugins/maven-jbuilder-plugin-1.5.jar -maven/plugins/maven-javacc-plugin-1.2.jar -maven/plugins/maven-javadoc-plugin-1.5.jar -maven/plugins/maven-javadoc-plugin-1.6.1.jar -maven/plugins/maven-javadoc-plugin-1.6.jar -maven/plugins/maven-javadoc-plugin-1.7.jar -maven/plugins/maven-javadoc-plugin-1.8.jar -maven/plugins/maven-jboss-plugin-1.5.jar -maven/plugins/maven-jcoverage-plugin-1.0.4.jar -maven/plugins/maven-jcoverage-plugin-1.0.5.jar -maven/plugins/maven-jcoverage-plugin-1.0.6.jar -maven/plugins/maven-jcoverage-plugin-1.0.7.jar -maven/plugins/maven-jcoverage-plugin-1.0.8.jar -maven/plugins/maven-jcoverage-plugin-1.0.9.jar -maven/plugins/maven-jdee-plugin-1.1.jar -maven/plugins/maven-jdepend-plugin-1.5.1.jar -maven/plugins/maven-jdepend-plugin-1.5.jar -maven/plugins/maven-jdepend-plugin-1.6.1.jar -maven/plugins/maven-jdepend-plugin-1.6.jar -maven/plugins/maven-jdeveloper-plugin-1.4.jar -maven/plugins/maven-jdiff-plugin-1.3.jar -maven/plugins/maven-jdiff-plugin-1.4.jar -maven/plugins/maven-jdiff-plugin-1.5.jar -maven/plugins/maven-jellydoc-plugin-1.3.1.jar -maven/plugins/maven-jellydoc-plugin-1.3.jar -maven/plugins/maven-jetty-plugin-1.1.jar -maven/plugins/maven-jira-plugin-1.1.1.jar -maven/plugins/maven-jira-plugin-1.1.2.jar -maven/plugins/maven-jira-plugin-1.1.jar -maven/plugins/maven-jira-plugin-1.2.jar -maven/plugins/maven-jira-plugin-1.3.jar -maven/plugins/maven-jnlp-plugin-1.3.jar -maven/plugins/maven-jnlp-plugin-1.4.1.jar -maven/plugins/maven-jnlp-plugin-1.4.jar -maven/plugins/maven-junit-doclet-plugin-1.2.jar -maven/plugins/maven-junit-report-plugin-1.5.1.jar -maven/plugins/maven-junit-report-plugin-1.5.jar -maven/plugins/maven-jxr-plugin-1.4.1.jar -maven/plugins/maven-jxr-plugin-1.4.2.jar -maven/plugins/maven-jxr-plugin-1.4.3.jar -maven/plugins/maven-jxr-plugin-1.4.jar -maven/plugins/maven-jxr-plugin-1.5.jar -maven/plugins/maven-latex-plugin-1.2.jar -maven/plugins/maven-latka-plugin-1.4.jar -maven/plugins/maven-latex-plugin-1.4.1.jar -maven/plugins/maven-latka-plugin-1.4.1.jar -maven/plugins/maven-license-plugin-1.2.jar -maven/plugins/maven-linkcheck-plugin-1.3.1.jar -maven/plugins/maven-linkcheck-plugin-1.4.jar -maven/plugins/maven-linkcheck-plugin-1.3.2.jar -maven/plugins/maven-linkcheck-plugin-1.3.3.jar -maven/plugins/maven-linkcheck-plugin-1.3.4.jar -maven/plugins/maven-linkcheck-plugin-1.3.jar -maven/plugins/maven-multichanges-plugin-1.1.jar -maven/plugins/maven-multichanges-plugin-1.2.jar -maven/plugins/maven-multiproject-plugin-1.3.1.jar -maven/plugins/maven-multiproject-plugin-1.3.jar -maven/plugins/maven-multiproject-plugin-1.4.1.jar -maven/plugins/maven-multiproject-plugin-1.4.jar -maven/plugins/maven-multiproject-plugin-1.5.jar -maven/plugins/maven-native-plugin-1.1.jar -maven/plugins/maven-native-plugin-1.2.jar -maven/plugins/maven-nsis-plugin-1.1.jar -maven/plugins/maven-nsis-plugin-2.0.jar -maven/plugins/maven-pdf-plugin-2.1.jar -maven/plugins/maven-pdf-plugin-2.2.1.jar -maven/plugins/maven-pdf-plugin-2.2.jar -maven/plugins/maven-pdf-plugin-2.3.jar -maven/plugins/maven-pdf-plugin-2.4.jar -maven/plugins/maven-pdf-plugin-2.5.jar -maven/plugins/maven-plugin-plugin-1.4.jar -maven/plugins/maven-plugin-plugin-1.5.1.jar -maven/plugins/maven-plugin-plugin-1.5.2.jar -maven/plugins/maven-plugin-plugin-1.5.jar -maven/plugins/maven-plugin-plugin-1.6.jar -maven/plugins/maven-plugin-plugin-1.7.jar -maven/plugins/maven-pmd-plugin-1.4.jar -maven/plugins/maven-pmd-plugin-1.5.jar -maven/plugins/maven-pmd-plugin-1.6.jar -maven/plugins/maven-pmd-plugin-1.7.jar -maven/plugins/maven-pmd-plugin-1.8.jar -maven/plugins/maven-pmd-plugin-1.9.jar -maven/plugins/maven-pom-plugin-1.4.1.jar -maven/plugins/maven-pom-plugin-1.4.jar -maven/plugins/maven-pom-plugin-1.5.jar -maven/plugins/maven-rar-plugin-1.0.jar -maven/plugins/maven-rar-plugin-1.1.jar -maven/plugins/maven-release-plugin-1.3.jar -maven/plugins/maven-release-plugin-1.4.1.jar -maven/plugins/maven-release-plugin-1.4.jar -maven/plugins/maven-repository-plugin-1.2.jar -maven/plugins/maven-scm-plugin-1.3.jar -maven/plugins/maven-scm-plugin-1.4.1.jar -maven/plugins/maven-scm-plugin-1.4.jar -maven/plugins/maven-scm-plugin-1.5-beta-2.jar -maven/plugins/maven-site-plugin-1.6.jar -maven/plugins/maven-site-plugin-1.7.jar -maven/plugins/maven-scm-plugin-1.5-beta-3.jar -maven/plugins/maven-scm-plugin-1.5.jar -maven/plugins/maven-scm-plugin-1.6.jar -maven/plugins/maven-shell-plugin-1.1.jar -maven/plugins/maven-simian-plugin-1.4.jar -maven/plugins/maven-simian-plugin-1.5.jar -maven/plugins/maven-simian-plugin-1.6.jar -maven/plugins/maven-site-plugin-1.5.1.jar -maven/plugins/maven-site-plugin-1.5.2.jar -maven/plugins/maven-site-plugin-1.5.jar -maven/plugins/maven-site-plugin-1.6.1.jar -maven/plugins/maven-source-plugin-1.0.jar -maven/plugins/maven-struts-plugin-1.3.jar -maven/plugins/maven-tasklist-plugin-2.3.jar -maven/plugins/maven-tasklist-plugin-2.4.jar -maven/plugins/maven-xdoc-plugin-1.9.2.jar -maven/plugins/maven-test-plugin-1.6.1.jar -maven/plugins/maven-test-plugin-1.6.2.jar -maven/plugins/maven-test-plugin-1.6.jar -maven/plugins/maven-test-plugin-1.7.jar -maven/plugins/maven-test-plugin-1.8.jar -maven/plugins/maven-tjdo-plugin-1.0.0.jar -maven/plugins/maven-uberjar-plugin-1.2.jar -maven/plugins/maven-vdoclet-plugin-1.2.jar -maven/plugins/maven-war-plugin-1.6.1.jar -maven/plugins/maven-war-plugin-1.6.2.jar -maven/plugins/maven-war-plugin-1.6.jar -maven/plugins/maven-webserver-plugin-2.0.jar -maven/plugins/maven-wizard-plugin-1.1.jar -maven/plugins/maven-xdoc-plugin-1.10.jar -maven/plugins/maven-xdoc-plugin-1.7.1.jar -maven/plugins/maven-xdoc-plugin-1.7.2.jar -maven/plugins/maven-xdoc-plugin-1.7.jar -maven/plugins/maven-xdoc-plugin-1.8.jar -maven/plugins/maven-xdoc-plugin-1.9.1.jar -maven/plugins/maven-changes-plugin-1.7.jar -maven/plugins/maven-xdoc-plugin-1.9.jar -maven/plugins/maven-genapp-plugin-2.3.1.jar -maven/plugins/maven-pom-plugin-1.5.1.jar -maven/plugins/maven-clover-plugin-1.11.1.jar -maven/plugins/maven-java-plugin-1.6.1.jar -maven/plugins/maven-jira-plugin-1.3.1.jar -maven/plugins/maven-simian-plugin-1.6.1.jar -maven/plugins/maven-clover-plugin-1.11.2.jar -maven/plugins/maven-jdiff-plugin-1.5.1.jar -maven/plugins/maven-pdf-plugin-2.5.1.jar -maven/plugins/maven-pmd-plugin-1.10.jar -maven/plugins/maven-scm-plugin-1.6.1.jar -maven/plugins/maven-site-plugin-1.7.1.jar -maven/plugins/maven-modello-plugin-1.0.jar -maven/plugins/maven-site-plugin-1.7.2.jar -maven/plugins/maven-announcement-plugin-1.4.1.jar -maven/plugins/maven-developer-activity-plugin-1.6.1.jar -maven/plugins/maven-file-activity-plugin-1.6.1.jar -maven/plugins/maven-plugin-plugin-1.7.1.jar -maven/plugins/maven-idea-plugin-1.7.jar -maven/plugins/maven-jalopy-plugin-1.5.1.jar -maven/plugins/maven-jar-plugin-1.8.1.jar -maven/plugins/maven-javadoc-plugin-1.9.jar -maven/plugins/maven-multichanges-plugin-1.3.jar -maven/plugins/maven-artifact-plugin-1.9.jar -maven/plugins/maven-changelog-plugin-1.9.2.jar -maven/plugins/maven-dist-plugin-1.7.1.jar -maven/plugins/maven-eclipse-plugin-1.12.jar -maven/plugins/maven-ejb-plugin-1.7.3.jar -maven/plugins/maven-linkcheck-plugin-1.4.1.jar -maven/plugins/maven-multiproject-plugin-1.5.1.jar -maven/plugins/maven-test-plugin-1.8.1.jar -maven/plugins/maven-war-plugin-1.6.3.jar -maven/plugins/maven-xdoc-plugin-1.10.1.jar -maven/plugins/maven-nsis-plugin-2.1.jar -maven/plugins/maven-artifact-plugin-1.9.1.jar -maven/plugins/maven-test-plugin-1.8.2.jar -maven/poms/commons-jelly-1.0.1-20060717.pom -maven/poms/maven-1.0.1.pom -maven/poms/maven-1.0-rc4.pom -maven/poms/maven-1.0.2.pom -maven/poms/maven-1.0.pom -maven/poms/maven-1.1-beta-3.pom -maven/poms/maven-abbot-plugin-1.0.pom -maven/poms/maven-abbot-plugin-1.1.pom -maven/poms/maven-announcement-plugin-1.2.pom -maven/poms/maven-announcement-plugin-1.3.pom -maven/poms/maven-1.1-RC1.pom -maven/poms/maven-announcement-plugin-1.4.pom -maven/poms/maven-ant-plugin-1.10.pom -maven/poms/maven-ant-plugin-1.8.1.pom -maven/poms/maven-ant-plugin-1.8.pom -maven/poms/maven-ant-plugin-1.9.pom -maven/poms/maven-antlr-plugin-1.2.1.pom -maven/poms/maven-model-3.0.0.pom -maven/poms/maven-antlr-plugin-1.2.2.pom -maven/poms/maven-artifact-plugin-1.3.pom -maven/poms/maven-artifact-plugin-1.4.1.pom -maven/poms/maven-artifact-plugin-1.4.pom -maven/poms/maven-artifact-plugin-1.5.1.pom -maven/poms/maven-artifact-plugin-1.5.2.pom -maven/poms/maven-artifact-plugin-1.5.pom -maven/poms/maven-artifact-plugin-1.6.pom -maven/poms/maven-model-3.0.1.pom -maven/poms/maven-artifact-plugin-1.7.pom -maven/poms/maven-artifact-plugin-1.8.pom -maven/poms/maven-aspectj-plugin-3.1.1.pom -maven/poms/maven-aspectj-plugin-3.2.pom -maven/poms/maven-aspectj-plugin-4.0.pom -maven/poms/maven-changelog-plugin-1.6.pom -maven/poms/maven-changelog-plugin-1.7.1.pom -maven/poms/maven-clean-plugin-1.4.pom -maven/poms/maven-changelog-plugin-1.7.2.pom -maven/poms/maven-changelog-plugin-1.7.pom -maven/poms/maven-changelog-plugin-1.8.1.pom -maven/poms/maven-changelog-plugin-1.9.pom -maven/poms/maven-changelog-plugin-1.8.2.pom -maven/poms/maven-changelog-plugin-1.8.pom -maven/poms/maven-changelog-plugin-1.9.1.pom -maven/poms/maven-changes-plugin-1.5.1.pom -maven/poms/maven-changes-plugin-1.5.pom -maven/poms/maven-changes-plugin-1.6.pom -maven/poms/maven-checkstyle-plugin-2.5.pom -maven/poms/maven-checkstyle-plugin-3.0.1.pom -maven/poms/maven-checkstyle-plugin-3.0.pom -maven/poms/maven-dashboard-plugin-1.5.pom -maven/poms/maven-clover-plugin-1.10.pom -maven/poms/maven-clover-plugin-1.11.pom -maven/poms/maven-clover-plugin-1.6.pom -maven/poms/maven-clover-plugin-1.7.pom -maven/poms/maven-clover-plugin-1.8.pom -maven/poms/maven-clover-plugin-1.9.1.pom -maven/poms/maven-clover-plugin-1.9.pom -maven/poms/maven-dist-plugin-1.6.1.pom -maven/poms/maven-console-plugin-1.2.pom -maven/poms/maven-cruisecontrol-plugin-1.4.pom -maven/poms/maven-cruisecontrol-plugin-1.5.pom -maven/poms/maven-cruisecontrol-plugin-1.6.pom -maven/poms/maven-cruisecontrol-plugin-1.7.pom -maven/poms/maven-cruisecontrol-plugin-1.8.pom -maven/poms/maven-dashboard-plugin-1.4.pom -maven/poms/maven-developer-activity-plugin-1.5.1.pom -maven/poms/maven-dashboard-plugin-1.6.pom -maven/poms/maven-dashboard-plugin-1.7.pom -maven/poms/maven-dashboard-plugin-1.8.pom -maven/poms/maven-dashboard-plugin-1.9.pom -maven/poms/maven-developer-activity-plugin-1.5.2.pom -maven/poms/maven-developer-activity-plugin-1.6.pom -maven/poms/maven-dist-plugin-1.6.pom -maven/poms/maven-dist-plugin-1.7.pom -maven/poms/maven-ear-plugin-1.6.1.pom -maven/poms/maven-ear-plugin-1.6.pom -maven/poms/maven-ear-plugin-1.7.pom -maven/poms/maven-ear-plugin-1.8.pom -maven/poms/maven-ear-plugin-1.9.pom -maven/poms/maven-ejb-plugin-1.5.pom -maven/poms/maven-eclipse-plugin-1.10.pom -maven/poms/maven-eclipse-plugin-1.11.pom -maven/poms/maven-eclipse-plugin-1.8.pom -maven/poms/maven-eclipse-plugin-1.9.pom -maven/poms/maven-ejb-plugin-1.6.pom -maven/poms/maven-ejb-plugin-1.7.1.pom -maven/poms/maven-ejb-plugin-1.7.2.pom -maven/poms/maven-ejb-plugin-1.7.pom -maven/poms/maven-faq-plugin-1.4.pom -maven/poms/maven-faq-plugin-1.5.pom -maven/poms/maven-faq-plugin-1.6.1.pom -maven/poms/maven-file-activity-plugin-1.5.1.pom -maven/poms/maven-faq-plugin-1.6.pom -maven/poms/maven-file-activity-plugin-1.5.2.pom -maven/poms/maven-file-activity-plugin-1.6.pom -maven/poms/maven-genapp-plugin-2.3.pom -maven/poms/maven-gump-plugin-1.4.pom -maven/poms/maven-gump-plugin-2.0.1.pom -maven/poms/maven-gump-plugin-2.0.pom -maven/poms/maven-hibernate-plugin-1.2.pom -maven/poms/maven-hibernate-plugin-1.3.pom -maven/poms/maven-html2xdoc-plugin-1.3.1.pom -maven/poms/maven-html2xdoc-plugin-1.4.pom -maven/poms/maven-idea-plugin-1.5.pom -maven/poms/maven-idea-plugin-1.6.pom -maven/poms/maven-j2ee-plugin-1.5.1.pom -maven/poms/maven-jalopy-plugin-1.3.1.pom -maven/poms/maven-jalopy-plugin-1.3.pom -maven/poms/maven-jalopy-plugin-1.4.pom -maven/poms/maven-jalopy-plugin-1.5.pom -maven/poms/maven-jar-plugin-1.6.1.pom -maven/poms/maven-jar-plugin-1.6.pom -maven/poms/maven-jar-plugin-1.7.pom -maven/poms/maven-jar-plugin-1.8.pom -maven/poms/maven-java-plugin-1.5.pom -maven/poms/maven-java-plugin-1.6.pom -maven/poms/maven-javacc-plugin-1.2.pom -maven/poms/maven-model-3.0.2.pom -maven/poms/maven-javadoc-plugin-1.6.1.pom -maven/poms/maven-javadoc-plugin-1.6.pom -maven/poms/maven-javadoc-plugin-1.7.pom -maven/poms/maven-javadoc-plugin-1.8.pom -maven/poms/maven-jcoverage-plugin-1.0.5.pom -maven/poms/maven-jcoverage-plugin-1.0.6.pom -maven/poms/maven-jcoverage-plugin-1.0.7.pom -maven/poms/maven-jelly-tags-1.0.1.pom -maven/poms/maven-jcoverage-plugin-1.0.8.pom -maven/poms/maven-jcoverage-plugin-1.0.9.pom -maven/poms/maven-jdepend-plugin-1.5.1.pom -maven/poms/maven-jdepend-plugin-1.6.1.pom -maven/poms/maven-jdepend-plugin-1.6.pom -maven/poms/maven-jdiff-plugin-1.5.pom -maven/poms/maven-jira-plugin-1.2-20051203.221911.pom -maven/poms/maven-jellydoc-plugin-1.3.1.pom -maven/poms/maven-jira-plugin-1.1.1.pom -maven/poms/maven-jira-plugin-1.1.2.pom -maven/poms/maven-jira-plugin-1.2.pom -maven/poms/maven-jira-plugin-1.3.pom -maven/poms/maven-jira-plugin-snapshot-version -maven/poms/maven-jnlp-plugin-1.4.1.pom -maven/poms/maven-jnlp-plugin-1.4.pom -maven/poms/maven-junit-report-plugin-1.5.1.pom -maven/poms/maven-jxr-plugin-1.4.1.pom -maven/poms/maven-jxr-plugin-1.4.2.pom -maven/poms/maven-jxr-plugin-1.4.3.pom -maven/poms/maven-jxr-plugin-1.5.pom -maven/poms/maven-latex-plugin-1.4.1.pom -maven/poms/maven-latka-plugin-1.4.1.pom -maven/poms/maven-linkcheck-plugin-1.3.2.pom -maven/poms/maven-linkcheck-plugin-1.3.3.pom -maven/poms/maven-native-plugin-1.2.pom -maven/poms/maven-linkcheck-plugin-1.3.4.pom -maven/poms/maven-linkcheck-plugin-1.4.pom -maven/poms/maven-multichanges-plugin-1.2.pom -maven/poms/maven-multiproject-plugin-1.3.1.pom -maven/poms/maven-multiproject-plugin-1.4.1.pom -maven/poms/maven-multiproject-plugin-1.4.pom -maven/poms/maven-multiproject-plugin-1.5.pom -maven/poms/maven-nsis-plugin-2.0.pom -maven/poms/maven-pdf-plugin-2.2.1.pom -maven/poms/maven-pdf-plugin-2.5.pom -maven/poms/maven-pdf-plugin-2.2.pom -maven/poms/maven-pdf-plugin-2.3.pom -maven/poms/maven-pdf-plugin-2.4.pom -maven/poms/maven-plugin-plugin-1.5.1.pom -maven/poms/maven-plugin-plugin-1.5.2.pom -maven/poms/maven-plugin-plugin-1.5.pom -maven/poms/maven-plugin-plugin-1.6.pom -maven/poms/maven-plugin-plugin-1.7.pom -maven/poms/maven-pmd-plugin-1.5.pom -maven/poms/maven-pmd-plugin-1.6.pom -maven/poms/maven-pmd-plugin-1.7.pom -maven/poms/maven-pmd-plugin-1.8.pom -maven/poms/maven-pmd-plugin-1.9.pom -maven/poms/maven-pom-plugin-1.5.pom -maven/poms/maven-rar-plugin-1.1.pom -maven/poms/maven-release-plugin-1.4.1.pom -maven/poms/maven-scm-plugin-1.4.1.pom -maven/poms/maven-scm-plugin-1.5-beta-2.pom -maven/poms/maven-scm-plugin-1.5-beta-3.pom -maven/poms/maven-scm-plugin-1.5.pom -maven/poms/maven-scm-plugin-1.6.pom -maven/poms/maven-simian-plugin-1.5.pom -maven/poms/maven-simian-plugin-1.6.pom -maven/poms/maven-site-plugin-1.5.1.pom -maven/poms/maven-site-plugin-1.5.2.pom -maven/poms/maven-site-plugin-1.6.1.pom -maven/poms/maven-site-plugin-1.6.pom -maven/poms/maven-site-plugin-1.7.pom -maven/poms/maven-source-plugin-1.0.pom -maven/poms/maven-tasklist-plugin-2.4.pom -maven/poms/maven-test-plugin-1.6.2.pom -maven/poms/maven-test-plugin-1.7.pom -maven/poms/maven-test-plugin-1.8.pom -maven/poms/maven-war-plugin-1.6.1.pom -maven/poms/maven-war-plugin-1.6.2.pom -maven/poms/maven-xdoc-plugin-1.10.pom -maven/poms/maven-xdoc-plugin-1.7.2.pom -maven/poms/maven-xdoc-plugin-1.8.pom -maven/poms/maven-xdoc-plugin-1.9.1.pom -maven/poms/maven-xdoc-plugin-1.9.2.pom -maven/poms/maven-xdoc-plugin-1.9.pom -maven/poms/velocity-1.5-20060721.044818.pom -maven/poms/maven-changes-plugin-1.7.pom -maven/poms/maven-genapp-plugin-2.3.1.pom -maven/poms/maven-pom-plugin-1.5.1.pom -maven/poms/maven-clover-plugin-1.11.1.pom -maven/poms/maven-java-plugin-1.6.1.pom -maven/poms/maven-jira-plugin-1.3.1.pom -maven/poms/maven-simian-plugin-1.6.1.pom -maven/poms/maven-clover-plugin-1.11.2.pom -maven/poms/maven-jdiff-plugin-1.5.1.pom -maven/poms/maven-pdf-plugin-2.5.1.pom -maven/poms/maven-pmd-plugin-1.10.pom -maven/poms/maven-scm-plugin-1.6.1.pom -maven/poms/maven-site-plugin-1.7.1.pom -maven/poms/maven-modello-plugin-1.0.pom -maven/poms/maven-site-plugin-1.7.2.pom -maven/poms/maven-announcement-plugin-1.4.1.pom -maven/poms/maven-developer-activity-plugin-1.6.1.pom -maven/poms/maven-file-activity-plugin-1.6.1.pom -maven/poms/maven-plugin-plugin-1.7.1.pom -maven/poms/maven-idea-plugin-1.7.pom -maven/poms/maven-jalopy-plugin-1.5.1.pom -maven/poms/maven-jar-plugin-1.8.1.pom -maven/poms/maven-javadoc-plugin-1.9.pom -maven/poms/maven-multichanges-plugin-1.3.pom -maven/poms/maven-artifact-plugin-1.9.pom -maven/poms/maven-changelog-plugin-1.9.2.pom -maven/poms/maven-dist-plugin-1.7.1.pom -maven/poms/maven-eclipse-plugin-1.12.pom -maven/poms/maven-ejb-plugin-1.7.3.pom -maven/poms/maven-linkcheck-plugin-1.4.1.pom -maven/poms/maven-multiproject-plugin-1.5.1.pom -maven/poms/maven-test-plugin-1.8.1.pom -maven/poms/maven-war-plugin-1.6.3.pom -maven/poms/maven-xdoc-plugin-1.10.1.pom -maven/poms/maven-nsis-plugin-2.1.pom -maven/poms/maven-artifact-plugin-1.9.1.pom -maven/poms/maven-1.1.pom -maven/poms/maven-test-plugin-1.8.2.pom -maven-new/jars/maven-fetch-20030525.145948.jar -maven-new/jars/maven-fetch-snapshot-version -maven-plugins/jars/maven-aptdoc-plugin-20030413.030249.jar -maven-plugins/jars/maven-aptdoc-plugin-snapshot-version -maven-plugins/jars/maven-dbunit-plugin-20030413.024213.jar -maven-plugins/jars/maven-dbunit-plugin-snapshot-version -maven-plugins/plugins/maven-dbunit-plugin-1.0.jar -maven-plugins/plugins/maven-dbunit-plugin-20030814.080708.jar -merlin/jars/merlin-api-3.3.0.jar -merlin/jars/merlin-cli-3.3.0.jar -merlin/jars/merlin-impl-3.3.0.jar -merlin/jars/merlin-unit-3.3.0.jar -merlin/plugins/merlin-plugin-3.3.0.jar -merlin-developer/jars/merlin-developer-core-snapshot-version -merlin-developer/jars/merlin-developer-core-0.1.jar -merlin-developer/jars/merlin-developer-core-20040423.083017.jar -merlin-tutorial/jars/locator-impl-1.0.jar -merlin-tutorial/jars/locator-api-1.0.jar -merlin-tutorial/jars/publisher-api-1.0.jar -merlin-tutorial/jars/publisher-impl-1.0.jar -muse/jars/2.0.0-M1/KEYS -muse/jars/2.0.0-M1/muse-core-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-platform-axis2-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-tools-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-util-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-util-xml-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-util-qname-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-util-xstream-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsa-soap-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsdm-muws-adv-api-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsdm-muws-adv-impl-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsdm-muws-api-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsrf-impl-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsdm-muws-impl-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsdm-wef-api-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsdm-wef-impl-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsn-api-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsn-impl-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsrf-api-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsx-api-2.0.0-M1.jar -muse/jars/2.0.0-M1/muse-wsx-impl-2.0.0-M1.jar -muse/jars/advertiser-xbeans-src-1.0.jar -muse/jars/advertiser-xbeans-1.0.jar -muse/jars/wsdm-xbeans-1.0.jar -muse/jars/muse-1.0.jar -muse/jars/wsdm-xbeans-src-1.0.jar -myfaces/jars/myfaces-1.0.9/myfaces-impl-1.0.9.jar -myfaces/jars/myfaces-1.0.9/myfaces-1.0.9.jar -myfaces/jars/myfaces-1.0.9/myfaces-extensions-1.0.9.jar -myfaces/jars/myfaces-1.0.9/myfaces-jsf-api-1.0.9.jar -myfaces/jars/myfaces-1.0.9/myfaces-wap-1.0.9.jar -myfaces/jars/myfaces-1.0.9/myfaces-xdoclet-1.0.9.jar -myfaces/jars/myfaces-1.1.0/myfaces-impl.jar -myfaces/jars/myfaces-1.1.0/myfaces-all.jar -myfaces/jars/myfaces-1.1.0/myfaces-api.jar -myfaces/jars/myfaces-1.1.0/tomahawk.jar -myfaces/jars/myfaces-1.0.9.jar -myfaces/jars/myfaces-extensions-1.0.9.jar -myfaces/jars/myfaces-all-1.1.0.jar -myfaces/jars/myfaces-all-1.1.1.jar -myfaces/jars/myfaces-api-1.1.0.jar -myfaces/jars/myfaces-api-1.1.1.jar -myfaces/jars/myfaces-impl-1.0.9.jar -myfaces/jars/myfaces-impl-1.1.0.jar -myfaces/jars/myfaces-impl-1.1.1.jar -myfaces/jars/myfaces-jsf-api-1.0.8-beta.jar -myfaces/jars/myfaces-jsf-api-1.0.9.jar -myfaces/jars/myfaces-wap-1.0.9.jar -myfaces/jars/myfaces-xdoclet-1.0.9.jar -myfaces/jars/tomahawk-1.1.0.jar -myfaces/jars/tomahawk-1.1.1.jar -myfaces/poms/myfaces.pom -nekohtml/jars/nekohtml-0.6.5.jar -nekohtml/jars/nekohtml-0.7.1.jar -nekohtml/jars/nekohtml-0.7.4.jar -nekohtml/jars/nekohtml-0.7.6.jar -nekohtml/jars/nekohtml-0.7.7.jar -nekohtml/jars/nekohtml-0.8.1.jar -nekohtml/jars/nekohtmlSamples-0.7.1.jar -nekohtml/jars/nekohtmlSamples-0.7.7.jar -nekohtml/jars/nekohtmlSamples-0.8.1.jar -nekohtml/jars/nekohtmlXni-0.7.1.jar -nekohtml/jars/nekohtmlXni-0.7.6.jar -nekohtml/jars/nekohtmlXni-0.7.7.jar -nekohtml/jars/nekohtmlXni-0.8.1.jar -ojb/jars/db-ojb-1.0.0-tools.jar -ojb/jars/db-ojb-1.0.0.jar -ojb/jars/db-ojb-1.0.1.jar -ojb/jars/db-ojb-1.0.2.jar -ojb/jars/db-ojb-1.0.3.jar -ojb/jars/db-ojb-1.0.4.jar.MD5 -ojb/jars/db-ojb-1.0.4.jar -ojb/jars/db-ojb-1.0.rc5-tools.jar -ojb/jars/ojb-0.9.jar -ojb/jars/db-ojb-1.0.rc5.jar -ojb/jars/db-ojb-1.0.rc7.jar -ojb/jars/ojb-0.5.200.jar -ojb/jars/ojb-0.7.343.jar -ojb/jars/ojb-0.8.375.jar -ojb/jars/ojb-0.9.1.jar -ojb/jars/ojb-0.9.2.jar -ojb/jars/ojb-0.9.4.jar -ojb/jars/ojb-0.9.5.jar -ojb/jars/ojb-0.9.6-dev.jar -ojb/jars/ojb-0.9.6.jar -ojb/jars/ojb-1.0-dev-james-1.jar -ojb/jars/ojb-1.0.rc2.jar -ojb/jars/ojb-1.0.rc3.jar -ojb/jars/ojb-1.0.rc4.jar -ojb/jars/xdoclet-ojb-module-1.2.1.jar -ojb/jars/xdoclet-ojb-module-1.2.3.jar -ojb/jars/xdoclet-ojb-module-1.2.3.jar.MD5 -ojb/poms/db-ojb-1.0.4.pom.MD5 -ojb/poms/db-ojb-1.0.4.pom -ojb/poms/ojb-1.0.rc2.pom -org/apache/geronimo/specs/geronimo-activation_1.0.2_spec/1.0/geronimo-activation_1.0.2_spec-1.0.jar -org/apache/geronimo/specs/geronimo-activation_1.0.2_spec/1.0/geronimo-activation_1.0.2_spec-1.0.pom -org/apache/geronimo/specs/geronimo-activation_1.0.2_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-corba_3.0_spec/1.0/geronimo-corba_3.0_spec-1.0.jar -org/apache/geronimo/specs/geronimo-corba_3.0_spec/1.0/geronimo-corba_3.0_spec-1.0.pom -org/apache/geronimo/specs/geronimo-corba_3.0_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-ejb_2.1_spec/1.0/geronimo-ejb_2.1_spec-1.0.jar -org/apache/geronimo/specs/geronimo-ejb_2.1_spec/1.0/geronimo-ejb_2.1_spec-1.0.pom -org/apache/geronimo/specs/geronimo-ejb_2.1_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-j2ee-connector_1.5_spec/1.0/geronimo-j2ee-connector_1.5_spec-1.0.jar -org/apache/geronimo/specs/geronimo-j2ee-connector_1.5_spec/1.0/geronimo-j2ee-connector_1.5_spec-1.0.pom -org/apache/geronimo/specs/geronimo-j2ee-connector_1.5_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-j2ee-deployment_1.1_spec/1.0/geronimo-j2ee-deployment_1.1_spec-1.0.jar -org/apache/geronimo/specs/geronimo-j2ee-deployment_1.1_spec/1.0/geronimo-j2ee-deployment_1.1_spec-1.0.pom -org/apache/geronimo/specs/geronimo-j2ee-deployment_1.1_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-j2ee-jacc_1.0_spec/1.0/geronimo-j2ee-jacc_1.0_spec-1.0.jar -org/apache/geronimo/specs/geronimo-j2ee-jacc_1.0_spec/1.0/geronimo-j2ee-jacc_1.0_spec-1.0.pom -org/apache/geronimo/specs/geronimo-j2ee-jacc_1.0_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-j2ee-management_1.0_spec/1.0/geronimo-j2ee-management_1.0_spec-1.0.jar -org/apache/geronimo/specs/geronimo-j2ee-management_1.0_spec/1.0/geronimo-j2ee-management_1.0_spec-1.0.pom -org/apache/geronimo/specs/geronimo-j2ee-management_1.0_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-jaxr_1.0_spec/1.0/geronimo-jaxr_1.0_spec-1.0.jar -org/apache/geronimo/specs/geronimo-jaxr_1.0_spec/1.0/geronimo-jaxr_1.0_spec-1.0.pom -org/apache/geronimo/specs/geronimo-jaxr_1.0_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-jaxrpc_1.1_spec/1.0/geronimo-jaxrpc_1.1_spec-1.0.jar -org/apache/geronimo/specs/geronimo-jaxrpc_1.1_spec/1.0/geronimo-jaxrpc_1.1_spec-1.0.pom -org/apache/geronimo/specs/geronimo-jaxrpc_1.1_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.0/geronimo-jms_1.1_spec-1.0.jar -org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.0/geronimo-jms_1.1_spec-1.0.pom -org/apache/geronimo/specs/geronimo-jms_1.1_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-jsp_2.0_spec/1.0/geronimo-jsp_2.0_spec-1.0.jar -org/apache/geronimo/specs/geronimo-jsp_2.0_spec/1.0/geronimo-jsp_2.0_spec-1.0.pom -org/apache/geronimo/specs/geronimo-jsp_2.0_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.0/geronimo-jta_1.0.1B_spec-1.0.jar -org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.0/geronimo-jta_1.0.1B_spec-1.0.pom -org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-qname_1.1_spec/1.0/geronimo-qname_1.1_spec-1.0.jar -org/apache/geronimo/specs/geronimo-qname_1.1_spec/1.0/geronimo-qname_1.1_spec-1.0.pom -org/apache/geronimo/specs/geronimo-qname_1.1_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-saaj_1.1_spec/1.0/geronimo-saaj_1.1_spec-1.0.jar -org/apache/geronimo/specs/geronimo-saaj_1.1_spec/1.0/geronimo-saaj_1.1_spec-1.0.pom -org/apache/geronimo/specs/geronimo-saaj_1.1_spec/maven-metadata.xml -org/apache/geronimo/specs/geronimo-servlet_2.4_spec/1.0/geronimo-servlet_2.4_spec-1.0.jar -org/apache/geronimo/specs/geronimo-servlet_2.4_spec/1.0/geronimo-servlet_2.4_spec-1.0.pom -org/apache/geronimo/specs/geronimo-servlet_2.4_spec/maven-metadata.xml -org.apache.axis/jars/axis-1.4.jar -org.apache.axis/jars/axis-1.4.jar.sha -org.apache.axis/jars/axis-ant-1.4.jar -org.apache.axis/jars/axis-ant-1.4.jar.sha -org.apache.axis/jars/axis-jaxrpc-1.4.jar -org.apache.axis/jars/axis-jaxrpc-1.4.jar.sha -org.apache.axis/jars/axis-saaj-1.4.jar -org.apache.axis/jars/axis-saaj-1.4.jar.sha -org.apache.bcel/jars/bcel-5.2.jar -org.apache.beehive/jars/beehive-controls-1.0.1.jar -org.apache.beehive/jars/beehive-ejb-control-1.0.1.jar -org.apache.beehive/jars/beehive-jdbc-control-1.0.1.jar -org.apache.beehive/jars/beehive-jms-control-1.0.1.jar -org.apache.beehive/jars/beehive-netui-compiler-1.0.1.jar -org.apache.beehive/jars/beehive-netui-core-1.0.1.jar -org.apache.beehive/jars/beehive-netui-tags-1.0.1.jar -org.apache.beehive/poms/beehive-control-ejb-1.0.1.pom -org.apache.beehive/poms/beehive-control-jdbc-1.0.1.pom -org.apache.beehive/poms/beehive-control-jms-1.0.1.pom -org.apache.beehive/poms/beehive-controls-1.0.1.pom -org.apache.beehive/poms/beehive-netui-compiler-1.0.1.pom -org.apache.beehive/poms/beehive-netui-core-1.0.1.pom -org.apache.beehive/poms/beehive-netui-tags-1.0.1.pom -org.apache.derby/jars/derby-10.1.1.0.jar -org.apache.derby/jars/derbyLocale_de_DE-10.1.1.0.jar -org.apache.derby/jars/derby-10.1.2.1.jar -org.apache.derby/jars/derby-10.1.3.1.jar -org.apache.derby/jars/derbyclient-10.1.1.0.jar -org.apache.derby/jars/derbyLocale_de_DE-10.1.2.1.jar -org.apache.derby/jars/derbyLocale_de_DE-10.1.3.1.jar -org.apache.derby/jars/derbyLocale_es-10.1.1.0.jar -org.apache.derby/jars/derbyLocale_es-10.1.2.1.jar -org.apache.derby/jars/derbyLocale_es-10.1.3.1.jar -org.apache.derby/jars/derbyLocale_fr-10.1.1.0.jar -org.apache.derby/jars/derbyLocale_fr-10.1.2.1.jar -org.apache.derby/jars/derbyLocale_fr-10.1.3.1.jar -org.apache.derby/jars/derbyLocale_it-10.1.1.0.jar -org.apache.derby/jars/derbyLocale_it-10.1.2.1.jar -org.apache.derby/jars/derbyLocale_it-10.1.3.1.jar -org.apache.derby/jars/derbyLocale_ja_JP-10.1.1.0.jar -org.apache.derby/jars/derbyLocale_ja_JP-10.1.2.1.jar -org.apache.derby/jars/derbyLocale_ja_JP-10.1.3.1.jar -org.apache.derby/jars/derbyLocale_ko_KR-10.1.1.0.jar -org.apache.derby/jars/derbyLocale_ko_KR-10.1.2.1.jar -org.apache.derby/jars/derbyLocale_ko_KR-10.1.3.1.jar -org.apache.derby/jars/derbyLocale_pt_BR-10.1.1.0.jar -org.apache.derby/jars/derbyLocale_pt_BR-10.1.2.1.jar -org.apache.derby/jars/derbyLocale_pt_BR-10.1.3.1.jar -org.apache.derby/jars/derbyLocale_zh_CN-10.1.1.0.jar -org.apache.derby/jars/derbyLocale_zh_CN-10.1.2.1.jar -org.apache.derby/jars/derbyLocale_zh_CN-10.1.3.1.jar -org.apache.derby/jars/derbyLocale_zh_TW-10.1.1.0.jar -org.apache.derby/jars/derbyLocale_zh_TW-10.1.2.1.jar -org.apache.derby/jars/derbyLocale_zh_TW-10.1.3.1.jar -org.apache.derby/jars/derbyclient-10.1.2.1.jar -org.apache.derby/jars/derbyclient-10.1.3.1.jar -org.apache.derby/jars/derbynet-10.1.1.0.jar -org.apache.derby/jars/derbynet-10.1.2.1.jar -org.apache.derby/jars/derbynet-10.1.3.1.jar -org.apache.derby/jars/derbytools-10.1.1.0.jar -org.apache.derby/jars/derbytools-10.1.2.1.jar -org.apache.derby/jars/derbytools-10.1.3.1.jar -org.apache.derby/jars/derby-10.2.2.0.jar -org.apache.derby/jars/derbyLocale_de_DE-10.2.2.0.jar -org.apache.derby/jars/derbyLocale_es-10.2.2.0.jar -org.apache.derby/jars/derbyLocale_fr-10.2.2.0.jar -org.apache.derby/jars/derbyLocale_it-10.2.2.0.jar -org.apache.derby/jars/derbyLocale_ja_JP-10.2.2.0.jar -org.apache.derby/jars/derbyLocale_ko_KR-10.2.2.0.jar -org.apache.derby/jars/derbyLocale_pt_BR-10.2.2.0.jar -org.apache.derby/jars/derbyLocale_zh_CN-10.2.2.0.jar -org.apache.derby/jars/derbyLocale_zh_TW-10.2.2.0.jar -org.apache.derby/jars/derbyclient-10.2.2.0.jar -org.apache.derby/jars/derbynet-10.2.2.0.jar -org.apache.derby/jars/derbytools-10.2.2.0.jar -org.apache.derby/jars/derbyclient-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_cs-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_de_DE-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_es-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_fr-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_hu-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_it-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_ja_JP-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_ko_KR-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_pl-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_pt_BR-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_ru-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_zh_CN-10.3.1.4.jar -org.apache.derby/jars/derbyLocale_zh_TW-10.3.1.4.jar -org.apache.derby/jars/derby-10.3.1.4.jar -org.apache.derby/jars/derbynet-10.3.1.4.jar -org.apache.derby/jars/derbytools-10.3.1.4.jar -org.apache.derby/poms/derby-10.1.1.0.pom -org.apache.derby/poms/derbyLocale_de_DE-10.1.1.0.pom -org.apache.derby/poms/derby-10.1.2.1.pom -org.apache.derby/poms/derby-10.1.3.1.pom -org.apache.derby/poms/derbyLocale_de_DE-10.1.2.1.pom -org.apache.derby/poms/derbyLocale_de_DE-10.1.3.1.pom -org.apache.derby/poms/derbyLocale_es-10.1.1.0.pom -org.apache.derby/poms/derbyLocale_es-10.1.2.1.pom -org.apache.derby/poms/derbyLocale_es-10.1.3.1.pom -org.apache.derby/poms/derbyLocale_fr-10.1.1.0.pom -org.apache.derby/poms/derbynet-10.1.1.0.pom -org.apache.derby/poms/derbyLocale_fr-10.1.2.1.pom -org.apache.derby/poms/derbyLocale_fr-10.1.3.1.pom -org.apache.derby/poms/derbyLocale_it-10.1.1.0.pom -org.apache.derby/poms/derbyLocale_it-10.1.2.1.pom -org.apache.derby/poms/derbyLocale_it-10.1.3.1.pom -org.apache.derby/poms/derbyLocale_ja_JP-10.1.1.0.pom -org.apache.derby/poms/derbyLocale_ja_JP-10.1.2.1.pom -org.apache.derby/poms/derbyLocale_ja_JP-10.1.3.1.pom -org.apache.derby/poms/derbyLocale_ko_KR-10.1.1.0.pom -org.apache.derby/poms/derbyLocale_ko_KR-10.1.2.1.pom -org.apache.derby/poms/derbyLocale_ko_KR-10.1.3.1.pom -org.apache.derby/poms/derbyLocale_pt_BR-10.1.1.0.pom -org.apache.derby/poms/derbyLocale_pt_BR-10.1.2.1.pom -org.apache.derby/poms/derbyLocale_pt_BR-10.1.3.1.pom -org.apache.derby/poms/derbyLocale_zh_CN-10.1.1.0.pom -org.apache.derby/poms/derbyLocale_zh_CN-10.1.2.1.pom -org.apache.derby/poms/derbyLocale_zh_CN-10.1.3.1.pom -org.apache.derby/poms/derbyLocale_zh_TW-10.1.1.0.pom -org.apache.derby/poms/derbyLocale_zh_TW-10.1.2.1.pom -org.apache.derby/poms/derbyLocale_zh_TW-10.1.3.1.pom -org.apache.derby/poms/derbyclient-10.1.1.0.pom -org.apache.derby/poms/derbytools-10.1.2.1.pom -org.apache.derby/poms/derbyclient-10.1.2.1.pom -org.apache.derby/poms/derbyclient-10.1.3.1.pom -org.apache.derby/poms/derbynet-10.1.2.1.pom -org.apache.derby/poms/derbynet-10.1.3.1.pom -org.apache.derby/poms/derbytools-10.1.1.0.pom -org.apache.derby/poms/derbytools-10.1.3.1.pom -org.apache.derby/poms/derbywar-10.1.1.0.pom -org.apache.derby/poms/derbywar-10.1.2.1.pom -org.apache.derby/poms/derbywar-10.1.3.1.pom -org.apache.derby/poms/derby-10.2.2.0.pom -org.apache.derby/poms/derbyLocale_de_DE-10.2.2.0.pom -org.apache.derby/poms/derbyLocale_es-10.2.2.0.pom -org.apache.derby/poms/derbyLocale_fr-10.2.2.0.pom -org.apache.derby/poms/derbyLocale_it-10.2.2.0.pom -org.apache.derby/poms/derbyLocale_ja_JP-10.2.2.0.pom -org.apache.derby/poms/derbyLocale_ko_KR-10.2.2.0.pom -org.apache.derby/poms/derbyLocale_pt_BR-10.2.2.0.pom -org.apache.derby/poms/derbyLocale_zh_CN-10.2.2.0.pom -org.apache.derby/poms/derbyLocale_zh_TW-10.2.2.0.pom -org.apache.derby/poms/derbyclient-10.2.2.0.pom -org.apache.derby/poms/derbynet-10.2.2.0.pom -org.apache.derby/poms/derbytools-10.2.2.0.pom -org.apache.derby/poms/derbywar-10.2.2.0.pom -org.apache.derby/poms/derbyclient-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_cs-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_de_DE-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_es-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_fr-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_hu-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_it-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_ja_JP-10.3.1.4.pom -org.apache.derby/poms/derby-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_ko_KR-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_pl-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_pt_BR-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_ru-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_zh_CN-10.3.1.4.pom -org.apache.derby/poms/derbyLocale_zh_TW-10.3.1.4.pom -org.apache.derby/poms/derbynet-10.3.1.4.pom -org.apache.derby/poms/derbytools-10.3.1.4.pom -org.apache.derby/poms/derbywar-10.3.1.4.pom -org.apache.derby/wars/derbywar-10.1.1.0.war -org.apache.derby/wars/derbywar-10.1.2.1.war -org.apache.derby/wars/derbywar-10.1.3.1.war -org.apache.derby/wars/derbywar-10.2.2.0.war -org.apache.derby/wars/derbywar-10.3.1.4.war -org.apache.geronimo/jars/daytrader-core-1.0.jar -org.apache.geronimo/jars/daytrader-streamer-1.0.jar -org.apache.geronimo/jars/daytrader-wsappclient-1.0.jar -org.apache.geronimo/jars/geronimo-activation-1.0.jar -org.apache.geronimo/jars/geronimo-axis-1.0.jar -org.apache.geronimo/jars/geronimo-axis-builder-1.0.jar -org.apache.geronimo/jars/geronimo-client-1.0.jar -org.apache.geronimo/jars/geronimo-client-builder-1.0.jar -org.apache.geronimo/jars/geronimo-common-1.0.jar -org.apache.geronimo/jars/geronimo-connector-1.0.jar -org.apache.geronimo/jars/geronimo-connector-builder-1.0.jar -org.apache.geronimo/jars/geronimo-console-core-1.0.jar -org.apache.geronimo/jars/geronimo-console-web-1.0.jar -org.apache.geronimo/jars/geronimo-converter-1.0.jar -org.apache.geronimo/jars/geronimo-core-1.0.jar -org.apache.geronimo/jars/geronimo-daytrader-derby-db-1.0.jar -org.apache.geronimo/jars/geronimo-deploy-config-1.0.jar -org.apache.geronimo/jars/geronimo-deploy-jsr88-1.0.jar -org.apache.geronimo/jars/geronimo-deploy-tool-1.0.jar -org.apache.geronimo/jars/geronimo-deployment-1.0.jar -org.apache.geronimo/jars/geronimo-derby-1.0.jar -org.apache.geronimo/jars/geronimo-directory-1.0.jar -org.apache.geronimo/jars/geronimo-hot-deploy-1.0.jar -org.apache.geronimo/jars/geronimo-j2ee-1.0.jar -org.apache.geronimo/jars/geronimo-j2ee-builder-1.0.jar -org.apache.geronimo/jars/geronimo-j2ee-schema-1.0.jar -org.apache.geronimo/jars/geronimo-javamail-transport-1.0.jar -org.apache.geronimo/jars/geronimo-jetty-1.0.jar -org.apache.geronimo/jars/geronimo-jetty-builder-1.0.jar -org.apache.geronimo/jars/geronimo-jmxremoting-1.0.jar -org.apache.geronimo/jars/geronimo-kernel-1.0.jar -org.apache.geronimo/jars/geronimo-mail-1.0.jar -org.apache.geronimo/jars/geronimo-management-1.0.jar -org.apache.geronimo/jars/geronimo-naming-1.0.jar -org.apache.geronimo/jars/geronimo-naming-builder-1.0.jar -org.apache.geronimo/jars/geronimo-remote-deploy-lib-1.0.jar -org.apache.geronimo/jars/geronimo-scripts-1.0.jar -org.apache.geronimo/jars/geronimo-security-1.0.jar -org.apache.geronimo/jars/geronimo-security-builder-1.0.jar -org.apache.geronimo/jars/geronimo-service-builder-1.0.jar -org.apache.geronimo/jars/geronimo-system-1.0.jar -org.apache.geronimo/jars/geronimo-test-ddbean-1.0.jar -org.apache.geronimo/jars/geronimo-timer-1.0.jar -org.apache.geronimo/jars/geronimo-tomcat-1.0.jar -org.apache.geronimo/jars/geronimo-tomcat-builder-1.0.jar -org.apache.geronimo/jars/geronimo-transaction-1.0.jar -org.apache.geronimo/jars/geronimo-uddi-db-1.0.jar -org.apache.geronimo/jars/geronimo-util-1.0.jar -org.apache.geronimo/jars/geronimo-web-builder-1.0.jar -org.apache.geronimo/jars/geronimo-webservices-1.0.jar -org.apache.geronimo.specs/jars/geronimo-activation_1.0.2_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-activation_1.0.2_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-activation_1.0.2_spec-1.1.jar -org.apache.geronimo.specs/jars/geronimo-commonj_1.1_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-corba_2.3_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-j2ee-connector_1.5_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-corba_2.3_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-corba_2.3_spec-1.1.jar -org.apache.geronimo.specs/jars/geronimo-corba_3.0_spec-1.1.jar -org.apache.geronimo.specs/jars/geronimo-ejb_2.1_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-ejb_2.1_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-ejb_2.1_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-j2ee_1.4_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-j2ee-connector_1.5_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-j2ee-connector_1.5_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-j2ee-deployment_1.1_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-j2ee_1.4_spec-1.1.jar -org.apache.geronimo.specs/jars/geronimo-j2ee-deployment_1.1_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-j2ee-deployment_1.1_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-j2ee-jacc_1.0_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-j2ee-jacc_1.0_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-j2ee-jacc_1.0_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-j2ee-management_1.0_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-j2ee-management_1.0_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-j2ee-management_1.0_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-j2ee_1.4_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-javamail_1.3.1_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-javamail_1.3.1_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-javamail_1.3.1_spec-1.1.jar -org.apache.geronimo.specs/jars/geronimo-jaxr_1.0_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-jaxr_1.0_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-jms_1.1_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-jaxr_1.0_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-jaxrpc_1.1_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-jaxrpc_1.1_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-jaxrpc_1.1_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-jms_1.1_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-jms_1.1_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-jsp_2.0_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-jsp_2.0_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-jsp_2.0_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-jta_1.0.1B_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-jta_1.0.1B_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-jta_1.0.1B_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-qname_1.1_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-qname_1.1_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-qname_1.1_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-saaj_1.1_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-saaj_1.1_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-saaj_1.1_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-servlet_2.4_spec-1.0.1.jar -org.apache.geronimo.specs/jars/geronimo-servlet_2.4_spec-1.0.jar -org.apache.geronimo.specs/jars/geronimo-servlet_2.4_spec-1.0.jar.sha -org.apache.geronimo.specs/jars/geronimo-annotation_1.0_spec-1.1.jar -org.apache.jackrabbit/jars/jackrabbit-core-1.0.1.jar -org.apache.jackrabbit/jars/jackrabbit-core-1.0.jar -org.apache.jackrabbit/jars/jackrabbit-index-filters-1.0.1.jar -org.apache.jackrabbit/jars/jackrabbit-core-1.1.jar -org.apache.jackrabbit/jars/jackrabbit-index-filters-1.0.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-client-1.0.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-client-1.0.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-commons-1.0.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-commons-1.0.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-rmi-1.0.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-rmi-1.0.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-server-1.0.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-server-1.0.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-webdav-1.0.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-webdav-1.0.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-webdav-1.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-server-1.1.jar -org.apache.jackrabbit/jars/jackrabbit-core-1.1.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-rmi-1.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-commons-1.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-client-1.1.jar -org.apache.jackrabbit/jars/jackrabbit-index-filters-1.1.jar -org.apache.jackrabbit/jars/jackrabbit-jca-1.1.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-commons-1.1.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-rmi-1.1.1.jar -org.apache.jackrabbit/jars/jackrabbit-index-filters-1.1.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-webdav-1.1.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-client-1.1.1.jar -org.apache.jackrabbit/jars/jackrabbit-jcr-server-1.1.1.jar -org.apache.jackrabbit/java-sources/jackrabbit-core-1.0-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-core-1.0.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-index-filters-1.0-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-client-1.0.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-index-filters-1.0.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jca-1.0-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jca-1.0.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-client-1.0-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-commons-1.0-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-commons-1.0.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-rmi-1.0-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-rmi-1.0.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-core-1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-server-1.0-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-server-1.0.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-webdav-1.0-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-webdav-1.0.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-server-1.0-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-server-1.0.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-server-1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-webdav-1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-server-1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-rmi-1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-commons-1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-client-1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jca-1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-index-filters-1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-server-1.1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-core-1.1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-rmi-1.1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-index-filters-1.1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jca-1.1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-webdav-1.1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-client-1.1.1-sources.jar -org.apache.jackrabbit/java-sources/jackrabbit-jcr-server-1.1.1-sources.jar -org.apache.jackrabbit/poms/jackrabbit-core-1.0.1.pom -org.apache.jackrabbit/poms/jackrabbit-core-1.0.pom -org.apache.jackrabbit/poms/jackrabbit-index-filters-1.0.1.pom -org.apache.jackrabbit/poms/jackrabbit-core-1.1.pom -org.apache.jackrabbit/poms/jackrabbit-index-filters-1.0.pom -org.apache.jackrabbit/poms/jackrabbit-server-1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jca-1.0.1.pom -org.apache.jackrabbit/poms/jackrabbit-jca-1.0.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-client-1.0.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-client-1.0.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-commons-1.0.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-commons-1.0.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-rmi-1.0.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-rmi-1.0.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-server-1.0.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-server-1.0.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-webdav-1.0.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-webdav-1.0.pom -org.apache.jackrabbit/poms/jackrabbit-server-1.0.1.pom -org.apache.jackrabbit/poms/jackrabbit-server-1.0.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-webdav-1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-server-1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-rmi-1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-commons-1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-client-1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jca-1.1.pom -org.apache.jackrabbit/poms/jackrabbit-index-filters-1.1.pom -org.apache.jackrabbit/poms/jackrabbit-core-1.1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-commons-1.1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-rmi-1.1.1.pom -org.apache.jackrabbit/poms/jackrabbit-index-filters-1.1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jca-1.1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-webdav-1.1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-client-1.1.1.pom -org.apache.jackrabbit/poms/jackrabbit-jcr-server-1.1.1.pom -org.apache.jackrabbit/poms/jackrabbit-server-1.1.1.pom -org.apache.jackrabbit/rars/jackrabbit-jca-1.0.1.rar -org.apache.jackrabbit/rars/jackrabbit-jca-1.0.rar -org.apache.jackrabbit/rars/jackrabbit-jca-1.1.rar -org.apache.jackrabbit/rars/jackrabbit-jca-1.1.1.rar -org.apache.jackrabbit/wars/jackrabbit-server-1.0.1.war -org.apache.jackrabbit/wars/jackrabbit-server-1.0.war -org.apache.jackrabbit/wars/jackrabbit-server-1.1.war -org.apache.jackrabbit/wars/jackrabbit-server-1.1.1.war -org.apache.jdo/jars/jdo2-core-2.0-beta.jar -org.apache.jdo/jars/jdo2-core-2.0-rc1.jar -org.apache.jdo/jars/jdo2-core-2.0.jar -org.apache.jdo/jars/jdo2-enhancer-2.0-beta.jar -org.apache.jdo/jars/jdo2-enhancer-2.0-rc1.jar -org.apache.jdo/jars/jdo2-enhancer-2.0.jar -org.apache.jdo/jars/jdo2-tck-2.0-rc1.jar -org.apache.jdo/poms/jdo2-core-2.0-beta.pom -org.apache.jdo/poms/jdo2-core-2.0-rc1.pom -org.apache.jdo/poms/jdo2-core-2.0.pom -org.apache.jdo/poms/jdo2-enhancer-2.0-beta.pom -org.apache.jdo/poms/jdo2-enhancer-2.0-rc1.pom -org.apache.jdo/poms/jdo2-enhancer-2.0.pom -org.apache.jdo/poms/jdo2-tck-2.0-rc1.pom -org.apache.maven/jars/maven-artifact-ant-2.0-alpha-1-dep.jar -org.apache.maven/jars/maven-artifact-ant-2.0-alpha-2-dep.jar -org.apache.maven/jars/maven-artifact-ant-2.0-alpha-3-dep.jar -org.apache.maven/jars/maven-artifact-ant-2.0-beta-1-dep.jar -org.apache.maven/jars/maven-artifact-ant-2.0-beta-2-dep.jar -org.apache.maven/jars/maven-model-v3-2.0.jar -org.apache.maven/poms/maven-model-v3-2.0.pom -org.apache.pluto/jars/pluto-1.0.1-rc4.jar -org.apache.pluto/jars/pluto-deploy-1.0.1-rc4.jar -org.apache.pluto/jars/pluto-1.0.1.jar -org.apache.pluto/jars/pluto-deploy-1.0.1.jar -org.apache.pluto/jars/pluto-descriptors-1.0.1-rc4.jar -org.apache.pluto/jars/pluto-descriptors-1.0.1.jar -org.apache.pluto/jars/pluto-portal-1.0.1-rc4.jar -org.apache.pluto/jars/pluto-portal-1.0.1.jar -org.apache.portals.bridges/jars/portals-bridges-common-1.0.jar -org.apache.portals.bridges/jars/portals-bridges-frameworks-1.0.jar -org.apache.portals.bridges/jars/portals-bridges-jsf-1.0.jar -org.apache.portals.bridges/jars/portals-bridges-perl-1.0.jar -org.apache.portals.bridges/jars/portals-bridges-php-1.0.jar -org.apache.portals.bridges/jars/portals-bridges-portletfilter-1.0.jar -org.apache.portals.bridges/jars/portals-bridges-struts-1.2.4-1.0.jar -org.apache.portals.bridges/jars/portals-bridges-struts-1.2.7-1.0.jar -org.apache.portals.bridges/jars/portals-bridges-velocity-1.0.jar -org.apache.portals.jetspeed-2/jars/content-server-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/content-server-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-api-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-api-2.0.1.jar -org.apache.portals.jetspeed-2/jars/jetspeed-api-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-capability-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-capability-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-cm-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-cm-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-commons-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-commons-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-sso-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-statistics-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-components-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-components-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-deploy-tools-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-deploy-tools-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-file-cache-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-file-cache-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-header-resource-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-header-resource-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-id-generator-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-id-generator-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-importer-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-layout-portlets-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-locator-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-locator-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-page-manager-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-page-manager-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-portal-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-portal-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-portal-site-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-portal-site-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-portlet-factory-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-portlet-factory-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-prefs-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-prefs-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-profiler-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-profiler-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-rdbms-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-rdbms-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-registry-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-registry-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-rewriter-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-rewriter-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-rss-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-search-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-search-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-security-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-security-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-security-schema-2.0.jar -org.apache.portals.jetspeed-2/jars/portlet-api-1.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-security-schema-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-serializer-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-sso-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-statistics-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-web-content-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed-web-content-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed-webapp-logging-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/jetspeed2-taglib-treecontrol-2.0.jar -org.apache.portals.jetspeed-2/jars/jetspeed2-taglib-treecontrol-2.1-dev.jar -org.apache.portals.jetspeed-2/jars/portals-gems-2.0.jar -org.apache.portals.jetspeed-2/jars/portals-gems-2.1-dev.jar -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/META-INF/MANIFEST.MF -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/org/apache/jetspeed/dbutil/HSQLServerThread.class -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/org/apache/jetspeed/dbutil/HSQLServer.class -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/org/apache/jetspeed/dbutil/ScriptUtil.class -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/apacheds/apacheds-server.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/apacheds/j2-apacheds.ldif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/conf/jboss/jboss-login-config.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/conf/jboss/jetspeed-ds.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/conf/jboss/jetspeed-mysql-ds.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/conf/jboss/jetspeed-oracle-ds.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/conf/tomcat/jetspeed-tomcat-5.5.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/conf/tomcat/jetspeed-tomcat-5.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/db-ojb/OJB-logging.properties -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/db-ojb/OJB.properties -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/db-ojb/repository.dtd -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/db-ojb/repository.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/db-ojb/repository_database.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/db-ojb/repository_internal.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/schema/phase3ojb-schema.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/schema/phase1-schema.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/schema/phase2-schema.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/schema/prefs-schema.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/schema/registry-schema.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/schema/security-schema.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/schema/velocity.log -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/schema/velocity.log.1 -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/derby/schema/phase3ojb-schema.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/derby/schema/phase1-schema.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/derby/schema/phase2-schema.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/derby/schema/prefs-schema.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/derby/schema/registry-schema.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/derby/schema/security-schema.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/hsql/portal-drop.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/hsql/drop.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/hsql/registry-drop.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/hsql/prefs-drop.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/hsql/populate-userinfo-for-default-psml.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/hsql/security-drop.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/mssql/schema/phase2-schema.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/mssql/schema/security-schema.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/mssql/drop.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/mssql/populate-userinfo-for-default-psml.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/mysql/drop.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/mysql/populate-entities-for-default-psml.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/mysql/populate-userinfo-for-default-psml.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/oracle/drop.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/oracle/populate-userinfo-for-default-psml.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/xml/README.txt -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/xml/populate-db-default.xml -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/drop.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/populate-db-default.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/sql/populate-userinfo-for-default-psml.sql -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/ajax/portlet_definitions.ajax -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/ajax/portlet_apps.ajax -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/ajax/portlet_entities.ajax -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/ajax/portlet_entity.ajax -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/customize.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/close.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/icon_error_sml.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/edit.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/help.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/icon_arrowfolderclosed1_sml.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/icon_arrowdoc_sml.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/leftnavbg.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/info.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/icon_arrowfolderopen2_sml.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/icon_info_sml.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/icon_success_sml.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/icon_warning_sml.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/info1.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/maximized.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/minimized.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/nw_maj_rond.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/print.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/restore.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/sw_med_rond.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/images/view.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/PLT.C.3-Messages.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/PLT.C.1-Links.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/PLT.C.2-Fonts.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/PLT.C.4-Sections.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/PLT.C.5-Forms.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/PLT.C.6-Menus-Arrow.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/PLT.C.6-Menus.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/PLT.C.All.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/data-scroller.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/database-browser.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/html-tables.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/portal-standard.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/standard-columns.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/css/tree-component.css -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/images/movePortletDown.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev/plugin-resources/webapp/decorations/layout/images/close.gif -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.1-dev.jar -org.apache.portals.jetspeed-2/plugins/maven-jetspeed2-plugin-2.0.jar -org.apache.portals.jetspeed-2/wars/demo-2.1-dev.war -org.apache.portals.jetspeed-2/wars/demo-2.0.war -org.apache.portals.jetspeed-2/wars/j2-admin-2.1-dev.war -org.apache.portals.jetspeed-2/wars/j2-admin-2.0.war -org.apache.portals.jetspeed-2/wars/jetspeed-2.1-dev.war -org.apache.portals.jetspeed-2/wars/jetspeed-2.0.war -org.apache.portals.jetspeed-2/wars/jetspeed-layouts-2.1-dev.war -org.apache.portals.jetspeed-2/wars/jetspeed-layouts-2.0.war -org.apache.portals.jetspeed-2/wars/portals-gems-2.1-dev.war -org.apache.portals.jetspeed-2/wars/portals-gems-2.0.war -org.apache.portals.jetspeed-2/wars/rss-2.1-dev.war -org.apache.portals.jetspeed-2/wars/rss-2.0.war -org.apache.ws.commons/jars/XmlSchema-1.0.1.jar -org.apache.ws.commons/jars/XmlSchema-1.0.2.jar -org.apache.ws.commons/jars/XmlSchema-1.0.3.jar -org.apache.ws.commons/jars/XmlSchema-1.2.jar -org.apache.ws.commons/jars/XmlSchema-1.0.jar -org.apache.ws.commons/poms/XmlSchema-1.0.1.pom -org.apache.ws.commons/poms/XmlSchema-1.0.2.pom -org.apache.ws.commons/poms/XmlSchema-1.0.3.pom -org.apache.ws.commons/poms/XmlSchema-SNAPSHOT.pom -org.apache.ws.commons/poms/maven-metadata.xml -org.apache.xbean/jars/xbean-classpath-2.3.jar -org.apache.xbean/jars/xbean-classpath-2.4.jar -org.apache.xbean/jars/xbean-finder-2.4.jar -org.apache.xbean/jars/xbean-jaxb-2.4.jar -org.apache.xbean/jars/xbean-kernel-2.3.jar -org.apache.xbean/jars/xbean-kernel-2.4.jar -org.apache.xbean/jars/xbean-osgi-2.3.jar -org.apache.xbean/jars/xbean-osgi-2.4.jar -org.apache.xbean/jars/xbean-reflect-2.3.jar -org.apache.xbean/jars/xbean-reflect-2.4.jar -org.apache.xbean/jars/xbean-server-2.3.jar -org.apache.xbean/jars/xbean-server-2.4.jar -org.apache.xbean/jars/xbean-spring-2.3.jar -org.apache.xbean/jars/xbean-spring-2.4.jar -org.apache.xbean/jars/xbean-spring-common-2.4.jar -org.apache.xbean/jars/xbean-tiger-2.4.jar -org.apache.xbean/jars/xbean-spring-itests-124-2.4.jar -org.apache.xbean/jars/xbean-spring-itests-125-2.4.jar -org.apache.xbean/jars/xbean-spring-itests-126-2.4.jar -org.apache.xbean/jars/xbean-spring-itests-127-2.4.jar -org.apache.xbean/jars/xbean-spring-itests-128-2.4.jar -org.apache.xbean/jars/xbean-spring-itests-20m5-2.4.jar -org.apache.xbean/jars/xbean-spring-itests-core-2.4.jar -org.apache.xbean/jars/xbean-spring-v1-2.4.jar -org.apache.xbean/jars/xbean-spring-v2-2.4.jar -org.apache.xbean/jars/xbean-telnet-2.3.jar -org.apache.xbean/jars/xbean-telnet-2.4.jar -org.apache.xbean/jars/xbean-tiger-2.3.jar -org.apache.xbean/maven-plugins/maven-xbean-plugin-2.3.jar -org.apache.xbean/poms/xbean-2.3.pom -org.apache.xbean/poms/maven-metadata-mavenOneRepository.xml -org.apache.xbean/poms/maven-metadata.xml -org.apache.xbean/poms/maven-xbean-plugin-2.3.pom -org.apache.xbean/poms/xbean-classpath-2.3.pom -org.apache.xbean/poms/xbean-kernel-2.3.pom -org.apache.xbean/poms/xbean-osgi-2.3.pom -org.apache.xbean/poms/xbean-reflect-2.3.pom -org.apache.xbean/poms/xbean-server-2.3.pom -org.apache.xbean/poms/xbean-spring-2.3.pom -org.apache.xbean/poms/xbean-telnet-2.3.pom -org.apache.xbean/poms/xbean-tiger-2.3.pom -org.apache.xbean/KEYS -oro/jars/oro-2.0.6.jar -oro/jars/oro-2.0.7.jar -oro/jars/oro-2.0.8.jar -pluto-container/jars/pluto-0.46.jar -poi/jars/poi-1.8.0-dev-20020919.jar -poi/jars/poi-2.0-final-20040126.jar -poi/jars/poi-2.5-final-20040302.jar -poi/jars/poi-2.5.1-final-20040804.jar -poi/jars/poi-3.0-alpha2-sources.jar -poi/jars/poi-3.0-alpha3-sources.jar -poi/jars/poi-3.0-alpha2.jar -poi/jars/poi-contrib-2.0-final-20040126.jar -poi/jars/poi-contrib-2.5-final-20040302.jar -poi/jars/poi-contrib-2.5.1-final-20040804.jar -poi/jars/poi-scratchpad-2.0-final-20040126.jar -poi/jars/poi-3.0-alpha3.jar -poi/jars/poi-scratchpad-2.5-final-20040302.jar -poi/jars/poi-scratchpad-2.5.1-final-20040804.jar -poi/jars/poi-3.0-FINAL.jar -poi/jars/poi-3.0-FINAL-sources.jar -poi/poms/poi-1.8.0-dev-20020919.pom -poi/poms/poi-2.0-final-20040126.pom -poi/poms/poi-2.5-final-20040302.pom -poi/poms/poi-2.5.1-final-20040804.pom -poi/poms/poi-3.0-alpha2.pom -poi/poms/poi-3.0-alpha3.pom -poi/poms/poi-contrib-2.0-final-20040126.pom -poi/poms/poi-contrib-2.5-final-20040302.pom -poi/poms/poi-contrib-2.5.1-final-20040804.pom -poi/poms/poi-scratchpad-2.0-final-20040126.pom -poi/poms/poi-scratchpad-2.5-final-20040302.pom -poi/poms/poi-scratchpad-2.5.1-final-20040804.pom -poi/poms/poi-3.0-FINAL.pom -poi/poms/poi-3.0-FINAL.pom.bak -poi/poms/poi-3.0.1-FINAL.pom -poi/poms/poi-scratchpad-3.0.1-FINAL.pom -poi/poms/poi-contrib-3.0.1-FINAL.pom -pubscribe/jars/submgr-xbeans-1.0.jar -pubscribe/jars/pubscribe-1.0.jar -pubscribe/jars/pubscribe-1.1.jar -pubscribe/jars/submgr-xbeans-src-1.0.jar -pubscribe/jars/wse-xbeans-1.0.jar -pubscribe/jars/wse-xbeans-src-1.0.jar -pubscribe/jars/wsn-xbeans-1.0.jar -pubscribe/jars/wsn-xbeans-src-1.0.jar -sandesha/Sandesha-1.0-RC1.jar -servletapi/jars/servlet-api-2.4-20040521.jar -servletapi/jars/jsp-api-2.4-20040521.jar -slide/jars/catalinawrapper-2.1M1.jar -slide/jars/ant-webdav-2.1M1.jar -slide/jars/catalinawrapper-2.0.jar -slide/jars/jdk14logger-2.0.jar -slide/jars/jaas-2.1M1.jar -slide/jars/jdk14logger-2.1M1.jar -slide/jars/kernel-2.0.jar -slide/jars/kernel-2.1M1.jar -slide/jars/log4jlogger-2.0.jar -slide/jars/log4jlogger-2.1M1.jar -slide/jars/roles-2.0.jar -slide/jars/roles-2.1M1.jar -slide/jars/slide-kernel-2.1.jar -slide/jars/stores-2.1M1.jar -slide/jars/stores-2.0.jar -slide/jars/slide-stores-2.1.jar -slide/jars/slide-webdavlib-2.1.jar -slide/jars/slide-webdavservlet-2.1.jar -slide/jars/webdavlib-2.0beta1.jar -slide/jars/webdavlib-2.0.jar -slide/jars/webdavlib-2.1M1.jar -slide/jars/webdavlib-2.2-20050624.203112.jar -slide/jars/webdavservlet-2.0.jar -slide/jars/webdavservlet-2.1M1.jar -slide/jars/webdavservlet-2.2-20050624.203112.jar -stratum/distributions/stratum-1.0-src.tar.gz -stratum/distributions/stratum-1.0-src.zip -stratum/distributions/stratum-1.0.tar.gz -stratum/distributions/stratum-1.0.zip -stratum/jars/stratum-1.0-b5.jar -stratum/jars/stratum-1.0.jar -stratum/poms/stratum-1.0-b5.pom -stratum/poms/stratum-1.0.pom -struts/jars/struts-1.0.2.jar -struts/jars/struts-1.1-b2-20021124.jar -struts/jars/struts-1.1-b3.jar -struts/jars/struts-1.1-beta-2.jar -struts/jars/struts-1.1-rc2.jar -struts/jars/struts-1.1.jar -struts/jars/struts-1.2.2.jar -struts/jars/struts-1.2.4.jar -struts/jars/struts-1.2.7.jar -struts/jars/struts-1.2.8.jar -struts/jars/struts-1.2.9.jar -struts/jars/struts-el-1.1.jar -struts/jars/struts-el-1.2.4.jar -struts/jars/struts-el-1.2.7.jar -struts/jars/struts-el-1.2.8.jar -struts/jars/struts-el-1.2.9.jar -struts/jars/struts-legacy-1.1.jar -struts/jars/struts-scripting-1.0.1.jar -struts/poms/struts-1.2.4.pom -struts/poms/struts-1.2.7.pom -struts/poms/struts-1.2.8-el.pom -struts/poms/struts-1.2.8.pom -struts/poms/struts-1.2.9.pom -struts/poms/struts-el-1.2.6.pom -struts/poms/struts-scripting-1.0.1.pom -struts/poms/struts-el-1.2.9.pom -struts/tlds/struts-bean-1.1-rc1.tld -struts/tlds/struts-bean-1.1-rc2.tld -struts/tlds/struts-bean-1.2.2.tld -struts/tlds/struts-bean-1.2.4.tld -struts/tlds/struts-bean-1.2.7.tld -struts/tlds/struts-bean-1.2.8.tld -struts/tlds/struts-bean-el-1.2.2.tld -struts/tlds/struts-bean-el-1.2.4.tld -struts/tlds/struts-bean-el-1.2.7.tld -struts/tlds/struts-bean-el-1.2.8.tld -struts/tlds/struts-html-1.1-rc1.tld -struts/tlds/struts-html-1.1-rc2.tld -struts/tlds/struts-html-1.2.2.tld -struts/tlds/struts-html-1.2.4.tld -struts/tlds/struts-html-1.2.7.tld -struts/tlds/struts-html-1.2.8.tld -struts/tlds/struts-html-el-1.2.2.tld -struts/tlds/struts-html-el-1.2.4.tld -struts/tlds/struts-html-el-1.2.7.tld -struts/tlds/struts-html-el-1.2.8.tld -struts/tlds/struts-logic-1.1-rc1.tld -struts/tlds/struts-logic-1.1-rc2.tld -struts/tlds/struts-logic-1.2.2.tld -struts/tlds/struts-logic-1.2.4.tld -struts/tlds/struts-logic-1.2.7.tld -struts/tlds/struts-logic-1.2.8.tld -struts/tlds/struts-logic-el-1.2.2.tld -struts/tlds/struts-logic-el-1.2.4.tld -struts/tlds/struts-logic-el-1.2.7.tld -struts/tlds/struts-logic-el-1.2.8.tld -struts/tlds/struts-nested-1.1-rc1.tld -struts/tlds/struts-nested-1.1-rc2.tld -struts/tlds/struts-nested-1.2.2.tld -struts/tlds/struts-nested-1.2.4.tld -struts/tlds/struts-nested-1.2.7.tld -struts/tlds/struts-nested-1.2.8.tld -struts/tlds/struts-template-1.1-rc1.tld -struts/tlds/struts-tiles-1.1-rc1.tld -struts/tlds/struts-tiles-1.1-rc2.tld -struts/tlds/struts-tiles-1.2.2.tld -struts/tlds/struts-tiles-1.2.4.tld -struts/tlds/struts-tiles-1.2.7.tld -struts/tlds/struts-tiles-1.2.8.tld -struts/tlds/struts-tiles-el-1.2.2.tld -struts/tlds/struts-tiles-el-1.2.4.tld -struts/tlds/struts-tiles-el-1.2.7.tld -struts/tlds/struts-tiles-el-1.2.8.tld -taglibs/jars/application-1.0.1.jar -taglibs/jars/benchmark-1.0.jar -taglibs/jars/datetime-1.0.1.jar -taglibs/jars/dbtags-1.0.0.jar -taglibs/jars/log-1.0.jar -taglibs/jars/mailer-1.1.jar -taglibs/jars/page-1.0.1.jar -taglibs/jars/random-1.0.1.jar -taglibs/jars/random-1.0.2.jar -taglibs/jars/regexp-1.0.1.jar -taglibs/jars/request-1.0.1.jar -taglibs/jars/response-1.0.1.jar -taglibs/jars/session-1.0.1.jar -taglibs/jars/standard-1.0.1.jar -taglibs/jars/standard-1.0.2.jar -taglibs/jars/standard-1.0.3.jar -taglibs/jars/standard-1.0.4.jar -taglibs/jars/standard-1.0.5.jar -taglibs/jars/standard-1.0.6.jar -taglibs/jars/standard-1.0.jar -taglibs/jars/standard-1.1.0.jar -taglibs/jars/standard-1.1.1.jar -taglibs/jars/string-1.0.jar -taglibs/jars/standard-1.1.2.jar -taglibs/jars/string-1.0.1.jar -taglibs/jars/string-1.1.0.jar -taglibs/jars/xsl-1.0.1.jar -taglibs/tlds/permittedTaglibs-1.1.0.tld -taglibs/tlds/application-1.0.1.tld -taglibs/tlds/benchmark-1.0.tld -taglibs/tlds/c-1.0.1.tld -taglibs/tlds/c-1.0.2.tld -taglibs/tlds/c-1.0.3.tld -taglibs/tlds/c-1.0.4.tld -taglibs/tlds/c-1.0.5.tld -taglibs/tlds/c-1.0.6.tld -taglibs/tlds/c-1.0.tld -taglibs/tlds/c-1.1.0.tld -taglibs/tlds/c-1.1.1.tld -taglibs/tlds/c-1.1.2.tld -taglibs/tlds/c-rt-1.0.1.tld -taglibs/tlds/c-rt-1.0.2.tld -taglibs/tlds/c-rt-1.0.3.tld -taglibs/tlds/c-rt-1.0.4.tld -taglibs/tlds/c-rt-1.0.5.tld -taglibs/tlds/c-rt-1.0.6.tld -taglibs/tlds/c-rt-1.0.tld -taglibs/tlds/fmt-1.0.tld -taglibs/tlds/datetime-1.0.1.tld -taglibs/tlds/dbtags-1.0.0.tld -taglibs/tlds/fmt-1.0.1.tld -taglibs/tlds/fmt-1.0.2.tld -taglibs/tlds/fmt-1.0.3.tld -taglibs/tlds/fmt-1.0.4.tld -taglibs/tlds/fmt-1.0.5.tld -taglibs/tlds/fmt-1.0.6.tld -taglibs/tlds/fmt-1.1.0.tld -taglibs/tlds/fmt-1.1.1.tld -taglibs/tlds/fmt-1.1.2.tld -taglibs/tlds/fmt-rt-1.0.1.tld -taglibs/tlds/fmt-rt-1.0.2.tld -taglibs/tlds/fmt-rt-1.0.3.tld -taglibs/tlds/fmt-rt-1.0.4.tld -taglibs/tlds/fmt-rt-1.0.5.tld -taglibs/tlds/fmt-rt-1.0.6.tld -taglibs/tlds/fmt-rt-1.0.tld -taglibs/tlds/fn-1.1.0.tld -taglibs/tlds/fn-1.1.1.tld -taglibs/tlds/log-1.0.tld -taglibs/tlds/mailer-1.1.tld -taglibs/tlds/page-1.0.1.tld -taglibs/tlds/sql-rt-1.0.1.tld -taglibs/tlds/permittedTaglibs-1.1.1.tld -taglibs/tlds/random-1.0.1.tld -taglibs/tlds/random-1.0.2.tld -taglibs/tlds/regexp-1.0.1.tld -taglibs/tlds/request-1.0.1.tld -taglibs/tlds/response-1.0.1.tld -taglibs/tlds/scriptfree-1.1.0.tld -taglibs/tlds/scriptfree-1.1.1.tld -taglibs/tlds/session-1.0.1.tld -taglibs/tlds/sql-1.0.1.tld -taglibs/tlds/sql-1.0.2.tld -taglibs/tlds/sql-1.0.3.tld -taglibs/tlds/sql-1.0.4.tld -taglibs/tlds/sql-1.0.5.tld -taglibs/tlds/sql-1.0.6.tld -taglibs/tlds/sql-1.0.tld -taglibs/tlds/sql-1.1.0.tld -taglibs/tlds/sql-1.1.1.tld -taglibs/tlds/sql-1.1.2.tld -taglibs/tlds/sql-rt-1.0.2.tld -taglibs/tlds/sql-rt-1.0.3.tld -taglibs/tlds/sql-rt-1.0.4.tld -taglibs/tlds/sql-rt-1.0.5.tld -taglibs/tlds/sql-rt-1.0.6.tld -taglibs/tlds/sql-rt-1.0.tld -taglibs/tlds/string-1.0.1.tld -taglibs/tlds/string-1.0.tld -taglibs/tlds/string-1.1.0.tld -taglibs/tlds/x-1.0.1.tld -taglibs/tlds/x-1.0.2.tld -taglibs/tlds/x-1.0.3.tld -taglibs/tlds/x-1.0.4.tld -taglibs/tlds/x-1.0.5.tld -taglibs/tlds/x-1.0.6.tld -taglibs/tlds/x-1.0.tld -taglibs/tlds/x-1.1.0.tld -taglibs/tlds/x-1.1.1.tld -taglibs/tlds/x-1.1.2.tld -taglibs/tlds/x-rt-1.0.1.tld -taglibs/tlds/x-rt-1.0.2.tld -taglibs/tlds/x-rt-1.0.3.tld -taglibs/tlds/x-rt-1.0.4.tld -taglibs/tlds/x-rt-1.0.5.tld -taglibs/tlds/x-rt-1.0.6.tld -taglibs/tlds/x-rt-1.0.tld -taglibs/tlds/xsl-1.0.1.tld -taglibs/wars/application-examples-1.0.1.war -taglibs/wars/application-doc-1.0.1.war -taglibs/wars/benchmark-examples-1.0.war -taglibs/wars/benchmark-doc-1.0.war -taglibs/wars/datetime-examples-1.0.1.war -taglibs/wars/datetime-doc-1.0.1.war -taglibs/wars/dbtags-examples-1.0.0.war -taglibs/wars/dbtags-doc-1.0.0.war -taglibs/wars/log-examples-1.0.war -taglibs/wars/log-doc-1.0.war -taglibs/wars/mailer-examples-1.1.war -taglibs/wars/mailer-doc-1.1.war -taglibs/wars/page-doc-1.0.1.war -taglibs/wars/page-examples-1.0.1.war -taglibs/wars/random-doc-1.0.1.war -taglibs/wars/random-doc-1.0.2.war -taglibs/wars/random-examples-1.0.1.war -taglibs/wars/random-examples-1.0.2.war -taglibs/wars/regexp-doc-1.0.1.war -taglibs/wars/regexp-examples-1.0.1.war -taglibs/wars/request-doc-1.0.1.war -taglibs/wars/request-examples-1.0.1.war -taglibs/wars/response-doc-1.0.1.war -taglibs/wars/response-examples-1.0.1.war -taglibs/wars/session-doc-1.0.1.war -taglibs/wars/session-examples-1.0.1.war -taglibs/wars/standard-doc-1.0.1.war -taglibs/wars/standard-doc-1.0.3.war -taglibs/wars/standard-doc-1.0.4.war -taglibs/wars/standard-doc-1.0.5.war -taglibs/wars/standard-doc-1.0.6.war -taglibs/wars/standard-doc-1.0.war -taglibs/wars/standard-doc-1.1.0.war -taglibs/wars/standard-doc-1.1.1.war -taglibs/wars/standard-doc-1.1.2.war -taglibs/wars/standard-examples-1.0.1.war -taglibs/wars/standard-examples-1.0.3.war -taglibs/wars/standard-examples-1.0.4.war -taglibs/wars/standard-examples-1.0.5.war -taglibs/wars/standard-examples-1.0.6.war -taglibs/wars/standard-examples-1.0.war -taglibs/wars/standard-examples-1.1.0.war -taglibs/wars/standard-examples-1.1.1.war -taglibs/wars/standard-examples-1.1.2.war -taglibs/wars/string-doc-1.0.1.war -taglibs/wars/string-doc-1.0.war -taglibs/wars/string-doc-1.1.0.war -taglibs/wars/string-examples-1.0.1.war -taglibs/wars/string-examples-1.0.war -taglibs/wars/string-examples-1.1.0.war -taglibs/wars/xsl-doc-1.0.1.war -taglibs/wars/xsl-examples-1.0.1.war -tapestry/jars/net.sf.tapestry-2.2.jar -tapestry/jars/net.sf.tapestry.contrib-2.2.jar -tapestry/jars/tapestry-3.0-beta-1a.jar -tapestry/jars/tapestry-3.0-beta-2.jar -tapestry/jars/tapestry-3.0.1.jar -tapestry/jars/tapestry-3.0.2.jar -tapestry/jars/tapestry-3.0.3.jar -tapestry/jars/tapestry-3.0.jar -tapestry/jars/tapestry-3.1-alpha-1.jar -tapestry/jars/tapestry-4.0-alpha-2.jar -tapestry/jars/tapestry-4.0-alpha-3.jar -tapestry/jars/tapestry-4.0-alpha-4-snapshot.jar -tapestry/jars/tapestry-4.0-beta-1.jar -tapestry/jars/tapestry-4.0-beta-5.jar -tapestry/jars/tapestry-4.0-beta-10.jar -tapestry/jars/tapestry-4.0-beta-11.jar -tapestry/jars/tapestry-4.0-beta-12.jar -tapestry/jars/tapestry-4.0-beta-13.jar -tapestry/jars/tapestry-4.0-beta-2.jar -tapestry/jars/tapestry-4.0-beta-3.jar -tapestry/jars/tapestry-4.0-beta-4.jar -tapestry/jars/tapestry-4.0-beta-6.jar -tapestry/jars/tapestry-4.0-beta-7.jar -tapestry/jars/tapestry-4.0-beta-8.jar -tapestry/jars/tapestry-4.0-beta-9.jar -tapestry/jars/tapestry-4.0-rc-1.jar -tapestry/jars/tapestry-4.0.1.jar -tapestry/jars/tapestry-4.0-rc-2.jar -tapestry/jars/tapestry-annotations-4.0.1.jar -tapestry/jars/tapestry-4.0-rc-3.jar -tapestry/jars/tapestry-4.0.2.jar -tapestry/jars/tapestry-4.0.jar -tapestry/jars/tapestry-annotations-4.0-alpha-4-snapshot.jar -tapestry/jars/tapestry-annotations-4.0-beta-1.jar -tapestry/jars/tapestry-annotations-4.0-beta-7.jar -tapestry/jars/tapestry-annotations-4.0-beta-10.jar -tapestry/jars/tapestry-annotations-4.0-beta-11.jar -tapestry/jars/tapestry-annotations-4.0-beta-12.jar -tapestry/jars/tapestry-annotations-4.0-beta-13.jar -tapestry/jars/tapestry-annotations-4.0-beta-2.jar -tapestry/jars/tapestry-annotations-4.0-beta-3.jar -tapestry/jars/tapestry-annotations-4.0-beta-4.jar -tapestry/jars/tapestry-annotations-4.0-beta-5.jar -tapestry/jars/tapestry-annotations-4.0-beta-6.jar -tapestry/jars/tapestry-annotations-4.0-beta-8.jar -tapestry/jars/tapestry-annotations-4.0-beta-9.jar -tapestry/jars/tapestry-annotations-4.0-rc-1.jar -tapestry/jars/tapestry-annotations-4.0-rc-2.jar -tapestry/jars/tapestry-annotations-4.0-rc-3.jar -tapestry/jars/tapestry-annotations-4.0.2.jar -tapestry/jars/tapestry-annotations-4.0.jar -tapestry/jars/tapestry-contrib-3.0-beta-2.jar -tapestry/jars/tapestry-contrib-3.0.1.jar -tapestry/jars/tapestry-contrib-3.0.2.jar -tapestry/jars/tapestry-contrib-3.0.3.jar -tapestry/jars/tapestry-contrib-3.0.jar -tapestry/jars/tapestry-contrib-3.1-alpha-1.jar -tapestry/jars/tapestry-contrib-4.0-alpha-2.jar -tapestry/jars/tapestry-contrib-4.0-alpha-4-snapshot.jar -tapestry/jars/tapestry-contrib-4.0-alpha-3.jar -tapestry/jars/tapestry-contrib-4.0-beta-1.jar -tapestry/jars/tapestry-contrib-4.0-beta-10.jar -tapestry/jars/tapestry-contrib-4.0-beta-11.jar -tapestry/jars/tapestry-contrib-4.0-beta-12.jar -tapestry/jars/tapestry-contrib-4.0-beta-13.jar -tapestry/jars/tapestry-contrib-4.0-beta-2.jar -tapestry/jars/tapestry-contrib-4.0-beta-3.jar -tapestry/jars/tapestry-contrib-4.0-beta-4.jar -tapestry/jars/tapestry-contrib-4.0-beta-5.jar -tapestry/jars/tapestry-contrib-4.0-rc-2.jar -tapestry/jars/tapestry-contrib-4.0-beta-6.jar -tapestry/jars/tapestry-contrib-4.0-beta-7.jar -tapestry/jars/tapestry-contrib-4.0-beta-8.jar -tapestry/jars/tapestry-contrib-4.0-beta-9.jar -tapestry/jars/tapestry-contrib-4.0-rc-1.jar -tapestry/jars/tapestry-contrib-4.0-rc-3.jar -tapestry/jars/tapestry-contrib-4.0.1.jar -tapestry/jars/tapestry-contrib-4.0.2.jar -tapestry/jars/tapestry-contrib-4.0.jar -tapestry/jars/tapestry-portlet-4.0.1.jar -tapestry/jars/tapestry-portlet-4.0-alpha-2.jar -tapestry/jars/tapestry-portlet-4.0-alpha-3.jar -tapestry/jars/tapestry-portlet-4.0-alpha-4-snapshot.jar -tapestry/jars/tapestry-portlet-4.0-beta-1.jar -tapestry/jars/tapestry-portlet-4.0-beta-10.jar -tapestry/jars/tapestry-portlet-4.0-beta-11.jar -tapestry/jars/tapestry-portlet-4.0-beta-12.jar -tapestry/jars/tapestry-portlet-4.0-beta-13.jar -tapestry/jars/tapestry-portlet-4.0-beta-2.jar -tapestry/jars/tapestry-portlet-4.0-beta-3.jar -tapestry/jars/tapestry-portlet-4.0-beta-4.jar -tapestry/jars/tapestry-portlet-4.0-beta-5.jar -tapestry/jars/tapestry-portlet-4.0-beta-6.jar -tapestry/jars/tapestry-portlet-4.0-beta-7.jar -tapestry/jars/tapestry-portlet-4.0-beta-8.jar -tapestry/jars/tapestry-portlet-4.0-beta-9.jar -tapestry/jars/tapestry-portlet-4.0-rc-1.jar -tapestry/jars/tapestry-portlet-4.0-rc-2.jar -tapestry/jars/tapestry-portlet-4.0-rc-3.jar -tapestry/jars/tapestry-portlet-4.0.2.jar -tapestry/jars/tapestry-portlet-4.0.jar -tapestry/jars/vlibbeans-4.0-beta-4.jar -tapestry/jars/vlibbeans-4.0-beta-5.jar -tapestry/poms/tapestry-4.0-beta-8.pom -tapestry/poms/tapestry-4.0.1.pom -tapestry/poms/tapestry-annotations-4.0.1.pom -tapestry/poms/tapestry-4.0.2.pom -tapestry/poms/tapestry-annotations-4.0.2.pom -tapestry/poms/tapestry-contrib-4.0.1.pom -tapestry/poms/tapestry-contrib-4.0.2.pom -tapestry/poms/tapestry-portlet-4.0.1.pom -tapestry/poms/tapestry-portlet-4.0.2.pom -tapestry/tlds/tapestry-3.0.1.tld -tomcat/jars/bootstrap-4.0.6.jar -tomcat/jars/bootstrap-5.0.28.jar -tomcat/jars/bootstrap-5.5.12.jar -tomcat/jars/catalina-5.5.15.jar -tomcat/jars/catalina-4.0.4.jar -tomcat/jars/catalina-4.0.6.jar -tomcat/jars/catalina-5.0.28.jar -tomcat/jars/catalina-5.5.12.jar -tomcat/jars/catalina-admin-5.0.28.jar -tomcat/jars/catalina-ant-5.0.28.jar -tomcat/jars/catalina-ant-5.5.12.jar -tomcat/jars/catalina-ant-5.5.15.jar -tomcat/jars/catalina-ant-jmx-5.5.12.jar -tomcat/jars/catalina-balancer-5.0.28.jar -tomcat/jars/catalina-balancer-5.5.12.jar -tomcat/jars/catalina-cluster-5.0.28.jar -tomcat/jars/catalina-cluster-5.5.12.jar -tomcat/jars/catalina-cluster-5.5.15.jar -tomcat/jars/catalina-host-manager-5.5.12.jar -tomcat/jars/warp-4.0.6.jar -tomcat/jars/catalina-i18n-es-5.0.28.jar -tomcat/jars/catalina-i18n-fr-5.0.28.jar -tomcat/jars/catalina-i18n-ja-5.0.28.jar -tomcat/jars/catalina-manager-5.0.28.jar -tomcat/jars/catalina-manager-5.5.12.jar -tomcat/jars/catalina-optional-5.0.28.jar -tomcat/jars/catalina-optional-5.5.12.jar -tomcat/jars/catalina-optional-5.5.15.jar -tomcat/jars/catalina-root-5.0.28.jar -tomcat/jars/catalina-root-5.5.12.jar -tomcat/jars/catalina-storeconfig-5.5.12.jar -tomcat/jars/catalina-storeconfig-5.5.15.jar -tomcat/jars/commons-logging-4.0.6.jar -tomcat/jars/container_util-3.3.2.jar -tomcat/jars/core_util-3.3.2.jar -tomcat/jars/etomcat-3.3.2.jar -tomcat/jars/jasper-compiler-4.0.4.jar -tomcat/jars/facade22-3.3.2.jar -tomcat/jars/jasper-3.2.4.jar -tomcat/jars/jasper-3.3.2.jar -tomcat/jars/jasper-compiler-4.0.6.jar -tomcat/jars/jasper-compiler-5.0.28.jar -tomcat/jars/jasper-compiler-5.5.12.jar -tomcat/jars/jasper-compiler-5.5.15.jar -tomcat/jars/jasper-compiler-jdt-5.5.12.jar -tomcat/jars/jasper-compiler-jdt-5.5.15.jar -tomcat/jars/jasper-runtime-3.3.2.jar -tomcat/jars/jasper-runtime-4.0.4.jar -tomcat/jars/jasper-runtime-5.5.15.jar -tomcat/jars/jkconfig-5.0.28.jar -tomcat/jars/jasper-runtime-4.0.6.jar -tomcat/jars/jasper-runtime-5.0.28.jar -tomcat/jars/jasper-runtime-5.5.12.jar -tomcat/jars/jkshm-5.0.28.jar -tomcat/jars/jsp-api-5.5.12.jar -tomcat/jars/jsp-api-5.5.15.jar -tomcat/jars/naming-common-4.0.6.jar -tomcat/jars/naming-common-5.0.28.jar -tomcat/jars/naming-factory-4.0.6.jar -tomcat/jars/naming-factory-5.0.28.jar -tomcat/jars/naming-factory-5.5.12.jar -tomcat/jars/naming-factory-5.5.15.jar -tomcat/jars/naming-factory-dbcp-5.5.12.jar -tomcat/jars/naming-factory-dbcp-5.5.15.jar -tomcat/jars/naming-java-5.0.28.jar -tomcat/jars/naming-resources-4.0.6.jar -tomcat/jars/servlet-4.0.6.jar -tomcat/jars/naming-resources-5.0.28.jar -tomcat/jars/naming-resources-5.5.12.jar -tomcat/jars/naming-resources-5.5.15.jar -tomcat/jars/servlet-api-5.5.12.jar -tomcat/jars/servlet-api-5.5.15.jar -tomcat/jars/servlets-common-4.0.6.jar -tomcat/jars/servlets-common-5.0.28.jar -tomcat/jars/servlets-default-4.0.6.jar -tomcat/jars/servlets-default-5.0.28.jar -tomcat/jars/servlets-default-5.5.12.jar -tomcat/jars/servlets-default-5.5.15.jar -tomcat/jars/servlets-invoker-4.0.6.jar -tomcat/jars/servlets-invoker-5.0.28.jar -tomcat/jars/servlets-invoker-5.5.12.jar -tomcat/jars/servlets-invoker-5.5.15.jar -tomcat/jars/servlets-manager-4.0.6.jar -tomcat/jars/servlets-webdav-4.0.6.jar -tomcat/jars/servlets-webdav-5.0.28.jar -tomcat/jars/servlets-webdav-5.5.12.jar -tomcat/jars/servlets-webdav-5.5.15.jar -tomcat/jars/stop-tomcat-3.3.2.jar -tomcat/jars/tomcat-3.2.3.jar -tomcat/jars/tomcat-3.3.2.jar -tomcat/jars/tomcat-ajp-4.0.6.jar -tomcat/jars/tomcat-ajp-5.5.12.jar -tomcat/jars/tomcat-ajp-5.5.15.jar -tomcat/jars/tomcat-ant-3.3.2.jar -tomcat/jars/tomcat-apr-5.5.12.jar -tomcat/jars/tomcat-apr-5.5.15.jar -tomcat/jars/tomcat-coyote-3.3.2.jar -tomcat/jars/tomcat-coyote-4.0.4.jar -tomcat/jars/tomcat-coyote-4.0.6.jar -tomcat/jars/tomcat-coyote-5.0.28.jar -tomcat/jars/tomcat-coyote-5.5.12.jar -tomcat/jars/tomcat-coyote-5.5.15.jar -tomcat/jars/tomcat-http-5.5.12.jar -tomcat/jars/tomcat-http-5.5.15.jar -tomcat/jars/tomcat-http11-3.3.2.jar -tomcat/jars/tomcat-http11-4.0.6.jar -tomcat/jars/tomcat-http11-5.0.28.jar -tomcat/jars/tomcat-i18n-en-5.5.12.jar -tomcat/jars/tomcat-i18n-es-5.5.12.jar -tomcat/jars/tomcat-i18n-fr-5.5.12.jar -tomcat/jars/tomcat-i18n-ja-5.5.12.jar -tomcat/jars/tomcat-jk-5.0.28.jar -tomcat/jars/tomcat-jk2-3.3.2.jar -tomcat/jars/tomcat-jk2-5.0.28.jar -tomcat/jars/tomcat-jni-5.0.28.jar -tomcat/jars/tomcat-juli-5.5.12.jar -tomcat/jars/tomcat-naming-1.0.jar -tomcat/jars/tomcat-util-3.3.2.jar -tomcat/jars/tomcat-util-4.0.6.jar -tomcat/jars/tomcat-util-5.0.28.jar -tomcat/jars/tomcat-util-5.5.12.jar -tomcat/jars/tomcat-util-5.5.15.jar -tomcat/jars/tomcat33-coyote-3.3.2.jar -tomcat/jars/tomcat33-resource-3.3.2.jar -tomcat/jars/bootstrap-4.1.36.jar -tomcat/jars/tomcat_core-3.3.2.jar -tomcat/jars/tomcat_modules-3.3.2.jar -tomcat/jars/webserver-3.2.4.jar -tomcat/jars/catalina-4.1.36.jar -tomcat/jars/catalina-ant-4.1.36.jar -tomcat/jars/jasper-compiler-4.1.36.jar -tomcat/jars/jasper-runtime-4.1.36.jar -tomcat/jars/naming-common-4.1.36.jar -tomcat/jars/naming-factory-4.1.36.jar -tomcat/jars/naming-resources-4.1.36.jar -tomcat/jars/servlet-4.1.36.jar -tomcat/jars/servlets-cgi-4.1.36.jar -tomcat/jars/servlets-common-4.1.36.jar -tomcat/jars/servlets-default-4.1.36.jar -tomcat/jars/servlets-invoker-4.1.36.jar -tomcat/jars/servlets-manager-4.1.36.jar -tomcat/jars/servlets-ssi-4.1.36.jar -tomcat/jars/servlets-webdav-4.1.36.jar -tomcat/jars/tomcat4-coyote-4.1.36.jar -tomcat/jars/tomcat-coyote-4.1.36.jar -tomcat/jars/tomcat-http11-4.1.36.jar -tomcat/jars/tomcat-jk2-4.1.36.jar -tomcat/jars/tomcat-jk-4.1.36.jar -tomcat/jars/tomcat-jni-4.1.36.jar -tomcat/jars/tomcat-util-4.1.36.jar -tomcat/poms/catalina-5.5.15.pom -tomcat/poms/catalina-ant-5.5.15.pom -tomcat/poms/catalina-cluster-5.5.15.pom -tomcat/poms/catalina-optional-5.5.15.pom -tomcat/poms/catalina-storeconfig-5.5.15.pom -tomcat/poms/jasper-compiler-5.5.15.pom -tomcat/poms/jasper-compiler-jdt-5.5.15.pom -tomcat/poms/jasper-runtime-5.5.15.pom -tomcat/poms/jsp-api-5.5.15.pom -tomcat/poms/naming-factory-5.5.15.pom -tomcat/poms/naming-factory-dbcp-5.5.15.pom -tomcat/poms/naming-resources-5.5.15.pom -tomcat/poms/servlet-api-5.5.15.pom -tomcat/poms/servlets-default-5.5.15.pom -tomcat/poms/servlets-invoker-5.5.15.pom -tomcat/poms/servlets-webdav-5.5.15.pom -tomcat/poms/tomcat-ajp-5.5.15.pom -tomcat/poms/tomcat-apr-5.5.15.pom -tomcat/poms/tomcat-coyote-5.5.15.pom -tomcat/poms/tomcat-http-5.5.15.pom -tomcat/poms/tomcat-parent-5.5.15.pom -tomcat/poms/tomcat-util-5.5.15.pom -tomcat/zips/apache-tomcat-5.5.23.zip -tomcat-util/jars/tomcat-util-dev.20021002.102355.jar -torque/jars/maven-torque-plugin-3.2-rc1.jar -torque/jars/torque-20030218.172852.jar -torque/jars/torque-20030310.174947.jar -torque/jars/torque-20030327.065722.jar -torque/jars/torque-3.0-b4.jar -torque/jars/torque-3.0-b3-dev.20020711.025538.jar -torque/jars/torque-3.0-b4-dev.20020724.014157.jar -torque/jars/torque-3.0-b4-dev.20020814.103755.jar -torque/jars/torque-3.0-rc1.jar -torque/jars/torque-3.0.1.jar -torque/jars/torque-3.0.2.jar -torque/jars/torque-3.1.1.jar -torque/jars/torque-3.0.jar -torque/jars/torque-3.1-alpha1.jar -torque/jars/torque-3.1-alpha2.jar -torque/jars/torque-3.1-beta1.jar -torque/jars/torque-3.1-dev.jar -torque/jars/torque-3.1-rc.jar -torque/jars/torque-3.1.1-rc1.jar -torque/jars/torque-3.1.1-rc2.jar -torque/jars/torque-3.1.1-rc3.jar -torque/jars/torque-3.1.jar -torque/jars/torque-3.2-rc1.jar -torque/jars/torque-gen-3.1-alpha1.jar -torque/jars/torque-3.2-rc2.jar -torque/jars/torque-3.2-rc3.jar -torque/jars/torque-3.2.jar -torque/jars/torque-gen-20030215.100807.jar -torque/jars/torque-gen-20030310.175447.jar -torque/jars/torque-gen-20030327.070220.jar -torque/jars/torque-gen-3.1-alpha2.jar -torque/jars/torque-gen-3.1-beta1.jar -torque/jars/torque-gen-3.1-dev.jar -torque/jars/torque-gen-3.1-rc.jar -torque/jars/torque-gen-3.1.1-rc1.jar -torque/jars/torque-gen-3.1.1-rc2.jar -torque/jars/torque-gen-3.1.1-rc3.jar -torque/jars/torque-gen-3.1.1.jar -torque/jars/torque-gen-3.1.jar -torque/jars/torque-gen-3.2-rc1.jar -torque/jars/torque-gen-3.2.jar -torque/jars/torque-gen-3.2-rc2.jar -torque/jars/torque-gen-3.2-rc3.jar -torque/jars/torque-gen-snapshot-version -torque/jars/torque-gen-templates-3.2-rc1.jar -torque/jars/torque-gen-templates-3.2-rc2.jar -torque/jars/torque-gen-templates-3.2-rc3.jar -torque/jars/torque-gen-templates-3.2.jar -torque/jars/torque-3.3-RC1.jar -torque/jars/torque-snapshot-version -torque/jars/torque-gen-templates-3.3-RC1.jar -torque/jars/torque-gen-3.3-RC1.jar -torque/jars/torque-3.3-RC2.jar -torque/jars/torque-gen-templates-3.3-RC2.jar -torque/jars/torque-gen-3.3-RC2.jar -torque/plugins/maven-torque-plugin-3.1.1-dev.jar -torque/plugins/maven-torque-plugin-3.1.1-rc1.jar -torque/plugins/maven-torque-plugin-3.1.1-rc2.jar -torque/plugins/maven-torque-plugin-3.1.1-rc3.jar -torque/plugins/maven-torque-plugin-3.1.1.jar -torque/plugins/maven-torque-plugin-3.2-rc1.jar -torque/plugins/maven-torque-plugin-3.2-rc2.jar -torque/plugins/maven-torque-plugin-3.2-rc3.jar -torque/plugins/maven-torque-plugin-3.2.jar -torque/plugins/maven-torque-plugin-3.3-RC1.jar -torque/plugins/maven-torque-plugin-3.3-RC2.jar -torque/poms/maven-torque-plugin-3.1.1-dev.pom -torque/poms/maven-torque-plugin-3.1.1-rc1.pom -torque/poms/maven-torque-plugin-3.1.1-rc2.pom -torque/poms/maven-torque-plugin-3.1.1-rc3.pom -torque/poms/maven-torque-plugin-3.2-rc1.pom -torque/poms/maven-torque-plugin-3.2-rc2.pom -torque/poms/maven-torque-plugin-3.2-rc3.pom -torque/poms/maven-torque-plugin-3.2.pom -torque/poms/torque-3.1.1-rc1.pom -torque/poms/torque-3.1.1-rc2.pom -torque/poms/torque-3.1.1-rc3.pom -torque/poms/torque-3.2-rc1.pom -torque/poms/torque-3.2-rc2.pom -torque/poms/torque-gen-templates-3.2-rc1.pom -torque/poms/torque-3.2-rc3.pom -torque/poms/torque-3.2.pom -torque/poms/torque-gen-3.1.1-rc1.pom -torque/poms/torque-gen-3.1.1-rc2.pom -torque/poms/torque-gen-3.1.1-rc3.pom -torque/poms/torque-gen-3.2-rc1.pom -torque/poms/torque-gen-3.2-rc2.pom -torque/poms/torque-gen-3.2-rc3.pom -torque/poms/torque-gen-3.2.pom -torque/poms/torque-3.3-RC1.pom -torque/poms/torque-gen-templates-3.2-rc2.pom -torque/poms/maven-torque-plugin-3.3-RC1.pom -torque/poms/torque-gen-templates-3.2-rc3.pom -torque/poms/torque-gen-templates-3.2.pom -torque/poms/torque-gen-templates-3.3-RC1.pom -torque/poms/torque-gen-3.3-RC1.pom -torque/poms/torque-3.3-RC2.pom -torque/poms/torque-gen-templates-3.3-RC2.pom -torque/poms/torque-gen-3.3-RC2.pom -torque/poms/maven-torque-plugin-3.3-RC2.pom -turbine/distributions/maven-turbine-plugin-1.3-src.tar.gz -turbine/distributions/maven-turbine-plugin-1.3-src.zip -turbine/distributions/maven-turbine-plugin-1.3.tar.gz -turbine/distributions/maven-turbine-plugin-1.3.zip -turbine/distributions/turbine-2.3.2-src.tar.gz -turbine/distributions/turbine-2.3.2-src.zip -turbine/distributions/turbine-2.3.2.tar.gz -turbine/distributions/turbine-2.3.2.zip -turbine/jars/turbine-2.1.jar -turbine/jars/turbine-2.2-b1.jar -turbine/jars/turbine-2.2-b2-dev.jar -turbine/jars/turbine-2.2-rc1.jar -turbine/jars/turbine-2.2.jar -turbine/jars/turbine-2.2b1.jar -turbine/jars/turbine-2.3-rc1.jar -turbine/jars/turbine-2.3.1-rc1.jar -turbine/jars/turbine-2.3.1-rc2.jar -turbine/jars/turbine-2.3.1.jar -turbine/jars/turbine-2.3.2.jar -turbine/jars/turbine-2.3.jar -turbine/jars/turbine-2.4-M1.jar -turbine/jars/turbine-3.0-alpha-1.20020912.045138.jar -turbine/jars/turbine-3.0-dev.jar -turbine/plugins/maven-turbine-plugin-20040825.211642.jar -turbine/plugins/maven-turbine-plugin-1.2-rc1.jar -turbine/plugins/maven-turbine-plugin-1.2.jar -turbine/plugins/maven-turbine-plugin-1.3.jar -turbine/plugins/maven-turbine-plugin-20040825.214656.jar -turbine/plugins/maven-turbine-plugin-snapshot-version -turbine/poms/maven-turbine-plugin-20040825.211642.pom -turbine/poms/maven-turbine-plugin-1.2-rc1.pom -turbine/poms/maven-turbine-plugin-1.3.pom -turbine/poms/maven-turbine-plugin-20040825.214656.pom -turbine/poms/maven-turbine-plugin-snapshot-version -turbine/poms/turbine-2.3.1-rc1.pom -turbine/poms/turbine-2.3.1-rc2.pom -turbine/poms/turbine-2.3.2.pom -velocity/jars/velocity-1.3-dev.jar -velocity/jars/velocity-1.3.1.jar -velocity/jars/velocity-1.3.jar -velocity/jars/velocity-1.4-dev.jar -velocity/jars/velocity-1.4-rc1.jar -velocity/jars/velocity-1.4.jar -velocity/jars/velocity-dep-1.5-beta2.jar -velocity/jars/velocity-1.5.jar -velocity/jars/velocity-dep-1.3.1.jar -velocity/jars/velocity-dep-1.4-rc1.jar -velocity/jars/velocity-dep-1.4.jar -velocity/jars/velocity-1.5-beta2.jar -velocity/jars/anakia-1.0.jar -velocity/jars/texen-1.0.jar -velocity/poms/velocity-1.5.pom.bak -velocity/poms/velocity-1.5.pom.carlos -velocity/poms/velocity-1.5.pom.md5.bak -velocity-dvsl/jars/velocity-dvsl-0.31.jar -velocity-dvsl/jars/velocity-dvsl-0.40.jar -velocity-dvsl/jars/velocity-dvsl-0.43.20020711.010949.jar -velocity-dvsl/jars/velocity-dvsl-0.43.20020716.041424.jar -velocity-dvsl/jars/velocity-dvsl-0.43.jar -velocity-dvsl/jars/velocity-dvsl-0.43.20020719.020022.jar -velocity-dvsl/jars/velocity-dvsl-0.45.jar -velocity-dvsl/jars/velocity-dvsl-0.44.20020719.122919.jar -velocity-dvsl/jars/velocity-dvsl-0.44.20020720.011619.jar -velocity-dvsl/jars/velocity-dvsl-0.44.20020720.082908.jar -velocity-tools/jars/velocity-tools-1.0.jar -velocity-tools/jars/velocity-tools-1.1.jar -velocity-tools/jars/velocity-tools-1.2.jar -velocity-tools/jars/velocity-tools-generic-1.0.jar -velocity-tools/jars/velocity-tools-generic-1.1.jar -velocity-tools/jars/velocity-tools-generic-1.2.jar -velocity-tools/jars/velocity-tools-view-1.0.jar -velocity-tools/jars/velocity-tools-view-1.1.jar -velocity-tools/jars/velocity-tools-view-1.2.jar -velocity-tools/jars/velocity-tools-1.3.jar -velocity-tools/jars/velocity-tools-generic-1.3.jar -velocity-tools/jars/velocity-tools-view-1.3.jar -ws-commons/jars/KEYS -ws-commons/jars/axiom-api-0.95.jar -ws-commons/jars/tcpmon-1.0.jar -ws-commons/jars/sign.sh -ws-commons/jars/axiom-api-1.0.jar -ws-commons/jars/axiom-dom-1.0.jar -ws-commons/jars/axiom-impl-0.95.jar -ws-commons/jars/axiom-impl-1.0.jar -ws-commons/jars/neethi-1.0.1.jar -ws-commons/jars/policy-1.0.jar -ws-commons/poms/axiom-1.0.pom -ws-commons/poms/axiom-api-1.0.pom -ws-commons/poms/axiom-impl-1.0.pom -ws-commons/poms/neethi-1.0.1.pom -ws-commons-java5/jars/ws-commons-java5-1.0-sources.jar -ws-commons-java5/jars/ws-commons-java5-1.0.1-sources.jar -ws-commons-java5/jars/ws-commons-java5-1.0.1.jar -ws-commons-java5/jars/ws-commons-java5-1.0.jar -ws-commons-java5/poms/ws-commons-java5-1.0.1.pom -ws-commons-java5/poms/ws-commons-java5-1.0.pom -ws-commons-util/jars/ws-commons-util-1.0-sources.jar -ws-commons-util/jars/ws-commons-util-1.0.1-sources.jar -ws-commons-util/jars/ws-commons-util-1.0.1.jar -ws-commons-util/jars/ws-commons-util-1.0.jar -ws-commons-util/poms/ws-commons-util-1.0.1.pom -ws-commons-util/poms/ws-commons-util-1.0.pom -ws-scout/jars/scout-0.5.jar -ws-scout/jars/scout-0.7rc1.jar -ws-scout/jars/scout-0.7rc2.pom -ws-scout/jars/scout-0.7rc2.jar -ws-scout/jars/scout-0.7rc2-sources.jar -ws-scout/KEYS -wsdl4j/jars/wsdl4j-1.0.jar -wsrf/jars/j2ee-xbeans-src-1.0.jar -wsrf/jars/j2ee-xbeans-1.0.jar -wsrf/jars/wsa-xbeans-src-1.0.jar -wsrf/jars/wsa-xbeans-1.0.jar -wsrf/jars/wsrf-xbeans-1.0.jar -wsrf/jars/wsrf-1.0.jar -wsrf/jars/wsrf-1.1.jar -wsrf/jars/wsrf-jndi-config-src-1.0.jar -wsrf/jars/wsrf-jndi-config-1.0.jar -wsrf/jars/wsrf-xbeans-src-1.0.jar -wss4j/jars/wss4j-1.5.0.jar -wss4j/jars/wss4j-1.5.1.jar -xalan/jars/xalan-2.1.0.jar -xalan/jars/xalan-2.3.1.jar -xalan/jars/xalan-2.4.0.jar -xalan/jars/xalan-2.4.1.jar -xalan/jars/xalan-2.5.0.jar -xalan/jars/xalan-2.5.1.jar -xalan/jars/xalan-2.6.0.jar -xalan/jars/xalan-2.7.0.jar -xalan/jars/xalansamples-2.4.1.jar -xalan/jars/xalansamples-2.5.1.jar -xalan/jars/xalansamples-2.6.0.jar -xalan/jars/xalanservlet-2.4.1.jar -xalan/wars/xalanservlet-2.5.1.war -xerces/jars/xerces-1.2.3.jar -xerces/jars/xerces-1.4.0.jar -xerces/jars/xerces-1.4.4.jar -xerces/jars/xerces-2.0.0.jar -xerces/jars/xerces-2.0.1.jar -xerces/jars/xerces-2.0.2.jar -xerces/jars/xerces-2.2.1.jar -xerces/jars/xerces-2.3.0.jar -xerces/jars/xerces-2.4.0.jar -xerces/jars/xercesImpl-2.0.0.jar -xerces/jars/xercesImpl-2.5.0.jar -xerces/jars/xercesImpl-2.6.0.jar -xerces/jars/xercesImpl-2.6.2.jar -xerces/jars/xercesImpl-2.7.1.jar -xerces/jars/xercesImpl-2.8.0.jar -xerces/jars/xercesImpl-2.8.0.jar.sig -xerces/jars/xercesSamples-2.5.0.jar -xerces/jars/xercesSamples-2.6.0.jar -xerces/jars/xercesSamples-2.6.2.jar -xerces/jars/xercesSamples-2.8.0.jar -xerces/jars/xercesSamples-2.8.0.jar.sig -xerces/jars/xmlParserAPIs-2.0.0.jar -xerces/jars/xmlParserAPIs-2.0.2.jar -xerces/jars/xmlParserAPIs-2.2.1.jar -xerces/jars/xmlParserAPIs-2.6.0.jar -xerces/jars/xmlParserAPIs-2.6.2.jar -xerces/java-sources/xercesImpl-2.8.0-sources.jar -xerces/poms/xercesImpl-2.8.0.pom -xercesjarv/jars/xercesjarv-20020712-DG.jar -xercesjarv/jars/xercesjarv-20020712.jar -xml-apis/jars/xml-apis-1.0.b2.jar -xml-apis/jars/.htaccess -xml-apis/jars/README.html -xml-apis/jars/xml-apis-1.0.b2.james -xml-apis/jars/xml-apis-1.3.02.jar -xml-apis/jars/xml-apis-1.3.03.jar -xml-apis/jars/xml-apis-1.3.03.jar.sig -xml-apis/poms/xml-apis-1.3.02.pom -xml-apis/poms/xml-apis-1.3.03.pom -xml-resolver/jars/xml-resolver-1.1.jar -xml-security/jars/xml-security-1.0.4.jar -xml-security/jars/xmlsec-1.0.5D2.jar -xml-security/jars/xmlsec-1.1.0.jar -xml-security/jars/xmlsec-1.1.0.jar.sig -xml-security/jars/xmlsec-1.2.1.jar -xml-security/jars/xmlsec-1.2.1.jar.sig -xml-security/jars/xmlsec-1.3.0.jar -xml-security/jars/xmlsec-1.3.0.jar.sig -xmlbeans/jars/jsr173_1.0_api.jar -xmlbeans/jars/jsr173_1.0_api_bundle.jar -xmlbeans/jars/xbean-1.0.3.jar -xmlbeans/jars/xbean-1.0.4-jdk1.3.jar -xmlbeans/jars/xbean-1.0.4.jar -xmlbeans/jars/xbean-2.0.0-beta1.jar -xmlbeans/jars/xbean-2.0.0.jar -xmlbeans/jars/xbean-2.1.0.jar -xmlbeans/jars/xbean_xpath-1.0.3.jar -xmlbeans/jars/xbean-2.2.0.jar -xmlbeans/jars/xbean_xpath-1.0.4-jdk1.3.jar -xmlbeans/jars/xbean_xpath-1.0.4.jar -xmlbeans/jars/xbean_xpath-2.0.0-beta1.jar -xmlbeans/jars/xbean_xpath-2.0.0.jar -xmlbeans/jars/xbean_xpath-2.1.0.jar -xmlbeans/jars/xbean_xpath-2.2.0.jar -xmlbeans/jars/xmlbeans-1.0.3.jar -xmlbeans/jars/xmlbeans-1.0.jar -xmlbeans/jars/xmlpublic-2.0.0-beta1.jar -xmlbeans/jars/xmlpublic-2.0.0.jar -xmlbeans/jars/xmlpublic-2.1.0.jar -xmlbeans/jars/xmlpublic-2.2.0.jar -xmlbeans/poms/xmlbeans-1.0.3.pom -xmlbeans/poms/xbean-2.2.0.pom -xmlrpc/jars/xmlrpc-1.1.jar -xmlrpc/jars/xmlrpc-1.2-a1.jar -xmlrpc/jars/xmlrpc-1.2-a2.jar -xmlrpc/jars/xmlrpc-1.2-a3-dev.20030102.111633.jar -xmlrpc/jars/xmlrpc-1.2-a3-dev.jar -xmlrpc/jars/xmlrpc-1.2-b1.jar -xmlrpc/jars/xmlrpc-2.0-applet.jar -xmlrpc/jars/xmlrpc-1.2.jar -xmlrpc/jars/xmlrpc-2.0-beta-applet.jar -xmlrpc/jars/xmlrpc-2.0-beta.jar -xmlrpc/jars/xmlrpc-2.0.1-sources.jar -xmlrpc/jars/xmlrpc-3.0a1-sources.jar -xmlrpc/jars/xmlrpc-2.0.1.jar -xmlrpc/jars/xmlrpc-2.0.jar -xmlrpc/jars/xmlrpc-3.0a1.jar -xmlrpc/jars/xmlrpc-client-3.0-sources.jar -xmlrpc/jars/xmlrpc-common-3.0.jar -xmlrpc/jars/xmlrpc-client-3.0.jar -xmlrpc/jars/xmlrpc-client-3.0b1-sources.jar -xmlrpc/jars/xmlrpc-client-3.0b1.jar -xmlrpc/jars/xmlrpc-common-3.0-sources.jar -xmlrpc/jars/xmlrpc-common-3.0b1-sources.jar -xmlrpc/jars/xmlrpc-common-3.0b1.jar -xmlrpc/jars/xmlrpc-helma-1.0.jar -xmlrpc/jars/xmlrpc-server-3.0-sources.jar -xmlrpc/jars/xmlrpc-server-3.0.jar -xmlrpc/jars/xmlrpc-server-3.0b1-sources.jar -xmlrpc/jars/xmlrpc-server-3.0b1.jar -xmlrpc/poms/xmlrpc-3.0.pom -xmlrpc/poms/xmlrpc-3.0b1.pom -xmlrpc/poms/xmlrpc-client-3.0.pom -xmlrpc/poms/xmlrpc-client-3.0b1.pom -xmlrpc/poms/xmlrpc-common-3.0.pom -xmlrpc/poms/xmlrpc-common-3.0b1.pom -xmlrpc/poms/xmlrpc-server-3.0.pom -xmlrpc/poms/xmlrpc-server-3.0b1.pom -org.apache.ws.commons.axiom/jars/axiom-api-1.2.jar -org.apache.ws.commons.axiom/jars/axiom-impl-1.2.jar -org.apache.ws.commons.axiom/jars/axiom-dom-1.2.jar -org.apache.ws.commons.axiom/jars/axiom-1.2.1.jar -org.apache.ws.commons.axiom/jars/axiom-impl-1.2.1.jar -org.apache.ws.commons.axiom/jars/axiom-dom-1.2.1.jar -org.apache.ws.commons.axiom/jars/axiom-api-1.2.1.jar -org.apache.ws.commons.axiom/jars/axiom-1.2.2.jar -org.apache.ws.commons.axiom/jars/axiom-api-1.2.2.jar -org.apache.ws.commons.axiom/jars/axiom-dom-1.2.2.jar -org.apache.ws.commons.axiom/jars/axiom-impl-1.2.2.jar -org.apache.ws.commons.axiom/jars/axiom-1.2.3.jar -org.apache.ws.commons.axiom/jars/axiom-api-1.2.3.jar -org.apache.ws.commons.axiom/jars/axiom-dom-1.2.3.jar -org.apache.ws.commons.axiom/jars/axiom-impl-1.2.3.jar -org.apache.ws.commons.axiom/jars/axiom-1.2.4.jar -org.apache.ws.commons.axiom/jars/axiom-api-1.2.4.jar -org.apache.ws.commons.axiom/jars/axiom-dom-1.2.4.jar -org.apache.ws.commons.axiom/jars/axiom-impl-1.2.4.jar -org.apache.ws.commons.axiom/jars/axiom-impl-1.2.5.jar -org.apache.ws.commons.axiom/jars/axiom-dom-1.2.5.jar -org.apache.ws.commons.axiom/jars/axiom-api-1.2.5.jar -org.apache.ws.commons.axiom/jars/axiom-1.2.5.jar -org.apache.ws.commons.schema/jars/XmlSchema-1.2.jar -org.apache.axis2/jars/axis2-adb-1.1.jar -org.apache.axis2/jars/axis2-adb-codegen-1.1.jar -org.apache.axis2/jars/axis2-codegen-1.1.jar -org.apache.axis2/jars/axis2-java2wsdl-1.1.jar -org.apache.axis2/jars/axis2-jibx-1.1.jar -org.apache.axis2/jars/axis2-kernel-1.1.jar -org.apache.axis2/jars/axis2-saaj-1.1.jar -org.apache.axis2/jars/axis2-soapmonitor-1.1.jar -org.apache.axis2/jars/axis2-spring-1.1.jar -org.apache.axis2/jars/axis2-tools-1.1.jar -org.apache.axis2/jars/axis2-xmlbeans-1.1.jar -org.apache.axis2/jars/axis2-1.1.jar -org.apache.axis2/jars/axis2-rahas-1.1.jar -org.apache.axis2/jars/axis2-secpolicy-1.1.jar -org.apache.axis2/jars/axis2-security-1.1.jar -org.apache.axis2/jars/axis2-1.1.1.jar -org.apache.axis2/jars/axis2-adb-1.1.1.jar -org.apache.axis2/jars/axis2-adb-codegen-1.1.1.jar -org.apache.axis2/jars/axis2-codegen-1.1.1.jar -org.apache.axis2/jars/axis2-java2wsdl-1.1.1.jar -org.apache.axis2/jars/axis2-jaxbri-1.1.1.jar -org.apache.axis2/jars/axis2-jibx-1.1.1.jar -org.apache.axis2/jars/axis2-kernel-1.1.1.jar -org.apache.axis2/jars/axis2-saaj-1.1.1.jar -org.apache.axis2/jars/axis2-soapmonitor-1.1.1.jar -org.apache.axis2/jars/axis2-spring-1.1.1.jar -org.apache.axis2/jars/axis2-tools-1.1.1.jar -org.apache.axis2/jars/axis2-xmlbeans-1.1.1.jar -org.apache.axis2/jars/axis2-1.2.jar -org.apache.axis2/jars/axis2-adb-1.2.jar -org.apache.axis2/jars/axis2-adb-codegen-1.2.jar -org.apache.axis2/jars/axis2-addressing-1.2.jar -org.apache.axis2/jars/axis2-codegen-1.2.jar -org.apache.axis2/jars/axis2-fastinfoset-1.2.jar -org.apache.axis2/jars/axis2-jaxws-1.2.jar -org.apache.axis2/jars/axis2-java2wsdl-1.2.jar -org.apache.axis2/jars/axis2-jaxbri-1.2.jar -org.apache.axis2/jars/axis2-jaxws-api-1.2.jar -org.apache.axis2/jars/axis2-jibx-1.2.jar -org.apache.axis2/jars/axis2-json-1.2.jar -org.apache.axis2/jars/axis2-kernel-1.2.jar -org.apache.axis2/jars/axis2-metadata-1.2.jar -org.apache.axis2/jars/axis2-mex-1.2.jar -org.apache.axis2/jars/axis2-mtompolicy-1.2.jar -org.apache.axis2/jars/axis2-ping-1.2.jar -org.apache.axis2/jars/axis2-saaj-1.2.jar -org.apache.axis2/jars/axis2-saaj-api-1.2.jar -org.apache.axis2/jars/axis2-soapmonitor-1.2.jar -org.apache.axis2/jars/axis2-spring-1.2.jar -org.apache.axis2/jars/axis2-xmlbeans-1.2.jar -org.apache.axis2/mars/addressing-1.1.mar -org.apache.axis2/mars/soapmonitor-1.1.mar -org.apache.axis2/mars/rampart-1.1.mar -org.apache.axis2/mars/rahas-1.1.mar -org.apache.axis2/mars/addressing-1.1.1.mar -org.apache.axis2/mars/soapmonitor-1.1.1.mar -org.apache.axis2/mars/addressing-1.2.mar -org.apache.axis2/mars/soapmonitor-1.2.mar -org.apache.neethi/jars/neethi-2.0.jar -org.apache.neethi/jars/neethi-2.0.1.jar -org.apache.neethi/jars/neethi-2.0.2.jar -org.apache.ws.commons.neethi/jars/neethi-1.0.1.jar -org.apache.ws.commons.neethi/jars/neethi-2.0.1.jar -org.apache.sandesha2/jars/sandesha2-1.1.jar -org.apache.sandesha2/jars/sandesha2-client-1.1.jar -org.apache.sandesha2/jars/sandesha2-policy-1.1.jar -org.apache.sandesha2/mars/sandesha2-1.1.mar -org.apache.ant/jars/ant-1.7.0.jar -org.apache.ant/jars/ant-antlr-1.7.0.jar -org.apache.ant/jars/ant-apache-bcel-1.7.0.jar -org.apache.ant/jars/ant-apache-bsf-1.7.0.jar -org.apache.ant/jars/ant-apache-log4j-1.7.0.jar -org.apache.ant/jars/ant-apache-oro-1.7.0.jar -org.apache.ant/jars/ant-apache-regexp-1.7.0.jar -org.apache.ant/jars/ant-apache-resolver-1.7.0.jar -org.apache.ant/jars/ant-commons-logging-1.7.0.jar -org.apache.ant/jars/ant-commons-net-1.7.0.jar -org.apache.ant/jars/ant-jai-1.7.0.jar -org.apache.ant/jars/ant-javamail-1.7.0.jar -org.apache.ant/jars/ant-jdepend-1.7.0.jar -org.apache.ant/jars/ant-jmf-1.7.0.jar -org.apache.ant/jars/ant-jsch-1.7.0.jar -org.apache.ant/jars/ant-junit-1.7.0.jar -org.apache.ant/jars/ant-launcher-1.7.0.jar -org.apache.ant/jars/ant-netrexx-1.7.0.jar -org.apache.ant/jars/ant-nodeps-1.7.0.jar -org.apache.ant/jars/ant-starteam-1.7.0.jar -org.apache.ant/jars/ant-stylebook-1.7.0.jar -org.apache.ant/jars/ant-swing-1.7.0.jar -org.apache.ant/jars/ant-testutil-1.7.0.jar -org.apache.ant/jars/ant-trax-1.7.0.jar -org.apache.ant/jars/ant-weblogic-1.7.0.jar -org.apache.ant/poms/ant-1.7.0.pom -org.apache.ant/poms/ant-antlr-1.7.0.pom -org.apache.ant/poms/ant-apache-bcel-1.7.0.pom -org.apache.ant/poms/ant-apache-bsf-1.7.0.pom -org.apache.ant/poms/ant-apache-log4j-1.7.0.pom -org.apache.ant/poms/ant-apache-oro-1.7.0.pom -org.apache.ant/poms/ant-apache-regexp-1.7.0.pom -org.apache.ant/poms/ant-apache-resolver-1.7.0.pom -org.apache.ant/poms/ant-commons-logging-1.7.0.pom -org.apache.ant/poms/ant-commons-net-1.7.0.pom -org.apache.ant/poms/ant-jai-1.7.0.pom -org.apache.ant/poms/ant-javamail-1.7.0.pom -org.apache.ant/poms/ant-jdepend-1.7.0.pom -org.apache.ant/poms/ant-jmf-1.7.0.pom -org.apache.ant/poms/ant-jsch-1.7.0.pom -org.apache.ant/poms/ant-junit-1.7.0.pom -org.apache.ant/poms/ant-launcher-1.7.0.pom -org.apache.ant/poms/ant-netrexx-1.7.0.pom -org.apache.ant/poms/ant-nodeps-1.7.0.pom -org.apache.ant/poms/ant-parent-1.7.0.pom -org.apache.ant/poms/ant-starteam-1.7.0.pom -org.apache.ant/poms/ant-stylebook-1.7.0.pom -org.apache.ant/poms/ant-swing-1.7.0.pom -org.apache.ant/poms/ant-trax-1.7.0.pom -org.apache.ant/poms/ant-testutil-1.7.0.pom -org.apache.ant/poms/ant-weblogic-1.7.0.pom -org.apache.activemq/tar.bz2s/apache-activemq-4.1.1.tar.bz2 -org.apache.activemq/jars/activemq-console-4.1.1.jar -org.apache.activemq/jars/activemq-core-4.1.1-tests.jar -org.apache.activemq/jars/activemq-core-4.1.1.jar -org.apache.activemq/jars/activemq-jaas-4.1.1.jar -org.apache.activemq/jars/activemq-openwire-generator-4.1.1.jar -org.apache.activemq/jars/activemq-optional-4.1.1.jar -org.apache.activemq/jars/activemq-ra-4.1.1.jar -org.apache.activemq/jars/activemq-test-atomikos-4.1.1.jar -org.apache.activemq/jars/activemq-web-4.1.1.jar -org.apache.activemq/jars/activemq-xmpp-4.1.1.jar -org.apache.activemq/jars/apache-activemq-4.1.1.jar -org.apache.activemq/java-sources/activemq-console-4.1.1-sources.jar -org.apache.activemq/java-sources/activemq-openwire-generator-4.1.1-sources.jar -org.apache.activemq/java-sources/activemq-core-4.1.1-sources.jar -org.apache.activemq/java-sources/activemq-jaas-4.1.1-sources.jar -org.apache.activemq/java-sources/activemq-optional-4.1.1-sources.jar -org.apache.activemq/java-sources/activemq-ra-4.1.1-sources.jar -org.apache.activemq/java-sources/activemq-test-atomikos-4.1.1-sources.jar -org.apache.activemq/java-sources/activemq-rar-4.1.1-sources.jar -org.apache.activemq/java-sources/activemq-web-4.1.1-sources.jar -org.apache.activemq/java-sources/activemq-web-console-4.1.1-sources.jar -org.apache.activemq/java-sources/activemq-web-demo-4.1.1-sources.jar -org.apache.activemq/java-sources/activemq-xmpp-4.1.1-sources.jar -org.apache.activemq/java-sources/apache-activemq-4.1.1-sources.jar -org.apache.activemq/poms/activemq-console-4.1.1.pom -org.apache.activemq/poms/activemq-openwire-generator-4.1.1.pom -org.apache.activemq/poms/activemq-core-4.1.1.pom -org.apache.activemq/poms/activemq-jaas-4.1.1.pom -org.apache.activemq/poms/activemq-ra-4.1.1.pom -org.apache.activemq/poms/activemq-optional-4.1.1.pom -org.apache.activemq/poms/activemq-parent-4.1.1.pom -org.apache.activemq/poms/activemq-xmpp-4.1.1.pom -org.apache.activemq/poms/activemq-rar-4.1.1.pom -org.apache.activemq/poms/activemq-test-atomikos-4.1.1.pom -org.apache.activemq/poms/activemq-web-4.1.1.pom -org.apache.activemq/poms/activemq-web-console-4.1.1.pom -org.apache.activemq/poms/activemq-web-demo-4.1.1.pom -org.apache.activemq/poms/apache-activemq-4.1.1.pom -org.apache.activemq/poms/maven-metadata.xml -org.apache.activemq/rars/activemq-rar-4.1.1.rar -org.apache.activemq/htmls/activemq-core-4.1.1-schema.html -org.apache.activemq/htmls/activemq-ra-4.1.1-schema.html -org.apache.activemq/tar.gzs/apache-activemq-4.1.1-src.tar.gz -org.apache.activemq/tar.gzs/apache-activemq-4.1.1.tar.gz -org.apache.activemq/wars/activemq-web-console-4.1.1.war -org.apache.activemq/wars/activemq-web-demo-4.1.1.war -org.apache.activemq/xsd.htmls/activemq-core-4.1.1.xsd.html -org.apache.activemq/xsd.htmls/activemq-ra-4.1.1.xsd.html -org.apache.activemq/xsds/activemq-core-4.1.1.xsd -org.apache.activemq/xsds/activemq-ra-4.1.1.xsd -org.apache.activemq/xsds/README.txt -org.apache.activemq/xsds/ReadMe.html -org.apache.activemq/xsds/HEADER.html -org.apache.activemq/zips/apache-activemq-4.1.1-src.zip -org.apache.activemq/zips/apache-activemq-4.1.1.zip -org.apache.activemq/snapshot-schema -org.apache.poi/jars/poi-3.0.1-FINAL.jar -org.apache.poi/jars/poi-scratchpad-3.0.1-FINAL.jar -org.apache.poi/jars/poi-contrib-3.0.1-FINAL.jar -org.apache.poi/poms/poi-3.0-FINAL.pom -org.apache.poi/poms/poi-3.0.1-FINAL.pom -org.apache.poi/poms/poi-scratchpad-3.0.1-FINAL.pom -org.apache.poi/poms/poi-contrib-3.0.1-FINAL.pom -org.apache.camel/poms/apache-camel-1.0.0.pom -org.apache.camel/poms/archetypes-1.0.0.pom -org.apache.camel/poms/camel-activemq-1.0.0.pom -org.apache.camel/poms/camel-example-jms-file-1.0.0.pom -org.apache.camel/poms/camel-bam-1.0.0.pom -org.apache.camel/poms/camel-book-1.0.0.pom -org.apache.camel/poms/camel-core-1.0.0.pom -org.apache.camel/poms/camel-cxf-1.0.0.pom -org.apache.camel/poms/camel-example-spring-1.0.0.pom -org.apache.camel/poms/camel-ftp-1.0.0.pom -org.apache.camel/poms/camel-jms-1.0.0.pom -org.apache.camel/poms/camel-http-1.0.0.pom -org.apache.camel/poms/camel-irc-1.0.0.pom -org.apache.camel/poms/camel-jaxb-1.0.0.pom -org.apache.camel/poms/camel-jbi-1.0.0.pom -org.apache.camel/poms/camel-josql-1.0.0.pom -org.apache.camel/poms/camel-jpa-1.0.0.pom -org.apache.camel/poms/camel-mail-1.0.0.pom -org.apache.camel/poms/camel-maven-plugin-1.0.0.pom -org.apache.camel/poms/camel-mina-1.0.0.pom -org.apache.camel/poms/camel-parent-1.0.0.pom -org.apache.camel/poms/camel-rmi-1.0.0.pom -org.apache.camel/poms/camel-quartz-1.0.0.pom -org.apache.camel/poms/camel-router-1.0.0.pom -org.apache.camel/poms/camel-saxon-1.0.0.pom -org.apache.camel/poms/camel-script-1.0.0.pom -org.apache.camel/poms/camel-spring-1.0.0.pom -org.apache.camel/poms/camel-xmpp-1.0.0.pom -org.apache.camel/poms/components-1.0.0.pom -org.apache.camel/poms/examples-1.0.0.pom -org.apache.camel/poms/maven-html-to-docbook-1.0.0.pom -org.apache.camel/poms/maven-metadata.xml -org.apache.camel/poms/maven-plugins-1.0.0.pom -org.apache.camel/poms/tooling-1.0.0.pom -org.apache.camel/poms/apache-camel-1.1.0.pom -org.apache.camel/poms/archetypes-1.1.0.pom -org.apache.camel/poms/camel-activemq-1.1.0.pom -org.apache.camel/poms/camel-bam-1.1.0.pom -org.apache.camel/poms/camel-book-1.1.0.pom -org.apache.camel/poms/camel-core-1.1.0.pom -org.apache.camel/poms/camel-cxf-1.1.0.pom -org.apache.camel/poms/camel-example-bam-1.1.0.pom -org.apache.camel/poms/camel-example-etl-1.1.0.pom -org.apache.camel/poms/camel-example-jms-file-1.1.0.pom -org.apache.camel/poms/camel-jpa-1.1.0.pom -org.apache.camel/poms/camel-example-spring-1.1.0.pom -org.apache.camel/poms/camel-ftp-1.1.0.pom -org.apache.camel/poms/camel-http-1.1.0.pom -org.apache.camel/poms/camel-irc-1.1.0.pom -org.apache.camel/poms/camel-jaxb-1.1.0.pom -org.apache.camel/poms/camel-jing-1.1.0.pom -org.apache.camel/poms/camel-jms-1.1.0.pom -org.apache.camel/poms/camel-maven-plugin-1.1.0.pom -org.apache.camel/poms/camel-josql-1.1.0.pom -org.apache.camel/poms/camel-juel-1.1.0.pom -org.apache.camel/poms/camel-mail-1.1.0.pom -org.apache.camel/poms/camel-msv-1.1.0.pom -org.apache.camel/poms/camel-mina-1.1.0.pom -org.apache.camel/poms/camel-rmi-1.1.0.pom -org.apache.camel/poms/camel-ognl-1.1.0.pom -org.apache.camel/poms/camel-parent-1.1.0.pom -org.apache.camel/poms/camel-quartz-1.1.0.pom -org.apache.camel/poms/examples-1.1.0.pom -org.apache.camel/poms/camel-router-1.1.0.pom -org.apache.camel/poms/camel-saxon-1.1.0.pom -org.apache.camel/poms/camel-script-1.1.0.pom -org.apache.camel/poms/camel-spring-1.1.0.pom -org.apache.camel/poms/camel-xmpp-1.1.0.pom -org.apache.camel/poms/components-1.1.0.pom -org.apache.camel/poms/maven-html-to-docbook-1.1.0.pom -org.apache.camel/poms/maven-plugins-1.1.0.pom -org.apache.camel/poms/tooling-1.1.0.pom -org.apache.camel/java-sources/apache-camel-1.0.0-sources.jar -org.apache.camel/java-sources/camel-activemq-1.0.0-sources.jar -org.apache.camel/java-sources/camel-bam-1.0.0-sources.jar -org.apache.camel/java-sources/camel-cxf-1.0.0-sources.jar -org.apache.camel/java-sources/camel-core-1.0.0-sources.jar -org.apache.camel/java-sources/camel-example-jms-file-1.0.0-sources.jar -org.apache.camel/java-sources/camel-ftp-1.0.0-sources.jar -org.apache.camel/java-sources/camel-example-spring-1.0.0-sources.jar -org.apache.camel/java-sources/camel-http-1.0.0-sources.jar -org.apache.camel/java-sources/camel-irc-1.0.0-sources.jar -org.apache.camel/java-sources/camel-jaxb-1.0.0-sources.jar -org.apache.camel/java-sources/camel-jbi-1.0.0-sources.jar -org.apache.camel/java-sources/camel-jms-1.0.0-sources.jar -org.apache.camel/java-sources/camel-josql-1.0.0-sources.jar -org.apache.camel/java-sources/camel-jpa-1.0.0-sources.jar -org.apache.camel/java-sources/camel-mail-1.0.0-sources.jar -org.apache.camel/java-sources/camel-maven-plugin-1.0.0-sources.jar -org.apache.camel/java-sources/camel-rmi-1.0.0-sources.jar -org.apache.camel/java-sources/camel-mina-1.0.0-sources.jar -org.apache.camel/java-sources/camel-quartz-1.0.0-sources.jar -org.apache.camel/java-sources/camel-router-1.0.0-sources.jar -org.apache.camel/java-sources/camel-saxon-1.0.0-sources.jar -org.apache.camel/java-sources/camel-script-1.0.0-sources.jar -org.apache.camel/java-sources/camel-spring-1.0.0-sources.jar -org.apache.camel/java-sources/camel-xmpp-1.0.0-sources.jar -org.apache.camel/java-sources/maven-html-to-docbook-1.0.0-sources.jar -org.apache.camel/java-sources/apache-camel-1.1.0-sources.jar -org.apache.camel/java-sources/camel-activemq-1.1.0-sources.jar -org.apache.camel/java-sources/camel-bam-1.1.0-sources.jar -org.apache.camel/java-sources/camel-core-1.1.0-sources.jar -org.apache.camel/java-sources/camel-cxf-1.1.0-sources.jar -org.apache.camel/java-sources/camel-example-bam-1.1.0-sources.jar -org.apache.camel/java-sources/camel-ftp-1.1.0-sources.jar -org.apache.camel/java-sources/camel-example-etl-1.1.0-sources.jar -org.apache.camel/java-sources/camel-example-jms-file-1.1.0-sources.jar -org.apache.camel/java-sources/camel-example-spring-1.1.0-sources.jar -org.apache.camel/java-sources/camel-http-1.1.0-sources.jar -org.apache.camel/java-sources/camel-irc-1.1.0-sources.jar -org.apache.camel/java-sources/camel-maven-plugin-1.1.0-sources.jar -org.apache.camel/java-sources/camel-jaxb-1.1.0-sources.jar -org.apache.camel/java-sources/camel-jing-1.1.0-sources.jar -org.apache.camel/java-sources/camel-jms-1.1.0-sources.jar -org.apache.camel/java-sources/camel-josql-1.1.0-sources.jar -org.apache.camel/java-sources/camel-jpa-1.1.0-sources.jar -org.apache.camel/java-sources/camel-juel-1.1.0-sources.jar -org.apache.camel/java-sources/camel-mail-1.1.0-sources.jar -org.apache.camel/java-sources/camel-mina-1.1.0-sources.jar -org.apache.camel/java-sources/camel-msv-1.1.0-sources.jar -org.apache.camel/java-sources/camel-ognl-1.1.0-sources.jar -org.apache.camel/java-sources/camel-rmi-1.1.0-sources.jar -org.apache.camel/java-sources/camel-quartz-1.1.0-sources.jar -org.apache.camel/java-sources/camel-router-1.1.0-sources.jar -org.apache.camel/java-sources/camel-saxon-1.1.0-sources.jar -org.apache.camel/java-sources/camel-script-1.1.0-sources.jar -org.apache.camel/java-sources/camel-spring-1.1.0-sources.jar -org.apache.camel/java-sources/camel-xmpp-1.1.0-sources.jar -org.apache.camel/java-sources/maven-html-to-docbook-1.1.0-sources.jar -org.apache.camel/maven-plugins/camel-maven-plugin-1.0.0.jar -org.apache.camel/maven-plugins/maven-html-to-docbook-1.0.0.jar -org.apache.camel/maven-plugins/camel-maven-plugin-1.1.0.jar -org.apache.camel/maven-plugins/maven-html-to-docbook-1.1.0.jar -org.apache.camel/jars/apache-camel-1.0.0.jar -org.apache.camel/jars/camel-activemq-1.0.0.jar -org.apache.camel/jars/camel-example-jms-file-1.0.0.jar -org.apache.camel/jars/camel-bam-1.0.0.jar -org.apache.camel/jars/camel-core-1.0.0-tests.jar -org.apache.camel/jars/camel-core-1.0.0.jar -org.apache.camel/jars/camel-cxf-1.0.0.jar -org.apache.camel/jars/camel-example-spring-1.0.0.jar -org.apache.camel/jars/camel-ftp-1.0.0.jar -org.apache.camel/jars/camel-http-1.0.0.jar -org.apache.camel/jars/camel-irc-1.0.0.jar -org.apache.camel/jars/camel-jaxb-1.0.0.jar -org.apache.camel/jars/camel-jbi-1.0.0.jar -org.apache.camel/jars/camel-jms-1.0.0.jar -org.apache.camel/jars/camel-josql-1.0.0.jar -org.apache.camel/jars/camel-jpa-1.0.0.jar -org.apache.camel/jars/camel-mail-1.0.0.jar -org.apache.camel/jars/camel-mina-1.0.0.jar -org.apache.camel/jars/camel-quartz-1.0.0.jar -org.apache.camel/jars/camel-rmi-1.0.0.jar -org.apache.camel/jars/camel-router-1.0.0.jar -org.apache.camel/jars/camel-saxon-1.0.0.jar -org.apache.camel/jars/camel-script-1.0.0.jar -org.apache.camel/jars/camel-spring-1.0.0-tests.jar -org.apache.camel/jars/camel-spring-1.0.0.jar -org.apache.camel/jars/camel-xmpp-1.0.0.jar -org.apache.camel/jars/apache-camel-1.1.0.jar -org.apache.camel/jars/camel-activemq-1.1.0.jar -org.apache.camel/jars/camel-bam-1.1.0.jar -org.apache.camel/jars/camel-core-1.1.0-tests.jar -org.apache.camel/jars/camel-core-1.1.0.jar -org.apache.camel/jars/camel-cxf-1.1.0.jar -org.apache.camel/jars/camel-example-bam-1.1.0.jar -org.apache.camel/jars/camel-example-etl-1.1.0.jar -org.apache.camel/jars/camel-example-jms-file-1.1.0.jar -org.apache.camel/jars/camel-ftp-1.1.0.jar -org.apache.camel/jars/camel-example-spring-1.1.0.jar -org.apache.camel/jars/camel-http-1.1.0.jar -org.apache.camel/jars/camel-irc-1.1.0.jar -org.apache.camel/jars/camel-jaxb-1.1.0.jar -org.apache.camel/jars/camel-jing-1.1.0.jar -org.apache.camel/jars/camel-jms-1.1.0.jar -org.apache.camel/jars/camel-josql-1.1.0.jar -org.apache.camel/jars/camel-jpa-1.1.0.jar -org.apache.camel/jars/camel-juel-1.1.0.jar -org.apache.camel/jars/camel-mail-1.1.0.jar -org.apache.camel/jars/camel-mina-1.1.0.jar -org.apache.camel/jars/camel-msv-1.1.0.jar -org.apache.camel/jars/camel-ognl-1.1.0.jar -org.apache.camel/jars/camel-quartz-1.1.0.jar -org.apache.camel/jars/camel-rmi-1.1.0.jar -org.apache.camel/jars/camel-router-1.1.0.jar -org.apache.camel/jars/camel-saxon-1.1.0.jar -org.apache.camel/jars/camel-script-1.1.0.jar -org.apache.camel/jars/camel-spring-1.1.0-tests.jar -org.apache.camel/jars/camel-spring-1.1.0.jar -org.apache.camel/jars/camel-xmpp-1.1.0.jar -org.apache.camel/tar.gzs/apache-camel-1.0.0-src.tar.gz -org.apache.camel/tar.gzs/apache-camel-1.0.0.tar.gz -org.apache.camel/tar.gzs/apache-camel-1.1.0-src.tar.gz -org.apache.camel/tar.gzs/apache-camel-1.1.0.tar.gz -org.apache.camel/xsds/camel-spring-1.0.0.xsd -org.apache.camel/xsds/camel-spring-1.1.0.xsd -org.apache.camel/zips/apache-camel-1.0.0-src.zip -org.apache.camel/zips/apache-camel-1.0.0.zip -org.apache.camel/zips/apache-camel-1.1.0-src.zip -org.apache.camel/zips/apache-camel-1.1.0.zip -org.apache.xmlbeans/jars/xmlbeans-2.3.0.jar -org.apache.xmlbeans/jars/xmlbeans-xmlpublic-2.3.0.jar -org.apache.xmlbeans/jars/xmlbeans-qname-2.3.0.jar -org.apache.xmlbeans/jars/xmlbeans-2.2.0.jar -org.apache.xmlbeans/jars/xmlbeans-xmlpublic-2.2.0.jar -org.apache.xmlbeans/jars/xmlbeans-xpath-2.3.0.jar -org.apache.xmlbeans/jars/xmlbeans-xpath-2.2.0.jar -org.apache.xmlbeans/poms/xmlbeans-2.2.0.pom -org.apache.xmlbeans/poms/xmlbeans-2.3.0.pom -org.apache.xmlbeans/poms/xmlbeans-xpath-2.3.0.pom -org.apache.xmlbeans/poms/xmlbeans-xmlpublic-2.2.0.pom -org.apache.xmlbeans/poms/xmlbeans-xmlpublic-2.3.0.pom -org.apache.xmlbeans/poms/xmlbeans-xpath-2.2.0.pom -org.apache.xmlbeans/poms/xmlbeans-qname-2.3.0.pom -org.apache.poi.DELETE/poms/poi-3.0-FINAL.pom diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/content/RepositoryRequestTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/content/RepositoryRequestTest.xml deleted file mode 100644 index b77b71142..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/content/RepositoryRequestTest.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configured - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - configured - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.xml deleted file mode 100644 index 0de938fa1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.repository.MockConfiguration - - - - org.apache.maven.archiva.repository.metadata.MetadataTools - org.apache.maven.archiva.repository.metadata.MetadataTools - MetadataTools - - - org.apache.maven.archiva.configuration.FileTypes - filetypes - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - configuration - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.xml deleted file mode 100644 index 72b797c20..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - mock - org.apache.maven.archiva.repository.MockConfiguration - - - - org.codehaus.plexus.cache.Cache - effective-project-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - Effective Project Cache - - 600 - true - ${java.io.tmpdir}/archiva/effectiveproject - true - 1000 - LRU - effective-project-cache - false - - - 2700 - - 1800 - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.xml deleted file mode 100644 index 57256f87d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.xml +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configured - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - configured - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - - org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer - update-db-artifact - org.apache.maven.archiva.repository.scanner.SampleKnownConsumer - - update-db-artifact - - - - org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer - create-missing-checksums - org.apache.maven.archiva.repository.scanner.SampleKnownConsumer - - create-missing-checksums - - - - org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer - update-db-repository-metadata - org.apache.maven.archiva.repository.scanner.SampleKnownConsumer - - update-db-repository-metadata - - - - org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer - validate-checksum - org.apache.maven.archiva.repository.scanner.SampleKnownConsumer - - validate-checksum - - - - org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer - index-content - org.apache.maven.archiva.repository.scanner.SampleKnownConsumer - - index-content - - - - org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer - auto-remove - org.apache.maven.archiva.repository.scanner.SampleKnownConsumer - - auto-remove - - - - org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer - auto-rename - org.apache.maven.archiva.repository.scanner.SampleKnownConsumer - - auto-rename - - - - org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer - available-but-unselected - org.apache.maven.archiva.repository.scanner.SampleKnownConsumer - - available-but-unselected - - - - - - org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer - update-db-bad-content - org.apache.maven.archiva.repository.scanner.InvalidScanConsumer - - update-db-bad-content - - - - org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer - move-to-trash-then-notify - org.apache.maven.archiva.repository.scanner.InvalidScanConsumer - - move-to-trash-then-notify - - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - test - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumersStub - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/scanner-archiva.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/scanner-archiva.xml deleted file mode 100644 index 13a884e14..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-repository-layer/src/test/resources/scanner-archiva.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/pom.xml deleted file mode 100644 index c9655ca90..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/pom.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - 4.0.0 - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - archiva-transaction - Archiva Transactions - API for managing transaction. - - - commons-io - commons-io - - - org.codehaus.plexus - plexus-digest - - - org.codehaus.plexus - plexus-spring - test - - - org.codehaus.plexus - plexus-utils - - - org.codehaus.plexus - plexus-component-api - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/AbstractTransactionEvent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/AbstractTransactionEvent.java deleted file mode 100644 index cb6d8886b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/AbstractTransactionEvent.java +++ /dev/null @@ -1,234 +0,0 @@ -package org.apache.maven.archiva.transaction; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.codehaus.plexus.digest.Digester; -import org.codehaus.plexus.digest.DigesterException; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * Abstract class for the TransactionEvents - * - * @author Edwin Punzalan - * @author Carlos Sanchez - * @version $Id$ - */ -public abstract class AbstractTransactionEvent - implements TransactionEvent -{ - private Map backups = new HashMap(); - - private List createdDirs = new ArrayList(); - - private List createdFiles = new ArrayList(); - - /** - * {@link List}<{@link Digester}> - */ - private List digesters; - - protected AbstractTransactionEvent() - { - this( new ArrayList( 0 ) ); - } - - protected AbstractTransactionEvent( List digesters ) - { - this.digesters = digesters; - } - - protected List getDigesters() - { - return digesters; - } - - /** - * Method that creates a directory as well as all the parent directories needed - * - * @param dir The File directory to be created - * @throws IOException when an unrecoverable error occurred - */ - protected void mkDirs( File dir ) - throws IOException - { - List createDirs = new ArrayList(); - - File parent = dir; - while ( !parent.exists() || !parent.isDirectory() ) - { - createDirs.add( parent ); - - parent = parent.getParentFile(); - } - - while ( !createDirs.isEmpty() ) - { - File directory = (File) createDirs.remove( createDirs.size() - 1 ); - - if ( directory.mkdir() ) - { - createdDirs.add( directory ); - } - else - { - throw new IOException( "Failed to create directory: " + directory.getAbsolutePath() ); - } - } - } - - protected void revertMkDirs() - throws IOException - { - if ( createdDirs != null ) - { - Collections.reverse( createdDirs ); - - while ( !createdDirs.isEmpty() ) - { - File dir = (File) createdDirs.remove( 0 ); - - if ( dir.isDirectory() && dir.list().length == 0 ) - { - FileUtils.deleteDirectory( dir ); - } - else - { - //cannot rollback created directory if it still contains files - break; - } - } - } - } - - protected void revertFilesCreated() - throws IOException - { - Iterator it = createdFiles.iterator(); - while ( it.hasNext() ) - { - File file = (File) it.next(); - file.delete(); - it.remove(); - } - } - - protected void createBackup( File file ) - throws IOException - { - if ( file.exists() && file.isFile() ) - { - File backup = File.createTempFile( "temp-", ".backup" ); - - FileUtils.copyFile( file, backup ); - - backup.deleteOnExit(); - - backups.put( file, backup ); - } - } - - protected void restoreBackups() - throws IOException - { - Iterator it = backups.entrySet().iterator(); - while ( it.hasNext() ) - { - Map.Entry entry = (Map.Entry) it.next(); - FileUtils.copyFile( (File) entry.getValue(), (File) entry.getKey() ); - } - } - - protected void restoreBackup( File file ) - throws IOException - { - File backup = (File) backups.get( file ); - if ( backup != null ) - { - FileUtils.copyFile( backup, file ); - } - } - - /** - * Create checksums of file using all digesters defined at construction time. - * - * @param file - * @param force whether existing checksums should be overwritten or not - * @throws IOException - */ - protected void createChecksums( File file, boolean force ) - throws IOException - { - Iterator it = getDigesters().iterator(); - while ( it.hasNext() ) - { - Digester digester = (Digester) it.next(); - File checksumFile = new File( file.getAbsolutePath() + "." + getDigesterFileExtension( digester ) ); - if ( checksumFile.exists() ) - { - if ( !force ) - { - continue; - } - createBackup( checksumFile ); - } - else - { - createdFiles.add( checksumFile ); - } - - try - { - writeStringToFile( checksumFile, digester.calc( file ) ); - } - catch ( DigesterException e ) - { - throw (IOException) e.getCause(); - } - } - } - - /** - * TODO: Remove in favor of using FileUtils directly. - */ - protected void writeStringToFile( File file, String content ) - throws IOException - { - FileUtils.writeStringToFile( file, content ); - } - - /** - * File extension for checksums - * TODO should be moved to plexus-digester ? - */ - protected String getDigesterFileExtension( Digester digester ) - { - return digester.getAlgorithm().toLowerCase().replaceAll( "-", "" ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/CopyFileEvent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/CopyFileEvent.java deleted file mode 100644 index 6261e8d8d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/CopyFileEvent.java +++ /dev/null @@ -1,119 +0,0 @@ -package org.apache.maven.archiva.transaction; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.codehaus.plexus.digest.Digester; - -import java.io.File; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; - -/** - * Event to copy a file. - * - * @author Brett Porter - * @author Carlos Sanchez - * @version $Id$ - */ -public class CopyFileEvent - extends AbstractTransactionEvent -{ - private final File source; - - private final File destination; - - /** - * - * @param source - * @param destination - * @param digesters {@link List}<{@link Digester}> digesters to use for checksumming - */ - public CopyFileEvent( File source, File destination, List digesters ) - { - super( digesters ); - this.source = source; - this.destination = destination; - } - - public void commit() - throws IOException - { - createBackup( destination ); - - mkDirs( destination.getParentFile() ); - - FileUtils.copyFile( source, destination ); - - createChecksums( destination, true ); - copyChecksums(); - - copyChecksum( "asc" ); - } - - /** - * Copy checksums of source file with all digesters if exist - * - * @throws IOException - */ - private void copyChecksums() - throws IOException - { - Iterator it = getDigesters().iterator(); - while ( it.hasNext() ) - { - Digester digester = (Digester) it.next(); - copyChecksum( getDigesterFileExtension( digester ) ); - } - } - - /** - * Copy checksum of source file with extension provided if exists - * - * @param extension - * @return whether the checksum exists or not - * @throws IOException - */ - private boolean copyChecksum( String extension ) - throws IOException - { - File checksumSource = new File( source.getAbsolutePath() + "." + extension ); - if ( checksumSource.exists() ) - { - File checksumDestination = new File( destination.getAbsolutePath() + "." + extension ); - FileUtils.copyFile( checksumSource, checksumDestination ); - return true; - } - return false; - } - - public void rollback() - throws IOException - { - destination.delete(); - - revertFilesCreated(); - - revertMkDirs(); - - restoreBackups(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/CreateFileEvent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/CreateFileEvent.java deleted file mode 100644 index 8cf0eb612..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/CreateFileEvent.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.apache.maven.archiva.transaction; - -/* - * 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; - -/** - * Event for creating a file from a string content. - * - * @author Brett Porter - * @author Carlos Sanchez - * @version $Id$ - */ -public class CreateFileEvent - extends AbstractTransactionEvent -{ - private final File destination; - - private final String content; - - /** - * - * @param content - * @param destination - * @param digesters {@link List}<{@link Digester}> digesters to use for checksumming - */ - public CreateFileEvent( String content, File destination, List digesters ) - { - super( digesters ); - this.content = content; - this.destination = destination; - } - - public void commit() - throws IOException - { - createBackup( destination ); - - mkDirs( destination.getParentFile() ); - - if ( !destination.exists() && !destination.createNewFile() ) - { - throw new IOException( "Unable to create new file" ); - } - - writeStringToFile( destination, content ); - - createChecksums( destination, true ); - } - - public void rollback() - throws IOException - { - destination.delete(); - - revertFilesCreated(); - - revertMkDirs(); - - restoreBackups(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/FileTransaction.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/FileTransaction.java deleted file mode 100644 index 11503fc87..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/FileTransaction.java +++ /dev/null @@ -1,100 +0,0 @@ -package org.apache.maven.archiva.transaction; - -/* - * 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.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * Implement commit/rollback semantics for a set of files. - * - * @author Brett Porter - */ -public class FileTransaction -{ - private List events = new ArrayList(); - - public void commit() - throws TransactionException - { - List toRollback = new ArrayList( events.size() ); - - for ( Iterator i = events.iterator(); i.hasNext(); ) - { - TransactionEvent event = (TransactionEvent) i.next(); - - try - { - event.commit(); - - toRollback.add( event ); - } - catch ( IOException e ) - { - try - { - rollback( toRollback ); - - throw new TransactionException( "Unable to commit file transaction", e ); - } - catch ( IOException ioe ) - { - throw new TransactionException( - "Unable to commit file transaction, and rollback failed with error: '" + ioe.getMessage() + "'", - e ); - } - } - } - } - - private void rollback( List toRollback ) - throws IOException - { - for ( Iterator i = toRollback.iterator(); i.hasNext(); ) - { - TransactionEvent event = (TransactionEvent) i.next(); - - event.rollback(); - } - } - - /** - * @param source - * @param destination - * @param digesters {@link List}<{@link org.codehaus.plexus.digest.Digester}> digesters to use for checksumming - */ - public void copyFile( File source, File destination, List digesters ) - { - events.add( new CopyFileEvent( source, destination, digesters ) ); - } - - /** - * @param content - * @param destination - * @param digesters {@link List}<{@link org.codehaus.plexus.digest.Digester}> digesters to use for checksumming - */ - public void createFile( String content, File destination, List digesters ) - { - events.add( new CreateFileEvent( content, destination, digesters ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/TransactionEvent.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/TransactionEvent.java deleted file mode 100644 index 94d3cb011..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/TransactionEvent.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.apache.maven.archiva.transaction; - -/* - * 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.IOException; - -/** - * Interface for individual events in a transaction. - * - * @author Brett Porter - */ -public interface TransactionEvent -{ - /** - * Commit this event. - * - * @throws IOException if an error occurred committing the change - */ - void commit() - throws IOException; - - /** - * Rollback the even already committed. - * - * @throws IOException if an error occurred reverting the change - */ - void rollback() - throws IOException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/TransactionException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/TransactionException.java deleted file mode 100644 index 6d5f40c75..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/main/java/org/apache/maven/archiva/transaction/TransactionException.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.maven.archiva.transaction; - -/* - * 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. - */ - -/** - * TransactionException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class TransactionException - extends Exception -{ - - public TransactionException() - { - } - - public TransactionException( String message ) - { - super( message ); - } - - public TransactionException( Throwable cause ) - { - super( cause ); - } - - public TransactionException( String message, Throwable cause ) - { - super( message, cause ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/AbstractFileEventTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/AbstractFileEventTest.java deleted file mode 100644 index 5e7064ec2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/AbstractFileEventTest.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.apache.maven.archiva.transaction; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.codehaus.plexus.spring.PlexusToSpringUtils; -import org.codehaus.plexus.digest.Digester; - -import java.io.File; -import java.io.IOException; -import java.util.List; - -/** - * - * @author Carlos Sanchez - * @version $Id$ - */ -public abstract class AbstractFileEventTest - extends PlexusInSpringTestCase -{ - protected List digesters; - - public void setUp() - throws Exception - { - super.setUp(); - - digesters = PlexusToSpringUtils.lookupList( PlexusToSpringUtils.buildSpringId( Digester.class.getName() ), getApplicationContext() ); - } - - protected void assertChecksumExists( File file, String algorithm ) - { - assertChecksum( file, algorithm, true ); - } - - protected void assertChecksumDoesNotExist( File file, String algorithm ) - { - assertChecksum( file, algorithm, false ); - } - - private void assertChecksum( File file, String algorithm, boolean exist ) - { - String msg = exist ? "exists" : "does not exist"; - File checksumFile = new File( file.getPath() + "." + algorithm ); - assertEquals( "Test file " + algorithm + " checksum " + msg, exist, checksumFile.exists() ); - } - - protected void assertChecksumCommit( File file ) - throws IOException - { - assertChecksumExists( file, "md5" ); - assertChecksumExists( file, "sha1" ); - } - - protected void assertChecksumRollback( File file ) - throws IOException - { - assertChecksumDoesNotExist( file, "md5" ); - assertChecksumDoesNotExist( file, "sha1" ); - } - - protected String readFile( File file ) - throws IOException - { - return FileUtils.readFileToString( file ); - } - - protected void writeFile( File file, String content ) - throws IOException - { - FileUtils.writeStringToFile( file, content ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/CopyFileEventTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/CopyFileEventTest.java deleted file mode 100644 index 252375c41..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/CopyFileEventTest.java +++ /dev/null @@ -1,179 +0,0 @@ -package org.apache.maven.archiva.transaction; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; - -import java.io.File; -import java.io.IOException; - -/** - * @author Edwin Punzalan - */ -public class CopyFileEventTest - extends AbstractFileEventTest -{ - private File testDir = new File( getBasedir(), "target/transaction-tests/copy-file" ); - - private File testDest = new File( testDir, "test-file.txt" ); - - private File testSource = new File( getBasedir(), "target/transaction-tests/test-file.txt" ); - - private File testDestChecksum; - - private String source, oldChecksum; - - public void setUp() - throws Exception - { - super.setUp(); - - testSource.getParentFile().mkdirs(); - - testSource.createNewFile(); - - writeFile( testSource, "source contents" ); - - testDestChecksum = new File( testDest.getPath() + ".sha1" ); - - testDestChecksum.getParentFile().mkdirs(); - - testDestChecksum.createNewFile(); - - writeFile( testDestChecksum, "this is the checksum" ); - - assertTrue( "Test if the source exists", testSource.exists() ); - - assertTrue( "Test if the destination checksum exists", testDestChecksum.exists() ); - - source = readFile( testSource ); - - oldChecksum = readFile( testDestChecksum ); - } - - public void testCopyCommitRollback() - throws Exception - { - CopyFileEvent event = new CopyFileEvent( testSource, testDest, digesters ); - - assertFalse( "Test that the destination is not yet created", testDest.exists() ); - - event.commit(); - - assertTrue( "Test that the destination is created", testDest.exists() ); - - assertChecksumCommit( testDest ); - - String target = readFile( testDest ); - - assertTrue( "Test that the destination contents are copied correctly", source.equals( target ) ); - - event.rollback(); - - assertFalse( "Test that the destination file has been deleted", testDest.exists() ); - - assertChecksumRollback( testDest ); - } - - public void testCopyCommitRollbackWithBackup() - throws Exception - { - testDest.getParentFile().mkdirs(); - - testDest.createNewFile(); - - writeFile( testDest, "overwritten contents" ); - - assertTrue( "Test that the destination exists", testDest.exists() ); - - CopyFileEvent event = new CopyFileEvent( testSource, testDest, digesters ); - - String target = readFile( testDest ); - - assertTrue( "Test that the destination contents have not changed", target.equals( "overwritten contents" ) ); - - event.commit(); - - target = readFile( testDest ); - - assertTrue( "Test that the destination contents are copied correctly", source.equals( target ) ); - - assertChecksumCommit( testDest ); - - event.rollback(); - - target = readFile( testDest ); - - assertTrue( "Test the destination file contents have been restored", target.equals( "overwritten contents" ) ); - - assertChecksumRollback( testDest ); - } - - public void testCreateRollbackCommit() - throws Exception - { - CopyFileEvent event = new CopyFileEvent( testSource, testDest, digesters ); - - assertFalse( "Test that the destination is not yet created", testDest.exists() ); - - event.rollback(); - - assertFalse( "Test that the destination file is not yet created", testDest.exists() ); - - event.commit(); - - assertTrue( "Test that the destination is created", testDest.exists() ); - - assertChecksumCommit( testDest ); - - String target = readFile( testDest ); - - assertTrue( "Test that the destination contents are copied correctly", source.equals( target ) ); - } - - protected void tearDown() - throws Exception - { - super.tearDown(); - - FileUtils.deleteDirectory( new File( getBasedir(), "target/transaction-tests" ) ); - } - - protected void assertChecksumCommit( File file ) - throws IOException - { - super.assertChecksumCommit( file ); - - String target = readFile( testDestChecksum ); - - assertFalse( "Test that the destination checksum contents are created correctly", oldChecksum.equals( target ) ); - } - - protected void assertChecksumRollback( File file ) - throws IOException - { - assertChecksumDoesNotExist( file, "md5" ); - assertChecksumExists( file, "sha1" ); - - String target = readFile( testDestChecksum ); - - assertEquals( "Test that the destination checksum contents are reverted correctly", oldChecksum, target ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/CreateFileEventTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/CreateFileEventTest.java deleted file mode 100644 index a212a0ee2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-transaction/src/test/java/org/apache/maven/archiva/transaction/CreateFileEventTest.java +++ /dev/null @@ -1,120 +0,0 @@ -package org.apache.maven.archiva.transaction; - -/* - * 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.io.FileUtils; - -/** - * @author Edwin Punzalan - */ -public class CreateFileEventTest - extends AbstractFileEventTest -{ - private File testDir = new File( getBasedir(), "target/transaction-tests/create-file" ); - - public void testCreateCommitRollback() - throws Exception - { - File testFile = new File( testDir, "test-file.txt" ); - - CreateFileEvent event = new CreateFileEvent( "file contents", testFile, digesters ); - - assertFalse( "Test file is not yet created", testFile.exists() ); - - event.commit(); - - assertTrue( "Test file has been created", testFile.exists() ); - - assertChecksumCommit( testFile ); - - event.rollback(); - - assertFalse( "Test file is has been deleted after rollback", testFile.exists() ); - - assertChecksumRollback( testFile ); - - assertFalse( "Test file parent directories has been rolledback too", testDir.exists() ); - assertTrue( "target directory still exists", new File( getBasedir(), "target" ).exists() ); - } - - public void testCreateCommitRollbackWithBackup() - throws Exception - { - File testFile = new File( testDir, "test-file.txt" ); - - testFile.getParentFile().mkdirs(); - - testFile.createNewFile(); - - writeFile( testFile, "original contents" ); - - CreateFileEvent event = new CreateFileEvent( "modified contents", testFile, digesters ); - - String contents = readFile( testFile ); - - assertEquals( "Test contents have not changed", "original contents", contents ); - - event.commit(); - - contents = readFile( testFile ); - - assertEquals( "Test contents have not changed", "modified contents", contents ); - - assertChecksumCommit( testFile ); - - event.rollback(); - - contents = readFile( testFile ); - - assertEquals( "Test contents have not changed", "original contents", contents ); - - assertChecksumRollback( testFile ); - } - - public void testCreateRollbackCommit() - throws Exception - { - File testFile = new File( testDir, "test-file.txt" ); - - CreateFileEvent event = new CreateFileEvent( "file contents", testFile, digesters ); - - assertFalse( "Test file is not yet created", testFile.exists() ); - - event.rollback(); - - assertFalse( "Test file is not yet created", testFile.exists() ); - - event.commit(); - - assertTrue( "Test file is not yet created", testFile.exists() ); - - assertChecksumCommit( testFile ); - } - - protected void tearDown() - throws Exception - { - super.tearDown(); - - FileUtils.deleteDirectory( new File( getBasedir(), "target/transaction-tests" ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/pom.xml deleted file mode 100644 index 80177618d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/pom.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - org.apache.archiva - archiva-base - 1.2-SNAPSHOT - - 4.0.0 - archiva-xml-tools - Archiva Base :: XML Tools - - - org.apache.archiva - archiva-common - - - commons-collections - commons-collections - - - commons-io - commons-io - - - dom4j - dom4j - - - jaxen - jaxen - - - org.codehaus.plexus - plexus-utils - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/ElementTextListClosure.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/ElementTextListClosure.java deleted file mode 100644 index e827bfa34..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/ElementTextListClosure.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.apache.maven.archiva.xml; - -/* - * 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.collections.Closure; -import org.dom4j.Element; - -import java.util.ArrayList; -import java.util.List; - -/** - * Gather the text from a collection of {@link Element}'s into a {@link List} - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ElementTextListClosure - implements Closure -{ - private List list = new ArrayList(); - - public void execute( Object input ) - { - if ( input instanceof Element ) - { - Element elem = (Element) input; - list.add( elem.getTextTrim() ); - } - } - - public List getList() - { - return list; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/LatinEntities.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/LatinEntities.java deleted file mode 100644 index 46622b455..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/LatinEntities.java +++ /dev/null @@ -1,327 +0,0 @@ -package org.apache.maven.archiva.xml; - -/* - * 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.HashMap; -import java.util.Map; - -/** - * LatinEntities - simple utility class to handle latin entity conversion. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class LatinEntities -{ - private static final Map defaultEntityMap; - - static - { - defaultEntityMap = new HashMap(); - - defaultEntityMap.put( "nbsp", "\u00a0" ); - defaultEntityMap.put( "iexcl", "\u00a1" ); - defaultEntityMap.put( "cent", "\u00a2" ); - defaultEntityMap.put( "pound", "\u00a3" ); - defaultEntityMap.put( "curren", "\u00a4" ); - defaultEntityMap.put( "yen", "\u00a5" ); - defaultEntityMap.put( "brvbar", "\u00a6" ); - defaultEntityMap.put( "sect", "\u00a7" ); - defaultEntityMap.put( "uml", "\u00a8" ); - defaultEntityMap.put( "copy", "\u00a9" ); - defaultEntityMap.put( "ordf", "\u00aa" ); - defaultEntityMap.put( "laquo", "\u00ab" ); - defaultEntityMap.put( "not", "\u00ac" ); - defaultEntityMap.put( "shy", "\u00ad" ); - defaultEntityMap.put( "reg", "\u00ae" ); - defaultEntityMap.put( "macr", "\u00af" ); - defaultEntityMap.put( "deg", "\u00b0" ); - defaultEntityMap.put( "plusmn", "\u00b1" ); - defaultEntityMap.put( "sup2", "\u00b2" ); - defaultEntityMap.put( "sup3", "\u00b3" ); - defaultEntityMap.put( "acute", "\u00b4" ); - defaultEntityMap.put( "micro", "\u00b5" ); - defaultEntityMap.put( "para", "\u00b6" ); - defaultEntityMap.put( "middot", "\u00b7" ); - defaultEntityMap.put( "cedil", "\u00b8" ); - defaultEntityMap.put( "sup1", "\u00b9" ); - defaultEntityMap.put( "ordm", "\u00ba" ); - defaultEntityMap.put( "raquo", "\u00bb" ); - defaultEntityMap.put( "frac14", "\u00bc" ); - defaultEntityMap.put( "frac12", "\u00bd" ); - defaultEntityMap.put( "frac34", "\u00be" ); - defaultEntityMap.put( "iquest", "\u00bf" ); - defaultEntityMap.put( "Agrave", "\u00c0" ); - defaultEntityMap.put( "Aacute", "\u00c1" ); - defaultEntityMap.put( "Acirc", "\u00c2" ); - defaultEntityMap.put( "Atilde", "\u00c3" ); - defaultEntityMap.put( "Auml", "\u00c4" ); - defaultEntityMap.put( "Aring", "\u00c5" ); - defaultEntityMap.put( "AElig", "\u00c6" ); - defaultEntityMap.put( "Ccedil", "\u00c7" ); - defaultEntityMap.put( "Egrave", "\u00c8" ); - defaultEntityMap.put( "Eacute", "\u00c9" ); - defaultEntityMap.put( "Ecirc", "\u00ca" ); - defaultEntityMap.put( "Euml", "\u00cb" ); - defaultEntityMap.put( "Igrave", "\u00cc" ); - defaultEntityMap.put( "Iacute", "\u00cd" ); - defaultEntityMap.put( "Icirc", "\u00ce" ); - defaultEntityMap.put( "Iuml", "\u00cf" ); - defaultEntityMap.put( "ETH", "\u00d0" ); - defaultEntityMap.put( "Ntilde", "\u00d1" ); - defaultEntityMap.put( "Ograve", "\u00d2" ); - defaultEntityMap.put( "Oacute", "\u00d3" ); - defaultEntityMap.put( "Ocirc", "\u00d4" ); - defaultEntityMap.put( "Otilde", "\u00d5" ); - defaultEntityMap.put( "Ouml", "\u00d6" ); - defaultEntityMap.put( "times", "\u00d7" ); - defaultEntityMap.put( "Oslash", "\u00d8" ); - defaultEntityMap.put( "Ugrave", "\u00d9" ); - defaultEntityMap.put( "Uacute", "\u00da" ); - defaultEntityMap.put( "Ucirc", "\u00db" ); - defaultEntityMap.put( "Uuml", "\u00dc" ); - defaultEntityMap.put( "Yacute", "\u00dd" ); - defaultEntityMap.put( "THORN", "\u00de" ); - defaultEntityMap.put( "szlig", "\u00df" ); - defaultEntityMap.put( "agrave", "\u00e0" ); - defaultEntityMap.put( "aacute", "\u00e1" ); - defaultEntityMap.put( "acirc", "\u00e2" ); - defaultEntityMap.put( "atilde", "\u00e3" ); - defaultEntityMap.put( "auml", "\u00e4" ); - defaultEntityMap.put( "aring", "\u00e5" ); - defaultEntityMap.put( "aelig", "\u00e6" ); - defaultEntityMap.put( "ccedil", "\u00e7" ); - defaultEntityMap.put( "egrave", "\u00e8" ); - defaultEntityMap.put( "eacute", "\u00e9" ); - defaultEntityMap.put( "ecirc", "\u00ea" ); - defaultEntityMap.put( "euml", "\u00eb" ); - defaultEntityMap.put( "igrave", "\u00ec" ); - defaultEntityMap.put( "iacute", "\u00ed" ); - defaultEntityMap.put( "icirc", "\u00ee" ); - defaultEntityMap.put( "iuml", "\u00ef" ); - defaultEntityMap.put( "eth", "\u00f0" ); - defaultEntityMap.put( "ntilde", "\u00f1" ); - defaultEntityMap.put( "ograve", "\u00f2" ); - defaultEntityMap.put( "oacute", "\u00f3" ); - defaultEntityMap.put( "ocirc", "\u00f4" ); - defaultEntityMap.put( "otilde", "\u00f5" ); - defaultEntityMap.put( "ouml", "\u00f6" ); - defaultEntityMap.put( "divide", "\u00f7" ); - defaultEntityMap.put( "oslash", "\u00f8" ); - defaultEntityMap.put( "ugrave", "\u00f9" ); - defaultEntityMap.put( "uacute", "\u00fa" ); - defaultEntityMap.put( "ucirc", "\u00fb" ); - defaultEntityMap.put( "uuml", "\u00fc" ); - defaultEntityMap.put( "yacute", "\u00fd" ); - defaultEntityMap.put( "thorn", "\u00fe" ); - defaultEntityMap.put( "yuml", "\u00ff" ); - - // ---------------------------------------------------------------------- - // Special entities - // ---------------------------------------------------------------------- - - defaultEntityMap.put( "OElig", "\u0152" ); - defaultEntityMap.put( "oelig", "\u0153" ); - defaultEntityMap.put( "Scaron", "\u0160" ); - defaultEntityMap.put( "scaron", "\u0161" ); - defaultEntityMap.put( "Yuml", "\u0178" ); - defaultEntityMap.put( "circ", "\u02c6" ); - defaultEntityMap.put( "tilde", "\u02dc" ); - defaultEntityMap.put( "ensp", "\u2002" ); - defaultEntityMap.put( "emsp", "\u2003" ); - defaultEntityMap.put( "thinsp", "\u2009" ); - defaultEntityMap.put( "zwnj", "\u200c" ); - defaultEntityMap.put( "zwj", "\u200d" ); - defaultEntityMap.put( "lrm", "\u200e" ); - defaultEntityMap.put( "rlm", "\u200f" ); - defaultEntityMap.put( "ndash", "\u2013" ); - defaultEntityMap.put( "mdash", "\u2014" ); - defaultEntityMap.put( "lsquo", "\u2018" ); - defaultEntityMap.put( "rsquo", "\u2019" ); - defaultEntityMap.put( "sbquo", "\u201a" ); - defaultEntityMap.put( "ldquo", "\u201c" ); - defaultEntityMap.put( "rdquo", "\u201d" ); - defaultEntityMap.put( "bdquo", "\u201e" ); - defaultEntityMap.put( "dagger", "\u2020" ); - defaultEntityMap.put( "Dagger", "\u2021" ); - defaultEntityMap.put( "permil", "\u2030" ); - defaultEntityMap.put( "lsaquo", "\u2039" ); - defaultEntityMap.put( "rsaquo", "\u203a" ); - defaultEntityMap.put( "euro", "\u20ac" ); - - // ---------------------------------------------------------------------- - // Symbol entities - // ---------------------------------------------------------------------- - - defaultEntityMap.put( "fnof", "\u0192" ); - defaultEntityMap.put( "Alpha", "\u0391" ); - defaultEntityMap.put( "Beta", "\u0392" ); - defaultEntityMap.put( "Gamma", "\u0393" ); - defaultEntityMap.put( "Delta", "\u0394" ); - defaultEntityMap.put( "Epsilon", "\u0395" ); - defaultEntityMap.put( "Zeta", "\u0396" ); - defaultEntityMap.put( "Eta", "\u0397" ); - defaultEntityMap.put( "Theta", "\u0398" ); - defaultEntityMap.put( "Iota", "\u0399" ); - defaultEntityMap.put( "Kappa", "\u039a" ); - defaultEntityMap.put( "Lambda", "\u039b" ); - defaultEntityMap.put( "Mu", "\u039c" ); - defaultEntityMap.put( "Nu", "\u039d" ); - defaultEntityMap.put( "Xi", "\u039e" ); - defaultEntityMap.put( "Omicron", "\u039f" ); - defaultEntityMap.put( "Pi", "\u03a0" ); - defaultEntityMap.put( "Rho", "\u03a1" ); - defaultEntityMap.put( "Sigma", "\u03a3" ); - defaultEntityMap.put( "Tau", "\u03a4" ); - defaultEntityMap.put( "Upsilon", "\u03a5" ); - defaultEntityMap.put( "Phi", "\u03a6" ); - defaultEntityMap.put( "Chi", "\u03a7" ); - defaultEntityMap.put( "Psi", "\u03a8" ); - defaultEntityMap.put( "Omega", "\u03a9" ); - defaultEntityMap.put( "alpha", "\u03b1" ); - defaultEntityMap.put( "beta", "\u03b2" ); - defaultEntityMap.put( "gamma", "\u03b3" ); - defaultEntityMap.put( "delta", "\u03b4" ); - defaultEntityMap.put( "epsilon", "\u03b5" ); - defaultEntityMap.put( "zeta", "\u03b6" ); - defaultEntityMap.put( "eta", "\u03b7" ); - defaultEntityMap.put( "theta", "\u03b8" ); - defaultEntityMap.put( "iota", "\u03b9" ); - defaultEntityMap.put( "kappa", "\u03ba" ); - defaultEntityMap.put( "lambda", "\u03bb" ); - defaultEntityMap.put( "mu", "\u03bc" ); - defaultEntityMap.put( "nu", "\u03bd" ); - defaultEntityMap.put( "xi", "\u03be" ); - defaultEntityMap.put( "omicron", "\u03bf" ); - defaultEntityMap.put( "pi", "\u03c0" ); - defaultEntityMap.put( "rho", "\u03c1" ); - defaultEntityMap.put( "sigmaf", "\u03c2" ); - defaultEntityMap.put( "sigma", "\u03c3" ); - defaultEntityMap.put( "tau", "\u03c4" ); - defaultEntityMap.put( "upsilon", "\u03c5" ); - defaultEntityMap.put( "phi", "\u03c6" ); - defaultEntityMap.put( "chi", "\u03c7" ); - defaultEntityMap.put( "psi", "\u03c8" ); - defaultEntityMap.put( "omega", "\u03c9" ); - defaultEntityMap.put( "thetasym", "\u03d1" ); - defaultEntityMap.put( "upsih", "\u03d2" ); - defaultEntityMap.put( "piv", "\u03d6" ); - defaultEntityMap.put( "bull", "\u2022" ); - defaultEntityMap.put( "hellip", "\u2026" ); - defaultEntityMap.put( "prime", "\u2032" ); - defaultEntityMap.put( "Prime", "\u2033" ); - defaultEntityMap.put( "oline", "\u203e" ); - defaultEntityMap.put( "frasl", "\u2044" ); - defaultEntityMap.put( "weierp", "\u2118" ); - defaultEntityMap.put( "image", "\u2111" ); - defaultEntityMap.put( "real", "\u211c" ); - defaultEntityMap.put( "trade", "\u2122" ); - defaultEntityMap.put( "alefsym", "\u2135" ); - defaultEntityMap.put( "larr", "\u2190" ); - defaultEntityMap.put( "uarr", "\u2191" ); - defaultEntityMap.put( "rarr", "\u2192" ); - defaultEntityMap.put( "darr", "\u2193" ); - defaultEntityMap.put( "harr", "\u2194" ); - defaultEntityMap.put( "crarr", "\u21b5" ); - defaultEntityMap.put( "lArr", "\u21d0" ); - defaultEntityMap.put( "uArr", "\u21d1" ); - defaultEntityMap.put( "rArr", "\u21d2" ); - defaultEntityMap.put( "dArr", "\u21d3" ); - defaultEntityMap.put( "hArr", "\u21d4" ); - defaultEntityMap.put( "forall", "\u2200" ); - defaultEntityMap.put( "part", "\u2202" ); - defaultEntityMap.put( "exist", "\u2203" ); - defaultEntityMap.put( "empty", "\u2205" ); - defaultEntityMap.put( "nabla", "\u2207" ); - defaultEntityMap.put( "isin", "\u2208" ); - defaultEntityMap.put( "notin", "\u2209" ); - defaultEntityMap.put( "ni", "\u220b" ); - defaultEntityMap.put( "prod", "\u220f" ); - defaultEntityMap.put( "sum", "\u2211" ); - defaultEntityMap.put( "minus", "\u2212" ); - defaultEntityMap.put( "lowast", "\u2217" ); - defaultEntityMap.put( "radic", "\u221a" ); - defaultEntityMap.put( "prop", "\u221d" ); - defaultEntityMap.put( "infin", "\u221e" ); - defaultEntityMap.put( "ang", "\u2220" ); - defaultEntityMap.put( "and", "\u2227" ); - defaultEntityMap.put( "or", "\u2228" ); - defaultEntityMap.put( "cap", "\u2229" ); - defaultEntityMap.put( "cup", "\u222a" ); - defaultEntityMap.put( "int", "\u222b" ); - defaultEntityMap.put( "there4", "\u2234" ); - defaultEntityMap.put( "sim", "\u223c" ); - defaultEntityMap.put( "cong", "\u2245" ); - defaultEntityMap.put( "asymp", "\u2248" ); - defaultEntityMap.put( "ne", "\u2260" ); - defaultEntityMap.put( "equiv", "\u2261" ); - defaultEntityMap.put( "le", "\u2264" ); - defaultEntityMap.put( "ge", "\u2265" ); - defaultEntityMap.put( "sub", "\u2282" ); - defaultEntityMap.put( "sup", "\u2283" ); - defaultEntityMap.put( "nsub", "\u2284" ); - defaultEntityMap.put( "sube", "\u2286" ); - defaultEntityMap.put( "supe", "\u2287" ); - defaultEntityMap.put( "oplus", "\u2295" ); - defaultEntityMap.put( "otimes", "\u2297" ); - defaultEntityMap.put( "perp", "\u22a5" ); - defaultEntityMap.put( "sdot", "\u22c5" ); - defaultEntityMap.put( "lceil", "\u2308" ); - defaultEntityMap.put( "rceil", "\u2309" ); - defaultEntityMap.put( "lfloor", "\u230a" ); - defaultEntityMap.put( "rfloor", "\u230b" ); - defaultEntityMap.put( "lang", "\u2329" ); - defaultEntityMap.put( "rang", "\u232a" ); - defaultEntityMap.put( "loz", "\u25ca" ); - defaultEntityMap.put( "spades", "\u2660" ); - defaultEntityMap.put( "clubs", "\u2663" ); - defaultEntityMap.put( "hearts", "\u2665" ); - defaultEntityMap.put( "diams", "\u2666" ); - } - - public static String resolveEntity( String entity ) - { - if ( entity == null ) - { - // Invalid. null. - return entity; - } - - if ( entity.trim().length() <= 0 ) - { - // Invalid. empty. - return entity; - } - - if ( !( entity.charAt( 0 ) == '&' ) && ( entity.charAt( entity.length() ) == ';' ) ) - { - // Invalid, not an entity. - return entity; - } - - String result = (String) defaultEntityMap.get( entity.substring( 1, entity.length() - 1 ) ); - if ( result == null ) - { - return entity; - } - - return result; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/LatinEntityResolutionReader.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/LatinEntityResolutionReader.java deleted file mode 100644 index 1146ae7fb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/LatinEntityResolutionReader.java +++ /dev/null @@ -1,190 +0,0 @@ -package org.apache.maven.archiva.xml; - -/* - * 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.BufferedReader; -import java.io.IOException; -import java.io.Reader; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * LatinEntityResolutionReader - Read a Character Stream. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class LatinEntityResolutionReader - extends Reader -{ - private BufferedReader originalReader; - - private char leftover[]; - - private Pattern entityPattern; - - public LatinEntityResolutionReader( Reader reader ) - { - this.originalReader = new BufferedReader( reader ); - this.entityPattern = Pattern.compile( "\\&[a-zA-Z]+\\;" ); - } - - /** - * Read characters into a portion of an array. This method will block until some input is available, - * an I/O error occurs, or the end of the stream is reached. - * - * @param destbuf Destination buffer - * @param offset Offset (in destination buffer) at which to start storing characters - * @param length Maximum number of characters to read - * @return The number of characters read, or -1 if the end of the stream has been reached - * @throws IOException if an I/O error occurs. - */ - public int read( char[] destbuf, int offset, int length ) - throws IOException - { - int tmp_length; - int current_requested_offset = offset; - int current_requested_length = length; - - // Drain leftover from last read request. - if ( leftover != null ) - { - if ( leftover.length > length ) - { - // Copy partial leftover. - System.arraycopy( leftover, 0, destbuf, current_requested_offset, length ); - - // Create new leftover of remaining. - char tmp[] = new char[length]; - System.arraycopy( leftover, length, tmp, 0, length ); - leftover = new char[tmp.length]; - System.arraycopy( tmp, 0, leftover, 0, length ); - - // Return len - return length; - } - else - { - tmp_length = leftover.length; - - // Copy full leftover - System.arraycopy( leftover, 0, destbuf, current_requested_offset, tmp_length ); - - // Empty out leftover (as there is now none left) - leftover = null; - - // Adjust offset and lengths. - current_requested_offset += tmp_length; - current_requested_length -= tmp_length; - } - } - - StringBuffer sbuf = getExpandedBuffer( current_requested_length ); - - // Have we reached the end of the buffer? - if ( sbuf == null ) - { - // Do we have content? - if ( current_requested_offset > offset ) - { - // Signal that we do, by calculating length. - return ( current_requested_offset - offset ); - } - - // No content. signal end of buffer. - return -1; - } - - // Copy from expanded buf whatever length we can accomodate. - tmp_length = Math.min( sbuf.length(), current_requested_length ); - sbuf.getChars( 0, tmp_length, destbuf, current_requested_offset ); - - // Create the leftover (if any) - if ( tmp_length < sbuf.length() ) - { - leftover = new char[sbuf.length() - tmp_length]; - sbuf.getChars( tmp_length, tmp_length + leftover.length, leftover, 0 ); - } - - // Calculate Actual Length and return. - return ( current_requested_offset - offset ) + tmp_length; - } - - private StringBuffer getExpandedBuffer( int minimum_length ) - throws IOException - { - StringBuffer buf = null; - String line = this.originalReader.readLine(); - boolean done = ( line == null ); - - while ( !done ) - { - if ( buf == null ) - { - buf = new StringBuffer(); - } - - buf.append( expandLine( line ) ); - - // Add newline only if there is more data. - if ( this.originalReader.ready() ) - { - buf.append( "\n" ); - } - - if ( buf.length() > minimum_length ) - { - done = true; - } - else - { - line = this.originalReader.readLine(); - done = ( line == null ); - } - } - - return buf; - } - - private String expandLine( String line ) - { - StringBuffer ret = new StringBuffer(); - - int offset = 0; - String entity; - Matcher mat = this.entityPattern.matcher( line ); - while ( mat.find( offset ) ) - { - ret.append( line.substring( offset, mat.start() ) ); - entity = mat.group(); - ret.append( LatinEntities.resolveEntity( entity ) ); - offset = mat.start() + entity.length(); - } - ret.append( line.substring( offset ) ); - - return ret.toString(); - } - - public void close() - throws IOException - { - this.originalReader.close(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLException.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLException.java deleted file mode 100644 index 1c450cf32..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLException.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.apache.maven.archiva.xml; - -/* - * 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; - -/** - * XMLException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class XMLException extends ArchivaException -{ - public XMLException( String message, Throwable cause ) - { - super( message, cause ); - } - - public XMLException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLReader.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLReader.java deleted file mode 100644 index f597499e8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLReader.java +++ /dev/null @@ -1,331 +0,0 @@ -package org.apache.maven.archiva.xml; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; -import org.dom4j.Attribute; -import org.dom4j.Document; -import org.dom4j.DocumentException; -import org.dom4j.Element; -import org.dom4j.Namespace; -import org.dom4j.Node; -import org.dom4j.QName; -import org.dom4j.XPath; -import org.dom4j.io.SAXReader; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * XMLReader - a set of common xml utility methods for reading content out of an xml file. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class XMLReader -{ - private URL xmlUrl; - - private String documentType; - - private Document document; - - private Map namespaceMap = new HashMap(); - - public XMLReader( String type, File file ) - throws XMLException - { - if ( !file.exists() ) - { - throw new XMLException( "file does not exist: " + file.getAbsolutePath() ); - } - - if ( !file.isFile() ) - { - throw new XMLException( "path is not a file: " + file.getAbsolutePath() ); - } - - if ( !file.canRead() ) - { - throw new XMLException( "Cannot read xml file due to permissions: " + file.getAbsolutePath() ); - } - - try - { - init( type, file.toURL() ); - } - catch ( MalformedURLException e ) - { - throw new XMLException( "Unable to translate file " + file + " to URL: " + e.getMessage(), e ); - } - } - - public XMLReader( String type, URL url ) - throws XMLException - { - init( type, url ); - } - - private void init( String type, URL url ) - throws XMLException - { - this.documentType = type; - this.xmlUrl = url; - - InputStream in = null; - SAXReader reader = new SAXReader(); - - try - { - in = url.openStream(); - InputStreamReader inReader = new InputStreamReader( in, "UTF-8" ); - LatinEntityResolutionReader latinReader = new LatinEntityResolutionReader( inReader ); - this.document = reader.read( latinReader ); - } - catch ( DocumentException e ) - { - throw new XMLException( "Unable to parse " + documentType + " xml " + xmlUrl + ": " + e.getMessage(), e ); - } - catch ( IOException e ) - { - throw new XMLException( "Unable to open stream to " + url + ": " + e.getMessage(), e ); - } - finally - { - IOUtils.closeQuietly( in ); - } - - Element root = this.document.getRootElement(); - if ( root == null ) - { - throw new XMLException( "Invalid " + documentType + " xml: root element is null." ); - } - - if ( !StringUtils.equals( root.getName(), documentType ) ) - { - throw new XMLException( "Invalid " + documentType + " xml: Unexpected root element <" + root.getName() - + ">, expected <" + documentType + ">" ); - } - } - - public String getDefaultNamespaceURI() - { - Namespace namespace = this.document.getRootElement().getNamespace(); - return namespace.getURI(); - } - - public void addNamespaceMapping( String elementName, String uri ) - { - this.namespaceMap.put( elementName, uri ); - } - - public Element getElement( String xpathExpr ) - throws XMLException - { - XPath xpath = createXPath( xpathExpr ); - Object evaluated = xpath.selectSingleNode( document ); - - if ( evaluated == null ) - { - return null; - } - - if ( evaluated instanceof Element ) - { - Element evalElem = (Element) evaluated; - return evalElem; - } - else - { - // Unknown evaluated type. - throw new XMLException( ".getElement( Expr: " + xpathExpr + " ) resulted in non-Element type -> (" - + evaluated.getClass().getName() + ") " + evaluated ); - } - } - - private XPath createXPath( String xpathExpr ) - { - XPath xpath = document.createXPath( xpathExpr ); - if ( !this.namespaceMap.isEmpty() ) - { - xpath.setNamespaceURIs( this.namespaceMap ); - } - return xpath; - } - - public boolean hasElement( String xpathExpr ) - throws XMLException - { - XPath xpath = createXPath( xpathExpr ); - Object evaluated = xpath.selectSingleNode( document ); - - if ( evaluated == null ) - { - return false; - } - - return true; - } - - /** - * Remove namespaces from entire document. - */ - public void removeNamespaces() - { - removeNamespaces( this.document.getRootElement() ); - } - - /** - * Remove namespaces from element recursively. - */ - public void removeNamespaces( Element elem ) - { - elem.setQName( QName.get( elem.getName(), Namespace.NO_NAMESPACE, elem.getQualifiedName() ) ); - - Node n; - - Iterator it = elem.elementIterator(); - while ( it.hasNext() ) - { - n = it.next(); - - switch ( n.getNodeType() ) - { - case Node.ATTRIBUTE_NODE: - ( (Attribute) n ).setNamespace( Namespace.NO_NAMESPACE ); - break; - case Node.ELEMENT_NODE: - removeNamespaces( (Element) n ); - break; - } - } - } - - public String getElementText( Node context, String xpathExpr ) - throws XMLException - { - XPath xpath = createXPath( xpathExpr ); - Object evaluated = xpath.selectSingleNode( context ); - - if ( evaluated == null ) - { - return null; - } - - if ( evaluated instanceof Element ) - { - Element evalElem = (Element) evaluated; - return evalElem.getTextTrim(); - } - else - { - // Unknown evaluated type. - throw new XMLException( ".getElementText( Node, Expr: " + xpathExpr - + " ) resulted in non-Element type -> (" + evaluated.getClass().getName() + ") " + evaluated ); - } - } - - public String getElementText( String xpathExpr ) - throws XMLException - { - XPath xpath = createXPath( xpathExpr ); - Object evaluated = xpath.selectSingleNode( document ); - - if ( evaluated == null ) - { - return null; - } - - if ( evaluated instanceof Element ) - { - Element evalElem = (Element) evaluated; - return evalElem.getTextTrim(); - } - else - { - // Unknown evaluated type. - throw new XMLException( ".getElementText( Expr: " + xpathExpr + " ) resulted in non-Element type -> (" - + evaluated.getClass().getName() + ") " + evaluated ); - } - } - - public List getElementList( String xpathExpr ) - throws XMLException - { - XPath xpath = createXPath( xpathExpr ); - Object evaluated = xpath.evaluate( document ); - - if ( evaluated == null ) - { - return null; - } - - /* The xpath.evaluate(Context) method can return: - * 1) A Collection or List of dom4j Nodes. - * 2) A single dom4j Node. - */ - - if ( evaluated instanceof List ) - { - return (List) evaluated; - } - else if ( evaluated instanceof Node ) - { - List ret = new ArrayList(); - ret.add( (Element) evaluated ); - return ret; - } - else - { - // Unknown evaluated type. - throw new XMLException( ".getElementList( Expr: " + xpathExpr + " ) resulted in non-List type -> (" - + evaluated.getClass().getName() + ") " + evaluated ); - } - } - - public List getElementListText( String xpathExpr ) - throws XMLException - { - List elemList = getElementList( xpathExpr ); - if ( elemList == null ) - { - return null; - } - - List ret = new ArrayList(); - for ( Iterator iter = elemList.iterator(); iter.hasNext(); ) - { - Element listelem = iter.next(); - ret.add( listelem.getTextTrim() ); - } - return ret; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLWriter.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLWriter.java deleted file mode 100644 index 9af8c2b94..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLWriter.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.apache.maven.archiva.xml; - -/* - * 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.dom4j.Document; -import org.dom4j.io.OutputFormat; - -import java.io.IOException; -import java.io.Writer; - -/** - * XMLWriter - Making writing XML files easier. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class XMLWriter -{ - /** - * Write the Document to the provided Writer, leaving the Writer open. - * - * @param doc the document to write. - * @param writer the writer to write to. - * @throws XMLException if there was a problem writing the xml to the writer. - */ - public static void write( Document doc, Writer writer ) - throws XMLException - { - write( doc, writer, false ); - } - - /** - * Write the Document to the provided Writer, with an option to close the writer upon completion. - * - * @param doc the document to write. - * @param writer the writer to write to. - * @param close true to close the writer on completion. - * @throws XMLException if there was a problem writing the xml to the writer. - */ - public static void write( Document doc, Writer writer, boolean close ) - throws XMLException - { - org.dom4j.io.XMLWriter xmlwriter = null; - - try - { - OutputFormat outputFormat = OutputFormat.createPrettyPrint(); - xmlwriter = new org.dom4j.io.XMLWriter( writer, outputFormat ); - xmlwriter.write( doc ); - xmlwriter.flush(); - } - catch ( IOException e ) - { - throw new XMLException( "Unable to write xml contents to writer: " + e.getMessage(), e ); - } - finally - { - if ( close && ( xmlwriter != null ) ) - { - try - { - xmlwriter.close(); - } - catch ( IOException e ) - { - /* quietly ignore */ - } - } - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/commons-codec-1.2.pom b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/commons-codec-1.2.pom deleted file mode 100644 index 0ff5e43a1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/commons-codec-1.2.pom +++ /dev/null @@ -1,113 +0,0 @@ - - 4.0.0 - commons-codec - commons-codec - Codec - 1.2 - The codec package contains simple encoder and decoders for - various formats such as Base64 and Hexadecimal. In addition to these - widely used encoders and decoders, the codec package also maintains a - collection of phonetic encoding utilities. - - http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Commons&component=Codec&short_desc=&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time - - 2002 - - - bayard - Henri Yandell - bayard@generationjava.com - - - tobrien - Tim OBrien - tobrien@apache.org - -6 - - - sanders - Scott Sanders - sanders@totalsync.com - - - rwaldhoff - Rodney Waldhoff - rwaldhoff@apache.org - - - dlr - Daniel Rall - dlr@finemaltcoding.com - - - jon - Jon S. Stevens - jon@collab.net - - - ggregory - Gary D. Gregory - ggregory@seagullsw.com - SEAGULL Software - - Java Developer - - - - dgraham - David Graham - dgraham@apache.org - - - - - Christopher O'Brien - siege@preoccupied.net - - - Martin Redington - - - Jeffery Dever - - - Steve Zimmermann - steve.zimmermann@heii.com - - - Benjamin Walstrum - ben@walstrum.com - - - Oleg Kalnichevski - oleg@ural.ru - - - Dave Dribin - apache@dave.dribin.org - - - - - - ${pom.build.unitTestSourceDirectory} - - **/*.xml - - - - - - maven-surefire-plugin - - - **/*Test.java - - - **/*AbstractTest.java - - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-basic.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-basic.xml deleted file mode 100644 index 8f5e76887..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-basic.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - apple - - - - - - peach - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-with-entities.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-with-entities.xml deleted file mode 100644 index 1c80613bf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-with-entities.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - Trygve Laugstøl - The ∞ Archiva - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-with-utf8.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-with-utf8.xml deleted file mode 100644 index c6fd4015b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/no-prolog-with-utf8.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - Trygve Laugstøl - The ∞ Archiva - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/prolog-with-utf8.xml b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/prolog-with-utf8.xml deleted file mode 100644 index 3bc319199..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/examples/prolog-with-utf8.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - Trygve Laugstøl - The ∞ Archiva - - diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/AbstractArchivaXmlTestCase.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/AbstractArchivaXmlTestCase.java deleted file mode 100644 index 7fd49274a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/AbstractArchivaXmlTestCase.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.apache.maven.archiva.xml; - -/* - * 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 junit.framework.TestCase; - -/** - * AbstractArchivaXmlTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractArchivaXmlTestCase - extends TestCase -{ - protected static final String OSLASH = "\u00f8"; - protected static final String TRYGVIS = "Trygve Laugst" + OSLASH + "l"; - protected static final String INFIN = "\u221e"; - protected static final String INFINITE_ARCHIVA = "The " + INFIN + " Archiva"; - - protected File getExampleXml( String filename ) - { - File examplesDir = new File( "src/test/examples" ); - if ( !examplesDir.exists() ) - { - fail( "Missing the examples directory: " + examplesDir.getAbsolutePath() ); - } - File exampleFile = new File( examplesDir, filename ); - if ( !exampleFile.exists() ) - { - fail( "Missing the example xml file: " + exampleFile.getAbsolutePath() ); - } - return exampleFile; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/LatinEntitiesTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/LatinEntitiesTest.java deleted file mode 100644 index b8a01b3de..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/LatinEntitiesTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.apache.maven.archiva.xml; - -/* - * 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 junit.framework.TestCase; - -/** - * LatinEntitiesTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class LatinEntitiesTest - extends TestCase -{ - public void testResolveEntity() - { - // Good Entities. - assertEquals( "\u00a9", LatinEntities.resolveEntity( "©" ) ); - assertEquals( "\u221e", LatinEntities.resolveEntity( "∞" ) ); - assertEquals( "\u00f8", LatinEntities.resolveEntity( "ø" ) ); - - // Bad Entities. - assertEquals( "", LatinEntities.resolveEntity( "" ) ); - assertEquals( "&", LatinEntities.resolveEntity( "&" ) ); - assertEquals( null, LatinEntities.resolveEntity( null ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/LatinEntityResolutionReaderTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/LatinEntityResolutionReaderTest.java deleted file mode 100644 index 1e5be8b1c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/LatinEntityResolutionReaderTest.java +++ /dev/null @@ -1,201 +0,0 @@ -package org.apache.maven.archiva.xml; - -/* - * 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.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; -import java.io.StringWriter; - -/** - * LatinEntityResolutionReaderTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class LatinEntityResolutionReaderTest - extends AbstractArchivaXmlTestCase -{ - /** - * A method to obtain the content of a reader as a String, - * while allowing for specifing the buffer size of the operation. - * - * This method is only really useful for testing a Reader implementation. - * - * @param input the reader to get the input from. - * @param bufsize the buffer size to use. - * @return the contents of the reader as a String. - * @throws IOException if there was an I/O error. - */ - private String toStringFromReader( Reader input, int bufsize ) - throws IOException - { - StringWriter output = new StringWriter(); - - final char[] buffer = new char[bufsize]; - int n = 0; - while ( -1 != ( n = input.read( buffer ) ) ) - { - output.write( buffer, 0, n ); - } - output.flush(); - - return output.toString(); - } - - /** - * This reads a text file from the src/test/examples directory, - * normalizes the end of lines, and returns the contents as a big String. - * - * @param examplePath the name of the file in the src/test/examples directory. - * @return the contents of the provided file - * @throws IOException if there was an I/O error. - */ - private String toStringFromExample( String examplePath ) - throws IOException - { - File exampleFile = getExampleXml( examplePath ); - FileReader fileReader = new FileReader( exampleFile ); - BufferedReader lineReader = new BufferedReader( fileReader ); - StringBuffer sb = new StringBuffer(); - - boolean hasContent = false; - - String line = lineReader.readLine(); - while ( line != null ) - { - if ( hasContent ) - { - sb.append( "\n" ); - } - sb.append( line ); - hasContent = true; - line = lineReader.readLine(); - } - - return sb.toString(); - } - - public void assertProperRead( String sourcePath, String expectedPath, int bufsize ) - { - try - { - File inputFile = getExampleXml( sourcePath ); - - FileReader fileReader = new FileReader( inputFile ); - LatinEntityResolutionReader testReader = new LatinEntityResolutionReader( fileReader ); - - String actualOutput = toStringFromReader( testReader, bufsize ); - String expectedOutput = toStringFromExample( expectedPath ); - - assertEquals( expectedOutput, actualOutput ); - } - catch ( IOException e ) - { - fail( "IOException: " + e.getMessage() ); - } - } - - private void assertProperRead( StringBuffer expected, String sourcePath, int bufSize ) - { - try - { - File inputFile = getExampleXml( sourcePath ); - - FileReader fileReader = new FileReader( inputFile ); - LatinEntityResolutionReader testReader = new LatinEntityResolutionReader( fileReader ); - - String actualOutput = toStringFromReader( testReader, bufSize ); - - assertEquals( "Proper Read: ", expected.toString(), actualOutput ); - } - catch ( IOException e ) - { - fail( "IOException: " + e.getMessage() ); - } - } - - public void testReaderNormalBufsize() - throws IOException - { - StringBuffer expected = new StringBuffer(); - - expected.append( "\n" ); - expected.append( " \n" ); - expected.append( " " ).append( TRYGVIS ).append( "\n" ); - expected.append( " " ).append( INFINITE_ARCHIVA ).append( "\n" ); - expected.append( " \n" ); - expected.append( "" ); - - assertProperRead( expected, "no-prolog-with-entities.xml", 4096 ); - } - - public void testReaderSmallBufsize() - throws IOException - { - StringBuffer expected = new StringBuffer(); - - expected.append( "\n" ); - expected.append( " \n" ); - expected.append( " " ).append( TRYGVIS ).append( "\n" ); - expected.append( " " ).append( INFINITE_ARCHIVA ).append( "\n" ); - expected.append( " \n" ); - expected.append( "" ); - - assertProperRead( expected, "no-prolog-with-entities.xml", 1024 ); - } - - public void testReaderRediculouslyTinyBufsize() - throws IOException - { - StringBuffer expected = new StringBuffer(); - - expected.append( "\n" ); - expected.append( " \n" ); - expected.append( " " ).append( TRYGVIS ).append( "\n" ); - expected.append( " " ).append( INFINITE_ARCHIVA ).append( "\n" ); - expected.append( " \n" ); - expected.append( "" ); - - assertProperRead( expected, "no-prolog-with-entities.xml", 32 ); - } - - public void testReaderHugeBufsize() - throws IOException - { - StringBuffer expected = new StringBuffer(); - - expected.append( "\n" ); - expected.append( " \n" ); - expected.append( " " ).append( TRYGVIS ).append( "\n" ); - expected.append( " " ).append( INFINITE_ARCHIVA ).append( "\n" ); - expected.append( " \n" ); - expected.append( "" ); - - assertProperRead( expected, "no-prolog-with-entities.xml", 409600 ); - } - - public void testNoLatinEntitiesHugeLine() - { - assertProperRead( "commons-codec-1.2.pom", "commons-codec-1.2.pom", 4096 ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/XMLReaderTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/XMLReaderTest.java deleted file mode 100644 index bda872a8b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/XMLReaderTest.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.apache.maven.archiva.xml; - -/* - * 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.dom4j.Element; - -import java.io.File; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * XMLReaderTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class XMLReaderTest - extends AbstractArchivaXmlTestCase -{ - private void assertElementTexts( List elementList, String[] expectedTexts ) - { - assertEquals( "Element List Size", expectedTexts.length, elementList.size() ); - - List texts = new ArrayList(); - for ( Iterator iter = elementList.iterator(); iter.hasNext(); ) - { - Element element = (Element) iter.next(); - texts.add( element.getTextTrim() ); - } - - for ( int i = 0; i < expectedTexts.length; i++ ) - { - String expectedText = expectedTexts[i]; - assertTrue( "Contains [" + expectedText + "]", texts.contains( expectedText ) ); - } - } - - public void testNoPrologBasicRead() - throws XMLException - { - File xmlFile = getExampleXml( "no-prolog-basic.xml" ); - XMLReader reader = new XMLReader( "basic", xmlFile ); - - List fruits = reader.getElementList( "//basic/fruits/fruit" ); - assertElementTexts( fruits, new String[] { "apple", "cherry", "pear", "peach" } ); - } - - public void testNoPrologEntitiesRead() - throws XMLException - { - File xmlFile = getExampleXml( "no-prolog-with-entities.xml" ); - XMLReader reader = new XMLReader( "basic", xmlFile ); - - List names = reader.getElementList( "//basic/names/name" ); - assertElementTexts( names, new String[] { TRYGVIS, INFINITE_ARCHIVA } ); - } - - public void testNoPrologUtf8Read() - throws XMLException - { - File xmlFile = getExampleXml( "no-prolog-with-utf8.xml" ); - XMLReader reader = new XMLReader( "basic", xmlFile ); - - List names = reader.getElementList( "//basic/names/name" ); - assertElementTexts( names, new String[] { TRYGVIS, INFINITE_ARCHIVA } ); - } - - public void testPrologUtf8Read() - throws XMLException - { - File xmlFile = getExampleXml( "prolog-with-utf8.xml" ); - XMLReader reader = new XMLReader( "basic", xmlFile ); - - List names = reader.getElementList( "//basic/names/name" ); - assertElementTexts( names, new String[] { TRYGVIS, INFINITE_ARCHIVA } ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/XMLWriterTest.java b/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/XMLWriterTest.java deleted file mode 100644 index 1d7f596c8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/archiva-xml-tools/src/test/java/org/apache/maven/archiva/xml/XMLWriterTest.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.xml; - -/* - * 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.dom4j.Document; -import org.dom4j.DocumentHelper; -import org.dom4j.Element; - -import java.io.StringWriter; - -/** - * XMLWriterTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class XMLWriterTest - extends AbstractArchivaXmlTestCase -{ - public void testWrite() - throws Exception - { - StringBuffer expected = new StringBuffer(); - - expected.append( "\n" ); - expected.append( "\n" ); - expected.append( "\n" ); - expected.append( " \n" ); - expected.append( " " ).append( TRYGVIS ).append( "\n" ); - expected.append( " " ).append( INFINITE_ARCHIVA ).append( "\n" ); - expected.append( " \n" ); - expected.append( "\n" ); - - Element basic = DocumentHelper.createElement( "basic" ); - Document doc = DocumentHelper.createDocument( basic ); - - Element names = basic.addElement( "names" ); - names.addElement( "name" ).setText( TRYGVIS ); - names.addElement( "name" ).setText( INFINITE_ARCHIVA ); - - StringWriter actual = new StringWriter(); - XMLWriter.write( doc, actual ); - - assertEquals( "Comparision of contents:", expected.toString(), actual.toString() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-base/pom.xml b/archiva-security-fix/archiva-modules/archiva-base/pom.xml deleted file mode 100644 index f95c75f13..000000000 --- a/archiva-security-fix/archiva-modules/archiva-base/pom.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-modules - 1.2-SNAPSHOT - - - archiva-base - Archiva Base - pom - - - archiva-checksum - archiva-common - archiva-policies - archiva-configuration - archiva-consumers - archiva-indexer - archiva-model - archiva-dependency-graph - archiva-repository-layer - archiva-xml-tools - archiva-proxy - archiva-transaction - archiva-artifact-converter - archiva-converter - - diff --git a/archiva-security-fix/archiva-modules/archiva-database/pom.xml b/archiva-security-fix/archiva-modules/archiva-database/pom.xml deleted file mode 100755 index fad154168..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/pom.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - org.apache.archiva - archiva-modules - 1.2-SNAPSHOT - - 4.0.0 - archiva-database - Archiva Database - - - org.apache.archiva - archiva-repository-layer - - - org.apache.archiva - archiva-consumer-api - - - org.apache.archiva - archiva-configuration - - - org.apache.archiva - archiva-model - - - org.codehaus.plexus - plexus-spring - test - - - org.codehaus.plexus - plexus-component-api - - - org.codehaus.plexus - plexus-jdo2 - - - jpox - jpox - compile - - - commons-lang - commons-lang - - - commons-io - commons-io - - - log4j - log4j - - - - org.codehaus.plexus.registry - plexus-registry-commons - test - - - hsqldb - hsqldb - test - - - org.apache.derby - derbytools - test - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java deleted file mode 100644 index 61b1d6889..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.apache.maven.archiva.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.io.Serializable; -import java.util.List; - -/** - * ArchivaDAO - The interface for all content within the database. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ArchivaDAO -{ - public static final String ROLE = ArchivaDAO.class.getName(); - - /** - * Perform a simple query against the database. - * - * @param constraint the constraint to use. - * @return the List of results. - */ - List query( SimpleConstraint constraint ); - - /** - * Perform a simple save of a peristable object to the database. - * - * @param o the serializable (persistable) object to save. - * @return the post-serialized object. - */ - Object save( Serializable obj ); - - ArtifactDAO getArtifactDAO(); - - ProjectModelDAO getProjectModelDAO(); - - RepositoryProblemDAO getRepositoryProblemDAO(); - - RepositoryContentStatisticsDAO getRepositoryContentStatisticsDAO(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDatabaseException.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDatabaseException.java deleted file mode 100644 index b170c7feb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDatabaseException.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.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. - */ - -/** - * ArchivaDatabaseException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaDatabaseException - extends Exception -{ - - public ArchivaDatabaseException( String message, Throwable cause ) - { - super( message, cause ); - } - - public ArchivaDatabaseException( String message ) - { - super( message ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArtifactDAO.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArtifactDAO.java deleted file mode 100644 index 610dd60f1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArtifactDAO.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.apache.maven.archiva.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.model.ArchivaArtifact; - -import java.util.List; - -/** - * ArtifactDAO - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ArtifactDAO -{ - /* NOTE TO ARCHIVA DEVELOPERS. - * - * Please keep this interface clean and lean. - * We don't want a repeat of the Continuum Store. - * You should have the following methods per object type ... - * - * (Required Methods) - * - * DatabaseObject .createDatabaseObject( Required Params ) ; - * List .queryDatabaseObject( Constraint ) throws ObjectNotFoundException, DatabaseException; - * DatabaseObject .saveDatabaseObject( DatabaseObject ) throws DatabaseException; - * - * (Optional Methods) - * - * DatabaseObject .getDatabaseObject( Id ) throws ObjectNotFoundException, DatabaseException; - * List .getDatabaseObjects() throws ObjectNotFoundException, DatabaseException; - * void .deleteDatabaseObject( DatabaseObject ) throws DatabaseException; - * - * This is the only list of options created in this DAO. - */ - - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String classifier, - String type ); - - public ArchivaArtifact getArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - throws ObjectNotFoundException, ArchivaDatabaseException; - - public List /**/queryArtifacts( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException; - - public ArchivaArtifact saveArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException; - - public void deleteArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java deleted file mode 100644 index f5355aadb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.apache.maven.archiva.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. - */ - - -/** - * Constraint - a generic object for dealing with database constraints. - * - * @author Joakim Erdfelt - * @version $Id$ - * @see DeclarativeConstraint - * @see SimpleConstraint - */ -public interface Constraint -{ - public static final String ASCENDING = "ascending"; - - public static final String DESCENDING = "descending"; - - /** - * Get the fetch limits on the object. - * - * @return the fetch limits on the object. (can be null) (O/RM specific) - */ - public String getFetchLimits(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java deleted file mode 100644 index 15fa14e2b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.apache.maven.archiva.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. - */ - -/** - * DeclarativeConstraint - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface DeclarativeConstraint - extends Constraint -{ - /** - * Get the declared imports used for this query. (optional) - *

- * NOTE: This is DAO implementation specific. - * - * @return the imports. (can be null) - */ - public abstract String[] getDeclaredImports(); - - /** - * Get the declared parameters used for this query. (optional) - *

- * NOTE: This is DAO implementation specific. - * - * @return the parameters. (can be null) - */ - public abstract String[] getDeclaredParameters(); - - /** - * The JDOQL filter to apply to the query. (optional) - *

- * NOTE: This is DAO implementation specific. - * - * @return the filter to apply. (can be null) - */ - public abstract String getFilter(); - - /** - * Get the parameters used for this query. (required if using {@link #getDeclaredParameters()} ) - *

- * NOTE: This is DAO implementation specific. - * - * @return the parameters. (can be null) - */ - public abstract Object[] getParameters(); - - /** - * Get the sort direction name. - * - * @return the sort direction name. ("ASC" or "DESC") (only valid if {@link #getSortColumn()} is specified.) - */ - public abstract String getSortDirection(); - - /** - * Get the sort column name. - * - * @return the sort column name. (can be null) - */ - public abstract String getSortColumn(); - - /** - * Get the variables used within the query. - *

- * NOTE: This is DAO implementation specific. - * - * @return the variables used within the query. - */ - public abstract String[] getVariables(); - - /** - * Get the SELECT WHERE (condition) value for the constraint. - * - * @return the equivalent of the SELECT WHERE (condition) value for this constraint. (can be null) - */ - public abstract String getWhereCondition(); - - /** - * Get the declared range used for this query. (optional) - *

- * NOTE: This is DAO implementation specific. - * - * @return the range. (can be null) - */ - public abstract int[] getRange(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ObjectNotFoundException.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ObjectNotFoundException.java deleted file mode 100644 index b1e65e605..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ObjectNotFoundException.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.apache.maven.archiva.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. - */ - -/** - * ObjectNotFoundException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ObjectNotFoundException - extends ArchivaDatabaseException -{ - private Object id; - - public ObjectNotFoundException( String message, Throwable cause, Object id ) - { - super( message, cause ); - this.id = id; - } - - public ObjectNotFoundException( String message, Throwable cause ) - { - super( message, cause ); - } - - public ObjectNotFoundException( String message ) - { - super( message ); - } - - public Object getId() - { - return id; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ProjectModelDAO.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ProjectModelDAO.java deleted file mode 100644 index 492d6d7bf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ProjectModelDAO.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.apache.maven.archiva.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.model.ArchivaProjectModel; - -import java.util.List; - -/** - * ProjectModelDAO - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ProjectModelDAO -{ - /* NOTE TO ARCHIVA DEVELOPERS. - * - * Please keep this interface clean and lean. - * We don't want a repeat of the Continuum Store. - * You should have the following methods per object type ... - * - * (Required Methods) - * - * DatabaseObject .createDatabaseObject( Required Params ) ; - * List .queryDatabaseObject( Constraint ) throws ObjectNotFoundException, DatabaseException; - * DatabaseObject .saveDatabaseObject( DatabaseObject ) throws DatabaseException; - * - * (Optional Methods) - * - * DatabaseObject .getDatabaseObject( Id ) throws ObjectNotFoundException, DatabaseException; - * List .getDatabaseObjects() throws ObjectNotFoundException, DatabaseException; - * void .deleteDatabaseObject( DatabaseObject ) throws DatabaseException; - * - * This is the only list of options created in this DAO. - */ - - public ArchivaProjectModel createProjectModel( String groupId, String artifactId, String version ); - - public ArchivaProjectModel getProjectModel( String groupId, String artifactId, String version ) - throws ObjectNotFoundException, ArchivaDatabaseException; - - public List queryProjectModels( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException; - - public ArchivaProjectModel saveProjectModel( ArchivaProjectModel model ) - throws ArchivaDatabaseException; - - public void deleteProjectModel( ArchivaProjectModel model ) - throws ArchivaDatabaseException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryContentStatisticsDAO.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryContentStatisticsDAO.java deleted file mode 100644 index 20f07889b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryContentStatisticsDAO.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.apache.maven.archiva.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.util.List; - -import org.apache.maven.archiva.model.RepositoryContentStatistics; - -/** - * RepositoryContentStatisticsDAO - * - * @author Maria Odea Ching - * @version - */ -public interface RepositoryContentStatisticsDAO -{ - public List queryRepositoryContentStatistics( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException; - - public RepositoryContentStatistics saveRepositoryContentStatistics( RepositoryContentStatistics stats ); - - public void deleteRepositoryContentStatistics( RepositoryContentStatistics stats ) - throws ArchivaDatabaseException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java deleted file mode 100644 index fa865e3ba..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.apache.maven.archiva.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.model.ArchivaArtifact; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.events.RepositoryListener; - -/** - * Process repository management events and respond appropriately. - * - * @plexus.component role="org.apache.maven.archiva.repository.events.RepositoryListener" role-hint="database" - */ -public class RepositoryDatabaseEventListener - implements RepositoryListener -{ - /** - * @plexus.requirement role-hint="jdo" - */ - private ArtifactDAO artifactDAO; - - public void deleteArtifact( ManagedRepositoryContent repository, ArchivaArtifact artifact ) - { - try - { - ArchivaArtifact queriedArtifact = - artifactDAO.getArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), - artifact.getClassifier(), artifact.getType() ); - artifactDAO.deleteArtifact( queriedArtifact ); - } - catch ( ArchivaDatabaseException e ) - { - // ignored - } - - // TODO [MRM-37]: re-run the database consumers to clean up - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryProblemDAO.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryProblemDAO.java deleted file mode 100644 index b544e2add..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryProblemDAO.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.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.model.RepositoryProblem; - -import java.util.List; - -/** - * RepositoryProblemDAO - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface RepositoryProblemDAO -{ - /* NOTE TO ARCHIVA DEVELOPERS. - * - * Please keep this interface clean and lean. - * We don't want a repeat of the Continuum Store. - * You should have the following methods per object type ... - * - * (Required Methods) - * - * List .queryDatabaseObject( Constraint ) throws ObjectNotFoundException, DatabaseException; - * DatabaseObject .saveDatabaseObject( DatabaseObject ) throws DatabaseException; - * - * (Optional Methods) - * - * DatabaseObject .createDatabaseObject( Required Params ) ; - * DatabaseObject .getDatabaseObject( Id ) throws ObjectNotFoundException, DatabaseException; - * List .getDatabaseObjects() throws ObjectNotFoundException, DatabaseException; - * void .deleteDatabaseObject( DatabaseObject ) throws DatabaseException; - * - * This is the only list of options created in this DAO. - */ - - public List /**/queryRepositoryProblems( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException; - - public RepositoryProblem saveRepositoryProblem( RepositoryProblem problem ) - throws ArchivaDatabaseException; - - public void deleteRepositoryProblem( RepositoryProblem problem ) - throws ArchivaDatabaseException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java deleted file mode 100644 index 79f9150e2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.apache.maven.archiva.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. - */ - -/** - * SimpleConstraint - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface SimpleConstraint extends Constraint -{ - /** - * Get the parameters used for this query. (required if using parameterized SQL) - * - * NOTE: This is DAO implementation specific. - * - * @return the parameters. (can be null) - */ - public Object[] getParameters(); - - /** - * Get the SELECT query value for the constraint. - * - * @return the SELECT value for this constraint. (can be null) - */ - public abstract String getSelectSql(); - - /** - * For simple Constraints the results class must be specified. - * - * @return the result class. - */ - public Class getResultClass(); - - /** - * When working with result classes that are not persistable, - * it is advisable to tell the underlying DAO to not do the persistable related efforts. - * - * @return true if result classes are persistable. - */ - public boolean isResultsPersistable(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java deleted file mode 100644 index ccf526662..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.apache.maven.archiva.database.browsing; - -/* - * 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.collections.CollectionUtils; - -import java.util.List; - -/** - * BrowsingResults - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BrowsingResults -{ - private String selectedGroupId; - - private String selectedArtifactId; - - private List selectedRepositoryIds = null; - - private List groupIds = null; - - private List artifacts = null; - - private List versions = null; - - public BrowsingResults() - { - /* do nothing, this is the results of the root */ - } - - public BrowsingResults( String groupId ) - { - this.selectedGroupId = groupId; - } - - public BrowsingResults( String groupId, String artifactId ) - { - this.selectedGroupId = groupId; - this.selectedArtifactId = artifactId; - } - - public List getArtifacts() - { - return artifacts; - } - - public List getGroupIds() - { - return groupIds; - } - - public String getSelectedArtifactId() - { - return selectedArtifactId; - } - - public String getSelectedGroupId() - { - return selectedGroupId; - } - - public List getVersions() - { - return versions; - } - - public boolean hasArtifacts() - { - return CollectionUtils.isNotEmpty( artifacts ); - } - - public boolean hasGroupIds() - { - return CollectionUtils.isNotEmpty( groupIds ); - } - - public boolean hasVersions() - { - return CollectionUtils.isNotEmpty( versions ); - } - - public void setArtifacts( List artifacts ) - { - this.artifacts = artifacts; - } - - public void setGroupIds( List groupIds ) - { - this.groupIds = groupIds; - } - - public void setVersions( List versions ) - { - this.versions = versions; - } - - public List getSelectedRepositoryIds() - { - return selectedRepositoryIds; - } - - public void setSelectedRepositoryIds( List selectedRepositoryIds ) - { - this.selectedRepositoryIds = selectedRepositoryIds; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java deleted file mode 100644 index 65a8a0546..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java +++ /dev/null @@ -1,309 +0,0 @@ -package org.apache.maven.archiva.database.browsing; - -/* - * 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.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.PredicateUtils; -import org.apache.commons.collections.functors.NotPredicate; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.common.utils.VersionUtil; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.constraints.ProjectsByArtifactUsageConstraint; -import org.apache.maven.archiva.database.constraints.UniqueArtifactIdConstraint; -import org.apache.maven.archiva.database.constraints.UniqueGroupIdConstraint; -import org.apache.maven.archiva.database.constraints.UniqueVersionConstraint; -import org.apache.maven.archiva.database.updater.DatabaseUpdater; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.Keys; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * DefaultRepositoryBrowsing - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.database.browsing.RepositoryBrowsing" - */ -public class DefaultRepositoryBrowsing - implements RepositoryBrowsing -{ - private Logger log = LoggerFactory.getLogger( DefaultRepositoryBrowsing.class ); - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * @plexus.requirement role-hint="jdo" - */ - private DatabaseUpdater dbUpdater; - - public BrowsingResults getRoot( String principle, List observableRepositoryIds ) - { - List groups = dao.query( new UniqueGroupIdConstraint( observableRepositoryIds ) ); - - BrowsingResults results = new BrowsingResults(); - results.setSelectedRepositoryIds( observableRepositoryIds ); - - results.setGroupIds( GroupIdFilter.filterGroups( groups ) ); - - return results; - } - - public BrowsingResults selectArtifactId( String principle, List observableRepositoryIds, String groupId, - String artifactId ) - { - // NOTE: No group Id or artifact Id's should be returned here. - List versions = dao.query( new UniqueVersionConstraint( observableRepositoryIds, groupId, artifactId ) ); - - BrowsingResults results = new BrowsingResults( groupId, artifactId ); - results.setSelectedRepositoryIds( observableRepositoryIds ); - - processSnapshots( versions ); - - results.setVersions( versions ); - - return results; - } - - public BrowsingResults selectGroupId( String principle, List observableRepositoryIds, String groupId ) - { - List groups = dao.query( new UniqueGroupIdConstraint( observableRepositoryIds, groupId ) ); - List artifacts = dao.query( new UniqueArtifactIdConstraint( observableRepositoryIds, groupId ) ); - - BrowsingResults results = new BrowsingResults( groupId ); - - // Remove searched for groupId from groups list. - // Easier to do this here, vs doing it in the SQL query. - CollectionUtils.filter( groups, NotPredicate.getInstance( PredicateUtils.equalPredicate( groupId ) ) ); - - results.setGroupIds( groups ); - results.setArtifacts( artifacts ); - - return results; - } - - public ArchivaProjectModel selectVersion( String principle, List observableRepositoryIds, String groupId, - String artifactId, String version ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - ArchivaArtifact pomArtifact = getArtifact( principle, observableRepositoryIds, groupId, artifactId, version ); - - ArchivaProjectModel model; - version = pomArtifact.getVersion(); - - if ( !pomArtifact.getModel().isProcessed() ) - { - // Process it. - dbUpdater.updateUnprocessed( pomArtifact ); - } - - model = getProjectModel( groupId, artifactId, version ); - - return model; - } - - public String getRepositoryId( String principle, List observableRepositoryIds, String groupId, - String artifactId, String version ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - ArchivaArtifact pomArchivaArtifact = - getArtifact( principle, observableRepositoryIds, groupId, artifactId, version ); - - return pomArchivaArtifact.getModel().getRepositoryId(); - } - - private ArchivaArtifact getArtifact( String principle, List observableRepositoryIds, String groupId, - String artifactId, String version ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - ArchivaArtifact pomArtifact = null; - - try - { - pomArtifact = dao.getArtifactDAO().getArtifact( groupId, artifactId, version, null, "pom" ); - } - catch ( ObjectNotFoundException e ) - { - pomArtifact = handleGenericSnapshots( groupId, artifactId, version, pomArtifact ); - } - - if ( pomArtifact == null ) - { - throw new ObjectNotFoundException( "Unable to find artifact [" + Keys.toKey( groupId, artifactId, version ) - + "]" ); - } - - // Allowed to see this? - if ( observableRepositoryIds.contains( pomArtifact.getModel().getRepositoryId() ) ) - { - return pomArtifact; - } - else - { - throw new ObjectNotFoundException( "Unable to find artifact " + Keys.toKey( groupId, artifactId, version ) - + " in observable repository [" + StringUtils.join( observableRepositoryIds.iterator(), ", " ) - + "] for user " + principle ); - } - } - - public List getUsedBy( String principle, List observableRepositoryIds, String groupId, - String artifactId, String version ) - throws ArchivaDatabaseException - { - ProjectsByArtifactUsageConstraint constraint = new ProjectsByArtifactUsageConstraint( groupId, artifactId, - version ); - List results = dao.getProjectModelDAO().queryProjectModels( constraint ); - if ( results == null ) - { - // defensive. to honor contract as specified. never null. - return Collections.EMPTY_LIST; - } - - return results; - } - - /** - * Add generic (*-SNAPSHOT) snapshot versions in the list for artifacts with only unique version (timestamped) - * snapshots. - *

- * Ex. - * artifact1 has the ff. versions retrieved from the db: - * - 1.0 - * - 1.1-20061118.060401-2 - * - 1.1-20061118.060402-3 - * - 2.2-20071007.070101-1 - * - 2.2-20071007.070110-2 - * - 2.2-SNAPSHOT - *

- * This method will add a '1.1-SNAPSHOT' in the list since there is no generic snapshot entry for it. - * When this version is browsed, the pom of the latest snapshot will be displayed. - * - * @param versions - */ - private void processSnapshots( List versions ) - { - Map snapshots = new HashMap(); - - log.info( "Processing snapshots." ); - - for ( String version : versions ) - { - if ( VersionUtil.isSnapshot( version ) ) - { - String baseVersion = VersionUtil.getBaseVersion( version ); - if ( !snapshots.containsKey( baseVersion ) ) - { - snapshots.put( baseVersion, baseVersion ); - } - } - } - - for ( Entry entry : snapshots.entrySet() ) - { - String baseVersion = entry.getValue(); - if ( !versions.contains( baseVersion ) ) - { - versions.add( baseVersion ); - } - } - } - - /** - * Handles querying of generic (*-SNAPSHOT) snapshot version. - * Process: - * - Get all the timestamped/unique versions of the artifact from the db - * - Sort the queried project models - * - Reverse the list of queried project models to get the latest timestamp version - * - Loop through the list and get the first one to match the generic (*-SNAPHOT) version - * - * @param groupId - * @param artifactId - * @param version - * @param pomArtifact - * @throws ArchivaDatabaseException - */ - private ArchivaArtifact handleGenericSnapshots( String groupId, String artifactId, String version, - ArchivaArtifact pomArtifact ) - throws ArchivaDatabaseException - { - if ( VersionUtil.isGenericSnapshot( version ) ) - { - List versions = dao.query( new UniqueVersionConstraint( groupId, artifactId ) ); - Collections.sort( versions ); - Collections.reverse( versions ); - - for ( String uniqueVersion : versions ) - { - if ( VersionUtil.getBaseVersion( uniqueVersion ).equals( version ) ) - { - log.info( "Retrieving artifact with version " + uniqueVersion ); - pomArtifact = dao.getArtifactDAO().getArtifact( groupId, artifactId, uniqueVersion, null, "pom" ); - - return pomArtifact; - } - } - } - - return null; - } - - /** - * Get the project model from the database. - * - * @param groupId - * @param artifactId - * @param version - * @return - * @throws ArchivaDatabaseException - */ - private ArchivaProjectModel getProjectModel( String groupId, String artifactId, String version ) - throws ArchivaDatabaseException - { - try - { - ArchivaProjectModel model = dao.getProjectModelDAO().getProjectModel( groupId, artifactId, version ); - - if ( model == null ) - { - throw new ObjectNotFoundException( "Unable to find project model for [" - + Keys.toKey( groupId, artifactId, version ) + "]" ); - } - - return model; - } - catch ( ObjectNotFoundException e ) - { - throw e; - } - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java deleted file mode 100644 index 18b7bdba5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java +++ /dev/null @@ -1,171 +0,0 @@ -package org.apache.maven.archiva.database.browsing; - -/* - * 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; -import java.util.Map; -import java.util.StringTokenizer; -import java.util.TreeMap; - -/** - * GroupIdFilter - utility methods for filtering groupIds. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class GroupIdFilter -{ - private static final String GROUP_SEPARATOR = "."; - - /** - *

- * Filter out excessive groupId naming. (to provide a tree-ish view of the list of groupIds). - *

- * - *
-     *  // Input List
-     *  commons-lang
-     *  com.jsch
-     *  org.apache.apache
-     *  org.apache.maven
-     *  org.codehaus.modello
-     *  // Filtered List
-     *  commons-lang
-     *  com.jsch
-     *  org
-     * 
- * - *
-     *  // Input List
-     *  commons-lang
-     *  commons-io
-     *  commons-pool
-     *  com.jsch
-     *  com.jsch.lib
-     *  com.jsch.providers
-     *  org.apache.apache
-     *  org.apache.maven
-     *  org.apache.maven.archiva
-     *  org.apache.maven.shared
-     *  // Filtered List
-     *  commons-lang
-     *  commons-io
-     *  commons-pool
-     *  com.jsch
-     *  org.apache
-     * 
- * - * @param groups the list of groupIds. - * @return - */ - public static List filterGroups( List groups ) - { - GroupTreeNode tree = buildGroupTree( groups ); - return collateGroups( tree ); - } - - public static GroupTreeNode buildGroupTree( List groups ) - { - GroupTreeNode rootNode = new GroupTreeNode(); - - // build a tree structure - for ( String groupId : groups ) - { - StringTokenizer tok = new StringTokenizer( groupId, GROUP_SEPARATOR ); - - GroupTreeNode node = rootNode; - - while ( tok.hasMoreTokens() ) - { - String part = tok.nextToken(); - - if ( !node.getChildren().containsKey( part ) ) - { - GroupTreeNode newNode = new GroupTreeNode( part, node ); - node.addChild( newNode ); - node = newNode; - } - else - { - node = node.getChildren().get( part ); - } - } - } - - return rootNode; - } - - private static List collateGroups( GroupTreeNode rootNode ) - { - List groups = new ArrayList(); - for ( GroupTreeNode node : rootNode.getChildren().values() ) - { - while ( node.getChildren().size() == 1 ) - { - node = node.getChildren().values().iterator().next(); - } - - groups.add( node.getFullName() ); - } - return groups; - } - - private static class GroupTreeNode - { - private final String name; - - private final String fullName; - - private final Map children = new TreeMap(); - - GroupTreeNode() - { - name = null; - fullName = null; - } - - GroupTreeNode( String name, GroupTreeNode parent ) - { - this.name = name; - this.fullName = parent.fullName != null ? parent.fullName + GROUP_SEPARATOR + name : name; - } - - public String getName() - { - return name; - } - - public String getFullName() - { - return fullName; - } - - public Map getChildren() - { - return children; - } - - public void addChild( GroupTreeNode newNode ) - { - children.put( newNode.name, newNode ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java deleted file mode 100644 index ef4d8ed8e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.apache.maven.archiva.database.browsing; - -/* - * 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.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.model.ArchivaProjectModel; - -import java.util.List; - -/** - * Repository Browsing component - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface RepositoryBrowsing -{ - /** - * Get the {@link BrowsingResults} for the root of the repository. - * - * @return the root browsing results. - */ - public BrowsingResults getRoot( String principle, List observableRepositoryIds ); - - /** - * Get the {@link BrowsingResults} for the selected groupId. - * - * @param groupId the groupId to select. - * @return the {@link BrowsingResults} for the specified groupId. - */ - public BrowsingResults selectGroupId( String principle, List observableRepositoryIds, String groupId ); - - /** - * Get the {@link BrowsingResults} for the selected groupId & artifactId. - * - * @param groupId the groupId selected - * @param artifactId the artifactId selected - * @return the {@link BrowsingResults} for the specified groupId / artifactId combo. - */ - public BrowsingResults selectArtifactId( String principle, List observableRepositoryIds, String groupId, - String artifactId ); - - /** - * Get the {@link ArchivaProjectModel} for the selected groupId / artifactId / version combo. - * - * @param groupId the groupId selected - * @param artifactId the artifactId selected - * @param version the version selected - * @return the {@link ArchivaProjectModel} for the selected groupId / artifactId / version combo. - * @throws ObjectNotFoundException if the artifact object or project object isn't found in the database. - * @throws ArchivaDatabaseException if there is a fundamental database error. - */ - public ArchivaProjectModel selectVersion( String principle, List observableRepositoryIds, String groupId, - String artifactId, String version ) - throws ObjectNotFoundException, ArchivaDatabaseException; - - /** - * Get the {@link List} of {@link ArchivaProjectModel} that are used by the provided - * groupId, artifactId, and version specified. - * - * @param groupId the groupId selected - * @param artifactId the artifactId selected - * @param version the version selected - * @return the {@link List} of {@link ArchivaProjectModel} objects. (never null, but can be empty) - * @throws ArchivaDatabaseException if there is a fundamental database error. - */ - public List getUsedBy( String principle, List observableRepositoryIds, String groupId, - String artifactId, String version ) - throws ArchivaDatabaseException; - - - public String getRepositoryId( String principle, List observableRepositoryIds, String groupId, - String artifactId, String version ) - throws ObjectNotFoundException, ArchivaDatabaseException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java deleted file mode 100644 index 8559e035c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; -import org.apache.maven.archiva.database.DeclarativeConstraint; - -/** - * AbstractDeclarativeConstraint - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractDeclarativeConstraint - implements DeclarativeConstraint -{ - protected String[] declImports; - - protected String[] declParams; - - protected String[] variables; - - protected Object[] params; - - protected int[] range; - - protected String sortDirection = Constraint.ASCENDING; - - public String getFilter() - { - return null; - } - - public String getFetchLimits() - { - return null; - } - - public String[] getDeclaredImports() - { - return declImports; - } - - public String[] getDeclaredParameters() - { - return declParams; - } - - public Object[] getParameters() - { - return params; - } - - public String getSortDirection() - { - return sortDirection; - } - - public String[] getVariables() - { - return variables; - } - - public int[] getRange() - { - return range; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java deleted file mode 100644 index 5bf85741d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.SimpleConstraint; - -/** - * Simple Constraint abstract for working with nearly-raw SQL strings. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractSimpleConstraint - implements SimpleConstraint -{ - protected Object[] params; - - public Object[] getParameters() - { - return params; - } - - public String getFetchLimits() - { - return null; - } - - public boolean isResultsPersistable() - { - return false; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaRepositoryByUrlConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaRepositoryByUrlConstraint.java deleted file mode 100644 index 57df0ecf8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaRepositoryByUrlConstraint.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * ArchivaRepositoryByUrlConstraint - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaRepositoryByUrlConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereCondition; - - public ArchivaRepositoryByUrlConstraint( String url ) - { - whereCondition = "this.url == '" + url + "'"; - } - - public String getWhereCondition() - { - return whereCondition; - } - - public String getSortColumn() - { - return "url"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraint.java deleted file mode 100644 index c7eee23a5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraint.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * ArtifactVersionsConstraint - * - * @author Maria Odea Ching - * @version - */ -public class ArtifactVersionsConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause = ""; - - private String sortColumn = "repositoryId"; - - public ArtifactVersionsConstraint( String repoId, String groupId, String artifactId ) - { - if( repoId != null ) - { - whereClause = "repositoryId.equals(selectedRepoId) && groupId.equals(selectedGroupId) && artifactId.equals(selectedArtifactId) " + - "&& whenGathered != null"; - declParams = new String[] { "String selectedRepoId", "String selectedGroupId", "String selectedArtifactId" }; - params = new Object[] { repoId, groupId, artifactId }; - } - else - { - whereClause = "groupId.equals(selectedGroupId) && artifactId.equals(selectedArtifactId) && this.whenGathered != null"; - declParams = new String[] { "String selectedGroupId", "String selectedArtifactId" }; - params = new Object[] { groupId, artifactId }; - } - } - - public ArtifactVersionsConstraint( String repoId, String groupId, String artifactId, String sortColumn ) - { - this( repoId, groupId, artifactId ); - this.sortColumn = sortColumn; - } - - public String getSortColumn() - { - return sortColumn; - } - - public String getWhereCondition() - { - return whereClause; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByChecksumConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByChecksumConstraint.java deleted file mode 100644 index f814730fb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByChecksumConstraint.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * Constraint for retrieving artifacts whose sha1 or md5 checksum matches the - * specified value. - * - * @author Maria Odea Ching - */ -public class ArtifactsByChecksumConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause; - - public static final String SHA1 = "SHA1"; - - public static final String MD5 = "MD5"; - - /** - * Create constraint for checksum (without providing type) - * - * @param desiredChecksum the checksum (either SHA1 or MD5) - */ - public ArtifactsByChecksumConstraint( String desiredChecksum ) - { - this( desiredChecksum, null ); - } - - /** - * Create constraint for specific checksum. - * - * @param desiredChecksum the checksum (either SHA1 or MD5) - * @param type the type of checksum (either {@link #SHA1} or {@link #MD5}) - */ - public ArtifactsByChecksumConstraint( String desiredChecksum, String type ) - { - if ( StringUtils.isEmpty( type ) ) - { - // default for no specified type. - whereClause = "this.checksumSHA1 == desiredChecksum || this.checksumMD5 == desiredChecksum"; - } - else if ( !type.equals( SHA1 ) && !type.equals( MD5 ) ) - { - // default for type that isn't recognized. - whereClause = "this.checksumSHA1 == desiredChecksum || this.checksumMD5 == desiredChecksum"; - } - else if ( type.equals( SHA1 ) || type.equals( MD5 ) ) - { - // specific type. - whereClause = "this.checksum" + type.trim() + " == desiredChecksum"; - } - - declParams = new String[]{"String desiredChecksum"}; - params = new Object[]{desiredChecksum.toLowerCase()}; - } - - public String getSortColumn() - { - return "groupId"; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java deleted file mode 100644 index 9b3afab0a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * ArtifactsByRepositoryConstraint - * - * @author Maria Odea Ching - * @version - */ -public class ArtifactsByRepositoryConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause; - - private String sortColumn = "groupId"; - - public ArtifactsByRepositoryConstraint( String repoId ) - { - whereClause = "repositoryId == repoId"; - declParams = new String[] { "String repoId" }; - params = new Object[] { repoId }; - } - - public ArtifactsByRepositoryConstraint( String repoId, Date targetWhenGathered, String sortColumn, boolean isBefore ) - { - String condition = isBefore ? "<=" : ">="; - - declImports = new String[] { "import java.util.Date" }; - whereClause = "this.repositoryId == repoId && this.whenGathered " + condition + " targetWhenGathered"; - declParams = new String[] { "String repoId", "Date targetWhenGathered" }; - params = new Object[] { repoId, targetWhenGathered }; - this.sortColumn = sortColumn; - } - - public ArtifactsByRepositoryConstraint( String repoId, String type, Date before, String sortColumn ) - { - declImports = new String[] { "import java.util.Date" }; - whereClause = - "this.repositoryId == repoId && this.type == type && this.whenGathered <= before"; - declParams = new String[] { "String repoId", "String type", "Date before" }; - params = new Object[] { repoId, type, before }; - this.sortColumn = sortColumn; - } - - public String getSortColumn() - { - return sortColumn; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraint.java deleted file mode 100644 index 987e1ba3b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraint.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -import java.util.Date; - -/** - * ArtifactsProcessedConstraint - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArtifactsProcessedConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause; - - public ArtifactsProcessedConstraint( boolean isProcessed ) - { - if ( isProcessed ) - { - whereClause = "whenProcessed != null"; - } - else - { - whereClause = "whenProcessed == null"; - } - } - - /** - * A Constraint showing artifacts processed since date provided. - * @param since - */ - public ArtifactsProcessedConstraint( Date since ) - { - whereClause = "whenProcessed > since"; - declImports = new String[] { "import java.util.Date" }; - declParams = new String[] { "Date since" }; - params = new Object[] { since }; - } - - public String getSortColumn() - { - return "groupId"; - } - - public String getWhereCondition() - { - return whereClause; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraint.java deleted file mode 100644 index 4b3062afe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraint.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * ArtifactsRelatedConstraint - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArtifactsRelatedConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause; - - public ArtifactsRelatedConstraint( String groupId, String artifactId, String version ) - { - whereClause = "groupId.equals(selectedGroupId) && artifactId.equals(selectedArtifactId) && version.equals(selectedVersion)"; - declParams = new String[] { "String selectedGroupId", "String selectedArtifactId", "String selectedVersion" }; - params = new Object[] { groupId, artifactId, version }; - } - - public String getSortColumn() - { - return "classifier"; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentRepositoryScanStatistics.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentRepositoryScanStatistics.java deleted file mode 100644 index fdc4ff2cc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentRepositoryScanStatistics.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.model.RepositoryContentStatistics; - -/** - * MostRecentRepositoryScanStatistics - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class MostRecentRepositoryScanStatistics - extends AbstractSimpleConstraint -{ - private String sql; - - public MostRecentRepositoryScanStatistics( String repoId ) - { - sql = "SELECT FROM " + RepositoryContentStatistics.class.getName() + - " WHERE repositoryId == repoId PARAMETERS String repoId" + " ORDER BY whenGathered DESCENDING" + - " RANGE 0,1"; - - super.params = new Object[]{repoId}; - } - - public Class getResultClass() - { - return RepositoryContentStatistics.class; - } - - public String getSelectSql() - { - return sql; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraint.java deleted file mode 100644 index 5e577d9ac..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraint.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -import java.util.Calendar; -import java.util.Date; - -/** - * Constraint for artifacts that are of a certain age (in days) or older. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class OlderArtifactsByAgeConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause; - - public OlderArtifactsByAgeConstraint( int daysOld ) - { - Calendar cal = Calendar.getInstance(); - cal.add( Calendar.DAY_OF_MONTH, ( -1 ) * daysOld ); - Date cutoffDate = cal.getTime(); - - whereClause = "this.lastModified <= cutoffDate"; - declImports = new String[] { "import java.util.Date" }; - declParams = new String[] { "java.util.Date cutoffDate" }; - params = new Object[] { cutoffDate }; - } - - public String getSortColumn() - { - return "groupId"; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraint.java deleted file mode 100644 index 925def758..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraint.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -import java.util.Calendar; -import java.util.Date; - -/** - * Constraint for snapshot artifacts that are of a certain age (in days) or older. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class OlderSnapshotArtifactsByAgeConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause; - - public OlderSnapshotArtifactsByAgeConstraint( int daysOld ) - { - Calendar cal = Calendar.getInstance(); - cal.add( Calendar.DAY_OF_MONTH, ( -1 ) * daysOld ); - Date cutoffDate = cal.getTime(); - - whereClause = "this.lastModified <= cutoffDate && this.snapshot == true"; - declImports = new String[] { "import java.util.Date" }; - declParams = new String[] { "java.util.Date cutoffDate" }; - params = new Object[] { cutoffDate }; - } - - public String getSortColumn() - { - return "groupId"; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ProjectsByArtifactUsageConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ProjectsByArtifactUsageConstraint.java deleted file mode 100644 index 39d599727..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ProjectsByArtifactUsageConstraint.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.DeclarativeConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.Dependency; - -/** - * ProjectsByArtifactUsageConstraint - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectsByArtifactUsageConstraint - extends AbstractDeclarativeConstraint - implements DeclarativeConstraint -{ - private String filter; - - public ProjectsByArtifactUsageConstraint( ArchivaArtifact artifact ) - { - this( artifact.getGroupId(), artifact.getArtifactId(), artifact.getBaseVersion() ); - } - - public ProjectsByArtifactUsageConstraint( String groupId, String artifactId, String version ) - { - super.declImports = new String[] { - "import " + Dependency.class.getName() - }; - - super.variables = new String[] { - "Dependency dep" - }; - - super.declParams = new String[] { - "String selectedGroupId", - "String selectedArtifactId", - "String selectedVersion" - }; - - filter = "dependencies.contains( dep ) && " + - "dep.groupId == selectedGroupId && " + - "dep.artifactId == selectedArtifactId && " + - "dep.version == selectedVersion"; - - super.params = new Object[] { groupId, artifactId, version }; - } - - public String getSortColumn() - { - return "groupId"; - } - - public String getWhereCondition() - { - return null; - } - - public String getFilter() - { - return filter; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java deleted file mode 100644 index 268e3191c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RangeConstraint.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * RangeConstraint - */ -public class RangeConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String sortColumn; - - public RangeConstraint() - { - this.range = null; - this.sortColumn = null; - } - - public RangeConstraint( int[] range ) - { - this.range = range; - this.sortColumn = null; - } - - public RangeConstraint( int[] range, String sortColumn ) - { - this.range = range; - this.sortColumn = sortColumn; - } - - public String getSortColumn() - { - return sortColumn; - } - - public String getWhereCondition() - { - return null; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraint.java deleted file mode 100644 index 33e9f0f2b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraint.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -import java.util.Calendar; -import java.util.Date; - -/** - * Constraint for artifacts that are of a certain age (in days) or newer. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RecentArtifactsByAgeConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause; - - public RecentArtifactsByAgeConstraint( int daysOld ) - { - Calendar cal = Calendar.getInstance(); - // Extra subtraction of 1 done to allow for lastModified that occur on the day represented by 'daysOld'. - cal.add( Calendar.DAY_OF_MONTH, (( -1 ) * daysOld) - 1 ); - Date cutoffDate = cal.getTime(); - - whereClause = "this.lastModified >= cutoffDate"; - declImports = new String[] { "import java.util.Date" }; - declParams = new String[] { "java.util.Date cutoffDate" }; - params = new Object[] { cutoffDate }; - } - - public String getSortColumn() - { - return "groupId"; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryContentStatisticsByRepositoryConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryContentStatisticsByRepositoryConstraint.java deleted file mode 100644 index ac3aad061..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryContentStatisticsByRepositoryConstraint.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -import java.util.Date; - -import org.apache.maven.archiva.database.Constraint; - -/* - * 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. - */ - -/** - * RepositoryContentStatisticsByRepositoryConstraint - * - * @author Maria Odea Ching - * @version - */ -public class RepositoryContentStatisticsByRepositoryConstraint - extends AbstractDeclarativeConstraint -{ - private String whereClause; - - public RepositoryContentStatisticsByRepositoryConstraint( String repoId ) - { - whereClause = "repositoryId == repoId"; - declParams = new String[] { "String repoId" }; - params = new Object[] { repoId }; - } - - public RepositoryContentStatisticsByRepositoryConstraint( String repoId, Date startDate, Date endDate ) - { - declImports = new String[] { "import java.util.Date" }; - whereClause = "repositoryId == repoId && whenGathered >= startDate && whenGathered <= endDate"; - declParams = new String[] { "String repoId", "Date startDate", "Date endDate" }; - params = new Object[] { repoId, startDate, endDate }; - - sortDirection = Constraint.DESCENDING; - } - - public String getSortColumn() - { - return "whenGathered"; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByArtifactConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByArtifactConstraint.java deleted file mode 100644 index 587f522c7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByArtifactConstraint.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; -import org.apache.maven.archiva.model.ArchivaArtifact; - -/** - * RepositoryProblemByArtifactConstraint - */ -public class RepositoryProblemByArtifactConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause; - - private void createWhereClause( ArchivaArtifact artifact ) - { - whereClause = - "groupId.like(desiredGroupId) && artifactId.like(desiredArtifactId) && version.like(desiredVersion)"; - declParams = new String[] { "String desiredGroupId" , "String desiredArtifactId" , "String desiredVersion"}; - params = new Object[] { artifact.getGroupId() + "%" , artifact.getArtifactId() + "%", artifact.getVersion() + "%"}; - } - - public RepositoryProblemByArtifactConstraint( ArchivaArtifact desiredArtifact ) - { - super(); - createWhereClause( desiredArtifact ); - } - - public String getSortColumn() - { - return "artifactId"; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java deleted file mode 100644 index dd07add4f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraint.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * RepositoryProblemByGroupIdConstraint - */ -public class RepositoryProblemByGroupIdConstraint - extends RangeConstraint - implements Constraint -{ - private String whereClause; - - private void createWhereClause( String desiredGroupId ) - { - whereClause = "groupId.like(desiredGroupId)"; - declParams = new String[]{"String desiredGroupId"}; - params = new Object[]{desiredGroupId + "%"}; - } - - public RepositoryProblemByGroupIdConstraint( String desiredGroupId ) - { - super(); - createWhereClause( desiredGroupId ); - } - - public RepositoryProblemByGroupIdConstraint( int[] range, String desiredGroupId ) - { - super( range ); - createWhereClause( desiredGroupId ); - } - - public String getSortColumn() - { - return "repositoryId"; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByRepositoryIdConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByRepositoryIdConstraint.java deleted file mode 100644 index d1b5de7d8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByRepositoryIdConstraint.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * RepositoryProblemByRepositoryIdConstraint - */ -public class RepositoryProblemByRepositoryIdConstraint - extends RangeConstraint - implements Constraint -{ - private String whereClause; - - private void createWhereClause( String desiredRepositoryId ) - { - whereClause = "repositoryId == desiredRepositoryId"; - declParams = new String[]{"String desiredRepositoryId"}; - params = new Object[]{desiredRepositoryId}; - } - - public RepositoryProblemByRepositoryIdConstraint( String desiredRepositoryId ) - { - super(); - createWhereClause( desiredRepositoryId ); - } - - public RepositoryProblemByRepositoryIdConstraint( int[] range, String desiredRepositoryId ) - { - super( range ); - createWhereClause( desiredRepositoryId ); - } - - public String getSortColumn() - { - return "groupId"; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByTypeConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByTypeConstraint.java deleted file mode 100644 index cfc89cdc5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByTypeConstraint.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * RepositoryProblemByTypeConstraint - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryProblemByTypeConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause; - - public RepositoryProblemByTypeConstraint( String desiredType ) - { - whereClause = "type == desiredType"; - declParams = new String[] { "String desiredType" }; - params = new Object[] { desiredType }; - } - - public String getSortColumn() - { - return "groupId"; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemConstraint.java deleted file mode 100644 index eaff8338b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemConstraint.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * RepositoryProblemConstraint - */ -public class RepositoryProblemConstraint - extends RangeConstraint - implements Constraint -{ - private String whereClause; - - private void createWhereClause( String desiredGroupId, String desiredRepositoryId ) - { - whereClause = "groupId.like(desiredGroupId) && repositoryId == desiredRepositoryId"; - declParams = new String[]{"String desiredGroupId", "String desiredRepositoryId"}; - params = new Object[]{desiredGroupId + "%", desiredRepositoryId}; - } - - public RepositoryProblemConstraint( String desiredGroupId, String desiredRepositoryId ) - { - super(); - createWhereClause( desiredGroupId, desiredRepositoryId ); - } - - public RepositoryProblemConstraint( int[] range, String desiredGroupId, String desiredRepositoryId ) - { - super( range ); - createWhereClause( desiredGroupId, desiredRepositoryId ); - } - - public String getSortColumn() - { - return "artifactId"; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/SqlBuilder.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/SqlBuilder.java deleted file mode 100644 index 208475dab..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/SqlBuilder.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.lang.StringUtils; - -import java.util.List; - -/** - * SqlBuilder - common sql building mechanisms. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class SqlBuilder -{ - /** - * Append a sql specific where clause within "()" braces that selects the specific - * repository ids provided. - * - * NOTE: This does not append the "WHERE" statement itself. - * - * @param sql the sql buffer to append to. - * @param fieldId the field id for the repository Id. - * @param selectedRepositoryIds the list of repository ids to provide. - */ - public static void appendWhereSelectedRepositories( StringBuffer sql, String fieldId, - List selectedRepositoryIds ) - { - if ( fieldId == null ) - { - throw new NullPointerException( "Null field id is not allowed." ); - } - - if ( StringUtils.isBlank( fieldId ) ) - { - throw new IllegalArgumentException( "Blank field id is not allowed." ); - } - - if ( selectedRepositoryIds == null ) - { - throw new NullPointerException( "Selected repositories cannot be null." ); - } - - if ( selectedRepositoryIds.isEmpty() ) - { - throw new IllegalArgumentException( "Selected repositories cannot be null." ); - } - - sql.append( " (" ); - boolean multiple = false; - for ( String repo : selectedRepositoryIds ) - { - if ( multiple ) - { - sql.append( " || " ); - } - sql.append( " " ).append( fieldId ).append( " == \"" ).append( repo ).append( "\"" ); - multiple = true; - } - sql.append( " )" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java deleted file mode 100644 index d64382c7d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java +++ /dev/null @@ -1,125 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; -import org.apache.maven.archiva.model.ArchivaArtifactModel; - -import java.util.List; - -/** - * Obtain a set of unique ArtifactIds for the specified groupId. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UniqueArtifactIdConstraint - extends AbstractSimpleConstraint - implements Constraint -{ - private StringBuffer sql = new StringBuffer(); - - private Class resultClass; - - /** - * Obtain a set of unique ArtifactIds for the specified groupId. - * - * @param groupId the groupId to search for artifactIds within. - */ - public UniqueArtifactIdConstraint( List selectedRepositoryIds, String groupId ) - { - appendSelect( sql, false ); - sql.append( " WHERE " ); - SqlBuilder.appendWhereSelectedRepositories( sql, "repositoryId", selectedRepositoryIds ); - sql.append( " && " ); - appendWhereSelectedGroupId( sql ); - appendGroupBy( sql ); - - super.params = new Object[] { groupId }; - } - - /** - * Obtain a set of unique ArtifactIds for the specified groupId. - * - * @param groupId the groupId to search for artifactIds within. - */ - public UniqueArtifactIdConstraint( String groupId ) - { - appendSelect( sql, false ); - sql.append( " WHERE " ); - appendWhereSelectedGroupId( sql ); - appendGroupBy( sql ); - - super.params = new Object[] { groupId }; - } - - /** - * Obtain a set of unique artifactIds with respect to their groups from the specified repository. - * - * @param repoId - * @param isUnique - */ - public UniqueArtifactIdConstraint( String repoId, boolean isUnique ) - { - appendSelect( sql, isUnique ); - sql.append( " WHERE repositoryId == \"" + repoId + "\"" ); - - resultClass = Object[].class; - } - - @SuppressWarnings("unchecked") - public Class getResultClass() - { - if( resultClass != null ) - { - return resultClass; - } - - return String.class; - } - - public String getSelectSql() - { - return sql.toString(); - } - - private void appendGroupBy( StringBuffer buf ) - { - buf.append( " GROUP BY artifactId ORDER BY artifactId ASCENDING" ); - } - - private void appendSelect( StringBuffer buf, boolean isUnique ) - { - if( isUnique ) - { - buf.append( "SELECT DISTINCT groupId, artifactId FROM " ).append( ArchivaArtifactModel.class.getName() ); - } - else - { - buf.append( "SELECT artifactId FROM " ).append( ArchivaArtifactModel.class.getName() ); - } - } - - private void appendWhereSelectedGroupId( StringBuffer buf ) - { - buf.append( " groupId == selectedGroupId PARAMETERS String selectedGroupId" ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueFieldConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueFieldConstraint.java deleted file mode 100644 index 8e22ac255..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueFieldConstraint.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * UniqueFieldConstraint - */ -public class UniqueFieldConstraint - extends AbstractSimpleConstraint - implements Constraint -{ - private String sql; - - public UniqueFieldConstraint( String className, String fieldName ) - { - sql = "SELECT " + fieldName + " FROM " + className + " GROUP BY " + fieldName + " ORDER BY " + fieldName + - " ASCENDING"; - } - - public UniqueFieldConstraint( String className, String fieldName, String fieldNamePrefix ) - { - sql = "SELECT " + fieldName + " FROM " + className + " WHERE " + fieldName + - ".startsWith( fieldPrefix ) PARAMETERS String fieldPrefix GROUP BY " + fieldName + " ORDER BY " + - fieldName + " ASCENDING"; - - super.params = new Object[]{fieldNamePrefix}; - } - - public Class getResultClass() - { - return String.class; - } - - public String getSelectSql() - { - return sql; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java deleted file mode 100644 index 06490c211..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; -import org.apache.maven.archiva.model.ArchivaArtifactModel; - -import java.util.List; - -/** - * UniqueGroupIdConstraint - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UniqueGroupIdConstraint - extends AbstractSimpleConstraint - implements Constraint -{ - private StringBuffer sql = new StringBuffer(); - - public UniqueGroupIdConstraint() - { - /* this assumes search for no groupId prefix */ - appendSelect( sql ); - appendGroupBy( sql ); - } - - public UniqueGroupIdConstraint( List selectedRepositories ) - { - appendSelect( sql ); - sql.append( " WHERE " ); - SqlBuilder.appendWhereSelectedRepositories( sql, "repositoryId", selectedRepositories ); - appendGroupBy( sql ); - } - - public UniqueGroupIdConstraint( List selectedRepositories, String groupIdPrefix ) - { - appendSelect( sql ); - sql.append( " WHERE " ); - SqlBuilder.appendWhereSelectedRepositories( sql, "repositoryId", selectedRepositories ); - sql.append( " && " ); - appendWhereGroupIdStartsWith( sql ); - appendGroupBy( sql ); - - super.params = new Object[] { groupIdPrefix }; - } - - public UniqueGroupIdConstraint( String groupIdPrefix ) - { - appendSelect( sql ); - sql.append( " WHERE " ); - appendWhereGroupIdStartsWith( sql ); - appendGroupBy( sql ); - - super.params = new Object[] { groupIdPrefix }; - } - - @SuppressWarnings("unchecked") - public Class getResultClass() - { - return String.class; - } - - public String getSelectSql() - { - return sql.toString(); - } - - private void appendGroupBy( StringBuffer buf ) - { - buf.append( " GROUP BY groupId ORDER BY groupId ASCENDING" ); - } - - private void appendSelect( StringBuffer buf ) - { - buf.append( "SELECT groupId FROM " ).append( ArchivaArtifactModel.class.getName() ); - } - - private void appendWhereGroupIdStartsWith( StringBuffer buf ) - { - buf.append( " groupId.startsWith(groupIdPrefix) PARAMETERS String groupIdPrefix" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java deleted file mode 100644 index c36e34f82..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java +++ /dev/null @@ -1,121 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; -import org.apache.maven.archiva.model.ArchivaArtifactModel; - -import java.util.List; - -/** - * Obtain the list of version's for specific GroupId and ArtifactId. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UniqueVersionConstraint - extends AbstractSimpleConstraint - implements Constraint -{ - private StringBuffer sql = new StringBuffer(); - - /** - * Obtain the list of version's for specific GroupId and ArtifactId. - * - * @param selectedRepositoryIds the selected repository ids. - * @param groupId the selected groupId. - * @param artifactId the selected artifactId. - */ - public UniqueVersionConstraint( List selectedRepositoryIds, String groupId, String artifactId ) - { - if ( StringUtils.isBlank( groupId ) ) - { - throw new IllegalArgumentException( "A blank groupId is not allowed." ); - } - - if ( StringUtils.isBlank( artifactId ) ) - { - throw new IllegalArgumentException( "A blank artifactId is not allowed." ); - } - - appendSelect( sql ); - sql.append( " WHERE " ); - SqlBuilder.appendWhereSelectedRepositories( sql, "repositoryId", selectedRepositoryIds ); - sql.append( " && " ); - appendWhereSelectedGroupIdArtifactId( sql ); - appendGroupBy( sql ); - - super.params = new Object[] { groupId, artifactId }; - } - - /** - * Obtain the list of version's for specific GroupId and ArtifactId. - * - * @param groupId the selected groupId. - * @param artifactId the selected artifactId. - */ - public UniqueVersionConstraint( String groupId, String artifactId ) - { - if ( StringUtils.isBlank( groupId ) ) - { - throw new IllegalArgumentException( "A blank groupId is not allowed." ); - } - - if ( StringUtils.isBlank( artifactId ) ) - { - throw new IllegalArgumentException( "A blank artifactId is not allowed." ); - } - - appendSelect( sql ); - sql.append( " WHERE " ); - appendWhereSelectedGroupIdArtifactId( sql ); - appendGroupBy( sql ); - - super.params = new Object[] { groupId, artifactId }; - } - - @SuppressWarnings("unchecked") - public Class getResultClass() - { - return String.class; - } - - public String getSelectSql() - { - return sql.toString(); - } - - private void appendGroupBy( StringBuffer buf ) - { - buf.append( " GROUP BY version ORDER BY version ASCENDING" ); - } - - private void appendSelect( StringBuffer buf ) - { - buf.append( "SELECT version FROM " ).append( ArchivaArtifactModel.class.getName() ); - } - - private void appendWhereSelectedGroupIdArtifactId( StringBuffer buf ) - { - buf.append( " groupId == selectedGroupId && artifactId == selectedArtifactId" ); - buf.append( " PARAMETERS String selectedGroupId, String selectedArtifactId" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java deleted file mode 100644 index d0512dcc4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java +++ /dev/null @@ -1,599 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.DeclarativeConstraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.SimpleConstraint; -import org.apache.maven.archiva.database.constraints.AbstractSimpleConstraint; -import org.apache.maven.archiva.model.CompoundKey; -import org.codehaus.plexus.jdo.JdoFactory; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; - -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.List; - -import javax.jdo.Extent; -import javax.jdo.JDOException; -import javax.jdo.JDOHelper; -import javax.jdo.JDOObjectNotFoundException; -import javax.jdo.JDOUserException; -import javax.jdo.PersistenceManager; -import javax.jdo.PersistenceManagerFactory; -import javax.jdo.Query; -import javax.jdo.Transaction; -import javax.jdo.datastore.DataStoreCache; -import javax.jdo.listener.InstanceLifecycleEvent; -import javax.jdo.listener.InstanceLifecycleListener; -import javax.jdo.listener.StoreLifecycleListener; -import javax.jdo.spi.Detachable; -import javax.jdo.spi.PersistenceCapable; - -/** - * JdoAccess - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.database.jdo.JdoAccess" role-hint="archiva" - */ -public class JdoAccess - implements Initializable, InstanceLifecycleListener, StoreLifecycleListener -{ - /** - * @plexus.requirement role-hint="archiva" - */ - private JdoFactory jdoFactory; - - private PersistenceManagerFactory pmf; - - public void initialize() - throws InitializationException - { - pmf = jdoFactory.getPersistenceManagerFactory(); - - /* Primitive (and failed) attempt at creating the schema on startup. - Just to prevent the multiple stack trace warnings on auto-gen of schema. - - // Create the schema (if needed) - URL jdoFileUrls[] = new URL[] { getClass().getResource( "/org/apache/maven/archiva/model/package.jdo" ) }; - - File propsFile = null; // intentional - boolean verbose = true; - - try - { - String connectionFactoryName = pmf.getConnectionFactoryName(); - if ( StringUtils.isNotBlank( connectionFactoryName ) && connectionFactoryName.startsWith( "java:comp" ) ) - { - // We have a JNDI datasource! - String jndiDatasource = connectionFactoryName; - System.setProperty( PMFConfiguration.JDO_DATASTORE_URL_PROPERTY, jndiDatasource ); - } - - // TODO: figure out how to get the jdbc driver details from JNDI to pass into SchemaTool. - - SchemaTool.createSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose, null ); - } - catch ( Exception e ) - { - getLogger().error( "Unable to create schema: " + e.getMessage(), e ); - } - - pmf.getPersistenceManager(); - */ - - // Add the lifecycle listener. - pmf.addInstanceLifecycleListener( this, null ); - } - - public static void dumpObjectState( PrintStream out, Object o ) - { - final String STATE = "[STATE] "; - final String INDENT = " "; - - if ( o == null ) - { - out.println( STATE + "Object is null." ); - return; - } - - out.println( STATE + "Object " + o.getClass().getName() ); - - if ( !( o instanceof PersistenceCapable ) ) - { - out.println( INDENT + "is NOT PersistenceCapable (not a jdo object?)" ); - return; - } - - out.println( INDENT + "is PersistenceCapable." ); - if ( o instanceof Detachable ) - { - out.println( INDENT + "is Detachable" ); - } - - out.println( INDENT + "is new : " + Boolean.toString( JDOHelper.isNew( o ) ) ); - out.println( INDENT + "is transactional : " + Boolean.toString( JDOHelper.isTransactional( o ) ) ); - out.println( INDENT + "is deleted : " + Boolean.toString( JDOHelper.isDeleted( o ) ) ); - out.println( INDENT + "is detached : " + Boolean.toString( JDOHelper.isDetached( o ) ) ); - out.println( INDENT + "is dirty : " + Boolean.toString( JDOHelper.isDirty( o ) ) ); - out.println( INDENT + "is persistent : " + Boolean.toString( JDOHelper.isPersistent( o ) ) ); - - out.println( INDENT + "object id : " + JDOHelper.getObjectId( o ) ); - } - - public PersistenceManager getPersistenceManager() - { - PersistenceManager pm = pmf.getPersistenceManager(); - - pm.getFetchPlan().setMaxFetchDepth( -1 ); - - return pm; - } - - public void enableCache( Class clazz ) - { - DataStoreCache cache = pmf.getDataStoreCache(); - cache.pinAll( clazz, false ); // Pin all objects of type clazz from now on - } - - public Object saveObject( Object object ) - { - return saveObject( object, null ); - } - - public Object saveObject( Object object, String[] fetchGroups ) - { - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - if ( ( JDOHelper.getObjectId( object ) != null ) && !JDOHelper.isDetached( object ) ) - { - // This is a fatal error that means we need to fix our code. - // Leave it as a JDOUserException, it's intentional. - throw new JDOUserException( "Existing object is not detached: " + object, object ); - } - - if ( fetchGroups != null ) - { - for ( int i = 0; i >= fetchGroups.length; i++ ) - { - pm.getFetchPlan().addGroup( fetchGroups[i] ); - } - } - - pm.makePersistent( object ); - - object = pm.detachCopy( object ); - - tx.commit(); - - return object; - } - finally - { - rollbackIfActive( tx ); - } - } - - public List getAllObjects( Class clazz ) - { - return queryObjects( clazz, null ); - } - - public List queryObjects( Class clazz, Constraint constraint ) - { - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - List result = null; - - if ( constraint != null ) - { - if ( constraint instanceof DeclarativeConstraint ) - { - result = processConstraint( pm, clazz, (DeclarativeConstraint) constraint ); - } - else if ( constraint instanceof AbstractSimpleConstraint ) - { - result = processConstraint( pm, (SimpleConstraint) constraint ); - } - else - { - result = processUnconstrained( pm, clazz ); - } - } - else - { - result = processUnconstrained( pm, clazz ); - } - - result = (List) pm.detachCopyAll( result ); - - tx.commit(); - - return result; - } - finally - { - rollbackIfActive( tx ); - } - } - - public List queryObjects( SimpleConstraint constraint ) - { - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - List result = processConstraint( pm, constraint ); - - // Only detach if results are known to be persistable. - if ( constraint.isResultsPersistable() ) - { - result = (List) pm.detachCopyAll( result ); - } - else - { - List copiedResults = new ArrayList(); - copiedResults.addAll( result ); - result = copiedResults; - } - - tx.commit(); - - return result; - } - finally - { - rollbackIfActive( tx ); - } - } - - private List processUnconstrained( PersistenceManager pm, Class clazz ) - { - Extent extent = pm.getExtent( clazz, true ); - Query query = pm.newQuery( extent ); - return (List) query.execute(); - } - - private List processConstraint( PersistenceManager pm, SimpleConstraint constraint ) - { - Query query = pm.newQuery( constraint.getSelectSql() ); - - if ( constraint.getResultClass() == null ) - { - throw new IllegalStateException( "Unable to use a SimpleConstraint with a null result class." ); - } - - query.setResultClass( constraint.getResultClass() ); - - if ( constraint.getFetchLimits() != null ) - { - pm.getFetchPlan().addGroup( constraint.getFetchLimits() ); - } - - if ( constraint.getParameters() != null ) - { - return processParameterizedQuery( query, constraint.getParameters() ); - } - - return (List) query.execute(); - } - - private List processConstraint( PersistenceManager pm, Class clazz, DeclarativeConstraint constraint ) - { - Extent extent = pm.getExtent( clazz, true ); - Query query = pm.newQuery( extent ); - - if ( constraint.getFilter() != null ) - { - query.setFilter( constraint.getFilter() ); - } - - if ( constraint.getVariables() != null ) - { - query.declareVariables( StringUtils.join( constraint.getVariables(), "; " ) ); - } - - if ( constraint.getSortColumn() != null ) - { - String ordering = constraint.getSortColumn(); - - if ( constraint.getSortDirection() != null ) - { - ordering += " " + constraint.getSortDirection(); - } - - query.setOrdering( ordering ); - } - - if ( constraint.getFetchLimits() != null ) - { - pm.getFetchPlan().addGroup( constraint.getFetchLimits() ); - } - - if ( constraint.getWhereCondition() != null ) - { - query.setFilter( constraint.getWhereCondition() ); - } - - if ( constraint.getDeclaredImports() != null ) - { - query.declareImports( StringUtils.join( constraint.getDeclaredImports(), ", " ) ); - } - - if ( constraint.getRange() != null ) - { - query.setRange( constraint.getRange()[0], constraint.getRange()[1] ); - } - - if ( constraint.getDeclaredParameters() != null ) - { - if ( constraint.getParameters() == null ) - { - throw new JDOException( "Unable to use query, there are declared parameters, " - + "but no parameter objects to use." ); - } - - if ( constraint.getParameters().length != constraint.getDeclaredParameters().length ) - { - throw new JDOException( "Unable to use query, there are <" + constraint.getDeclaredParameters().length - + "> declared parameters, yet there are <" + constraint.getParameters().length - + "> parameter objects to use. This should be equal." ); - } - - query.declareParameters( StringUtils.join( constraint.getDeclaredParameters(), ", " ) ); - - return processParameterizedQuery( query, constraint.getParameters() ); - } - else - { - return (List) query.execute(); - } - } - - private List processParameterizedQuery( Query query, Object parameters[] ) - { - switch ( parameters.length ) - { - case 1: - return (List) query.execute( parameters[0] ); - case 2: - return (List) query.execute( parameters[0], parameters[1] ); - case 3: - return (List) query.execute( parameters[0], parameters[1], parameters[2] ); - default: - throw new JDOException( "Unable to use more than 3 parameters." ); - } - } - - public Object getObjectById( Class clazz, Object id, String fetchGroup ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - if ( id == null ) - { - throw new ObjectNotFoundException( "Unable to get object '" + clazz.getName() + "' from jdo using null id." ); - } - - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - if ( fetchGroup != null ) - { - pm.getFetchPlan().addGroup( fetchGroup ); - } - - Object objectId = null; - - if ( id instanceof CompoundKey ) - { - objectId = pm.newObjectIdInstance( clazz, id.toString() ); - } - else - { - objectId = pm.newObjectIdInstance( clazz, id ); - } - - Object object = pm.getObjectById( objectId ); - - object = pm.detachCopy( object ); - - tx.commit(); - - return object; - } - catch ( JDOObjectNotFoundException e ) - { - throw new ObjectNotFoundException( "Unable to find Database Object [" + id + "] of type " + clazz.getName() - + " using " + ( ( fetchGroup == null ) ? "no fetch-group" : "a fetch-group of [" + fetchGroup + "]" ), - e, id ); - } - catch ( JDOException e ) - { - throw new ArchivaDatabaseException( "Error in JDO during get of Database object id [" + id + "] of type " - + clazz.getName() + " using " - + ( ( fetchGroup == null ) ? "no fetch-group" : "a fetch-group of [" + fetchGroup + "]" ), e ); - } - finally - { - rollbackIfActive( tx ); - } - } - - public Object getObjectById( Class clazz, String id, String fetchGroup ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - if ( StringUtils.isEmpty( id ) ) - { - throw new ObjectNotFoundException( "Unable to get object '" + clazz.getName() - + "' from jdo using null/empty id." ); - } - - return getObjectById( clazz, (Object) id, fetchGroup ); - } - - public boolean objectExists( Object object ) - { - return ( JDOHelper.getObjectId( object ) != null ); - } - - public boolean objectExistsById( Class clazz, String id ) - throws ArchivaDatabaseException - { - try - { - Object o = getObjectById( clazz, id, null ); - return ( o != null ); - } - catch ( ObjectNotFoundException e ) - { - return false; - } - } - - public void removeObject( Object o ) - throws ArchivaDatabaseException - { - if ( o == null ) - { - throw new ArchivaDatabaseException( "Unable to remove null object '" + o.getClass().getName() + "'" ); - } - - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - o = pm.getObjectById( pm.getObjectId( o ) ); - - pm.deletePersistent( o ); - - tx.commit(); - } - finally - { - rollbackIfActive( tx ); - } - } - - public void rollbackIfActive( Transaction tx ) - { - PersistenceManager pm = tx.getPersistenceManager(); - - try - { - if ( tx.isActive() ) - { - tx.rollback(); - } - } - finally - { - closePersistenceManager( pm ); - } - } - - public void closePersistenceManager( PersistenceManager pm ) - { - try - { - pm.close(); - } - catch ( JDOUserException e ) - { - // ignore - } - } - - public void postDelete( InstanceLifecycleEvent evt ) - { - PersistenceCapable obj = ( (PersistenceCapable) evt.getSource() ); - - if ( obj == null ) - { - // Do not track null objects. - // These events are typically a product of an internal lifecycle event. - return; - } - } - - public void preDelete( InstanceLifecycleEvent evt ) - { - // ignore - } - - public void postStore( InstanceLifecycleEvent evt ) - { - // PersistenceCapable obj = ( (PersistenceCapable) evt.getSource() ); - } - - public void preStore( InstanceLifecycleEvent evt ) - { - // ignore - } - - public void removeAll( Class aClass ) - { - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - Query query = pm.newQuery( aClass ); - query.deletePersistentAll(); - - tx.commit(); - } - finally - { - rollbackIfActive( tx ); - } - } - - public JdoFactory getJdoFactory() - { - return jdoFactory; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java deleted file mode 100644 index 90b2d0870..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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.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; - -import java.io.Serializable; -import java.util.List; - -/** - * JdoArchivaDAO - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role-hint="jdo" - */ -public class JdoArchivaDAO - implements ArchivaDAO -{ - /** - * @plexus.requirement role-hint="archiva" - */ - private JdoAccess jdo; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArtifactDAO artifactDAO; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ProjectModelDAO projectModelDAO; - - /** - * @plexus.requirement role-hint="jdo" - */ - private RepositoryProblemDAO repositoryProblemDAO; - - /** - * @plexus.requirement role-hint="jdo" - */ - private RepositoryContentStatisticsDAO repositoryContentStatisticsDAO; - - - public List query( SimpleConstraint constraint ) - { - return jdo.queryObjects( constraint ); - } - - public Object save( Serializable obj ) - { - return jdo.saveObject( obj ); - } - - public ArtifactDAO getArtifactDAO() - { - return artifactDAO; - } - - public ProjectModelDAO getProjectModelDAO() - { - return projectModelDAO; - } - - public RepositoryProblemDAO getRepositoryProblemDAO() - { - return repositoryProblemDAO; - } - - public RepositoryContentStatisticsDAO getRepositoryContentStatisticsDAO() - { - return repositoryContentStatisticsDAO; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java deleted file mode 100644 index 81a0fc7b7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; -import org.apache.maven.archiva.model.jpox.ArchivaArtifactModelKey; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * JdoArtifactDAO - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role-hint="jdo" - */ -public class JdoArtifactDAO - implements ArtifactDAO -{ - /** - * @plexus.requirement role-hint="archiva" - */ - private JdoAccess jdo; - - /* .\ Archiva Artifact \. _____________________________________________________________ */ - - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - { - ArchivaArtifact artifact; - - try - { - artifact = getArtifact( groupId, artifactId, version, classifier, type ); - } - catch ( ArchivaDatabaseException e ) - { - artifact = new ArchivaArtifact( groupId, artifactId, version, classifier, type ); - } - - return artifact; - } - - public ArchivaArtifact getArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - ArchivaArtifactModelKey key = new ArchivaArtifactModelKey(); - key.setGroupId( groupId ); - key.setArtifactId( artifactId ); - key.setVersion( version ); - key.setClassifier( classifier ); - key.setType( type ); - - ArchivaArtifactModel model = (ArchivaArtifactModel) jdo.getObjectById( ArchivaArtifactModel.class, key, null ); - - return new ArchivaArtifact( model ); - } - - public List queryArtifacts( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - List results = jdo.queryObjects( ArchivaArtifactModel.class, constraint ); - if ( ( results == null ) || results.isEmpty() ) - { - return results; - } - - List ret = new ArrayList(); - Iterator it = results.iterator(); - while ( it.hasNext() ) - { - ArchivaArtifactModel model = (ArchivaArtifactModel) it.next(); - ret.add( new ArchivaArtifact( model ) ); - } - - return ret; - } - - public ArchivaArtifact saveArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - ArchivaArtifactModel model = (ArchivaArtifactModel) jdo.saveObject( artifact.getModel() ); - if ( model == null ) - { - return null; - } - - return new ArchivaArtifact( model ); - } - - public void deleteArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - jdo.removeObject( artifact.getModel() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAO.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAO.java deleted file mode 100644 index f643bdfd2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAO.java +++ /dev/null @@ -1,94 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.ProjectModelDAO; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.jpox.ArchivaProjectModelKey; - -import java.util.List; - -/** - * JdoProjectModelDAO - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role-hint="jdo" - */ -public class JdoProjectModelDAO - implements ProjectModelDAO -{ - /** - * @plexus.requirement role-hint="archiva" - */ - private JdoAccess jdo; - - public ArchivaProjectModel createProjectModel( String groupId, String artifactId, String version ) - { - ArchivaProjectModel model; - - try - { - model = getProjectModel( groupId, artifactId, version ); - } - catch ( ArchivaDatabaseException e ) - { - model = new ArchivaProjectModel(); - model.setGroupId( groupId ); - model.setArtifactId( artifactId ); - model.setVersion( version ); - } - - return model; - } - - public ArchivaProjectModel getProjectModel( String groupId, String artifactId, String version ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - ArchivaProjectModelKey key = new ArchivaProjectModelKey(); - key.groupId = groupId; - key.artifactId = artifactId; - key.version = version; - - return (ArchivaProjectModel) jdo.getObjectById( ArchivaProjectModel.class, key, null ); - } - - public List queryProjectModels( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - return jdo.queryObjects( ArchivaProjectModel.class, constraint ); - } - - public ArchivaProjectModel saveProjectModel( ArchivaProjectModel model ) - throws ArchivaDatabaseException - { - return (ArchivaProjectModel) jdo.saveObject( model ); - } - - public void deleteProjectModel( ArchivaProjectModel model ) - throws ArchivaDatabaseException - { - jdo.removeObject( model ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryContentStatisticsDAO.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryContentStatisticsDAO.java deleted file mode 100644 index 00475ed9e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryContentStatisticsDAO.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.RepositoryContentStatisticsDAO; -import org.apache.maven.archiva.model.RepositoryContentStatistics; - -/** - * JdoRepositoryContentStatisticsDAO - * - * @author Maria Odea Ching - * @version - * - * @plexus.component role-hint="jdo" - */ -public class JdoRepositoryContentStatisticsDAO - implements RepositoryContentStatisticsDAO -{ - /** - * @plexus.requirement role-hint="archiva" - */ - private JdoAccess jdo; - - public void deleteRepositoryContentStatistics( RepositoryContentStatistics stats ) - throws ArchivaDatabaseException - { - jdo.removeObject( stats ); - } - - public List queryRepositoryContentStatistics( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - List results = jdo.queryObjects( RepositoryContentStatistics.class, constraint ); - - return results; - } - - public RepositoryContentStatistics saveRepositoryContentStatistics( RepositoryContentStatistics stats ) - { - RepositoryContentStatistics savedStats = (RepositoryContentStatistics) jdo.saveObject( stats ); - - return savedStats; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryProblemDAO.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryProblemDAO.java deleted file mode 100644 index 49c1385f0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryProblemDAO.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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.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; - -import java.util.List; - -/** - * JdoRepositoryProblemDAO - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role-hint="jdo" - */ -public class JdoRepositoryProblemDAO - implements RepositoryProblemDAO -{ - /** - * @plexus.requirement role-hint="archiva" - */ - private JdoAccess jdo; - - public List queryRepositoryProblems( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - return jdo.queryObjects( RepositoryProblem.class, constraint ); - } - - public RepositoryProblem saveRepositoryProblem( RepositoryProblem problem ) - throws ArchivaDatabaseException - { - return (RepositoryProblem) jdo.saveObject( problem ); - } - - public void deleteRepositoryProblem( RepositoryProblem problem ) - throws ArchivaDatabaseException - { - jdo.removeObject( problem ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/project/DatabaseProjectModelResolver.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/project/DatabaseProjectModelResolver.java deleted file mode 100644 index 1310a90cb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/project/DatabaseProjectModelResolver.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.maven.archiva.database.project; - -/* - * 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.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelResolver; - -/** - * Resolves a project model from the database. - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.repository.project.ProjectModelResolver" - * role-hint="database" - */ -public class DatabaseProjectModelResolver - implements ProjectModelResolver -{ - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - public ArchivaProjectModel resolveProjectModel( VersionedReference reference ) - throws ProjectModelException - { - try - { - ArchivaProjectModel model = dao.getProjectModelDAO().getProjectModel( reference.getGroupId(), - reference.getArtifactId(), - reference.getVersion() ); - return model; - } - catch ( ObjectNotFoundException e ) - { - return null; - } - catch ( ArchivaDatabaseException e ) - { - return null; - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/project/ProjectModelToDatabaseListener.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/project/ProjectModelToDatabaseListener.java deleted file mode 100644 index 04f3a23c7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/project/ProjectModelToDatabaseListener.java +++ /dev/null @@ -1,155 +0,0 @@ -package org.apache.maven.archiva.database.project; - -/* - * 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.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelResolver; -import org.apache.maven.archiva.repository.project.resolvers.FilesystemBasedResolver; -import org.apache.maven.archiva.repository.project.resolvers.ProjectModelResolutionListener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Just in Time save of project models to the database, implemented as a listener - * on {@link ProjectModelResolver} objects that implement {@link FilesystemBasedResolver}. - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component - * role="org.apache.maven.archiva.repository.project.resolvers.ProjectModelResolutionListener" - * role-hint="model-to-db" - */ -public class ProjectModelToDatabaseListener - implements ProjectModelResolutionListener -{ - private Logger log = LoggerFactory.getLogger( ProjectModelToDatabaseListener.class ); - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - private void saveInDatabase( ArchivaProjectModel model ) - throws ProjectModelException - { - try - { - dao.getProjectModelDAO().saveProjectModel( model ); - } - catch ( ArchivaDatabaseException e ) - { - throw new ProjectModelException( "Unable to save model to database: " + e.getMessage(), e ); - } - } - - private void removeFromDatabase( ArchivaProjectModel model ) - throws ProjectModelException - { - try - { - dao.getProjectModelDAO().deleteProjectModel( model ); - } - catch ( ArchivaDatabaseException e ) - { - throw new ProjectModelException( "Unable to remove existing model from database: " + e.getMessage(), e ); - } - } - - private boolean existsInDatabase( ArchivaProjectModel model ) - throws ProjectModelException - { - try - { - ArchivaProjectModel dbmodel = dao.getProjectModelDAO().getProjectModel( model.getGroupId(), - model.getArtifactId(), - model.getVersion() ); - - return ( dbmodel != null ); - } - catch ( ObjectNotFoundException e ) - { - return false; - } - catch ( ArchivaDatabaseException e ) - { - throw new ProjectModelException( "Unable to check for existing model from database: " + e.getMessage(), e ); - } - } - - public void resolutionAttempting( VersionedReference projectRef, ProjectModelResolver resolver ) - { - /* do nothing */ - } - - public void resolutionError( VersionedReference projectRef, ProjectModelResolver resolver, Exception cause ) - { - /* do nothing */ - } - - public void resolutionMiss( VersionedReference projectRef, ProjectModelResolver resolver ) - { - /* do nothing */ - } - - public void resolutionNotFound( VersionedReference projectRef, List resolverList ) - { - /* do nothing */ - } - - public void resolutionStart( VersionedReference projectRef, List resolverList ) - { - /* do nothing */ - } - - public void resolutionSuccess( VersionedReference projectRef, ProjectModelResolver resolver, - ArchivaProjectModel model ) - { - if ( !( resolver instanceof FilesystemBasedResolver ) ) - { - // Nothing to do. skip it. - return; - } - - model.setOrigin( "filesystem" ); - - try - { - // Test if it exists. - if ( existsInDatabase( model ) ) - { - removeFromDatabase( model ); - } - - saveInDatabase( model ); - } - catch ( ProjectModelException e ) - { - log.warn( e.getMessage(), e ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseConsumers.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseConsumers.java deleted file mode 100644 index 01dee02fd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseConsumers.java +++ /dev/null @@ -1,161 +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.commons.collections.CollectionUtils; -import org.apache.commons.collections.Predicate; -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.DatabaseCleanupConsumer; -import org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.consumers.functors.PermanentConsumerPredicate; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * DatabaseConsumers - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.database.updater.DatabaseConsumers" - */ -public class DatabaseConsumers - implements Initializable -{ - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - /** - * @plexus.requirement role="org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer" - */ - private List availableUnprocessedConsumers; - - /** - * @plexus.requirement role="org.apache.maven.archiva.consumers.DatabaseCleanupConsumer" - */ - private List availableCleanupConsumers; - - private Predicate selectedCleanupConsumers; - - private Predicate selectedUnprocessedConsumers; - - class SelectedUnprocessedConsumersPredicate - implements Predicate - { - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof DatabaseUnprocessedArtifactConsumer ) - { - DatabaseUnprocessedArtifactConsumer consumer = (DatabaseUnprocessedArtifactConsumer) object; - DatabaseScanningConfiguration config = archivaConfiguration.getConfiguration().getDatabaseScanning(); - - return config.getUnprocessedConsumers().contains( consumer.getId() ); - } - - return satisfies; - } - } - - class SelectedCleanupConsumersPredicate - implements Predicate - { - 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() ); - } - - return satisfies; - } - } - - public void initialize() - throws InitializationException - { - Predicate permanentConsumers = new PermanentConsumerPredicate(); - - selectedCleanupConsumers = new OrPredicate( permanentConsumers, new SelectedCleanupConsumersPredicate() ); - selectedUnprocessedConsumers = new OrPredicate( permanentConsumers, new SelectedUnprocessedConsumersPredicate() ); - } - - /** - * Get the {@link List} of {@link DatabaseUnprocessedArtifactConsumer} objects - * for those consumers selected due to the configuration. - * - * @return the list of selected {@link DatabaseUnprocessedArtifactConsumer} objects. - */ - public List getSelectedUnprocessedConsumers() - { - List ret = new ArrayList(); - ret.addAll( CollectionUtils.select( availableUnprocessedConsumers, selectedUnprocessedConsumers ) ); - return ret; - } - - /** - * Get the {@link List} of {@link DatabaseCleanupConsumer} objects for those - * consumers selected due to the configuration. - * - * @return the list of selected {@link DatabaseCleanupConsumer} objects. - */ - public List getSelectedCleanupConsumers() - { - List ret = new ArrayList(); - ret.addAll( CollectionUtils.select( availableCleanupConsumers, selectedCleanupConsumers ) ); - return ret; - } - - /** - * Get the complete {@link List} of {@link DatabaseUnprocessedArtifactConsumer} objects - * that are available in the system, regardless of configuration. - * - * @return the list of all available {@link DatabaseUnprocessedArtifactConsumer} objects. - */ - public List getAvailableUnprocessedConsumers() - { - return Collections.unmodifiableList( this.availableUnprocessedConsumers ); - } - - /** - * 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. - */ - public List getAvailableCleanupConsumers() - { - return Collections.unmodifiableList( this.availableCleanupConsumers ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseUpdater.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseUpdater.java deleted file mode 100644 index 293e19368..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/DatabaseUpdater.java +++ /dev/null @@ -1,79 +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.database.ArchivaDatabaseException; -import org.apache.maven.archiva.model.ArchivaArtifact; - -/** - * The database update component. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -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. - */ - public void updateAllUnprocessed() - throws ArchivaDatabaseException; - - /** - * Update specific unprocessed content. - * - * @throws ArchivaDatabaseException if there was a fatal error with the database. - */ - 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-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/JdoDatabaseUpdater.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/JdoDatabaseUpdater.java deleted file mode 100644 index fce87a76f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/JdoDatabaseUpdater.java +++ /dev/null @@ -1,174 +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 java.util.Date; -import java.util.Iterator; -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.consumers.ArchivaArtifactConsumer; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.constraints.ArtifactsProcessedConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.functors.UnprocessedArtifactPredicate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * JdoDatabaseUpdater - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.database.updater.DatabaseUpdater" - * role-hint="jdo" - */ -public class JdoDatabaseUpdater - implements DatabaseUpdater -{ - private Logger log = LoggerFactory.getLogger( JdoDatabaseUpdater.class ); - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * @plexus.requirement - */ - private DatabaseConsumers dbConsumers; - - private ProcessArchivaArtifactClosure processArtifactClosure = new ProcessArchivaArtifactClosure(); - - public void update() - throws ArchivaDatabaseException - { - updateAllUnprocessed(); - updateAllProcessed(); - } - - public void updateAllUnprocessed() - throws ArchivaDatabaseException - { - List unprocessedArtifacts = dao.getArtifactDAO().queryArtifacts( new ArtifactsProcessedConstraint( false ) ); - - beginConsumerLifecycle( dbConsumers.getSelectedUnprocessedConsumers() ); - - try - { - // Process each consumer. - Predicate predicate = UnprocessedArtifactPredicate.getInstance(); - - Iterator it = IteratorUtils.filteredIterator( unprocessedArtifacts.iterator(), predicate ); - while ( it.hasNext() ) - { - ArchivaArtifact artifact = (ArchivaArtifact) it.next(); - updateUnprocessed( artifact ); - } - } - finally - { - endConsumerLifecycle( dbConsumers.getSelectedUnprocessedConsumers() ); - } - } - - public void updateAllProcessed() - throws ArchivaDatabaseException - { - List processedArtifacts = dao.getArtifactDAO().queryArtifacts( new ArtifactsProcessedConstraint( true ) ); - - beginConsumerLifecycle( dbConsumers.getSelectedCleanupConsumers() ); - - try - { - // Process each consumer. - Predicate predicate = NotPredicate.getInstance( UnprocessedArtifactPredicate.getInstance() ); - - Iterator it = IteratorUtils.filteredIterator( processedArtifacts.iterator(), predicate ); - while ( it.hasNext() ) - { - ArchivaArtifact artifact = (ArchivaArtifact) it.next(); - updateProcessed( artifact ); - } - } - finally - { - endConsumerLifecycle( dbConsumers.getSelectedCleanupConsumers() ); - } - } - - private void endConsumerLifecycle( List consumers ) - { - Iterator it = consumers.iterator(); - while ( it.hasNext() ) - { - ArchivaArtifactConsumer consumer = (ArchivaArtifactConsumer) it.next(); - consumer.completeScan(); - } - } - - private void beginConsumerLifecycle( List consumers ) - { - Iterator it = consumers.iterator(); - while ( it.hasNext() ) - { - ArchivaArtifactConsumer consumer = (ArchivaArtifactConsumer) it.next(); - consumer.beginScan(); - } - } - - public void updateUnprocessed( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - List consumers = dbConsumers.getSelectedUnprocessedConsumers(); - - if ( CollectionUtils.isEmpty( consumers ) ) - { - log.warn( "There are no selected consumers for unprocessed artifacts." ); - return; - } - - this.processArtifactClosure.setArtifact( artifact ); - CollectionUtils.forAllDo( consumers, this.processArtifactClosure ); - - artifact.getModel().setWhenProcessed( new Date() ); - dao.getArtifactDAO().saveArtifact( artifact ); - } - - public void updateProcessed( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - List 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-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/ProcessArchivaArtifactClosure.java b/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/ProcessArchivaArtifactClosure.java deleted file mode 100644 index 7d404a842..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/updater/ProcessArchivaArtifactClosure.java +++ /dev/null @@ -1,69 +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.commons.collections.Closure; -import org.apache.maven.archiva.consumers.ArchivaArtifactConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ProcessArchivaArtifactClosure - * - * @author Joakim Erdfelt - * @version $Id$ - */ -class ProcessArchivaArtifactClosure - implements Closure -{ - private Logger log = LoggerFactory.getLogger( ProcessArchivaArtifactClosure.class ); - - private ArchivaArtifact artifact; - - public void execute( Object input ) - { - if ( input instanceof ArchivaArtifactConsumer ) - { - ArchivaArtifactConsumer consumer = (ArchivaArtifactConsumer) input; - - try - { - consumer.processArchivaArtifact( artifact ); - } - catch ( ConsumerException e ) - { - log.warn( "Unable to process artifact [" + artifact + "] with consumer [" + consumer.getId() + "]", e ); - } - } - - } - - public ArchivaArtifact getArtifact() - { - return artifact; - } - - public void setArtifact( ArchivaArtifact artifact ) - { - this.artifact = artifact; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ArtifactKey.xml b/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ArtifactKey.xml deleted file mode 100644 index 82dc174b1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ArtifactKey.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - INSERT INTO - ARTIFACT_KEYS ( GROUP_ID, ARTIFACT_ID, VERSION_ID, CLASSIFIER, TYPE ) - VALUES (#groupId#, #artifactId#, #version# ) - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ManageTables.xml b/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ManageTables.xml deleted file mode 100644 index 1f8f8d295..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ManageTables.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - CREATE TABLE ArtifactKeys ( - GROUP_ID varchar (100) not null, - ARTIFACT_ID varchar (100) not null, - VERSION varchar (50) not null, - CLASSIFIER varchar (50), - TYPE varchar (20), - ARTIFACT_KEY integer generated always as identity ( start with 1 ), - primary key ( GROUP_ID, ARTIFACT_ID, VERSION, CLASSIFIER, TYPE ) - ) - - - - DROP TABLE ArtifactKeys - - - - - - - - CREATE TABLE MetadataKeys ( - metadataKey integer generated always as identity ( start with 1 ) primary key, - groupId varchar(100) not null, - artifactId varchar(100) not null, - version varchar(100) not null - ) - - - - DROP TABLE MetadataKeys - - - - CREATE TABLE RepositoryMetadata ( - metadataKey integer not null, - id integer generated always as identity ( start with 1 ) primary key, - latest varchar(100) not null, - release varchar(100) not null, - lastUpdated integer, - snapshotTimestamp integer, - snapshotBuildNumber integer, - snapshotLocalCopy char(1), - foreign key( metadataKey ) references MetadataKeys( metadataKey ) - ) - - - - DROP TABLE RepositoryMetadata - - - - CREATE TABLE HealthMetadata ( - metadataKey integer not null, - id integer generated always as identity ( start with 1 ) primary key, - processId varchar(100) not null, - problemId varchar(100) not null, - message varchar(8000) not null, - foreign key( metadataKey ) references MetadataKeys( metadataKey ) - ) - - - - CREATE TABLE VersionMetadata ( - metadataKey integer not null, - id integer generated always as identity ( start with 1 ) primary key, - version varchar(100) not null, - foreign key( metadataKey ) references MetadataKeys( metadataKey ) - ) - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/MetadataKey.xml b/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/MetadataKey.xml deleted file mode 100644 index 7713c9ba8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/MetadataKey.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - INSERT INTO - MetadataKeys ( groupId, artifactId, version ) - VALUES ( #groupId#, #artifactId#, #version# ) - - - - DELETE FROM - MetadataKeys - WHERE metadataKey=#metadataKey# - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/RepositoryMetadata.xml b/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/RepositoryMetadata.xml deleted file mode 100644 index 6c745f9c8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/RepositoryMetadata.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - DELETE FROM - RepositoryMetadata - WHERE metadataKey=#metadataKey# - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java deleted file mode 100644 index d40fed4d8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java +++ /dev/null @@ -1,208 +0,0 @@ -package org.apache.maven.archiva.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.DatabaseCleanupConsumer; -import org.apache.maven.archiva.consumers.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; -import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory; -import org.codehaus.plexus.jdo.JdoFactory; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.jpox.SchemaTool; - -import java.io.File; -import java.net.URL; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Iterator; -import java.util.Map; -import java.util.Properties; - -import javax.jdo.PersistenceManager; -import javax.jdo.PersistenceManagerFactory; - -/** - * AbstractArchivaDatabaseTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractArchivaDatabaseTestCase - extends PlexusInSpringTestCase -{ - private static final String TIMESTAMP = "yyyy/MM/dd HH:mm:ss"; - - protected ArchivaDAO dao; - - protected void setUp() - throws Exception - { - super.setUp(); - - DefaultConfigurableJdoFactory jdoFactory = (DefaultConfigurableJdoFactory) lookup( JdoFactory.ROLE, "archiva" ); - assertEquals( DefaultConfigurableJdoFactory.class.getName(), jdoFactory.getClass().getName() ); - - jdoFactory.setPersistenceManagerFactoryClass( "org.jpox.PersistenceManagerFactoryImpl" ); - - /* derby version - File derbyDbDir = new File( "target/plexus-home/testdb" ); - if ( derbyDbDir.exists() ) - { - FileUtils.deleteDirectory( derbyDbDir ); - } - - jdoFactory.setDriverName( System.getProperty( "jdo.test.driver", "org.apache.derby.jdbc.EmbeddedDriver" ) ); - jdoFactory.setUrl( System.getProperty( "jdo.test.url", "jdbc:derby:" + derbyDbDir.getAbsolutePath() + ";create=true" ) ); - */ - - jdoFactory.setDriverName( System.getProperty( "jdo.test.driver", "org.hsqldb.jdbcDriver" ) ); - jdoFactory.setUrl( System.getProperty( "jdo.test.url", "jdbc:hsqldb:mem:" + getName() ) ); - - jdoFactory.setUserName( System.getProperty( "jdo.test.user", "sa" ) ); - - jdoFactory.setPassword( System.getProperty( "jdo.test.pass", "" ) ); - - jdoFactory.setProperty( "org.jpox.transactionIsolation", "READ_COMMITTED" ); - - jdoFactory.setProperty( "org.jpox.poid.transactionIsolation", "READ_COMMITTED" ); - - jdoFactory.setProperty( "org.jpox.autoCreateSchema", "true" ); - - jdoFactory.setProperty( "javax.jdo.option.RetainValues", "true" ); - - jdoFactory.setProperty( "javax.jdo.option.RestoreValues", "true" ); - - // jdoFactory.setProperty( "org.jpox.autoCreateColumns", "true" ); - - jdoFactory.setProperty( "org.jpox.validateTables", "true" ); - - jdoFactory.setProperty( "org.jpox.validateColumns", "true" ); - - jdoFactory.setProperty( "org.jpox.validateConstraints", "true" ); - - Properties properties = jdoFactory.getProperties(); - - for ( Iterator it = properties.entrySet().iterator(); it.hasNext(); ) - { - Map.Entry entry = (Map.Entry) it.next(); - - System.setProperty( (String) entry.getKey(), (String) entry.getValue() ); - } - - URL jdoFileUrls[] = new URL[] { getClass().getResource( "/org/apache/maven/archiva/model/package.jdo" ) }; - - if ( ( jdoFileUrls == null ) || ( jdoFileUrls[0] == null ) ) - { - fail( "Unable to process test " + getName() + " - missing package.jdo." ); - } - - File propsFile = null; // intentional - boolean verbose = true; - - SchemaTool.deleteSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose ); - SchemaTool.createSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose, null ); - - PersistenceManagerFactory pmf = jdoFactory.getPersistenceManagerFactory(); - - assertNotNull( pmf ); - - PersistenceManager pm = pmf.getPersistenceManager(); - - pm.close(); - - 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 - { - TestDatabaseUnprocessedConsumer consumer = (TestDatabaseUnprocessedConsumer) lookup( - DatabaseUnprocessedArtifactConsumer.class, - "test-db-unprocessed" ); - assertNotNull( "Test Database Unprocessed Consumer should not be null.", consumer ); - return consumer; - } - - protected Date toDate( String txt ) - throws Exception - { - SimpleDateFormat sdf = new SimpleDateFormat( TIMESTAMP ); - return sdf.parse( txt ); - } - - protected String fromDate( Date date ) - throws Exception - { - SimpleDateFormat sdf = new SimpleDateFormat( TIMESTAMP ); - return sdf.format( date ); - } - - protected VersionedReference toVersionedReference( String id ) - { - String parts[] = StringUtils.splitPreserveAllTokens( id, ':' ); - assertEquals( "Should have 3 parts [" + id + "]", 3, parts.length ); - - VersionedReference ref = new VersionedReference(); - ref.setGroupId( parts[0] ); - ref.setArtifactId( parts[1] ); - ref.setVersion( parts[2] ); - - assertTrue( "Group ID should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getGroupId() ) ); - assertTrue( "Artifact ID should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getArtifactId() ) ); - assertTrue( "Version should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getVersion() ) ); - - return ref; - } - - protected ArtifactReference toArtifactReference( String id ) - { - String parts[] = StringUtils.splitPreserveAllTokens( id, ':' ); - assertEquals( "Should have 5 parts [" + id + "]", 5, parts.length ); - - ArtifactReference ref = new ArtifactReference(); - ref.setGroupId( parts[0] ); - ref.setArtifactId( parts[1] ); - ref.setVersion( parts[2] ); - ref.setClassifier( parts[3] ); - ref.setType( parts[4] ); - - assertTrue( "Group ID should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getGroupId() ) ); - assertTrue( "Artifact ID should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getArtifactId() ) ); - assertTrue( "Version should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getVersion() ) ); - // Blank string is ok for classifier, NULL is not. - assertNotNull( "Classifier should not be null [" + id + "]", ref.getClassifier() ); - assertTrue( "Type should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getType() ) ); - - return ref; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java deleted file mode 100644 index 7e76ee6b0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.apache.maven.archiva.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.util.Date; -import java.util.List; - -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.events.RepositoryListener; -import org.codehaus.plexus.spring.PlexusToSpringUtils; - -public class RepositoryDatabaseEventListenerTest - extends AbstractArchivaDatabaseTestCase -{ - private RepositoryListener listener; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - listener = (RepositoryListener) lookup( RepositoryListener.class.getName(), "database" ); - } - - public void testWiring() - { - List listeners = - PlexusToSpringUtils.lookupList( PlexusToSpringUtils.buildSpringId( RepositoryListener.class ), - getApplicationContext() ); - - assertEquals( 1, listeners.size() ); - assertEquals( listener, listeners.get( 0 ) ); - } - - public ArchivaArtifact createArtifact( String artifactId, String version, ArtifactDAO artifactDao ) - { - ArchivaArtifact artifact = - artifactDao.createArtifact( "org.apache.maven.archiva.test", artifactId, version, "", "jar" ); - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setRepositoryId( "testable_repo" ); - return artifact; - } - - public void testDeleteArtifact() - throws Exception - { - ArtifactDAO artifactDao = (ArtifactDAO) lookup( ArtifactDAO.class.getName(), "jdo" ); - - // Setup artifacts in fresh DB. - ArchivaArtifact artifact = createArtifact( "test-artifact", "1.0", artifactDao ); - artifactDao.saveArtifact( artifact ); - - assertEquals( artifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null, - "jar" ) ); - - artifact = new ArchivaArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null, "jar" ); - ManagedRepositoryContent repository = - (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class.getName(), "default" ); - listener.deleteArtifact( repository, artifact ); - - try - { - artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null, "jar" ); - fail( "Should not find artifact" ); - } - catch ( ObjectNotFoundException e ) - { - assertTrue( true ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java deleted file mode 100644 index 3eb408b9c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java +++ /dev/null @@ -1,153 +0,0 @@ -package org.apache.maven.archiva.database.browsing; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * RepositoryBrowsingTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryBrowsingTest - extends AbstractArchivaDatabaseTestCase -{ - private static final List GUEST_REPO_IDS; - - private static final String USER_GUEST = "guest"; - - static - { - GUEST_REPO_IDS = new ArrayList(); - GUEST_REPO_IDS.add( "central" ); - GUEST_REPO_IDS.add( "snapshots" ); - } - - private ArtifactDAO artifactDao; - - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( groupId, artifactId, version, "", "jar" ); - artifact.getModel().setLastModified( new Date() ); // mandatory field. - artifact.getModel().setRepositoryId( "central" ); - return artifact; - } - - public RepositoryBrowsing lookupBrowser() - throws Exception - { - RepositoryBrowsing browser = (RepositoryBrowsing) lookup( RepositoryBrowsing.class ); - assertNotNull( "RepositoryBrowsing should not be null.", browser ); - return browser; - } - - public void saveTestData() - throws Exception - { - ArchivaArtifact artifact; - - // Setup artifacts in fresh DB. - artifact = createArtifact( "commons-lang", "commons-lang", "2.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "commons-lang", "commons-lang", "2.1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.test", "test-one", "1.2" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.test.foo", "test-two", "1.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.shared", "test-two", "2.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.shared", "test-two", "2.1-SNAPSHOT" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.shared", "test-two", "2.1.1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.shared", "test-two", "2.1-alpha-1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.shared", "test-bar", "2.1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.codehaus.modello", "modellong", "3.0" ); - artifactDao.saveArtifact( artifact ); - } - - public void testBrowseIntoGroupWithSubgroups() - throws Exception - { - saveTestData(); - - RepositoryBrowsing browser = lookupBrowser(); - BrowsingResults results = browser.selectGroupId( USER_GUEST, GUEST_REPO_IDS, "org.apache.maven.test" ); - assertNotNull( "Browsing Results should not be null.", results ); - - String expectedSubGroupIds[] = new String[] { "org.apache.maven.test.foo" }; - assertGroupIds( "Browsing Results (subgroup org.apache.maven.test)", results.getGroupIds(), expectedSubGroupIds ); - } - - public void testSimpleBrowse() - throws Exception - { - saveTestData(); - - RepositoryBrowsing browser = lookupBrowser(); - BrowsingResults results = browser.getRoot( USER_GUEST, GUEST_REPO_IDS ); - assertNotNull( "Browsing Results should not be null.", results ); - - String expectedRootGroupIds[] = new String[] { "commons-lang", "org" }; - - assertGroupIds( "Browsing Results (root)", results.getGroupIds(), expectedRootGroupIds ); - } - - private void assertGroupIds( String msg, List actualGroupIds, String[] expectedGroupIds ) - { - assertEquals( msg + ": groupIds.length", expectedGroupIds.length, actualGroupIds.size() ); - - for ( int i = 0; i < expectedGroupIds.length; i++ ) - { - String expectedGroupId = expectedGroupIds[i]; - assertTrue( msg + ": actual groupIds.contains(" + expectedGroupId + ")", actualGroupIds - .contains( expectedGroupId ) ); - } - } - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/AllTests.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/AllTests.java deleted file mode 100644 index a2580de42..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/AllTests.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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 junit.framework.Test; -import junit.framework.TestSuite; - -/** - * IDE Provided Utility Class for all tests. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AllTests -{ - - public static Test suite() - { - TestSuite suite = new TestSuite( "Test for org.apache.maven.archiva.database.constraints" ); - //$JUnit-BEGIN$ - suite.addTestSuite( ArtifactsProcessedConstraintTest.class ); - suite.addTestSuite( ArtifactsByChecksumConstraintTest.class ); - suite.addTestSuite( OlderArtifactsByAgeConstraintTest.class ); - suite.addTestSuite( UniqueGroupIdConstraintTest.class ); - suite.addTestSuite( OlderSnapshotArtifactsByAgeConstraintTest.class ); - suite.addTestSuite( RecentArtifactsByAgeConstraintTest.class ); - //$JUnit-END$ - return suite; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraintTest.java deleted file mode 100644 index f7fa5b4ff..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraintTest.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.Calendar; -import java.util.Date; -import java.util.List; - -import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; - -/** - * ArtifactVersionsConstraintTest - * - * @author Maria Odea Ching - * @version - */ -public class ArtifactVersionsConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private ArtifactDAO artifactDao; - - public static final String TEST_REPO = "test-repo"; - - public void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } - - private ArchivaArtifact createArtifact( String groupId, String artifactId, String version ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( groupId, artifactId, version, null, "jar" ); - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setRepositoryId( TEST_REPO ); - - return artifact; - } - - private void populateDb() - throws Exception - { - Date whenGathered = Calendar.getInstance().getTime(); - whenGathered.setTime( 123456789 ); - - ArchivaArtifact artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0" ); - artifact.getModel().setWhenGathered( null ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.1" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.2" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "2.0" ); - artifact.getModel().setRepositoryId( "different-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - } - - public void testQueryAllVersionsOfArtifactAcrossRepos() throws Exception - { - populateDb(); - assertConstraint( "Artifacts By Repository", 3, - new ArtifactVersionsConstraint( null, "org.apache.archiva", "artifact-one" ) ); - } - - public void testQueryAllVersionsOfArtifactInARepo() throws Exception - { - populateDb(); - assertConstraint( "Artifacts By Repository", 2, - new ArtifactVersionsConstraint( TEST_REPO, "org.apache.archiva", "artifact-one" ) ); - } - - private void assertConstraint( String msg, int count, ArtifactVersionsConstraint constraint ) - throws Exception - { - List results = artifactDao.queryArtifacts( constraint ); - assertNotNull( msg + ": Not Null", results ); - assertEquals( msg + ": Results.size", count, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByChecksumConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByChecksumConstraintTest.java deleted file mode 100644 index 2cb34b08e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByChecksumConstraintTest.java +++ /dev/null @@ -1,202 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.Date; -import java.util.List; - -/** - * ArtifactsByChecksumConstraintTest - * - * @author Joakim Erdfelt - * @author Maria Odea Ching - * @version - */ -public class ArtifactsByChecksumConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private static final String SHA1_HASH3 = "f3f653289f3217c65324830ab3415bc92feddefa"; - - private static final String SHA1_HASH2 = "a49810ad3eba8651677ab57cd40a0f76fdef9538"; - - private static final String SHA1_HASH1 = "232f01b24b1617c46a3d4b0ab3415bc9237dcdec"; - - private static final String MD5_HASH3 = "5440efd724c9a5246ddc148662a4f20a"; - - private static final String MD5_HASH2 = "4685525525d82dea68c6a6cd5a08f726"; - - private static final String MD5_HASH1 = "53e3b856aa1a3f3cb7fe0f7ac6163aaf"; - - private ArtifactDAO artifactDao; - - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } - - public ArchivaArtifact createArtifact( String artifactId, String version ) - { - ArchivaArtifact artifact = - artifactDao.createArtifact( "org.apache.maven.archiva.test", artifactId, version, "", "jar" ); - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setRepositoryId( "testable_repo" ); - return artifact; - } - - public void testConstraintSHA1() - throws Exception - { - ArchivaArtifact artifact; - - // Setup artifacts in fresh DB. - artifact = createArtifact( "test-sha1-one", "1.0" ); - artifact.getModel().setChecksumSHA1( SHA1_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-sha1-one", "1.1" ); - artifact.getModel().setChecksumSHA1( SHA1_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-sha1-one", "1.2" ); - artifact.getModel().setChecksumSHA1( SHA1_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-sha1-two", "1.0" ); - artifact.getModel().setChecksumSHA1( SHA1_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-sha1-two", "2.0" ); - artifact.getModel().setChecksumSHA1( SHA1_HASH3 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-sha1-two", "2.1" ); - artifact.getModel().setChecksumSHA1( SHA1_HASH2 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-sha1-two", "3.0" ); - artifact.getModel().setChecksumSHA1( SHA1_HASH2 ); - artifactDao.saveArtifact( artifact ); - - assertConstraint( "Artifacts by SHA1 Checksum", 4, - new ArtifactsByChecksumConstraint( SHA1_HASH1, ArtifactsByChecksumConstraint.SHA1 ) ); - assertConstraint( "Artifacts by SHA1 Checksum", 2, - new ArtifactsByChecksumConstraint( SHA1_HASH2, ArtifactsByChecksumConstraint.SHA1 ) ); - assertConstraint( "Artifacts by SHA1 Checksum", 1, - new ArtifactsByChecksumConstraint( SHA1_HASH3, ArtifactsByChecksumConstraint.SHA1 ) ); - } - - public void testConstraintMD5() - throws Exception - { - ArchivaArtifact artifact; - - artifact = createArtifact( "test-md5-one", "1.0" ); - artifact.getModel().setChecksumMD5( MD5_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-md5-one", "1.1" ); - artifact.getModel().setChecksumMD5( MD5_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-md5-one", "1.2" ); - artifact.getModel().setChecksumMD5( MD5_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-md5-two", "1.0" ); - artifact.getModel().setChecksumMD5( MD5_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-md5-two", "2.0" ); - artifact.getModel().setChecksumMD5( MD5_HASH3 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-md5-two", "2.1" ); - artifact.getModel().setChecksumMD5( MD5_HASH2 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-md5-two", "3.0" ); - artifact.getModel().setChecksumMD5( MD5_HASH2 ); - artifactDao.saveArtifact( artifact ); - - assertConstraint( "Artifacts by MD5 Checksum", 4, - new ArtifactsByChecksumConstraint( MD5_HASH1, ArtifactsByChecksumConstraint.MD5 ) ); - assertConstraint( "Artifacts by MD5 Checksum", 2, - new ArtifactsByChecksumConstraint( MD5_HASH2, ArtifactsByChecksumConstraint.MD5 ) ); - assertConstraint( "Artifacts by MD5 Checksum", 1, - new ArtifactsByChecksumConstraint( MD5_HASH3, ArtifactsByChecksumConstraint.MD5 ) ); - } - - public void testConstraintOR() - throws Exception - { - ArchivaArtifact artifact; - - artifact = createArtifact( "test-one", "1.0" ); - artifact.getModel().setChecksumMD5( MD5_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.1" ); - artifact.getModel().setChecksumMD5( MD5_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.2" ); - artifact.getModel().setChecksumMD5( MD5_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "1.0" ); - artifact.getModel().setChecksumMD5( MD5_HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "2.0" ); - artifact.getModel().setChecksumMD5( MD5_HASH3 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "2.1" ); - artifact.getModel().setChecksumMD5( MD5_HASH2 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "3.0" ); - artifact.getModel().setChecksumMD5( MD5_HASH2 ); - artifactDao.saveArtifact( artifact ); - - assertConstraint( "Artifacts by MD5 Checksum", 4, new ArtifactsByChecksumConstraint( MD5_HASH1 ) ); - assertConstraint( "Artifacts by MD5 Checksum", 2, new ArtifactsByChecksumConstraint( MD5_HASH2 ) ); - assertConstraint( "Artifacts by MD5 Checksum", 1, new ArtifactsByChecksumConstraint( MD5_HASH3 ) ); - } - - - private void assertConstraint( String msg, int count, ArtifactsByChecksumConstraint constraint ) - throws Exception - { - List results = artifactDao.queryArtifacts( constraint ); - assertNotNull( msg + ": Not Null", results ); - assertEquals( msg + ": Results.size", count, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java deleted file mode 100644 index 41516e7d5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java +++ /dev/null @@ -1,175 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.Calendar; -import java.util.Date; -import java.util.List; - -import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; - -/** - * ArtifactsByRepositoryConstraintTest - * - * @author Maria Odea Ching - * @version - */ -public class ArtifactsByRepositoryConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private ArtifactDAO artifactDao; - - public void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } - - private ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String type ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( groupId, artifactId, version, null, type ); - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setRepositoryId( "test-repo" ); - - return artifact; - } - - public void testQueryAllArtifactsInRepo() - throws Exception - { - Date whenGathered = Calendar.getInstance().getTime(); - whenGathered.setTime( 123456789 ); - - ArchivaArtifact artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.1", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-two", "1.0.2", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "2.0", "jar" ); - artifact.getModel().setRepositoryId( "different-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - assertConstraint( "Artifacts By Repository", 3, new ArtifactsByRepositoryConstraint( "test-repo" ) ); - } - - public void testQueryArtifactsInRepoWithWhenGathered() - throws Exception - { - Date whenGathered = Calendar.getInstance().getTime(); - - ArchivaArtifact artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.1", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.2", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "2.0", "jar" ); - artifact.getModel().setRepositoryId( "different-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - Date olderWhenGathered = Calendar.getInstance().getTime(); - olderWhenGathered.setTime( 123456789 ); - - artifact = createArtifact( "org.apache.archiva", "artifact-two", "1.1-SNAPSHOT", "jar" ); - artifact.getModel().setWhenGathered( olderWhenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-three", "2.0-beta-1", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - assertConstraint( "Artifacts By Repository and When Gathered", 4, - new ArtifactsByRepositoryConstraint( "test-repo", whenGathered, "repositoryId", false ) ); - } - - public void testQueryArtifactsInRepoByType() - throws Exception - { - Calendar cal = Calendar.getInstance(); - cal.set( 2008, 9, 1 ); - Date whenGathered = cal.getTime(); - - ArchivaArtifact artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.1", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.2", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-two", "1.1-SNAPSHOT", "war" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-three", "2.0-beta-1", "war" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - Calendar cal2 = Calendar.getInstance(); - cal2.set( 2008, 12, 12 ); - Date diffWhenGathered = cal2.getTime(); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "2.0", "jar" ); - artifact.getModel().setWhenGathered( diffWhenGathered ); - artifactDao.saveArtifact( artifact ); - - cal2 = Calendar.getInstance(); - cal2.set( 2008, 10, 30 ); - Date before = cal2.getTime(); - - assertConstraint( "Artifacts of Type 'jar' By Repository and When Gathered", 3, - new ArtifactsByRepositoryConstraint( "test-repo", "jar", before, "whenGathered" ) ); - assertConstraint( "Artifacts of Type 'war' By Repository and When Gathered", 2, - new ArtifactsByRepositoryConstraint( "test-repo", "war", before, "whenGathered" ) ); - } - - private void assertConstraint( String msg, int count, ArtifactsByRepositoryConstraint constraint ) - throws Exception - { - List results = artifactDao.queryArtifacts( constraint ); - assertNotNull( msg + ": Not Null", results ); - assertEquals( msg + ": Results.size", count, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraintTest.java deleted file mode 100644 index d978213af..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraintTest.java +++ /dev/null @@ -1,136 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.Date; -import java.util.Iterator; -import java.util.List; - -/** - * ArtifactsProcessedConstraintTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArtifactsProcessedConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String whenProcessed ) - throws Exception - { - ArchivaArtifact artifact = dao.getArtifactDAO().createArtifact( groupId, artifactId, version, "", "jar" ); - assertNotNull( "Artifact should not be null.", artifact ); - Date dateWhenProcessed = null; - - if ( whenProcessed != null ) - { - dateWhenProcessed = toDate( whenProcessed ); - } - - artifact.getModel().setWhenProcessed( dateWhenProcessed ); - - // Satisfy table / column requirements. - artifact.getModel().setLastModified( new Date() ); - - return artifact; - } - - public void assertResults( String type, List results, String expectedArtifacts[] ) - { - assertNotNull( "Results[" + type + "] should not be null.", results ); - assertEquals( "Results[" + type + "].size", expectedArtifacts.length, results.size() ); - - for ( int i = 0; i < expectedArtifacts.length; i++ ) - { - String artifactId = expectedArtifacts[i]; - - int found = 0; - Iterator it = results.iterator(); - while ( it.hasNext() ) - { - ArchivaArtifact artifact = (ArchivaArtifact) it.next(); - if ( artifactId.equals( artifact.getArtifactId() ) ) - { - found++; - } - } - - if ( found <= 0 ) - { - fail( "Results[" + type + "] - Did not find expected artifact ID [" + artifactId + "]" ); - } - - if ( found > 1 ) - { - fail( "Results[" + type + "] - Expected to find 1 copy of artifact ID [" + artifactId - + "], yet found <" + found + "> instead." ); - } - } - } - - protected void setUp() - throws Exception - { - super.setUp(); - - ArtifactDAO adao = dao.getArtifactDAO(); - assertNotNull( "Artifact DAO should not be null.", adao ); - - adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-common", "1.0-SNAPSHOT", null ) ); - adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-utils", "1.0-SNAPSHOT", - "2006/08/22 19:01:00" ) ); - adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-old", "0.1", "2004/02/15 9:01:00" ) ); - adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-database", "1.0-SNAPSHOT", null ) ); - } - - public void testNotProcessed() - throws Exception - { - List results = dao.getArtifactDAO().queryArtifacts( new ArtifactsProcessedConstraint( false ) ); - assertResults( "not-processed", results, new String[] { "archiva-common", "archiva-database" } ); - } - - public void testProcessed() - throws Exception - { - List results = dao.getArtifactDAO().queryArtifacts( new ArtifactsProcessedConstraint( true ) ); - assertResults( "processed", results, new String[] { "archiva-utils", "archiva-old" } ); - } - - public void testSinceRecent() - throws Exception - { - Date since = toDate( "2006/01/01 12:00:00" ); - List results = dao.getArtifactDAO().queryArtifacts( new ArtifactsProcessedConstraint( since ) ); - assertResults( "processed", results, new String[] { "archiva-utils" } ); - } - - public void testSinceOld() - throws Exception - { - Date since = toDate( "2001/01/01 12:00:00" ); - List results = dao.getArtifactDAO().queryArtifacts( new ArtifactsProcessedConstraint( since ) ); - assertResults( "processed", results, new String[] { "archiva-utils", "archiva-old" } ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraintTest.java deleted file mode 100644 index e257f0dce..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraintTest.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.Calendar; -import java.util.List; - -/** - * ArtifactsRelatedConstraintTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArtifactsRelatedConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private static final String TEST_GROUPID = "org.apache.maven.archiva.test"; - private ArtifactDAO artifactDao; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } - - public ArchivaArtifact createArtifact( String artifactId, String version, String classifier, String type ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( TEST_GROUPID, artifactId, version, - classifier, type ); - Calendar cal = Calendar.getInstance(); - artifact.getModel().setLastModified( cal.getTime() ); - artifact.getModel().setRepositoryId( "testable_repo" ); - return artifact; - } - - public void testConstraint() - throws Exception - { - // Setup artifacts in fresh DB. - artifactDao.saveArtifact( createArtifact( "test-one", "1.0", "", "jar" ) ); - artifactDao.saveArtifact( createArtifact( "test-one", "1.0", "", "pom" ) ); - artifactDao.saveArtifact( createArtifact( "test-one", "1.0", "javadoc", "jar" ) ); - artifactDao.saveArtifact( createArtifact( "test-one", "1.0", "sources", "jar" ) ); - - artifactDao.saveArtifact( createArtifact( "test-one", "1.1", "", "jar" ) ); - artifactDao.saveArtifact( createArtifact( "test-one", "1.2", "", "jar" ) ); - - artifactDao.saveArtifact( createArtifact( "test-two", "1.0", "", "jar" ) ); - artifactDao.saveArtifact( createArtifact( "test-two", "2.0", "", "jar" ) ); - artifactDao.saveArtifact( createArtifact( "test-two", "2.1", "", "jar" ) ); - artifactDao.saveArtifact( createArtifact( "test-two", "3.0", "", "jar" ) ); - - assertConstraint( 4, new ArtifactsRelatedConstraint( TEST_GROUPID, "test-one", "1.0" ) ); - assertConstraint( 1, new ArtifactsRelatedConstraint( TEST_GROUPID, "test-one", "1.1" ) ); - } - - private void assertConstraint( int expectedHits, Constraint constraint ) - throws Exception - { - List results = artifactDao.queryArtifacts( constraint ); - assertNotNull( "Related Artifacts: Not Null", results ); - assertEquals( "Related Artifacts: Results.size", expectedHits, results.size() ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/MostRecentRepositoryScanStatisticsTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/MostRecentRepositoryScanStatisticsTest.java deleted file mode 100644 index 2114f479a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/MostRecentRepositoryScanStatisticsTest.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.model.RepositoryContentStatistics; - -import java.util.List; - -/** - * MostRecentRepositoryScanStatisticsTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class MostRecentRepositoryScanStatisticsTest - extends AbstractArchivaDatabaseTestCase -{ - private RepositoryContentStatistics createStats( String repoId, String timestamp, long duration, long totalfiles, - long newfiles ) - throws Exception - { - RepositoryContentStatistics stats = new RepositoryContentStatistics(); - stats.setRepositoryId( repoId ); - stats.setDuration( duration ); - stats.setNewFileCount( newfiles ); - stats.setTotalFileCount( totalfiles ); - stats.setWhenGathered( toDate( timestamp ) ); - - return stats; - } - - protected void setUp() - throws Exception - { - super.setUp(); - - dao.save( createStats( "internal", "2007/02/21 10:00:00", 20000, 12000, 400 ) ); - dao.save( createStats( "internal", "2007/02/20 10:00:00", 20000, 11800, 0 ) ); - dao.save( createStats( "internal", "2007/02/19 10:00:00", 20000, 11800, 100 ) ); - dao.save( createStats( "internal", "2007/02/18 10:00:00", 20000, 11700, 320 ) ); - } - - public void testNotProcessedYet() - throws Exception - { - List results = dao.query( new MostRecentRepositoryScanStatistics( "central" ) ); - assertNotNull( "Not Processed Yet", results ); - assertTrue( "Not Processed Yet", results.isEmpty() ); - } - - public void testStats() - throws Exception - { - List results = dao.query( new MostRecentRepositoryScanStatistics( "internal" ) ); - assertNotNull( "Stats: results (not null)", results ); - assertEquals( "Stats: results.size", 1, results.size() ); - - Object o = results.get( 0 ); - assertTrue( "Stats: result[0] instanceof RepositoryScanStatistics", o instanceof RepositoryContentStatistics ); - RepositoryContentStatistics stats = (RepositoryContentStatistics) o; - assertEquals( "Stats: id", "internal", stats.getRepositoryId() ); - assertEquals( "Stats: when gathered", "2007/02/21 10:00:00", fromDate( stats.getWhenGathered() ) ); - assertEquals( "Stats: duration", 20000, stats.getDuration() ); - assertEquals( "Stats: total file count", 12000, stats.getTotalFileCount() ); - assertEquals( "Stats: new file count", 400, stats.getNewFileCount() ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraintTest.java deleted file mode 100644 index 2f23d34d7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraintTest.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.Calendar; -import java.util.List; - -/** - * OlderArtifactsByAgeConstraintTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class OlderArtifactsByAgeConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private ArtifactDAO artifactDao; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } - - public ArchivaArtifact createArtifact( String artifactId, String version, int daysOld ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( "org.apache.maven.archiva.test", artifactId, version, - "", "jar" ); - Calendar cal = Calendar.getInstance(); - cal.add( Calendar.DAY_OF_MONTH, ( -1 ) * daysOld ); - artifact.getModel().setLastModified( cal.getTime() ); - artifact.getModel().setRepositoryId( "testable_repo" ); - return artifact; - } - - public void testConstraint() - throws Exception - { - ArchivaArtifact artifact; - - // Setup artifacts in fresh DB. - artifact = createArtifact( "test-one", "1.0", 200 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.1", 100 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.2", 50 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "1.0", 200 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "2.0", 150 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "2.1", 100 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "3.0", 5 ); - artifactDao.saveArtifact( artifact ); - - assertConstraint( 6, new OlderArtifactsByAgeConstraint( 7 ) ); - assertConstraint( 5, new OlderArtifactsByAgeConstraint( 90 ) ); - assertConstraint( 5, new OlderArtifactsByAgeConstraint( 100 ) ); - assertConstraint( 3, new OlderArtifactsByAgeConstraint( 150 ) ); - assertConstraint( 0, new OlderArtifactsByAgeConstraint( 9000 ) ); - } - - private void assertConstraint( int expectedHits, Constraint constraint ) - throws Exception - { - List results = artifactDao.queryArtifacts( constraint ); - assertNotNull( "Older Artifacts By Age: Not Null", results ); - assertEquals( "Older Artifacts By Age: Results.size", expectedHits, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraintTest.java deleted file mode 100644 index d8a0e0229..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraintTest.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.Calendar; -import java.util.List; - -/** - * OlderArtifactsByAgeConstraintTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class OlderSnapshotArtifactsByAgeConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private ArtifactDAO artifactDao; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } - - public ArchivaArtifact createArtifact( String artifactId, String version, int daysOld ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( "org.apache.maven.archiva.test", artifactId, version, - "", "jar" ); - Calendar cal = Calendar.getInstance(); - cal.add( Calendar.DAY_OF_MONTH, ( -1 ) * daysOld ); - artifact.getModel().setLastModified( cal.getTime() ); - artifact.getModel().setRepositoryId( "testable_repo" ); - return artifact; - } - - public void testConstraint() - throws Exception - { - ArchivaArtifact artifact; - - // Setup artifacts in fresh DB. - artifact = createArtifact( "test-one", "1.0", 200 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.1-SNAPSHOT", 110 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.1", 100 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.2-20060923.005752-2", 55 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.2-SNAPSHOT", 52 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.2", 50 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "1.0-20060828.144210-1", 220 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "1.0-SNAPSHOT", 210 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "1.0", 200 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "2.0", 150 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "2.1", 100 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "3.0", 5 ); - artifactDao.saveArtifact( artifact ); - - assertConstraint( 5, new OlderSnapshotArtifactsByAgeConstraint( 7 ) ); - assertConstraint( 3, new OlderSnapshotArtifactsByAgeConstraint( 90 ) ); - assertConstraint( 3, new OlderSnapshotArtifactsByAgeConstraint( 100 ) ); - assertConstraint( 2, new OlderSnapshotArtifactsByAgeConstraint( 150 ) ); - assertConstraint( 0, new OlderSnapshotArtifactsByAgeConstraint( 500 ) ); - } - - private void assertConstraint( int expectedHits, Constraint constraint ) - throws Exception - { - List results = artifactDao.queryArtifacts( constraint ); - assertNotNull( "Older Snapshot Artifacts By Age: Not Null", results ); - assertEquals( "Older Snapshot Artifacts By Age: Results.size", expectedHits, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ProjectsByArtifactUsageConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ProjectsByArtifactUsageConstraintTest.java deleted file mode 100644 index b9e56c1d1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ProjectsByArtifactUsageConstraintTest.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.DeclarativeConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.Dependency; -import org.apache.maven.archiva.model.VersionedReference; - -import java.util.Date; -import java.util.List; - -/** - * ProjectsByArtifactUsageConstraintTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProjectsByArtifactUsageConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - protected void setUp() - throws Exception - { - super.setUp(); - } - - private void saveModel( String modelId, String deps[] ) - throws Exception - { - ArchivaProjectModel model = new ArchivaProjectModel(); - // Piece together a simple model. - VersionedReference ref = toVersionedReference( modelId ); - model.setGroupId( ref.getGroupId() ); - model.setArtifactId( ref.getArtifactId() ); - model.setVersion( ref.getVersion() ); - model.setPackaging( "jar" ); - model.setOrigin( "testcase" ); - - if ( deps != null ) - { - for ( int i = 0; i < deps.length; i++ ) - { - ArtifactReference artiref = toArtifactReference( deps[i] ); - Dependency dep = new Dependency(); - dep.setGroupId( artiref.getGroupId() ); - dep.setArtifactId( artiref.getArtifactId() ); - dep.setVersion( artiref.getVersion() ); - dep.setClassifier( artiref.getClassifier() ); - dep.setClassifier( artiref.getType() ); - - model.addDependency( dep ); - } - } - - dao.getProjectModelDAO().saveProjectModel( model ); - } - - public ArchivaArtifact toArtifact( String id ) - { - ArtifactReference ref = toArtifactReference( id ); - - ArchivaArtifact artifact = new ArchivaArtifact( ref.getGroupId(), ref.getArtifactId(), ref.getVersion(), ref - .getClassifier(), ref.getType() ); - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setRepositoryId( "testable_repo" ); - return artifact; - } - - public void testContraint() - throws Exception - { - saveModel( "org.apache.maven.archiva:archiva-configuration:1.0", - new String[] { "org.codehaus.plexus:plexus-digest:1.0::jar" } ); - - saveModel( "org.apache.maven.archiva:archiva-common:1.0", new String[] { - "org.codehaus.plexus:plexus-digest:1.0::jar", - "junit:junit:3.8.1::jar" } ); - - ArchivaArtifact artifact; - - artifact = toArtifact( "org.foo:bar:4.0::jar" ); - assertConstraint( 0, new ProjectsByArtifactUsageConstraint( artifact ) ); - artifact = toArtifact( "org.codehaus.plexus:plexus-digest:1.0::jar" ); - assertConstraint( 2, new ProjectsByArtifactUsageConstraint( artifact ) ); - } - - private void assertConstraint( int expectedHits, DeclarativeConstraint constraint ) - throws Exception - { - List results = dao.getProjectModelDAO().queryProjectModels( constraint ); - assertNotNull( "Projects By Artifact Usage: Not Null", results ); - assertEquals( "Projects By Artifact Usage: Results.size", expectedHits, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RangeConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RangeConstraintTest.java deleted file mode 100644 index aa0618955..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RangeConstraintTest.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.RepositoryProblemDAO; -import org.apache.maven.archiva.model.RepositoryProblem; - -import java.util.List; - -/** - * RangeConstraintTest - */ -public class RangeConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private RepositoryProblemDAO repoProblemDao; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - repoProblemDao = dao.getRepositoryProblemDAO(); - } - - public RepositoryProblem createRepoProblem() - { - RepositoryProblem repoProblem = new RepositoryProblem(); - - repoProblem.setGroupId( "groupId" ); - repoProblem.setArtifactId( "artifactId" ); - repoProblem.setMessage( "message" ); - repoProblem.setOrigin( "origin" ); - repoProblem.setPath( "path" ); - repoProblem.setRepositoryId( "repositoryId" ); - repoProblem.setType( "type" ); - repoProblem.setVersion( "version" ); - - return repoProblem; - } - - public void testConstraint() - throws Exception - { - repoProblemDao.saveRepositoryProblem( createRepoProblem() ); - repoProblemDao.saveRepositoryProblem( createRepoProblem() ); - repoProblemDao.saveRepositoryProblem( createRepoProblem() ); - repoProblemDao.saveRepositoryProblem( createRepoProblem() ); - repoProblemDao.saveRepositoryProblem( createRepoProblem() ); - - assertConstraint( 0, new RangeConstraint( new int[]{5, 10} ) ); - assertConstraint( 1, new RangeConstraint( new int[]{0, 1} ) ); - assertConstraint( 2, new RangeConstraint( new int[]{0, 2} ) ); - assertConstraint( 3, new RangeConstraint( new int[]{0, 3} ) ); - assertConstraint( 4, new RangeConstraint( new int[]{0, 4} ) ); - assertConstraint( 5, new RangeConstraint( new int[]{0, 5} ) ); - assertConstraint( 5, new RangeConstraint() ); - } - - private void assertConstraint( int expectedHits, Constraint constraint ) - throws Exception - { - List results = repoProblemDao.queryRepositoryProblems( constraint ); - assertNotNull( "Range Constraint: Not Null", results ); - assertEquals( "Range Constraint: Results.size", expectedHits, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraintTest.java deleted file mode 100644 index c1586e1c7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraintTest.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.Calendar; -import java.util.List; - -/** - * RecentArtifactsByAgeConstraintTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RecentArtifactsByAgeConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private ArtifactDAO artifactDao; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } - - public ArchivaArtifact createArtifact( String artifactId, String version, int daysOld ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( "org.apache.maven.archiva.test", artifactId, version, - "", "jar" ); - Calendar cal = Calendar.getInstance(); - cal.add( Calendar.DAY_OF_MONTH, ( -1 ) * daysOld ); - artifact.getModel().setLastModified( cal.getTime() ); - artifact.getModel().setRepositoryId( "testable_repo" ); - return artifact; - } - - public void testConstraint() - throws Exception - { - ArchivaArtifact artifact; - - // Setup artifacts in fresh DB. - artifact = createArtifact( "test-one", "1.0", 200 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.1", 100 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.2", 50 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "1.0", 200 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "2.0", 150 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "2.1", 100 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "3.0", 5 ); - artifactDao.saveArtifact( artifact ); - - assertConstraint( 0, new RecentArtifactsByAgeConstraint( 2 ) ); - assertConstraint( 1, new RecentArtifactsByAgeConstraint( 7 ) ); - assertConstraint( 2, new RecentArtifactsByAgeConstraint( 90 ) ); - assertConstraint( 4, new RecentArtifactsByAgeConstraint( 100 ) ); - assertConstraint( 5, new RecentArtifactsByAgeConstraint( 150 ) ); - assertConstraint( 7, new RecentArtifactsByAgeConstraint( 9000 ) ); - } - - private void assertConstraint( int expectedHits, Constraint constraint ) - throws Exception - { - List results = artifactDao.queryArtifacts( constraint ); - assertNotNull( "Recent Artifacts By Age: Not Null", results ); - assertEquals( "Recent Artifacts By Age: Results.size", expectedHits, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryContentStatisticsByRepositoryConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryContentStatisticsByRepositoryConstraintTest.java deleted file mode 100644 index 4a6b4555c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryContentStatisticsByRepositoryConstraintTest.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.maven.archiva.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.model.RepositoryContentStatistics; - -/** - * RepositoryContentStatisticsByRepositoryConstraintTest - * - * @author Maria Odea Ching - * @version - */ -public class RepositoryContentStatisticsByRepositoryConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private RepositoryContentStatistics createStats( String repoId, String timestamp, long duration, long totalfiles, - long newfiles ) - throws Exception - { - RepositoryContentStatistics stats = new RepositoryContentStatistics(); - stats.setRepositoryId( repoId ); - stats.setDuration( duration ); - stats.setNewFileCount( newfiles ); - stats.setTotalFileCount( totalfiles ); - stats.setWhenGathered( toDate( timestamp ) ); - - return stats; - } - - protected void setUp() - throws Exception - { - super.setUp(); - - dao.getRepositoryContentStatisticsDAO().saveRepositoryContentStatistics( - createStats( "internal", "2007/10/21 8:00:00", 20000, 12000, 400 ) ); - dao.getRepositoryContentStatisticsDAO().saveRepositoryContentStatistics( - createStats( "internal", "2007/10/20 8:00:00", 20000, 11800, 0 ) ); - dao.getRepositoryContentStatisticsDAO().saveRepositoryContentStatistics( - createStats( "internal", "2007/10/19 8:00:00", 20000, 11800, 100 ) ); - dao.getRepositoryContentStatisticsDAO().saveRepositoryContentStatistics( - createStats( "internal", "2007/10/18 8:00:00", 20000, 11700, 320 ) ); - } - - public void testStats() - throws Exception - { - Constraint constraint = new RepositoryContentStatisticsByRepositoryConstraint( "internal" ); - List results = dao.getRepositoryContentStatisticsDAO().queryRepositoryContentStatistics( constraint ); - assertNotNull( "Stats: results (not null)", results ); - assertEquals( "Stats: results.size", 4, results.size() ); - - assertEquals( "internal", ( (RepositoryContentStatistics) results.get( 0 ) ).getRepositoryId() ); - assertEquals( "internal", ( (RepositoryContentStatistics) results.get( 1 ) ).getRepositoryId() ); - assertEquals( "internal", ( (RepositoryContentStatistics) results.get( 2 ) ).getRepositoryId() ); - assertEquals( "internal", ( (RepositoryContentStatistics) results.get( 3 ) ).getRepositoryId() ); - } - - public void testStatsWithDateRange() - throws Exception - { - Constraint constraint = - new RepositoryContentStatisticsByRepositoryConstraint( "internal", toDate( "2007/10/18 8:00:00" ), - toDate( "2007/10/20 8:00:00" ) ); - List results = dao.getRepositoryContentStatisticsDAO().queryRepositoryContentStatistics( constraint ); - assertNotNull( "Stats: results (not null)", results ); - assertEquals( "Stats: results.size", 3, results.size() ); - - assertEquals( "internal", ( (RepositoryContentStatistics) results.get( 0 ) ).getRepositoryId() ); - assertEquals( toDate( "2007/10/20 8:00:00" ), - ( (RepositoryContentStatistics) results.get( 0 ) ).getWhenGathered() ); - - assertEquals( "internal", ( (RepositoryContentStatistics) results.get( 1 ) ).getRepositoryId() ); - assertEquals( toDate( "2007/10/19 8:00:00" ), - ( (RepositoryContentStatistics) results.get( 1 ) ).getWhenGathered() ); - - assertEquals( "internal", ( (RepositoryContentStatistics) results.get( 2 ) ).getRepositoryId() ); - assertEquals( toDate( "2007/10/18 8:00:00" ), - ( (RepositoryContentStatistics) results.get( 2 ) ).getWhenGathered() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraintTest.java deleted file mode 100644 index cc8b3f42b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByGroupIdConstraintTest.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.RepositoryProblemDAO; -import org.apache.maven.archiva.model.RepositoryProblem; - -import java.util.List; - -/** - * RepositoryProblemByGroupIdConstraintTest - */ -public class RepositoryProblemByGroupIdConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private static final String GROUP_ID_1 = "org.apache.maven.archiva.test.1"; - - private static final String GROUP_ID_2 = "org.apache.maven.archiva.test.2"; - - private static final String GROUP_ID_3 = "org.apache.maven.archiva.test.3"; - - private static final String GROUP_ID_PARTIAL = "org.apache.maven.archiva"; - - private RepositoryProblemDAO repoProblemDao; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - repoProblemDao = dao.getRepositoryProblemDAO(); - } - - public RepositoryProblem createRepoProblem( String groupId ) - { - RepositoryProblem repoProblem = new RepositoryProblem(); - - repoProblem.setGroupId( groupId ); - repoProblem.setArtifactId( "artifactId" ); - repoProblem.setMessage( "message" ); - repoProblem.setOrigin( "origin" ); - repoProblem.setPath( "path" ); - repoProblem.setRepositoryId( "repositoryId" ); - repoProblem.setType( "type" ); - repoProblem.setVersion( "version" ); - - return repoProblem; - } - - public void testConstraint() - throws Exception - { - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_1 ) ); - - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_2 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_2 ) ); - - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_3 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_3 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_3 ) ); - - assertConstraint( 1, new RepositoryProblemByGroupIdConstraint( GROUP_ID_1 ) ); - assertConstraint( 2, new RepositoryProblemByGroupIdConstraint( GROUP_ID_2 ) ); - assertConstraint( 3, new RepositoryProblemByGroupIdConstraint( GROUP_ID_3 ) ); - assertConstraint( 6, new RepositoryProblemByGroupIdConstraint( GROUP_ID_PARTIAL ) ); - } - - private void assertConstraint( int expectedHits, Constraint constraint ) - throws Exception - { - List results = repoProblemDao.queryRepositoryProblems( constraint ); - assertNotNull( "Repository Problems by Group Id: Not Null", results ); - assertEquals( "Repository Problems by Group Id: Results.size", expectedHits, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByRepositoryIdConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByRepositoryIdConstraintTest.java deleted file mode 100644 index 425fc0e8d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByRepositoryIdConstraintTest.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.RepositoryProblemDAO; -import org.apache.maven.archiva.model.RepositoryProblem; - -import java.util.List; - -/** - * RepositoryProblemByRepositoryIdConstraintTest - */ -public class RepositoryProblemByRepositoryIdConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private static final String REPO_ID_1 = "test-repo-1"; - - private static final String REPO_ID_2 = "test-repo-2"; - - private static final String REPO_ID_3 = "test-repo-3"; - - private RepositoryProblemDAO repoProblemDao; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - repoProblemDao = dao.getRepositoryProblemDAO(); - } - - public RepositoryProblem createRepoProblem( String repoId ) - { - RepositoryProblem repoProblem = new RepositoryProblem(); - - repoProblem.setGroupId( "groupId" ); - repoProblem.setArtifactId( "artifactId" ); - repoProblem.setMessage( "message" ); - repoProblem.setOrigin( "origin" ); - repoProblem.setPath( "path" ); - repoProblem.setRepositoryId( repoId ); - repoProblem.setType( "type" ); - repoProblem.setVersion( "version" ); - - return repoProblem; - } - - public void testConstraint() - throws Exception - { - repoProblemDao.saveRepositoryProblem( createRepoProblem( REPO_ID_1 ) ); - - repoProblemDao.saveRepositoryProblem( createRepoProblem( REPO_ID_2 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( REPO_ID_2 ) ); - - repoProblemDao.saveRepositoryProblem( createRepoProblem( REPO_ID_3 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( REPO_ID_3 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( REPO_ID_3 ) ); - - assertConstraint( 1, new RepositoryProblemByRepositoryIdConstraint( REPO_ID_1 ) ); - assertConstraint( 2, new RepositoryProblemByRepositoryIdConstraint( REPO_ID_2 ) ); - assertConstraint( 3, new RepositoryProblemByRepositoryIdConstraint( REPO_ID_3 ) ); - } - - private void assertConstraint( int expectedHits, Constraint constraint ) - throws Exception - { - List results = repoProblemDao.queryRepositoryProblems( constraint ); - assertNotNull( "Repository Problems by Repository Id: Not Null", results ); - assertEquals( "Repository Problems by Repository Id: Results.size", expectedHits, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemConstraintTest.java deleted file mode 100644 index a593281ac..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/RepositoryProblemConstraintTest.java +++ /dev/null @@ -1,129 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.RepositoryProblemDAO; -import org.apache.maven.archiva.model.RepositoryProblem; - -import java.util.List; - -/** - * RepositoryProblemConstraintTest - */ -public class RepositoryProblemConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private static final String GROUP_ID_1 = "org.apache.maven.archiva.test.1"; - - private static final String GROUP_ID_2 = "org.apache.maven.archiva.test.2"; - - private static final String GROUP_ID_3 = "org.apache.maven.archiva.test.3"; - - private static final String GROUP_ID_4 = "org.apache.maven.archiva.test.4"; - - private static final String GROUP_ID_PARTIAL = "org.apache.maven.archiva"; - - private static final String REPO_ID_1 = "test-repo-1"; - - private static final String REPO_ID_2 = "test-repo-2"; - - private static final String REPO_ID_3 = "test-repo-3"; - - private static final String REPO_ID_4 = "test-repo-4"; - - private RepositoryProblemDAO repoProblemDao; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - repoProblemDao = dao.getRepositoryProblemDAO(); - } - - public RepositoryProblem createRepoProblem( String groupId, String repoId ) - { - RepositoryProblem repoProblem = new RepositoryProblem(); - - repoProblem.setGroupId( groupId ); - repoProblem.setArtifactId( "artifactId" ); - repoProblem.setMessage( "message" ); - repoProblem.setOrigin( "origin" ); - repoProblem.setPath( "path" ); - repoProblem.setRepositoryId( repoId ); - repoProblem.setType( "type" ); - repoProblem.setVersion( "version" ); - - return repoProblem; - } - - public void testGroupIdConstraint() - throws Exception - { - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_1, REPO_ID_1 ) ); - - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_2, REPO_ID_1 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_2, REPO_ID_1 ) ); - - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_3, REPO_ID_1 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_3, REPO_ID_1 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_3, REPO_ID_1 ) ); - - assertConstraint( 1, new RepositoryProblemConstraint( GROUP_ID_1, REPO_ID_1 ) ); - assertConstraint( 2, new RepositoryProblemConstraint( GROUP_ID_2, REPO_ID_1 ) ); - assertConstraint( 3, new RepositoryProblemConstraint( GROUP_ID_3, REPO_ID_1 ) ); - assertConstraint( 0, new RepositoryProblemConstraint( GROUP_ID_4, REPO_ID_1 ) ); - assertConstraint( 6, new RepositoryProblemConstraint( GROUP_ID_PARTIAL, REPO_ID_1 ) ); - } - - public void testRepoIdConstraint() - throws Exception - { - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_1, REPO_ID_1 ) ); - - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_1, REPO_ID_2 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_1, REPO_ID_2 ) ); - - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_1, REPO_ID_3 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_1, REPO_ID_3 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_1, REPO_ID_3 ) ); - - assertConstraint( 1, new RepositoryProblemConstraint( GROUP_ID_1, REPO_ID_1 ) ); - assertConstraint( 2, new RepositoryProblemConstraint( GROUP_ID_1, REPO_ID_2 ) ); - assertConstraint( 3, new RepositoryProblemConstraint( GROUP_ID_1, REPO_ID_3 ) ); - assertConstraint( 0, new RepositoryProblemConstraint( GROUP_ID_1, REPO_ID_4 ) ); - assertConstraint( 1, new RepositoryProblemConstraint( GROUP_ID_PARTIAL, REPO_ID_1 ) ); - assertConstraint( 2, new RepositoryProblemConstraint( GROUP_ID_PARTIAL, REPO_ID_2 ) ); - assertConstraint( 3, new RepositoryProblemConstraint( GROUP_ID_PARTIAL, REPO_ID_3 ) ); - assertConstraint( 0, new RepositoryProblemConstraint( GROUP_ID_PARTIAL, REPO_ID_4 ) ); - } - - private void assertConstraint( int expectedHits, Constraint constraint ) - throws Exception - { - List results = repoProblemDao.queryRepositoryProblems( constraint ); - assertNotNull( "Repository Problems: Not Null", results ); - assertEquals( "Repository Problems: Results.size", expectedHits, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraintTest.java deleted file mode 100644 index db9fc81bb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraintTest.java +++ /dev/null @@ -1,157 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -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.SimpleConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.Arrays; -import java.util.Date; -import java.util.Iterator; -import java.util.List; - -/** - * UniqueArtifactIdConstraintTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UniqueArtifactIdConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private ArtifactDAO artifactDao; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } - - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( groupId, artifactId, version, "", "jar" ); - artifact.getModel().setLastModified( new Date() ); // mandatory field. - artifact.getModel().setRepositoryId( "testable_repo" ); - return artifact; - } - - public void testConstraint() - throws Exception - { - setUpArtifacts(); - - assertConstraint( new String[] {}, new UniqueArtifactIdConstraint( "org.apache" ) ); - assertConstraint( new String[] { "commons-lang" }, new UniqueArtifactIdConstraint( "commons-lang" ) ); - assertConstraint( new String[] { "test-one" }, new UniqueArtifactIdConstraint( "org.apache.maven.test" ) ); - assertConstraint( new String[] { "test-two", "test-bar" }, - new UniqueArtifactIdConstraint( "org.apache.maven.shared" ) ); - assertConstraint( new String[] { "modellong" }, new UniqueArtifactIdConstraint( "org.codehaus.modello" ) ); - } - - public void testConstraintDisregardGroupId() - throws Exception - { - setUpArtifacts(); - - assertConstraintWithMultipleResultTypes( new String[] { "commons-lang", "test-one", "test-two", "test-two", "test-bar", "modellong" }, - new UniqueArtifactIdConstraint( "testable_repo", true ) ); - } - - private void setUpArtifacts() - throws ArchivaDatabaseException - { - ArchivaArtifact artifact; - - // Setup artifacts in fresh DB. - artifact = createArtifact( "commons-lang", "commons-lang", "2.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "commons-lang", "commons-lang", "2.1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.test", "test-one", "1.2" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.test.foo", "test-two", "1.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.shared", "test-two", "2.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.shared", "test-two", "2.1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.maven.shared", "test-bar", "2.1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.codehaus.modello", "modellong", "3.0" ); - artifactDao.saveArtifact( artifact ); - } - - private void assertConstraintWithMultipleResultTypes( String[] artifactIds, SimpleConstraint constraint ) - throws Exception - { - String prefix = "Unique Artifact IDs: "; - - List results = dao.query( constraint ); - assertNotNull( prefix + "Not Null", results ); - assertEquals( prefix + "Results.size", artifactIds.length, results.size() ); - - List expectedArtifactIds = Arrays.asList( artifactIds ); - - Iterator it = results.iterator(); - while ( it.hasNext() ) - { - Object[] actualArtifactIds = (Object[]) it.next(); - String actualArtifactId = ( String ) actualArtifactIds[1]; - assertTrue( prefix + "artifactId result should not be blank.", StringUtils.isNotBlank( actualArtifactId ) ); - assertTrue( prefix + " artifactId result <" + actualArtifactId + "> exists in expected artifactIds.", - expectedArtifactIds.contains( actualArtifactId ) ); - } - } - - private void assertConstraint( String[] artifactIds, SimpleConstraint constraint ) - { - String prefix = "Unique Artifact IDs: "; - - List results = dao.query( constraint ); - assertNotNull( prefix + "Not Null", results ); - assertEquals( prefix + "Results.size", artifactIds.length, results.size() ); - - List expectedArtifactIds = Arrays.asList( artifactIds ); - - Iterator it = results.iterator(); - while ( it.hasNext() ) - { - String actualArtifactId = (String) it.next(); - assertTrue( prefix + "artifactId result should not be blank.", StringUtils.isNotBlank( actualArtifactId ) ); - assertTrue( prefix + " artifactId result <" + actualArtifactId + "> exists in expected artifactIds.", - expectedArtifactIds.contains( actualArtifactId ) ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueFieldConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueFieldConstraintTest.java deleted file mode 100644 index b453281fa..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueFieldConstraintTest.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.RepositoryProblemDAO; -import org.apache.maven.archiva.database.SimpleConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; -import org.apache.maven.archiva.model.RepositoryProblem; - -import java.util.Date; -import java.util.List; - -/** - * UniqueFieldConstraintTest - */ -public class UniqueFieldConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private static final String GROUP_ID_1 = "org.apache.maven.archiva.test.1"; - - private static final String GROUP_ID_2 = "org.apache.maven.archiva.test.2"; - - private static final String GROUP_ID_3 = "org.apache.maven.archiva.test.3"; - - private ArchivaDAO archivaDao; - - private ArtifactDAO artifactDao; - - private RepositoryProblemDAO repoProblemDao; - - protected void setUp() - throws Exception - { - super.setUp(); - - archivaDao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = archivaDao.getArtifactDAO(); - repoProblemDao = archivaDao.getRepositoryProblemDAO(); - } - - public ArchivaArtifact createArtifact( String groupId ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( groupId, "artifactId", "version", "classifier", "jar" ); - - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setRepositoryId( "repoId" ); - - return artifact; - } - - public RepositoryProblem createRepoProblem( String groupId ) - { - RepositoryProblem repoProblem = new RepositoryProblem(); - - repoProblem.setGroupId( groupId ); - repoProblem.setArtifactId( "artifactId" ); - repoProblem.setMessage( "message" ); - repoProblem.setOrigin( "origin" ); - repoProblem.setPath( "path" ); - repoProblem.setRepositoryId( "repoId" ); - repoProblem.setType( "type" ); - repoProblem.setVersion( "version" ); - - return repoProblem; - } - - public void testArtifact() - throws Exception - { - artifactDao.saveArtifact( createArtifact( GROUP_ID_1 ) ); - artifactDao.saveArtifact( createArtifact( GROUP_ID_2 ) ); - artifactDao.saveArtifact( createArtifact( GROUP_ID_3 ) ); - - assertConstraint( 1, new UniqueFieldConstraint( ArchivaArtifactModel.class.getName(), "artifactId" ) ); - assertConstraint( 3, new UniqueFieldConstraint( ArchivaArtifactModel.class.getName(), "groupId" ) ); - } - - public void testRepoProblem() - throws Exception - { - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_1 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_2 ) ); - repoProblemDao.saveRepositoryProblem( createRepoProblem( GROUP_ID_3 ) ); - - assertConstraint( 1, new UniqueFieldConstraint( RepositoryProblem.class.getName(), "artifactId" ) ); - assertConstraint( 3, new UniqueFieldConstraint( RepositoryProblem.class.getName(), "groupId" ) ); - } - - private void assertConstraint( int expectedHits, SimpleConstraint constraint ) - throws Exception - { - List results = archivaDao.query( constraint ); - assertNotNull( "Repository Problems: Not Null", results ); - assertEquals( "Repository Problems: Results.size", expectedHits, results.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraintTest.java deleted file mode 100644 index eef212eb2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraintTest.java +++ /dev/null @@ -1,310 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.SimpleConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.Iterator; -import java.util.List; - -/** - * UniqueGroupIdConstraintTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UniqueGroupIdConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private ArtifactDAO artifactDao; - - public void testConstraintGroupIdParamCommonsLang() - throws Exception - { - setupArtifacts(); - - assertConstraint( new String[] { "commons-lang" }, new UniqueGroupIdConstraint( "commons-lang" ) ); - } - - public void testConstraintGroupIdParamNoRepos() - throws Exception - { - try - { - List selectedRepos = new ArrayList(); - new UniqueGroupIdConstraint( selectedRepos, "org" ); - fail( "Should have thrown an IllegalArgumentException due to lack of specified repos." ); - } - catch ( IllegalArgumentException e ) - { - // expected path. - } - } - - public void testConstraintGroupIdParamNullRepos() - throws Exception - { - try - { - new UniqueGroupIdConstraint( (List) null, "org" ); - fail( "Should have thrown an NullPointerException due to lack of specified repos." ); - } - catch ( NullPointerException e ) - { - // expected path. - } - } - - public void testConstraintGroupIdParamOrg() - throws Exception - { - setupArtifacts(); - - assertConstraint( new String[] { - "org.apache.maven.test", - "org.apache.maven.test.foo", - "org.apache.maven.shared", - "org.apache.archiva", - "org.codehaus.modello", - "org.codehaus.mojo" }, new UniqueGroupIdConstraint( "org" ) ); - } - - public void testConstraintGroupIdParamOrgApache() - throws Exception - { - setupArtifacts(); - - assertConstraint( new String[] { - "org.apache.maven.test", - "org.apache.maven.test.foo", - "org.apache.maven.shared", - "org.apache.archiva" }, new UniqueGroupIdConstraint( "org.apache" ) ); - } - - public void testConstraintGroupIdParamOrgApacheMaven() - throws Exception - { - setupArtifacts(); - - assertConstraint( new String[] { - "org.apache.maven.test", - "org.apache.maven.test.foo", - "org.apache.maven.shared" }, new UniqueGroupIdConstraint( "org.apache.maven" ) ); - } - - public void testConstraintGroupIdParamOrgApacheSnapshotsOnly() - throws Exception - { - setupArtifacts(); - - List observableRepositories = new ArrayList(); - observableRepositories.add( "snapshots" ); - - assertConstraint( new String[] { "org.apache.archiva" }, new UniqueGroupIdConstraint( observableRepositories, - "org.apache" ) ); - } - - public void testConstraintGroupIdParamOrgSnapshotsOnly() - throws Exception - { - setupArtifacts(); - - List observableRepositories = new ArrayList(); - observableRepositories.add( "snapshots" ); - - assertConstraint( new String[] { "org.apache.archiva", "org.codehaus.modello", "org.codehaus.mojo" }, - new UniqueGroupIdConstraint( observableRepositories, "org" ) ); - } - - public void testConstraintNoGroupIdParam() - throws Exception - { - setupArtifacts(); - - assertConstraint( new String[] { - "commons-lang", - "org.apache.maven.test", - "org.apache.maven.test.foo", - "org.apache.maven.shared", - "org.codehaus.modello", - "org.codehaus.mojo", - "org.apache.archiva" }, new UniqueGroupIdConstraint() ); - } - - public void testConstraintNoGroupIdParamCentralAndSnapshots() - throws Exception - { - setupArtifacts(); - - List observableRepositories = new ArrayList(); - observableRepositories.add( "central" ); - observableRepositories.add( "snapshots" ); - - assertConstraint( new String[] { - "commons-lang", - "org.apache.maven.test", - "org.apache.maven.test.foo", - "org.apache.maven.shared", - "org.codehaus.modello", - "org.codehaus.mojo", - "org.apache.archiva" }, new UniqueGroupIdConstraint( observableRepositories ) ); - } - - public void testConstraintNoGroupIdParamCentralOnly() - throws Exception - { - setupArtifacts(); - - List observableRepositories = new ArrayList(); - observableRepositories.add( "central" ); - - assertConstraint( new String[] { - "commons-lang", - "org.apache.maven.test", - "org.apache.maven.test.foo", - "org.apache.maven.shared", - "org.codehaus.modello" }, new UniqueGroupIdConstraint( observableRepositories ) ); - } - - public void testConstraintNoGroupIdParamNoRepos() - throws Exception - { - try - { - List selectedRepos = new ArrayList(); - new UniqueGroupIdConstraint( selectedRepos ); - fail( "Should have thrown an IllegalArgumentException due to lack of specified repos." ); - } - catch ( IllegalArgumentException e ) - { - // expected path. - } - } - - public void testConstraintNoGroupIdParamNullRepos() - throws Exception - { - try - { - new UniqueGroupIdConstraint( (List) null ); - fail( "Should have thrown an NullPointerException due to lack of specified repos." ); - } - catch ( NullPointerException e ) - { - // expected path. - } - } - - public void testConstraintNoGroupIdParamSnapshotsOnly() - throws Exception - { - setupArtifacts(); - - List observableRepositories = new ArrayList(); - observableRepositories.add( "snapshots" ); - - assertConstraint( new String[] { "org.codehaus.modello", "org.codehaus.mojo", "org.apache.archiva" }, - new UniqueGroupIdConstraint( observableRepositories ) ); - } - - private void assertConstraint( String[] expectedGroupIds, SimpleConstraint constraint ) - throws Exception - { - String prefix = "Unique Group IDs: "; - - List results = dao.query( constraint ); - assertNotNull( prefix + "Not Null", results ); - assertEquals( prefix + "Results.size", expectedGroupIds.length, results.size() ); - - List groupIdList = Arrays.asList( expectedGroupIds ); - - Iterator it = results.iterator(); - while ( it.hasNext() ) - { - String actualGroupId = (String) it.next(); - assertTrue( prefix + "groupId result should not be blank.", StringUtils.isNotBlank( actualGroupId ) ); - assertTrue( prefix + " groupId result <" + actualGroupId + "> exists in expected GroupIds.", groupIdList - .contains( actualGroupId ) ); - } - } - - private ArchivaArtifact createArtifact( String repoId, String groupId, String artifactId, String version ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( groupId, artifactId, version, "", "jar" ); - artifact.getModel().setLastModified( new Date() ); // mandatory field. - artifact.getModel().setRepositoryId( repoId ); - return artifact; - } - - private void setupArtifacts() - throws Exception - { - ArchivaArtifact artifact; - - // Setup artifacts in fresh DB. - artifact = createArtifact( "central", "commons-lang", "commons-lang", "2.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "commons-lang", "commons-lang", "2.1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.apache.maven.test", "test-one", "1.2" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.apache.maven.test.foo", "test-two", "1.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.apache.maven.shared", "test-two", "2.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.apache.maven.shared", "test-two", "2.1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.codehaus.modello", "test-two", "3.0" ); - artifactDao.saveArtifact( artifact ); - - // Snapshots repository artifacts - artifact = createArtifact( "snapshots", "org.codehaus.modello", "test-three", "1.0-SNAPSHOT" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "snapshots", "org.codehaus.mojo", "testable-maven-plugin", "2.1-SNAPSHOT" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "snapshots", "org.apache.archiva", "testable", "1.1-alpha-1-20070822.033400-43" ); - artifactDao.saveArtifact( artifact ); - } - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraintTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraintTest.java deleted file mode 100644 index c30a624f1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraintTest.java +++ /dev/null @@ -1,193 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.SimpleConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; - -/** - * UniqueVersionConstraintTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UniqueVersionConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private ArtifactDAO artifactDao; - - public void testConstraintGroupIdArtifactIdCommonsLang() - throws Exception - { - setupArtifacts(); - - assertConstraint( new String[] { "2.0", "2.1" }, new UniqueVersionConstraint( "commons-lang", "commons-lang" ) ); - } - - public void testConstraintGroupIdArtifactIdInvalid() - throws Exception - { - setupArtifacts(); - - assertConstraint( new String[] {}, new UniqueVersionConstraint( "org.apache", "invalid" ) ); - assertConstraint( new String[] {}, new UniqueVersionConstraint( "org.apache.test", "invalid" ) ); - assertConstraint( new String[] {}, new UniqueVersionConstraint( "invalid", "test-two" ) ); - } - - public void testConstraintGroupIdArtifactIdMavenSharedTestTwo() - throws Exception - { - setupArtifacts(); - - assertConstraint( new String[] { "2.0", "2.1-SNAPSHOT", "2.1.1", "2.1-alpha-1" }, - new UniqueVersionConstraint( "org.apache.maven.shared", "test-two" ) ); - } - - public void testConstraintGroupIdArtifactIdMavenSharedTestTwoCentralOnly() - throws Exception - { - setupArtifacts(); - - List observableRepositories = new ArrayList(); - observableRepositories.add( "central" ); - - assertConstraint( new String[] { "2.0", "2.1.1", "2.1-alpha-1" }, - new UniqueVersionConstraint( observableRepositories, "org.apache.maven.shared", "test-two" ) ); - } - - public void testConstraintGroupIdArtifactIdMavenSharedTestTwoSnapshotsOnly() - throws Exception - { - setupArtifacts(); - - List observableRepositories = new ArrayList(); - observableRepositories.add( "snapshots" ); - - assertConstraint( new String[] { "2.1-SNAPSHOT" }, - new UniqueVersionConstraint( observableRepositories, "org.apache.maven.shared", "test-two" ) ); - } - - public void testConstraintGroupIdArtifactIdMavenTestOne() - throws Exception - { - setupArtifacts(); - - assertConstraint( new String[] { "1.2" }, new UniqueVersionConstraint( "org.apache.maven.test", "test-one" ) ); - } - - public void testConstraintGroupIdArtifactIdModelloLong() - throws Exception - { - setupArtifacts(); - - assertConstraint( new String[] { "3.0" }, new UniqueVersionConstraint( "org.codehaus.modello", "modellong" ) ); - } - - private void assertConstraint( String[] versions, SimpleConstraint constraint ) - { - String prefix = "Unique Versions: "; - - List results = dao.query( constraint ); - assertNotNull( prefix + "Not Null", results ); - assertEquals( prefix + "Results.size", versions.length, results.size() ); - - List expectedVersions = Arrays.asList( versions ); - - for ( String actualVersion : results ) - { - assertTrue( prefix + "version result should not be blank.", StringUtils.isNotBlank( actualVersion ) ); - assertTrue( prefix + "version result <" + actualVersion + "> exists in expected versions.", - expectedVersions.contains( actualVersion ) ); - } - } - - private ArchivaArtifact createArtifact( String repoId, String groupId, String artifactId, String version ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( groupId, artifactId, version, "", "jar" ); - artifact.getModel().setLastModified( new Date() ); // mandatory field. - artifact.getModel().setRepositoryId( repoId ); - return artifact; - } - - private void setupArtifacts() - throws Exception - { - ArchivaArtifact artifact; - - // Setup artifacts in fresh DB. - artifact = createArtifact( "central", "commons-lang", "commons-lang", "2.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "commons-lang", "commons-lang", "2.1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.apache.maven.test", "test-one", "1.2" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.apache.maven.test.foo", "test-two", "1.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.apache.maven.shared", "test-two", "2.0" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.apache.maven.shared", "test-two", "2.1.1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.apache.maven.shared", "test-two", "2.1-alpha-1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.apache.maven.shared", "test-bar", "2.1" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "central", "org.codehaus.modello", "modellong", "3.0" ); - artifactDao.saveArtifact( artifact ); - - // Snapshots repository artifacts - artifact = createArtifact( "snapshots", "org.apache.maven.shared", "test-two", "2.1-SNAPSHOT" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "snapshots", "org.codehaus.modello", "test-three", "1.0-SNAPSHOT" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "snapshots", "org.codehaus.mojo", "testable-maven-plugin", "2.1-SNAPSHOT" ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "snapshots", "org.apache.archiva", "testable", "1.1-alpha-1-20070822.033400-43" ); - artifactDao.saveArtifact( artifact ); - } - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAOTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAOTest.java deleted file mode 100644 index 4f51e5bb5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAOTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; - -/** - * JdoArchivaDAOTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class JdoArchivaDAOTest - extends AbstractArchivaDatabaseTestCase -{ - public void testSubDAOs() - { - assertNotNull( "Artifact DAO", dao.getArtifactDAO() ); - assertNotNull( "Project Model DAO", dao.getProjectModelDAO() ); - assertNotNull( "Repository Problem DAO", dao.getRepositoryProblemDAO() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAOTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAOTest.java deleted file mode 100644 index 360209358..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAOTest.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; -import org.apache.maven.archiva.model.jpox.ArchivaArtifactModelKey; - -import java.util.Date; -import java.util.List; - -import javax.jdo.JDOHelper; -import javax.jdo.spi.JDOImplHelper; - -/** - * JdoArtifactDAOTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class JdoArtifactDAOTest - extends AbstractArchivaDatabaseTestCase -{ - public void testArtifactKey() - { - Object o = JDOImplHelper.getInstance().newObjectIdInstance( ArchivaArtifactModel.class, "foo:bar:1.0::jar" ); - assertNotNull( "Key should not be null.", o ); - assertTrue( "Key should be an instance of " + ArchivaArtifactModelKey.class.getName(), - ( o instanceof ArchivaArtifactModelKey ) ); - - ArchivaArtifactModelKey key = (ArchivaArtifactModelKey) o; - assertEquals( "foo", key.groupId ); - assertEquals( "bar", key.artifactId ); - assertEquals( "1.0", key.version ); - assertEquals( "", key.classifier ); - assertEquals( "jar", key.type ); - } - - public void testArtifactCRUD() - throws Exception - { - ArtifactDAO artiDao = dao.getArtifactDAO(); - - // Create it - ArchivaArtifact artifact = artiDao.createArtifact( "org.apache.maven.archiva", "archiva-test-module", "1.0", - "", "jar" ); - assertNotNull( artifact ); - - // Set some mandatory values - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setOrigin( "test" ); - - // Save it. - ArchivaArtifact savedArtifact = artiDao.saveArtifact( artifact ); - assertNotNull( savedArtifact ); - String savedKeyId = JDOHelper.getObjectId( savedArtifact.getModel() ).toString(); - assertEquals( "org.apache.maven.archiva:archiva-test-module:1.0::jar", savedKeyId ); - - // Test that something has been saved. - List artifacts = artiDao.queryArtifacts( null ); - assertNotNull( artifacts ); - assertEquals( 1, artifacts.size() ); - - // Test that retrieved object is what we expect. - ArchivaArtifact firstArtifact = (ArchivaArtifact) artifacts.get( 0 ); - assertNotNull( firstArtifact ); - assertEquals( "org.apache.maven.archiva", firstArtifact.getGroupId() ); - assertEquals( "archiva-test-module", firstArtifact.getArtifactId() ); - assertEquals( "1.0", firstArtifact.getVersion() ); - assertEquals( "", firstArtifact.getClassifier() ); - assertEquals( "jar", firstArtifact.getType() ); - - // Change value and save. - savedArtifact.getModel().setOrigin( "changed" ); - artiDao.saveArtifact( savedArtifact ); - - // Test that only 1 object is saved. - assertEquals( 1, artiDao.queryArtifacts( null ).size() ); - - // Get the specific artifact. - ArchivaArtifact actualArtifact = artiDao.getArtifact( "org.apache.maven.archiva", "archiva-test-module", "1.0", - null, "jar" ); - assertNotNull( actualArtifact ); - - // Test expected values. - assertEquals( "archiva-test-module", actualArtifact.getArtifactId() ); - assertEquals( "changed", actualArtifact.getModel().getOrigin() ); - - // Test that only 1 object is saved. - assertEquals( 1, artiDao.queryArtifacts( null ).size() ); - - // Delete object. - artiDao.deleteArtifact( actualArtifact ); - assertEquals( 0, artiDao.queryArtifacts( null ).size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAOTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAOTest.java deleted file mode 100644 index e9a79a377..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAOTest.java +++ /dev/null @@ -1,172 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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.beanutils.PropertyUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ProjectModelDAO; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; - -import java.io.File; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; - -import javax.jdo.JDOHelper; - -/** - * JdoProjectModelDAOTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class JdoProjectModelDAOTest - extends AbstractArchivaDatabaseTestCase -{ - public void testProjectModelCRUD() - throws Exception - { - ProjectModelDAO projectDao = dao.getProjectModelDAO(); - - // Create it - ArchivaProjectModel model = projectDao.createProjectModel( "org.apache.maven.archiva", "archiva-test-module", - "1.0" ); - assertNotNull( model ); - - // Set some mandatory values - model.setPackaging( "pom" ); - model.setWhenIndexed( new Date() ); - model.setOrigin( "test" ); - - // Save it. - ArchivaProjectModel savedModel = projectDao.saveProjectModel( model ); - assertNotNull( savedModel ); - String savedKeyId = JDOHelper.getObjectId( savedModel ).toString(); - assertEquals( "org.apache.maven.archiva:archiva-test-module:1.0", savedKeyId ); - - // Test that something has been saved. - List projects = projectDao.queryProjectModels( null ); - assertNotNull( projects ); - assertEquals( 1, projects.size() ); - - // Test that retrieved object is what we expect. - ArchivaProjectModel firstModel = (ArchivaProjectModel) projects.get( 0 ); - assertNotNull( firstModel ); - assertEquals( "org.apache.maven.archiva", firstModel.getGroupId() ); - assertEquals( "archiva-test-module", firstModel.getArtifactId() ); - assertEquals( "1.0", firstModel.getVersion() ); - - // Change value and save. - savedModel.setOrigin( "changed" ); - projectDao.saveProjectModel( savedModel ); - - // Test that only 1 object is saved. - assertEquals( 1, projectDao.queryProjectModels( null ).size() ); - - // Get the specific artifact. - ArchivaProjectModel actualModel = projectDao.getProjectModel( "org.apache.maven.archiva", - "archiva-test-module", "1.0" ); - assertNotNull( actualModel ); - - // Test expected values. - assertEquals( "archiva-test-module", actualModel.getArtifactId() ); - assertEquals( "changed", actualModel.getOrigin() ); - - // Test that only 1 object is saved. - assertEquals( 1, projectDao.queryProjectModels( null ).size() ); - - // Delete object. - projectDao.deleteProjectModel( actualModel ); - assertEquals( 0, projectDao.queryProjectModels( null ).size() ); - } - - public void testSaveGetRealProjectModel() - throws Exception - { - String groupId = "org.apache.maven.shared"; - String artifactId = "maven-shared-jar"; - String version = "1.0-SNAPSHOT"; - - ProjectModelDAO projectDao = dao.getProjectModelDAO(); - - ProjectModelReader modelReader = new ProjectModel400Reader(); - - File pomFile = getTestFile( "src/test/resources/projects/maven-shared-jar-1.0-SNAPSHOT.pom" ); - - assertTrue( "pom file should exist: " + pomFile.getAbsolutePath(), pomFile.exists() && pomFile.isFile() ); - - ArchivaProjectModel model = modelReader.read( pomFile ); - assertNotNull( "Model should not be null.", model ); - - /* NOTE: We are intentionally using a basic project model in this unit test. - * The expansion of expressions, resolving of dependencies, and merging - * of parent poms is *NOT* performed to keep this unit test simple. - */ - - // Fill in mandatory/missing fields - model.setGroupId( groupId ); - model.setOrigin( "testcase" ); - - projectDao.saveProjectModel( model ); - - ArchivaProjectModel savedModel = projectDao.getProjectModel( groupId, artifactId, version ); - assertNotNull( "Project model should not be null.", savedModel ); - - // Test proper detachment of sub-objects. - List exprs = new ArrayList(); - exprs.add( "parentProject.groupId" ); - exprs.add( "organization.name" ); - exprs.add( "issueManagement.system" ); - exprs.add( "ciManagement.system" ); - exprs.add( "scm.url" ); - exprs.add( "individuals[0].name" ); - exprs.add( "dependencies[0].groupId" ); - exprs.add( "dependencyManagement[0].artifactId" ); - exprs.add( "repositories[0].id" ); - exprs.add( "plugins[0].artifactId" ); - exprs.add( "reports[0].artifactId" ); - exprs.add( "buildExtensions[0].artifactId" ); - exprs.add( "licenses[0].url" ); - exprs.add( "mailingLists[0].name" ); - - Iterator it = exprs.iterator(); - while ( it.hasNext() ) - { - String expr = (String) it.next(); - try - { - Object obj = PropertyUtils.getProperty( model, expr ); - assertNotNull( "Expr \"" + expr + "\" != null", obj ); - assertTrue( "Expr \"" + expr + "\" should be a String.", ( obj instanceof String ) ); - String value = (String) obj; - assertTrue( "Expr \"" + expr + "\" value should not be blank.", StringUtils.isNotBlank( value ) ); - } - catch ( IndexOutOfBoundsException e ) - { - fail( "Expr \"" + expr + "\" unable to get indexed property: " + e.getClass().getName() + ": " - + e.getMessage() ); - } - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoRepositoryContentStatisticsDAOTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoRepositoryContentStatisticsDAOTest.java deleted file mode 100644 index 3989d72fe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoRepositoryContentStatisticsDAOTest.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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 javax.jdo.JDOHelper; - -import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.RepositoryContentStatisticsDAO; -import org.apache.maven.archiva.database.constraints.RepositoryContentStatisticsByRepositoryConstraint; -import org.apache.maven.archiva.model.RepositoryContentStatistics; - -/** - * JdoRepositoryContentStatisticsDAOTest - * - * @author Maria Odea Ching - * @version - */ -public class JdoRepositoryContentStatisticsDAOTest - extends AbstractArchivaDatabaseTestCase -{ - public void testCRUD() - throws Exception - { - RepositoryContentStatisticsDAO repoContentStatisticsDAO = dao.getRepositoryContentStatisticsDAO(); - - // create - RepositoryContentStatistics savedStats = - repoContentStatisticsDAO.saveRepositoryContentStatistics( createStats( "internal", "2007/10/21 8:00:00", - 20000, 12000, 400 ) ); - assertNotNull( savedStats ); - - String savedKeyId = JDOHelper.getObjectId( savedStats ).toString(); - assertEquals( "1[OID]org.apache.maven.archiva.model.RepositoryContentStatistics", savedKeyId ); - - // query - List results = - repoContentStatisticsDAO.queryRepositoryContentStatistics( new RepositoryContentStatisticsByRepositoryConstraint( - "internal" ) ); - assertNotNull( results ); - assertEquals( 1, results.size() ); - - RepositoryContentStatistics stats = (RepositoryContentStatistics) results.get( 0 ); - assertEquals( "internal", stats.getRepositoryId() ); - - // delete - repoContentStatisticsDAO.deleteRepositoryContentStatistics( stats ); - - assertEquals( 0, repoContentStatisticsDAO.queryRepositoryContentStatistics( - new RepositoryContentStatisticsByRepositoryConstraint( "internal" ) ).size() ); - } - - private RepositoryContentStatistics createStats( String repoId, String timestamp, long duration, long totalfiles, - long newfiles ) - throws Exception - { - RepositoryContentStatistics stats = new RepositoryContentStatistics(); - stats.setRepositoryId( repoId ); - stats.setDuration( duration ); - stats.setNewFileCount( newfiles ); - stats.setTotalFileCount( totalfiles ); - stats.setWhenGathered( toDate( timestamp ) ); - - return stats; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.java deleted file mode 100644 index 575774283..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.java +++ /dev/null @@ -1,84 +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.commons.collections.CollectionUtils; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.util.List; - -/** - * DatabaseConsumersTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DatabaseConsumersTest - extends PlexusInSpringTestCase -{ - private DatabaseConsumers lookupDbConsumers() - throws Exception - { - DatabaseConsumers dbconsumers = (DatabaseConsumers) lookup( DatabaseConsumers.class ); - assertNotNull( "DatabaseConsumers should not be null.", dbconsumers ); - return dbconsumers; - } - - public void testGetAvailableCleanupConsumers() - throws Exception - { - DatabaseConsumers dbconsumers = lookupDbConsumers(); - List 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 - { - DatabaseConsumers dbconsumers = lookupDbConsumers(); - List available = dbconsumers.getAvailableUnprocessedConsumers(); - assertNotNull( "Available Unprocessed Consumers should never be null.", available ); - - assertTrue( "Available Unprocessed Consumers should have entries.", CollectionUtils.isNotEmpty( available ) ); - } - - public void testGetSelectedCleanupConsumers() - throws Exception - { - DatabaseConsumers dbconsumers = lookupDbConsumers(); - List 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 - { - DatabaseConsumers dbconsumers = lookupDbConsumers(); - List available = dbconsumers.getSelectedUnprocessedConsumers(); - assertNotNull( "Selected Unprocessed Consumers should never be null.", available ); - - assertTrue( "Selected Unprocessed Consumers should have entries.", CollectionUtils.isNotEmpty( available ) ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseUpdaterTest.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseUpdaterTest.java deleted file mode 100644 index 28c4e6350..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/DatabaseUpdaterTest.java +++ /dev/null @@ -1,103 +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.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.Date; - -/** - * DatabaseUpdaterTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DatabaseUpdaterTest - extends AbstractArchivaDatabaseTestCase -{ - private DatabaseUpdater dbupdater; - - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String whenProcessed ) - throws Exception - { - ArchivaArtifact artifact = dao.getArtifactDAO().createArtifact( groupId, artifactId, version, "", "jar" ); - assertNotNull( "Artifact should not be null.", artifact ); - Date dateWhenProcessed = null; - - if ( whenProcessed != null ) - { - dateWhenProcessed = toDate( whenProcessed ); - } - - artifact.getModel().setWhenProcessed( dateWhenProcessed ); - - // Satisfy table / column requirements. - artifact.getModel().setLastModified( new Date() ); - - return artifact; - } - - protected void setUp() - throws Exception - { - super.setUp(); - - ArtifactDAO adao = dao.getArtifactDAO(); - assertNotNull( "Artifact DAO should not be null.", adao ); - - adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-common", "1.0-SNAPSHOT", null ) ); - adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-utils", "1.0-SNAPSHOT", null ) ); - adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-old", "0.1", "2004/02/15 9:01:00" ) ); - adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-database", "1.0-SNAPSHOT", null ) ); - - dbupdater = (DatabaseUpdater) lookup( DatabaseUpdater.class, "jdo" ); - assertNotNull( "DatabaseUpdater should not be null.", dbupdater ); - } - - public void testUpdateUnprocessed() - throws Exception - { - String groupId = "org.apache.maven.archiva"; - String artifactId = "archiva-utils"; - String version = "1.0-SNAPSHOT"; - String classifier = ""; - String type = "jar"; - - TestDatabaseUnprocessedConsumer consumer = lookupTestUnprocessedConsumer(); - consumer.resetCount(); - - // Check the state of the artifact in the DB. - ArchivaArtifact savedArtifact = dao.getArtifactDAO().getArtifact( groupId, artifactId, version, classifier, - type ); - assertFalse( "Artifact should not be considered processed (yet).", savedArtifact.getModel().isProcessed() ); - - // Update the artifact - dbupdater.updateUnprocessed( savedArtifact ); - - // Check the update. - ArchivaArtifact processed = dao.getArtifactDAO().getArtifact( groupId, artifactId, version, classifier, type ); - assertTrue( "Artifact should be flagged as processed.", processed.getModel().isProcessed() ); - - // Did the unprocessed consumer do it's thing? - assertEquals( "Processed Count.", 1, consumer.getCountProcessed() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseCleanupConsumer.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseCleanupConsumer.java deleted file mode 100644 index 0062a8945..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseCleanupConsumer.java +++ /dev/null @@ -1,100 +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.consumers.DatabaseCleanupConsumer; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.List; - -/** - * TestDatabaseCleanupConsumer - * - * @author Joakim Erdfelt - * @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 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-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseUnprocessedConsumer.java b/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseUnprocessedConsumer.java deleted file mode 100644 index 664508e0f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/updater/TestDatabaseUnprocessedConsumer.java +++ /dev/null @@ -1,111 +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 java.util.ArrayList; -import java.util.List; - -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * TestDatabaseUnprocessedConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class TestDatabaseUnprocessedConsumer - extends AbstractMonitoredConsumer - implements DatabaseUnprocessedArtifactConsumer -{ - private Logger log = LoggerFactory.getLogger( TestDatabaseUnprocessedConsumer.class ); - - 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 getIncludedTypes() - { - List types = new ArrayList(); - types.add( "pom" ); - types.add( "jar" ); - return types; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - log.info( "Processing Artifact: " + artifact ); - countProcessed++; - } - - public String getDescription() - { - return "Test Consumer for Database Unprocessed"; - } - - public String getId() - { - return "test-db-unprocessed"; - } - - public boolean isPermanent() - { - return false; - } - - public int getCountBegin() - { - return countBegin; - } - - public int getCountComplete() - { - return countComplete; - } - - public int getCountProcessed() - { - return countProcessed; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml b/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml deleted file mode 100644 index 6c3e13e95..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - org.codehaus.plexus.jdo.JdoFactory - archiva - org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory - - org.jpox.PersistenceManagerFactoryImpl - - - javax.jdo.PersistenceManagerFactoryClass - org.jpox.PersistenceManagerFactoryImpl - - - - - - - org.apache.maven.archiva.consumers.DatabaseCleanupConsumer - test-db-cleanup - org.apache.maven.archiva.database.updater.TestDatabaseCleanupConsumer - - - - org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer - test-db-unprocessed - org.apache.maven.archiva.database.updater.TestDatabaseUnprocessedConsumer - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/archiva-test.xml b/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/archiva-test.xml deleted file mode 100644 index 6875b442f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/archiva-test.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - internal - Archiva Managed Internal Repository - file://${appserver.home}/repositories/internal - default - true - false - true - 0 0 * * * ? - - - snapshots - Archiva Managed Snapshot Repository - file://${appserver.home}/repositories/internal - default - false - true - true - 0 0,30 * * * ? - - - central - Central Repository - http://repo1.maven.org/maven2 - default - true - false - false - - - maven2-repository.dev.java.net - Java.net Repository for Maven 2 - https://maven2-repository.dev.java.net/nonav/repository - default - true - false - false - - - - - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - - - update-db-bad-content - - - - - 0 0 * * * ? - - test-db-unprocessed - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - test-db-cleanup - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/log4j.xml b/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/log4j.xml deleted file mode 100644 index 395941ac3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/log4j.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.xml b/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.xml deleted file mode 100644 index c9e47bd41..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/org/apache/maven/archiva/database/updater/DatabaseConsumersTest.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configured - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - configured - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/org/apache/maven/archiva/database/updater/DatabaseUpdaterTest.xml b/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/org/apache/maven/archiva/database/updater/DatabaseUpdaterTest.xml deleted file mode 100644 index c9e47bd41..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/org/apache/maven/archiva/database/updater/DatabaseUpdaterTest.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configured - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - configured - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/projects/maven-shared-jar-1.0-SNAPSHOT.pom b/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/projects/maven-shared-jar-1.0-SNAPSHOT.pom deleted file mode 100644 index 90ae915e6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-database/src/test/resources/projects/maven-shared-jar-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.shared - maven-shared-components - 3 - - - maven-shared-jar - jar - 1.0-SNAPSHOT - - Maven Shared Jar Utils - - - scm:svn:http://svn.apache.org/repos/asf/maven/sandbox/maven-shared-jar - scm:svn:https://svn.apache.org/repos/asf/maven/sandbox/maven-shared-jar - http://svn.apache.org/viewcvs.cgi/maven/sandbox/maven-shared-jar - - - - Apache - - - - jira - - - - continuum - - - - - joakime - joakime@apache.org - Joakim Erdfelt - - - - - - Someone Else - - - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - - - Shared Mailing List - - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - - descriptor - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - clean - - - - - - - - org.apache.maven.wagon - wagon-webdav - 1.0-beta-2 - - - - - - - - maven-project-info-reports-plugin - - - maven-javadoc-plugin - - - maven-surefire-report-plugin - - - org.codehaus.mojo - changelog-maven-plugin - - - - maven-jxr-plugin - - - maven-checkstyle-plugin - - - maven-pmd-plugin - - true - - rulesets/basic.xml - rulesets/codesize.xml - rulesets/controversial.xml - rulesets/coupling.xml - rulesets/finalizers.xml - rulesets/imports.xml - rulesets/junit.xml - rulesets/logging-jakarta-commons.xml - rulesets/naming.xml - rulesets/optimizations.xml - rulesets/strictexception.xml - rulesets/strings.xml - rulesets/sunsecure.xml - rulesets/unusedcode.xml - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - - - - snapshots.codehaus - http://snapshots.repository.codehaus.org/ - - false - - - true - - - - - - - - org.apache.maven - maven-model - 2.0.5 - - - - - - - org.apache.maven - maven-model - compile - - - - org.apache.maven - maven-artifact-manager - 2.0.2 - compile - - - - org.codehaus.plexus - plexus-digest - 1.0 - - - - org.apache.bcel - bcel - 5.2 - compile - - - - commons-collections - commons-collections - 3.1 - compile - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/pom.xml b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/pom.xml deleted file mode 100755 index 30969cb23..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/pom.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - org.apache.archiva - archiva-reporting - 1.2-SNAPSHOT - - 4.0.0 - archiva-artifact-reports - Archiva Reporting :: Artifact Reports - - - org.apache.archiva - archiva-report-manager - - - org.apache.archiva - archiva-database - - - org.apache.archiva - archiva-repository-layer - - - org.codehaus.plexus - plexus-utils - - - org.codehaus.plexus.registry - plexus-registry-commons - test - - - org.codehaus.plexus - plexus-spring - test - - - hsqldb - hsqldb - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/CorruptArtifactReport.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/CorruptArtifactReport.java deleted file mode 100644 index 502489310..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/CorruptArtifactReport.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.apache.maven.archiva.reporting.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.reporting.DynamicReportSource; -import org.apache.maven.archiva.reporting.DataLimits; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.constraints.RepositoryProblemByTypeConstraint; - -import java.util.List; - -/** - * Report for corrupt artifacts - *

- * Maria Odea Ching - */ -public class CorruptArtifactReport - implements DynamicReportSource -{ - public static final String PROBLEM_TYPE_CORRUPT_ARTIFACT = "corrupt-artifact"; - - /** - * @plexus.configuration default-value="Corrupt Artifact Report" - */ - private String name; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - private Constraint constraint; - - public CorruptArtifactReport() - { - constraint = new RepositoryProblemByTypeConstraint( PROBLEM_TYPE_CORRUPT_ARTIFACT ); - } - - public List getData() - throws ObjectNotFoundException, ArchivaDatabaseException - { - return dao.getRepositoryProblemDAO().queryRepositoryProblems( constraint ); - } - - public List getData( DataLimits limits ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - return dao.getRepositoryProblemDAO().queryRepositoryProblems( constraint ); - } - - public String getName() - { - return name; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactReport.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactReport.java deleted file mode 100644 index 1583665c5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactReport.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.apache.maven.archiva.reporting.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.database.ArchivaDAO; -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.constraints.RepositoryProblemByTypeConstraint; -import org.apache.maven.archiva.reporting.DataLimits; -import org.apache.maven.archiva.reporting.DynamicReportSource; - -import java.util.List; - -/** - * DuplicateArtifactReport - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.reporting.DynamicReportSource" - * role-hint="duplicate-artifacts" - */ -public class DuplicateArtifactReport - implements DynamicReportSource -{ - public static final String PROBLEM_TYPE_DUPLICATE_ARTIFACTS = "duplicate-artifacts"; - - /** - * @plexus.configuration default-value="Duplicate Artifact Report" - */ - private String name; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - private Constraint constraint; - - public DuplicateArtifactReport() - { - constraint = new RepositoryProblemByTypeConstraint( PROBLEM_TYPE_DUPLICATE_ARTIFACTS ); - } - - public List getData() - throws ObjectNotFoundException, ArchivaDatabaseException - { - return dao.getRepositoryProblemDAO().queryRepositoryProblems( constraint ); - } - - public List getData( DataLimits limits ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - // TODO: implement limits. - return dao.getRepositoryProblemDAO().queryRepositoryProblems( constraint ); - } - - public String getName() - { - return name; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactsConsumer.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactsConsumer.java deleted file mode 100644 index 63ff6e7d1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactsConsumer.java +++ /dev/null @@ -1,231 +0,0 @@ -package org.apache.maven.archiva.reporting.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.collections.CollectionUtils; -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.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ArchivaArtifactConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.constraints.ArtifactsByChecksumConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; -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.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; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Search the database of known SHA1 Checksums for potential duplicate artifacts. - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.ArchivaArtifactConsumer" - * role-hint="duplicate-artifacts" - */ -public class DuplicateArtifactsConsumer - extends AbstractMonitoredConsumer - implements ArchivaArtifactConsumer, RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( DuplicateArtifactsConsumer.class ); - - /** - * @plexus.configuration default-value="duplicate-artifacts" - */ - private String id; - - /** - * @plexus.configuration default-value="Check for Duplicate Artifacts via SHA1 Checksums" - */ - private String description; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - // TODO: why is this not used? If it should be, what about excludes? - private List includes = new ArrayList(); - - public String getId() - { - return id; - } - - public String getDescription() - { - return description; - } - - public boolean isPermanent() - { - return false; - } - - public void beginScan() - { - /* do nothing */ - } - - public void completeScan() - { - /* do nothing */ - } - - public List getIncludedTypes() - { - return null; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - String checksumSha1 = artifact.getModel().getChecksumSHA1(); - - List results = null; - try - { - results = dao.getArtifactDAO().queryArtifacts( new ArtifactsByChecksumConstraint( - checksumSha1, ArtifactsByChecksumConstraint.SHA1 ) ); - } - catch ( ObjectNotFoundException e ) - { - log.debug( "No duplicates for artifact: " + artifact ); - return; - } - catch ( ArchivaDatabaseException e ) - { - log.warn( "Unable to query DB for potential duplicates with : " + artifact ); - return; - } - - if ( CollectionUtils.isNotEmpty( results ) ) - { - if ( results.size() <= 1 ) - { - // No duplicates detected. - log.debug( "Found no duplicate artifact results on: " + artifact ); - return; - } - - for ( ArchivaArtifact dupArtifact : results ) - { - if ( dupArtifact.equals( artifact ) ) - { - // Skip reference to itself. - continue; - } - - RepositoryProblem problem = new RepositoryProblem(); - problem.setRepositoryId( dupArtifact.getModel().getRepositoryId() ); - problem.setPath( toPath( dupArtifact ) ); - problem.setGroupId( artifact.getGroupId() ); - problem.setArtifactId( artifact.getArtifactId() ); - problem.setVersion( artifact.getVersion() ); - problem.setType( DuplicateArtifactReport.PROBLEM_TYPE_DUPLICATE_ARTIFACTS ); - problem.setOrigin( getId() ); - problem.setMessage( "Duplicate Artifact Detected: " + artifact + " <--> " + dupArtifact ); - - try - { - log.debug( "Found duplicate artifact: " + problem ); - dao.getRepositoryProblemDAO().saveRepositoryProblem( problem ); - } - catch ( ArchivaDatabaseException e ) - { - String emsg = "Unable to save problem with duplicate artifact to DB: " + e.getMessage(); - log.warn( emsg, e ); - throw new ConsumerException( emsg, e ); - } - } - } - } - - private String toPath( ArchivaArtifact artifact ) - { - try - { - String repoId = artifact.getModel().getRepositoryId(); - ManagedRepositoryContent repo = repositoryFactory.getManagedRepositoryContent( repoId ); - return repo.toPath( artifact ); - } - catch ( RepositoryException e ) - { - log.warn( "Unable to calculate path for artifact: " + artifact ); - return ""; - } - } - - 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 - { - initIncludes(); - configuration.addChangeListener( this ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/LocationArtifactsConsumer.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/LocationArtifactsConsumer.java deleted file mode 100644 index 23355f818..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/LocationArtifactsConsumer.java +++ /dev/null @@ -1,361 +0,0 @@ -package org.apache.maven.archiva.reporting.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; - -import org.apache.commons.lang.StringUtils; -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.ArchivaArtifactConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -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.RepositoryContentFactory; -import org.apache.maven.archiva.repository.RepositoryException; -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; -import org.codehaus.plexus.util.SelectorUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Validate the location of the artifact based on the values indicated - * in its pom (both the pom packaged with the artifact & the pom in the - * file system). - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.ArchivaArtifactConsumer" - * role-hint="validate-artifacts-location" - */ -public class LocationArtifactsConsumer - extends AbstractMonitoredConsumer - implements ArchivaArtifactConsumer, RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( LocationArtifactsConsumer.class ); - - /** - * @plexus.configuration default-value="duplicate-artifacts" - */ - private String id; - - /** - * @plexus.configuration default-value="Check for Duplicate Artifacts via SHA1 Checksums" - */ - private String description; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - private Map repositoryMap = new HashMap(); - - // TODO: why is this not used? If it should be, what about excludes? - private List includes = new ArrayList(); - - public String getId() - { - return id; - } - - public String getDescription() - { - return description; - } - - public boolean isPermanent() - { - return false; - } - - public void beginScan() - { - /* do nothing */ - } - - public void completeScan() - { - /* do nothing */ - } - - public List getIncludedTypes() - { - return null; - } - - /** - * Check whether the artifact is in its proper location. The location of the artifact - * is validated first against the groupId, artifactId and versionId in the specified model - * object (pom in the file system). Then unpack the artifact (jar file) and get the model (pom) - * included in the package. If a model exists inside the package, then check if the artifact's - * location is valid based on the location specified in the pom. Check if the both the location - * specified in the file system pom and in the pom included in the package is the same. - */ - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - ManagedRepositoryConfiguration repository = findRepository( artifact ); - - File artifactFile = new File( repository.getLocation(), toPath( artifact ) ); - ArchivaProjectModel fsModel = readFilesystemModel( artifactFile ); - ArchivaProjectModel embeddedModel = readEmbeddedModel( artifact, artifactFile ); - - validateAppropriateModel( "Filesystem", artifact, fsModel ); - validateAppropriateModel( "Embedded", artifact, embeddedModel ); - } - - private void validateAppropriateModel( String location, ArchivaArtifact artifact, ArchivaProjectModel model ) - throws ConsumerException - { - if ( model != null ) - { - if ( !StringUtils.equals( model.getGroupId(), artifact.getGroupId() ) ) - { - addProblem( artifact, "The groupId of the " + location + - " project model doesn't match with the artifact, expected <" + artifact.getGroupId() + - ">, but was actually <" + model.getGroupId() + ">" ); - } - - if ( !StringUtils.equals( model.getArtifactId(), artifact.getArtifactId() ) ) - { - addProblem( artifact, "The artifactId of the " + location + - " project model doesn't match with the artifact, expected <" + artifact.getArtifactId() + - ">, but was actually <" + model.getArtifactId() + ">" ); - } - - if ( !StringUtils.equals( model.getVersion(), artifact.getVersion() ) ) - { - addProblem( artifact, "The version of the " + location + - " project model doesn't match with the artifact, expected <" + artifact.getVersion() + - ">, but was actually <" + model.getVersion() + ">" ); - } - } - } - - private ArchivaProjectModel readEmbeddedModel( ArchivaArtifact artifact, File artifactFile ) - throws ConsumerException - { - try - { - JarFile jar = new JarFile( artifactFile ); - - // Get the entry and its input stream. - JarEntry expectedEntry = jar.getJarEntry( - "META-INF/maven/" + artifact.getGroupId() + "/" + artifact.getArtifactId() + "/pom.xml" ); - - if ( expectedEntry != null ) - { - // TODO: read and resolve model here. - return null; - } - - /* Expected Entry not found, look for alternate that might - * indicate that the artifact is, indeed located in the wrong place. - */ - - List actualPomXmls = findJarEntryPattern( jar, "META-INF/maven/**/pom.xml" ); - if ( actualPomXmls.isEmpty() ) - { - // No check needed. - - } - - // TODO: test for invalid actual pom.xml - // TODO: test - } - catch ( IOException e ) - { - // Not able to read from the file. - String emsg = "Unable to read file contents: " + e.getMessage(); - addProblem( artifact, emsg ); - } - - return null; - } - - private List findJarEntryPattern( JarFile jar, String pattern ) - { - List hits = new ArrayList(); - - Enumeration entries = jar.entries(); - while ( entries.hasMoreElements() ) - { - JarEntry entry = entries.nextElement(); - if ( SelectorUtils.match( pattern, entry.getName() ) ) - { - hits.add( entry ); - } - } - - return hits; - } - - private void addProblem( ArchivaArtifact artifact, String msg ) - throws ConsumerException - { - RepositoryProblem problem = new RepositoryProblem(); - problem.setRepositoryId( artifact.getModel().getRepositoryId() ); - problem.setPath( toPath( artifact ) ); - problem.setGroupId( artifact.getGroupId() ); - problem.setArtifactId( artifact.getArtifactId() ); - problem.setVersion( artifact.getVersion() ); - problem.setType( LocationArtifactsReport.PROBLEM_TYPE_BAD_ARTIFACT_LOCATION ); - problem.setOrigin( getId() ); - problem.setMessage( msg ); - - try - { - dao.getRepositoryProblemDAO().saveRepositoryProblem( problem ); - } - catch ( ArchivaDatabaseException e ) - { - String emsg = "Unable to save problem with artifact location to DB: " + e.getMessage(); - log.warn( emsg, e ); - throw new ConsumerException( emsg, e ); - } - } - - private ArchivaProjectModel readFilesystemModel( File artifactFile ) - { - File pomFile = createPomFileReference( artifactFile ); - - // TODO: read and resolve model here. - - return null; - } - - private File createPomFileReference( File artifactFile ) - { - String pomFilename = artifactFile.getAbsolutePath(); - - int pos = pomFilename.lastIndexOf( '.' ); - if ( pos <= 0 ) - { - // Invalid filename. - return null; - } - - pomFilename = pomFilename.substring( 0, pos ) + ".pom"; - return new File( pomFilename ); - } - - private ManagedRepositoryConfiguration findRepository( ArchivaArtifact artifact ) - { - return (ManagedRepositoryConfiguration) this.repositoryMap.get( artifact.getModel().getRepositoryId() ); - } - - private String toPath( ArchivaArtifact artifact ) - { - try - { - String repoId = artifact.getModel().getRepositoryId(); - ManagedRepositoryContent repo = repositoryFactory.getManagedRepositoryContent( repoId ); - return repo.toPath( artifact ); - } - catch ( RepositoryException e ) - { - log.warn( "Unable to calculate path for artifact: " + artifact ); - return ""; - } - } - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isManagedRepositories( propertyName ) ) - { - initRepositoryMap(); - } - - 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 ) ); - } - - private void initRepositoryMap() - { - synchronized ( this.repositoryMap ) - { - this.repositoryMap.clear(); - - Map map = - configuration.getConfiguration().getManagedRepositoriesAsMap(); - - for ( Map.Entry entry : map.entrySet() ) - { - this.repositoryMap.put( entry.getKey(), entry.getValue() ); - } - } - } - - public void initialize() - throws InitializationException - { - initRepositoryMap(); - initIncludes(); - configuration.addChangeListener( this ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/LocationArtifactsReport.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/LocationArtifactsReport.java deleted file mode 100644 index 5aede32ce..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/LocationArtifactsReport.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.apache.maven.archiva.reporting.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.database.ArchivaDAO; -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.constraints.RepositoryProblemByTypeConstraint; -import org.apache.maven.archiva.reporting.DataLimits; -import org.apache.maven.archiva.reporting.DynamicReportSource; - -import java.util.List; - -/** - * LocationArtifactsReport - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.reporting.DynamicReportSource" - * role-hint="artifact-location" - */ -public class LocationArtifactsReport - implements DynamicReportSource -{ - public static final String PROBLEM_TYPE_BAD_ARTIFACT_LOCATION = "bad-artifact-location"; - - /** - * @plexus.configuration default-value="Artifact Locations Report" - */ - private String name; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - private Constraint constraint; - - public LocationArtifactsReport() - { - constraint = new RepositoryProblemByTypeConstraint( PROBLEM_TYPE_BAD_ARTIFACT_LOCATION ); - } - - public List getData() - throws ObjectNotFoundException, ArchivaDatabaseException - { - return dao.getRepositoryProblemDAO().queryRepositoryProblems( constraint ); - } - - public List getData( DataLimits limits ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - // TODO: implement limits. - return dao.getRepositoryProblemDAO().queryRepositoryProblems( constraint ); - } - - public String getName() - { - return name; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/OldArtifactReport.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/OldArtifactReport.java deleted file mode 100644 index e95c1cc1c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/OldArtifactReport.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.apache.maven.archiva.reporting.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.constraints.OlderArtifactsByAgeConstraint; -import org.apache.maven.archiva.reporting.DataLimits; -import org.apache.maven.archiva.reporting.DynamicReportSource; - -import java.util.List; - -/** - * OldArtifactReport - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.reporting.DynamicReportSource" - * role-hint="old-artifacts" - */ -public class OldArtifactReport - implements DynamicReportSource -{ - /** - * @plexus.configuration default-value="Old Artifacts Report" - */ - private String name; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * The maximum age of an artifact before it is reported old, specified in days. The default is 1 year. - * - * @plexus.configuration default-value="365" - */ - private int cutoffDays; - - public List getData() - throws ObjectNotFoundException, ArchivaDatabaseException - { - return dao.getArtifactDAO().queryArtifacts( new OlderArtifactsByAgeConstraint( cutoffDays ) ); - } - - public List getData( DataLimits limits ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - return dao.getArtifactDAO().queryArtifacts( new OlderArtifactsByAgeConstraint( cutoffDays ) ); - } - - public String getName() - { - return name; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/OldSnapshotArtifactReport.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/OldSnapshotArtifactReport.java deleted file mode 100644 index a77bb9659..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/OldSnapshotArtifactReport.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.apache.maven.archiva.reporting.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.constraints.OlderSnapshotArtifactsByAgeConstraint; -import org.apache.maven.archiva.reporting.DataLimits; -import org.apache.maven.archiva.reporting.DynamicReportSource; - -import java.util.List; - -/** - * OldSnapshotArtifactReport - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.reporting.DynamicReportSource" - * role-hint="old-snapshots" - */ -public class OldSnapshotArtifactReport - implements DynamicReportSource -{ - /** - * @plexus.configuration default-value="Old Snapshots Report" - */ - private String name; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * The maximum age of a snapshot before it is reported old, specified in days. The default is 1 year. - * - * @plexus.configuration default-value="365" - */ - private int cutoffDays; - - public List getData() - throws ObjectNotFoundException, ArchivaDatabaseException - { - return dao.getArtifactDAO().queryArtifacts( new OlderSnapshotArtifactsByAgeConstraint( cutoffDays ) ); - } - - public List getData( DataLimits limits ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - return dao.getArtifactDAO().queryArtifacts( new OlderSnapshotArtifactsByAgeConstraint( cutoffDays ) ); - } - - public String getName() - { - return name; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/java/org/apache/maven/archiva/reporting/artifact/AbstractArtifactReportsTestCase.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/java/org/apache/maven/archiva/reporting/artifact/AbstractArtifactReportsTestCase.java deleted file mode 100644 index 577cdba68..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/java/org/apache/maven/archiva/reporting/artifact/AbstractArtifactReportsTestCase.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.apache.maven.archiva.reporting.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.database.ArchivaDAO; -import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory; -import org.codehaus.plexus.jdo.JdoFactory; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.jpox.SchemaTool; - -import java.io.File; -import java.net.URL; -import java.util.Iterator; -import java.util.Map; -import java.util.Properties; - -import javax.jdo.PersistenceManager; -import javax.jdo.PersistenceManagerFactory; - -/** - * AbstractArtifactReportsTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractArtifactReportsTestCase - extends PlexusInSpringTestCase -{ - protected ArchivaDAO dao; - - protected void setUp() - throws Exception - { - super.setUp(); - - DefaultConfigurableJdoFactory jdoFactory = (DefaultConfigurableJdoFactory) lookup( JdoFactory.ROLE, "archiva" ); - assertEquals( DefaultConfigurableJdoFactory.class.getName(), jdoFactory.getClass().getName() ); - - jdoFactory.setPersistenceManagerFactoryClass( "org.jpox.PersistenceManagerFactoryImpl" ); - - /* derby version - File derbyDbDir = new File( "target/plexus-home/testdb" ); - if ( derbyDbDir.exists() ) - { - FileUtils.deleteDirectory( derbyDbDir ); - } - - jdoFactory.setDriverName( System.getProperty( "jdo.test.driver", "org.apache.derby.jdbc.EmbeddedDriver" ) ); - jdoFactory.setUrl( System.getProperty( "jdo.test.url", "jdbc:derby:" + derbyDbDir.getAbsolutePath() + ";create=true" ) ); - */ - - jdoFactory.setDriverName( System.getProperty( "jdo.test.driver", "org.hsqldb.jdbcDriver" ) ); - jdoFactory.setUrl( System.getProperty( "jdo.test.url", "jdbc:hsqldb:mem:" + getName() ) ); - - jdoFactory.setUserName( System.getProperty( "jdo.test.user", "sa" ) ); - - jdoFactory.setPassword( System.getProperty( "jdo.test.pass", "" ) ); - - jdoFactory.setProperty( "org.jpox.transactionIsolation", "READ_COMMITTED" ); - - jdoFactory.setProperty( "org.jpox.poid.transactionIsolation", "READ_COMMITTED" ); - - jdoFactory.setProperty( "org.jpox.autoCreateSchema", "true" ); - - jdoFactory.setProperty( "javax.jdo.option.RetainValues", "true" ); - - jdoFactory.setProperty( "javax.jdo.option.RestoreValues", "true" ); - - // jdoFactory.setProperty( "org.jpox.autoCreateColumns", "true" ); - - jdoFactory.setProperty( "org.jpox.validateTables", "true" ); - - jdoFactory.setProperty( "org.jpox.validateColumns", "true" ); - - jdoFactory.setProperty( "org.jpox.validateConstraints", "true" ); - - Properties properties = jdoFactory.getProperties(); - - for ( Iterator it = properties.entrySet().iterator(); it.hasNext(); ) - { - Map.Entry entry = (Map.Entry) it.next(); - - System.setProperty( (String) entry.getKey(), (String) entry.getValue() ); - } - - URL jdoFileUrls[] = new URL[] { getClass().getResource( "/org/apache/maven/archiva/model/package.jdo" ) }; - - if ( ( jdoFileUrls == null ) || ( jdoFileUrls[0] == null ) ) - { - fail( "Unable to process test " + getName() + " - missing package.jdo." ); - } - - File propsFile = null; // intentional - boolean verbose = true; - - SchemaTool.deleteSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose ); - SchemaTool.createSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose, null ); - - PersistenceManagerFactory pmf = jdoFactory.getPersistenceManagerFactory(); - - assertNotNull( pmf ); - - PersistenceManager pm = pmf.getPersistenceManager(); - - pm.close(); - - this.dao = (ArchivaDAO) lookup( ArchivaDAO.class.getName(), "jdo" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactReportTest.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactReportTest.java deleted file mode 100644 index 4d0f244c2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactReportTest.java +++ /dev/null @@ -1,166 +0,0 @@ -package org.apache.maven.archiva.reporting.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.ArchivaArtifactConsumer; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.RepositoryProblem; -import org.apache.maven.archiva.reporting.DynamicReportSource; - -import java.io.File; -import java.util.Date; -import java.util.Iterator; -import java.util.List; - -/** - * DuplicateArtifactReportTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DuplicateArtifactReportTest - extends AbstractArtifactReportsTestCase -{ - private static final String TESTABLE_REPO = "testable"; - - private static final String HASH3 = "f3f653289f3217c65324830ab3415bc92feddefa"; - - private static final String HASH2 = "a49810ad3eba8651677ab57cd40a0f76fdef9538"; - - private static final String HASH1 = "232f01b24b1617c46a3d4b0ab3415bc9237dcdec"; - - private ArtifactDAO artifactDao; - - protected void setUp() - throws Exception - { - super.setUp(); - - artifactDao = dao.getArtifactDAO(); - - ArchivaConfiguration config = (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "default" ); - - ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration(); - repoConfig.setId( TESTABLE_REPO ); - repoConfig.setLayout( "default" ); - File testRepoDir = new File( getBasedir(), "target/test-repository" ); - FileUtils.forceMkdir( testRepoDir ); - repoConfig.setLocation( testRepoDir.getAbsolutePath() ); - config.getConfiguration().addManagedRepository( repoConfig ); - } - - public ArchivaArtifact createArtifact( String artifactId, String version ) - { - ArchivaArtifact artifact = - artifactDao.createArtifact( "org.apache.maven.archiva.test", artifactId, version, "", "jar" ); - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setRepositoryId( TESTABLE_REPO ); - return artifact; - } - - public void testSimpleReport() - throws Exception - { - ArchivaArtifact artifact; - - // Setup artifacts in fresh DB. - artifact = createArtifact( "test-one", "1.0" ); - artifact.getModel().setChecksumSHA1( HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.1" ); - artifact.getModel().setChecksumSHA1( HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-one", "1.2" ); - artifact.getModel().setChecksumSHA1( HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "1.0" ); - artifact.getModel().setChecksumSHA1( HASH1 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "2.0" ); - artifact.getModel().setChecksumSHA1( HASH3 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "2.1" ); - artifact.getModel().setChecksumSHA1( HASH2 ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "test-two", "3.0" ); - artifact.getModel().setChecksumSHA1( HASH2 ); - artifactDao.saveArtifact( artifact ); - - // Setup entries for bad/duplicate in problem DB. - pretendToRunDuplicateArtifactsConsumer(); - - List allArtifacts = artifactDao.queryArtifacts( null ); - assertEquals( "Total Artifact Count", 7, allArtifacts.size() ); - - DuplicateArtifactReport report = - (DuplicateArtifactReport) lookup( DynamicReportSource.class.getName(), "duplicate-artifacts" ); - - List results = report.getData(); - - System.out.println( "Results.size: " + results.size() ); - int i = 0; - Iterator it = results.iterator(); - while ( it.hasNext() ) - { - RepositoryProblem problem = (RepositoryProblem) it.next(); - System.out.println( "[" + ( i++ ) + "] " + problem.getMessage() ); - } - - int hash1Count = 4; - int hash2Count = 2; - int hash3Count = 1; - - int totals = ( ( hash1Count * hash1Count ) - hash1Count ) + ( ( hash2Count * hash2Count ) - hash2Count ) + - ( ( hash3Count * hash3Count ) - hash3Count ); - assertEquals( "Total report hits.", totals, results.size() ); - } - - private void pretendToRunDuplicateArtifactsConsumer() - throws Exception - { - List artifacts = dao.getArtifactDAO().queryArtifacts( null ); - ArchivaArtifactConsumer consumer = - (ArchivaArtifactConsumer) lookup( ArchivaArtifactConsumer.class.getName(), "duplicate-artifacts" ); - consumer.beginScan(); - try - { - Iterator it = artifacts.iterator(); - while ( it.hasNext() ) - { - ArchivaArtifact artifact = (ArchivaArtifact) it.next(); - consumer.processArchivaArtifact( artifact ); - } - } - finally - { - consumer.completeScan(); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/resources/META-INF/plexus/components.xml b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/resources/META-INF/plexus/components.xml deleted file mode 100644 index a780793c7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/resources/META-INF/plexus/components.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - org.codehaus.plexus.jdo.JdoFactory - archiva - org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory - - org.jpox.PersistenceManagerFactoryImpl - - - javax.jdo.PersistenceManagerFactoryClass - org.jpox.PersistenceManagerFactoryImpl - - - - - - - org.codehaus.plexus.registry.Registry - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - commons-configuration - - - - - - - - - - - - - - plexus - - - plexus - Plexus Lifecycle Handler - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/resources/log4j.xml b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/resources/log4j.xml deleted file mode 100644 index 395941ac3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-artifact-reports/src/test/resources/log4j.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/pom.xml b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/pom.xml deleted file mode 100755 index 6d50ef3ee..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - org.apache.archiva - archiva-reporting - 1.2-SNAPSHOT - - 4.0.0 - archiva-metadata-reports - Archiva Reporting :: Metadata Reports - - - org.apache.archiva - archiva-report-manager - - - org.apache.archiva - archiva-database - - - org.apache.archiva - archiva-repository-layer - - - org.codehaus.plexus - plexus-utils - - - commons-lang - commons-lang - - - commons-io - commons-io - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/src/main/java/org/apache/maven/archiva/reporting/metadata/MetadataReport.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/src/main/java/org/apache/maven/archiva/reporting/metadata/MetadataReport.java deleted file mode 100644 index 2ca17dbe2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/src/main/java/org/apache/maven/archiva/reporting/metadata/MetadataReport.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.apache.maven.archiva.reporting.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 org.apache.maven.archiva.database.ArchivaDAO; -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.constraints.RepositoryProblemByTypeConstraint; -import org.apache.maven.archiva.reporting.DataLimits; -import org.apache.maven.archiva.reporting.DynamicReportSource; - -import java.util.List; - -/** - * MetadataReport - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.reporting.DynamicReportSource" - * role-hint="metadata" - */ -public class MetadataReport - implements DynamicReportSource -{ - public static final String PROBLEM_TYPE_METADATA = "metadata"; - - /** - * @plexus.configuration default-value="Metadata Report" - */ - private String name; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - private Constraint constraint; - - public MetadataReport() - { - constraint = new RepositoryProblemByTypeConstraint( PROBLEM_TYPE_METADATA ); - } - - public List getData() - throws ObjectNotFoundException, ArchivaDatabaseException - { - return dao.getRepositoryProblemDAO().queryRepositoryProblems( constraint ); - } - - public List getData( DataLimits limits ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - // TODO: implement limits. - return dao.getRepositoryProblemDAO().queryRepositoryProblems( constraint ); - } - - public String getName() - { - return name; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/src/main/java/org/apache/maven/archiva/reporting/metadata/MetadataValidateConsumer.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/src/main/java/org/apache/maven/archiva/reporting/metadata/MetadataValidateConsumer.java deleted file mode 100644 index 578e04603..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-metadata-reports/src/main/java/org/apache/maven/archiva/reporting/metadata/MetadataValidateConsumer.java +++ /dev/null @@ -1,308 +0,0 @@ -package org.apache.maven.archiva.reporting.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. - */ - - -/** - * MetadataValidateConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * - * TODO: whoops, how do we consumer metadata? - */ -public class MetadataValidateConsumer -{ - -// /** -// * Process the metadata encountered in the repository and report all errors found, if any. -// * -// * @param metadata the metadata to be processed. -// * @param repository the repository where the metadata was encountered -// * @param reporter the ReportingDatabase to receive processing results -// */ -// public void processMetadata( RepositoryMetadata metadata, ArtifactRepository repository ) -// { -// if ( metadata.storedInGroupDirectory() ) -// { -// try -// { -// checkPluginMetadata( metadata, repository ); -// } -// catch ( IOException e ) -// { -// addWarning( metadata, null, "Error getting plugin artifact directories versions: " + e ); -// } -// } -// else -// { -// Versioning versioning = metadata.getMetadata().getVersioning(); -// boolean found = false; -// if ( versioning != null ) -// { -// String lastUpdated = versioning.getLastUpdated(); -// if ( lastUpdated != null && lastUpdated.length() != 0 ) -// { -// found = true; -// } -// } -// if ( !found ) -// { -// addFailure( metadata, "missing-last-updated", "Missing lastUpdated element inside the metadata." ); -// } -// -// if ( metadata.storedInArtifactVersionDirectory() ) -// { -// checkSnapshotMetadata( metadata, repository ); -// } -// else -// { -// checkMetadataVersions( metadata, repository ); -// -// try -// { -// checkRepositoryVersions( metadata, repository ); -// } -// catch ( IOException e ) -// { -// String reason = "Error getting plugin artifact directories versions: " + e; -// addWarning( metadata, null, reason ); -// } -// } -// } -// } -// -// private void addWarning( RepositoryMetadata metadata, String problem, String reason ) -// { -// // TODO: reason could be an i18n key derived from the processor and the problem ID and the -// database.addWarning( metadata, ROLE_HINT, problem, reason ); -// } -// -// /** -// * Method for processing a GroupRepositoryMetadata -// * -// * @param metadata the metadata to be processed. -// * @param repository the repository where the metadata was encountered -// * @param reporter the ReportingDatabase to receive processing results -// */ -// private void checkPluginMetadata( RepositoryMetadata metadata, ArtifactRepository repository ) -// throws IOException -// { -// File metadataDir = new File( repository.getBasedir(), repository.pathOfRemoteRepositoryMetadata( metadata ) ) -// .getParentFile(); -// List pluginDirs = getArtifactIdFiles( metadataDir ); -// -// Map prefixes = new HashMap(); -// for ( Iterator plugins = metadata.getMetadata().getPlugins().iterator(); plugins.hasNext(); ) -// { -// Plugin plugin = (Plugin) plugins.next(); -// -// String artifactId = plugin.getArtifactId(); -// if ( artifactId == null || artifactId.length() == 0 ) -// { -// addFailure( metadata, "missing-artifact-id:" + plugin.getPrefix(), -// "Missing or empty artifactId in group metadata for plugin " + plugin.getPrefix() ); -// } -// -// String prefix = plugin.getPrefix(); -// if ( prefix == null || prefix.length() == 0 ) -// { -// addFailure( metadata, "missing-plugin-prefix:" + artifactId, -// "Missing or empty plugin prefix for artifactId " + artifactId + "." ); -// } -// else -// { -// if ( prefixes.containsKey( prefix ) ) -// { -// addFailure( metadata, "duplicate-plugin-prefix:" + prefix, "Duplicate plugin prefix found: " -// + prefix + "." ); -// } -// else -// { -// prefixes.put( prefix, plugin ); -// } -// } -// -// if ( artifactId != null && artifactId.length() > 0 ) -// { -// File pluginDir = new File( metadataDir, artifactId ); -// if ( !pluginDirs.contains( pluginDir ) ) -// { -// addFailure( metadata, "missing-plugin-from-repository:" + artifactId, "Metadata plugin " -// + artifactId + " not found in the repository" ); -// } -// else -// { -// pluginDirs.remove( pluginDir ); -// } -// } -// } -// -// if ( pluginDirs.size() > 0 ) -// { -// for ( Iterator plugins = pluginDirs.iterator(); plugins.hasNext(); ) -// { -// File plugin = (File) plugins.next(); -// addFailure( metadata, "missing-plugin-from-metadata:" + plugin.getName(), "Plugin " + plugin.getName() -// + " is present in the repository but " + "missing in the metadata." ); -// } -// } -// } -// -// /** -// * Method for processing a SnapshotArtifactRepository -// * -// * @param metadata the metadata to be processed. -// * @param repository the repository where the metadata was encountered -// * @param reporter the ReportingDatabase to receive processing results -// */ -// private void checkSnapshotMetadata( RepositoryMetadata metadata, ArtifactRepository repository ) -// { -// RepositoryQueryLayer repositoryQueryLayer = repositoryQueryLayerFactory.createRepositoryQueryLayer( repository ); -// -// Versioning versioning = metadata.getMetadata().getVersioning(); -// if ( versioning != null ) -// { -// Snapshot snapshot = versioning.getSnapshot(); -// -// String version = StringUtils.replace( metadata.getBaseVersion(), Artifact.SNAPSHOT_VERSION, snapshot -// .getTimestamp() -// + "-" + snapshot.getBuildNumber() ); -// Artifact artifact = artifactFactory.createProjectArtifact( metadata.getGroupId(), metadata.getArtifactId(), -// version ); -// artifact.isSnapshot(); // trigger baseVersion correction -// -// if ( !repositoryQueryLayer.containsArtifact( artifact ) ) -// { -// addFailure( metadata, "missing-snapshot-artifact-from-repository:" + version, "Snapshot artifact " -// + version + " does not exist." ); -// } -// } -// } -// -// /** -// * Method for validating the versions declared inside an ArtifactRepositoryMetadata -// * -// * @param metadata the metadata to be processed. -// * @param repository the repository where the metadata was encountered -// * @param reporter the ReportingDatabase to receive processing results -// */ -// private void checkMetadataVersions( RepositoryMetadata metadata, ArtifactRepository repository ) -// { -// RepositoryQueryLayer repositoryQueryLayer = repositoryQueryLayerFactory.createRepositoryQueryLayer( repository ); -// -// Versioning versioning = metadata.getMetadata().getVersioning(); -// if ( versioning != null ) -// { -// for ( Iterator versions = versioning.getVersions().iterator(); versions.hasNext(); ) -// { -// String version = (String) versions.next(); -// -// Artifact artifact = artifactFactory.createProjectArtifact( metadata.getGroupId(), metadata -// .getArtifactId(), version ); -// -// if ( !repositoryQueryLayer.containsArtifact( artifact ) ) -// { -// addFailure( metadata, "missing-artifact-from-repository:" + version, "Artifact version " + version -// + " is present in metadata but " + "missing in the repository." ); -// } -// } -// } -// } -// -// /** -// * Searches the artifact repository directory for all versions and verifies that all of them are listed in the -// * ArtifactRepositoryMetadata -// * -// * @param metadata the metadata to be processed. -// * @param repository the repository where the metadata was encountered -// * @param reporter the ReportingDatabase to receive processing results -// * @throws java.io.IOException if there is a problem reading from the file system -// */ -// private void checkRepositoryVersions( RepositoryMetadata metadata, ArtifactRepository repository ) -// throws IOException -// { -// Versioning versioning = metadata.getMetadata().getVersioning(); -// List metadataVersions = versioning != null ? versioning.getVersions() : Collections.EMPTY_LIST; -// File versionsDir = new File( repository.getBasedir(), repository.pathOfRemoteRepositoryMetadata( metadata ) ) -// .getParentFile(); -// -// // TODO: I don't know how this condition can happen, but it was seen on the main repository. -// // Avoid hard failure -// if ( versionsDir.exists() ) -// { -// List versions = FileUtils.getFileNames( versionsDir, "*/*.pom", null, false ); -// for ( Iterator i = versions.iterator(); i.hasNext(); ) -// { -// File path = new File( (String) i.next() ); -// String version = path.getParentFile().getName(); -// if ( !metadataVersions.contains( version ) ) -// { -// addFailure( metadata, "missing-artifact-from-metadata:" + version, "Artifact version " + version -// + " found in the repository but " + "missing in the metadata." ); -// } -// } -// } -// else -// { -// addFailure( metadata, null, "Metadata's directory did not exist: " + versionsDir ); -// } -// } -// -// /** -// * Used to gather artifactIds from a groupId directory. -// * -// * @param groupIdDir the directory of the group -// * @return the list of artifact ID File objects for each directory -// * @throws IOException if there was a failure to read the directories -// */ -// private List getArtifactIdFiles( File groupIdDir ) -// throws IOException -// { -// List artifactIdFiles = new ArrayList(); -// -// File[] files = groupIdDir.listFiles(); -// if ( files != null ) -// { -// for ( Iterator i = Arrays.asList( files ).iterator(); i.hasNext(); ) -// { -// File artifactDir = (File) i.next(); -// -// if ( artifactDir.isDirectory() ) -// { -// List versions = FileUtils.getFileNames( artifactDir, "*/*.pom", null, false ); -// if ( versions.size() > 0 ) -// { -// artifactIdFiles.add( artifactDir ); -// } -// } -// } -// } -// -// return artifactIdFiles; -// } -// -// private void addFailure( RepositoryMetadata metadata, String problem, String reason ) -// { -// // TODO: reason could be an i18n key derived from the processor and the problem ID and the -// database.addFailure( metadata, ROLE_HINT, problem, reason ); -// } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/pom.xml b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/pom.xml deleted file mode 100755 index b8be1ec34..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - org.apache.archiva - archiva-reporting - 1.2-SNAPSHOT - - 4.0.0 - archiva-project-reports - Archiva Reporting :: Project Reports - - - org.apache.archiva - archiva-report-manager - - - org.apache.archiva - archiva-database - - - org.apache.archiva - archiva-repository-layer - - - org.codehaus.plexus - plexus-utils - - - commons-lang - commons-lang - - - commons-io - commons-io - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/src/main/java/org/apache/maven/archiva/reporting/project/MissingDependenciesReport.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/src/main/java/org/apache/maven/archiva/reporting/project/MissingDependenciesReport.java deleted file mode 100644 index dfc15c71c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/src/main/java/org/apache/maven/archiva/reporting/project/MissingDependenciesReport.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.apache.maven.archiva.reporting.project; - -/* - * 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.database.ArchivaDAO; -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.constraints.RepositoryProblemByTypeConstraint; -import org.apache.maven.archiva.reporting.DataLimits; -import org.apache.maven.archiva.reporting.DynamicReportSource; - -import java.util.List; - -/** - * MissingDependenciesReport - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.reporting.DynamicReportSource" - * role-hint="missing-dependencies" - */ -public class MissingDependenciesReport - implements DynamicReportSource -{ - public static final String PROBLEM_TYPE_MISSING_DEPENDENCY = "missing-dependency"; - - /** - * @plexus.configuration default-value="Missing Dependencies Report" - */ - private String name; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - private Constraint constraint; - - public MissingDependenciesReport() - { - constraint = new RepositoryProblemByTypeConstraint( PROBLEM_TYPE_MISSING_DEPENDENCY ); - } - - public List getData() - throws ObjectNotFoundException, ArchivaDatabaseException - { - return dao.getRepositoryProblemDAO().queryRepositoryProblems( constraint ); - } - - public List getData( DataLimits limits ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - // TODO: implement limits. - return dao.getRepositoryProblemDAO().queryRepositoryProblems( constraint ); - } - - public String getName() - { - return name; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/src/main/java/org/apache/maven/archiva/reporting/project/ProjectDependenciesConsumer.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/src/main/java/org/apache/maven/archiva/reporting/project/ProjectDependenciesConsumer.java deleted file mode 100644 index ff7d68ff0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-project-reports/src/main/java/org/apache/maven/archiva/reporting/project/ProjectDependenciesConsumer.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.apache.maven.archiva.reporting.project; - -/* - * 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.ArchivaArtifactConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.ArrayList; -import java.util.List; - -/** - * ProjectDependenciesConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.ArchivaArtifactConsumer" - * role-hint="missing-dependencies" - */ -public class ProjectDependenciesConsumer - extends AbstractMonitoredConsumer - implements ArchivaArtifactConsumer -{ - /** - * @plexus.configuration default-value="missing-dependencies" - */ - private String id; - - /** - * @plexus.configuration default-value="Check for missing dependencies." - */ - private String description; - - private List includes; - - public ProjectDependenciesConsumer() - { - this.includes = new ArrayList(); - this.includes.add( "pom" ); - } - - public String getId() - { - return id; - } - - public String getDescription() - { - return description; - } - - public boolean isPermanent() - { - return false; - } - - public void beginScan() - { - /* do nothing */ - } - - public void completeScan() - { - /* do nothing */ - } - - public List getIncludedTypes() - { - return includes; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - // TODO: consider loading this logic into the 'update-db-project' consumer. - - // TODO: Load the ArchivaProjectModel. - // TODO: Attach a monitor for missing parent poms to resolvers / filters. - // TODO: Attach a monitor for missing dependencies to resolvers / filters. - // TODO: Fully resolve the ArchivaProjectModel and listen on monitors. - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/pom.xml b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/pom.xml deleted file mode 100755 index cf94e84b8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - org.apache.archiva - archiva-reporting - 1.2-SNAPSHOT - - 4.0.0 - archiva-report-manager - Archiva Reporting :: Report Manager - - - org.apache.archiva - archiva-database - - - org.apache.archiva - archiva-repository-layer - - - org.codehaus.plexus - plexus-utils - - - commons-lang - commons-lang - - - commons-io - commons-io - - - org.codehaus.plexus - plexus-spring - test - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ArchivaReportException.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ArchivaReportException.java deleted file mode 100644 index 3eca9bf21..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ArchivaReportException.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.apache.maven.archiva.reporting; - -/* - * 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. - */ - -/** - * ArchivaReportException - * - * @author Maria Odea Ching - * @version $Id: ArchivaReportException.java - */ -public class ArchivaReportException - extends Exception -{ - public ArchivaReportException( String message, Throwable cause ) - { - super( message, cause ); - } - - public ArchivaReportException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DataLimits.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DataLimits.java deleted file mode 100644 index 3e2680a40..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DataLimits.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.apache.maven.archiva.reporting; - -/* - * 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. - */ - -/** - * Limits on how much data should be returned by the report sources. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DataLimits -{ - private int currentPage = 0; - - private int perPageCount = 25; - - private int countOfPages = 1; - - private int totalCount = 0; - - public int getCountOfPages() - { - return countOfPages; - } - - public void setCountOfPages( int countOfPages ) - { - this.countOfPages = countOfPages; - } - - public int getCurrentPage() - { - return currentPage; - } - - public void setCurrentPage( int currentPage ) - { - this.currentPage = currentPage; - } - - public int getPerPageCount() - { - return perPageCount; - } - - public void setPerPageCount( int perPageCount ) - { - this.perPageCount = perPageCount; - } - - public int getTotalCount() - { - return totalCount; - } - - public void setTotalCount( int totalCount ) - { - this.totalCount = totalCount; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DefaultReportingManager.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DefaultReportingManager.java deleted file mode 100644 index 6cea0ab65..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DefaultReportingManager.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.apache.maven.archiva.reporting; - -/* - * 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.Map; - -/** - * DefaultReportingManager - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.reporting.ReportingManager" - * role-hint="default" - */ -public class DefaultReportingManager - implements ReportingManager -{ - /** - * @plexus.requirement role="org.apache.maven.archiva.reporting.DynamicReportSource" - */ - private Map reportSourceMap; - - public DynamicReportSource getReport( String id ) - { - return (DynamicReportSource) reportSourceMap.get( id ); - } - - public Map getAvailableReports() - { - return reportSourceMap; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DynamicReportSource.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DynamicReportSource.java deleted file mode 100644 index 1b1ad7b44..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/DynamicReportSource.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.apache.maven.archiva.reporting; - -/* - * 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.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ObjectNotFoundException; - -import java.util.List; - -/** - * DynamicReportSource - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface DynamicReportSource -{ - /** - * The human readable name of this report. - * - * @return the name of the report. - */ - public String getName(); - - /** - * Get the entire list of values for this report. - * - * @return the complete List of objects for this report. - * @throws ArchivaDatabaseException if there was a fundamental issue with accessing the database. - * @throws ObjectNotFoundException if no records were found. - */ - public List getData() throws ObjectNotFoundException, ArchivaDatabaseException; - - /** - * Get the entire list of values for this report. - * - * @param limits the limits on the data to fetch. (NOTE: This object is - * updated by the underlying implementation of this interface with - * the current values appropriate for the limits object). - * @return the complete List of objects for this report. - * @throws ArchivaDatabaseException if there was a fundamental issue with accessing the database. - * @throws ObjectNotFoundException if no records were found. - */ - public List getData( DataLimits limits ) throws ObjectNotFoundException, ArchivaDatabaseException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ReportingException.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ReportingException.java deleted file mode 100644 index db98c5590..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ReportingException.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.apache.maven.archiva.reporting; - -/* - * 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. - */ - -/** - * ReportingException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ReportingException - extends Exception -{ - - public ReportingException() - { - } - - public ReportingException( String message ) - { - super( message ); - } - - public ReportingException( Throwable cause ) - { - super( cause ); - } - - public ReportingException( String message, Throwable cause ) - { - super( message, cause ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ReportingManager.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ReportingManager.java deleted file mode 100644 index f1fc03f5d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/ReportingManager.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.apache.maven.archiva.reporting; - -/* - * 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.Map; - -/** - * ReportingManager - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface ReportingManager -{ - public DynamicReportSource getReport( String id ); - - public Map /**/getAvailableReports(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryProblemMonitor.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryProblemMonitor.java deleted file mode 100644 index 801ee7970..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryProblemMonitor.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.apache.maven.archiva.reporting; - -/* - * 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.model.RepositoryProblem; - -/** - * RepositoryProblemMonitor - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface RepositoryProblemMonitor -{ - public void reportProblem( RepositoryProblem problem ); -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryStatistics.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryStatistics.java deleted file mode 100644 index 44d6d4a71..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryStatistics.java +++ /dev/null @@ -1,234 +0,0 @@ -package org.apache.maven.archiva.reporting; - -import java.util.Date; - -/* - * 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. - */ - -/** - * RepositoryStatistics - * - * @author Maria Odea Ching - */ -public class RepositoryStatistics -{ - private String repositoryId; - - private long fileCount = 0; - - private long totalSize = 0; - - private long projectCount = 0; - - private long groupCount = 0; - - private long artifactCount = 0; - - private long pluginCount = 0; - - private long archetypeCount = 0; - - private long jarCount = 0; - - private long warCount = 0; - - private long earCount = 0; - - private long dllCount = 0; - - private long exeCount = 0; - - private long pomCount = 0; - - private long deploymentCount = 0; - - private long downloadCount = 0; - - private Date dateOfScan; - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public long getFileCount() - { - return fileCount; - } - - public void setFileCount( long fileCount ) - { - this.fileCount = fileCount; - } - - public long getTotalSize() - { - return totalSize; - } - - public void setTotalSize( long totalSize ) - { - this.totalSize = totalSize; - } - - public long getProjectCount() - { - return projectCount; - } - - public void setProjectCount( long projectCount ) - { - this.projectCount = projectCount; - } - - public long getGroupCount() - { - return groupCount; - } - - public void setGroupCount( long groupCount ) - { - this.groupCount = groupCount; - } - - public long getArtifactCount() - { - return artifactCount; - } - - public void setArtifactCount( long artifactCount ) - { - this.artifactCount = artifactCount; - } - - public long getPluginCount() - { - return pluginCount; - } - - public void setPluginCount( long pluginCount ) - { - this.pluginCount = pluginCount; - } - - public long getArchetypeCount() - { - return archetypeCount; - } - - public void setArchetypeCount( long archetypeCount ) - { - this.archetypeCount = archetypeCount; - } - - public long getJarCount() - { - return jarCount; - } - - public void setJarCount( long jarCount ) - { - this.jarCount = jarCount; - } - - public long getWarCount() - { - return warCount; - } - - public void setWarCount( long warCount ) - { - this.warCount = warCount; - } - - public long getEarCount() - { - return earCount; - } - - public void setEarCount( long earCount ) - { - this.earCount = earCount; - } - - public long getDllCount() - { - return dllCount; - } - - public void setDllCount( long dllCount ) - { - this.dllCount = dllCount; - } - - public long getExeCount() - { - return exeCount; - } - - public void setExeCount( long exeCount ) - { - this.exeCount = exeCount; - } - - public long getPomCount() - { - return pomCount; - } - - public void setPomCount( long pomCount ) - { - this.pomCount = pomCount; - } - - public long getDeploymentCount() - { - return deploymentCount; - } - - public void setDeploymentCount( long deploymentCount ) - { - this.deploymentCount = deploymentCount; - } - - public long getDownloadCount() - { - return downloadCount; - } - - public void setDownloadCount( long downloadCount ) - { - this.downloadCount = downloadCount; - } - - public Date getDateOfScan() - { - return dateOfScan; - } - - public void setDateOfScan( Date dateOfScan ) - { - this.dateOfScan = dateOfScan; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryStatisticsReportGenerator.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryStatisticsReportGenerator.java deleted file mode 100644 index 1b1e0aa78..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/RepositoryStatisticsReportGenerator.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.apache.maven.archiva.reporting; - -/* - * 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 java.util.List; - -import org.apache.maven.archiva.model.RepositoryContentStatistics; - -/** - * RepositoryStatisticsReportGenerator - * - * @author Maria Odea Ching - * @version $Id: RepositoryStatisticsReportGenerator.java - */ -public interface RepositoryStatisticsReportGenerator -{ - public static final String JAR_TYPE = "jar"; - - public static final String WAR_TYPE = "war"; - - public static final String POM_TYPE = "pom"; - - public static final String MAVEN_PLUGIN = "maven-plugin"; - - public static final String ARCHETYPE = "archetype"; - - public List generateReport( List repoContentStats, String repository, Date startDate, Date endDate, DataLimits limits ) - throws ArchivaReportException; - - public List generateReport( List repoContentStats, String repository, Date startDate, Date endDate ) - throws ArchivaReportException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/SimpleRepositoryStatisticsReportGenerator.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/SimpleRepositoryStatisticsReportGenerator.java deleted file mode 100644 index 8eb75864b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/main/java/org/apache/maven/archiva/reporting/SimpleRepositoryStatisticsReportGenerator.java +++ /dev/null @@ -1,147 +0,0 @@ -package org.apache.maven.archiva.reporting; - -/* - * 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.Date; -import java.util.List; - -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.constraints.ArtifactsByRepositoryConstraint; -import org.apache.maven.archiva.model.RepositoryContentStatistics; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * SimpleRepositoryStatisticsReportGenerator - * - * @author Maria Odea Ching - * @version $Id: SimpleRepositoryStatisticsReportGenerator.java - * - * @plexus.component role="org.apache.maven.archiva.reporting.RepositoryStatisticsReportGenerator" role-hint="simple" - */ -public class SimpleRepositoryStatisticsReportGenerator - implements RepositoryStatisticsReportGenerator -{ - private Logger log = LoggerFactory.getLogger( SimpleRepositoryStatisticsReportGenerator.class ); - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * {@inheritDoc} - * - * @see org.apache.maven.archiva.reporting.RepositoryStatisticsReportGenerator#generateReport(java.util.List - * repoContentStats, java.util.String repository, java.util.Date startDate, java.util.Date endDate, - * org.apache.maven.archiva.reporting.DataLimits limits ) - */ - public List generateReport( List repoContentStats, - String repository, Date startDate, Date endDate, DataLimits limits ) - throws ArchivaReportException - { - if( limits.getCurrentPage() > limits.getCountOfPages() ) - { - throw new ArchivaReportException( "The requested page exceeds the total number of pages." ); - } - - int start = ( limits.getPerPageCount() * limits.getCurrentPage() ) - limits.getPerPageCount(); - int end = ( start + limits.getPerPageCount() ) - 1; - - if( end > repoContentStats.size() ) - { - end = repoContentStats.size() - 1; - } - - return constructRepositoryStatistics( repoContentStats, repository, endDate, start, end ); - } - - /** - * {@inheritDoc} - * - * @see org.apache.maven.archiva.reporting.RepositoryStatisticsReportGenerator#generateReport(java.util.List - * repoContentStats, java.util.String repository, java.util.Date startDate, java.util.Date endDate) - */ - public List generateReport( List repoContentStats, String repository, Date startDate, Date endDate ) - throws ArchivaReportException - { - return constructRepositoryStatistics( repoContentStats, repository, endDate, 0, repoContentStats.size() - 1 ); - } - - private List constructRepositoryStatistics( - List repoContentStats, - String repository, Date endDate, - int start, int end ) - { - ArtifactDAO artifactDao = dao.getArtifactDAO(); - - List repoStatisticsList = new ArrayList(); - for( int i = start; i <= end; i++ ) - { - RepositoryContentStatistics repoContentStat = (RepositoryContentStatistics) repoContentStats.get( i ); - RepositoryStatistics repoStatistics = new RepositoryStatistics(); - repoStatistics.setRepositoryId( repository ); - - // get only the latest - repoStatistics.setArtifactCount( repoContentStat.getTotalArtifactCount() ); - repoStatistics.setGroupCount( repoContentStat.getTotalGroupCount() ); - repoStatistics.setProjectCount( repoContentStat.getTotalProjectCount() ); - repoStatistics.setTotalSize( repoContentStat.getTotalSize() ); - repoStatistics.setFileCount( repoContentStat.getTotalFileCount() ); - repoStatistics.setDateOfScan( repoContentStat.getWhenGathered() ); - - try - { - //TODO use the repo content stats whenGathered date instead of endDate for single repo reports - List types = artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( repository, JAR_TYPE, endDate, "whenGathered" ) ); - repoStatistics.setJarCount( types.size() ); - - types = artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( repository, WAR_TYPE, endDate, "whenGathered" ) ); - repoStatistics.setWarCount( types.size() ); - - types = artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( repository, MAVEN_PLUGIN, endDate, "whenGathered" ) ); - repoStatistics.setPluginCount( types.size() ); - - // TODO: must need to be able to track archetypes. possible way of identifying an - // archetype is by checking if archetype.xml exists in src/main/resources/META-INF/ - - } - catch( ArchivaDatabaseException e ) - { - log.error( "Error occurred while querying artifacts from the database.", e.getMessage() ); - } - - repoStatisticsList.add( repoStatistics ); - } - - return repoStatisticsList; - } - - public void setDao( ArchivaDAO dao ) - { - this.dao = dao; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/java/org/apache/maven/archiva/reporting/SimpleRepositoryStatisticsReportGeneratorTest.java b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/java/org/apache/maven/archiva/reporting/SimpleRepositoryStatisticsReportGeneratorTest.java deleted file mode 100644 index 49828e0dc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/java/org/apache/maven/archiva/reporting/SimpleRepositoryStatisticsReportGeneratorTest.java +++ /dev/null @@ -1,356 +0,0 @@ -package org.apache.maven.archiva.reporting; - -/* - * 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.Calendar; -import java.util.Date; -import java.util.List; - -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.constraints.ArtifactsByRepositoryConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.RepositoryContentStatistics; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; -import org.easymock.internal.AlwaysMatcher; - -/** - * SimpleRepositoryStatisticsReportGeneratorTest - * - * @author Maria Odea Ching - * @version $Id: SimpleRepositoryStatisticsReportGenerator.java - * - * @plexus.component role="org.apache.maven.archiva.reporting.RepositoryStatisticsReportGenerator" role-hint="simple" - */ -public class SimpleRepositoryStatisticsReportGeneratorTest - extends PlexusInSpringTestCase -{ - private MockControl daoControl; - - private ArchivaDAO dao; - - private MockControl artifactDaoControl; - - private ArtifactDAO artifactDao; - - private SimpleRepositoryStatisticsReportGenerator generator; - - private static final String REPO = "test-repo"; - - public void setUp() - throws Exception - { - super.setUp(); - - daoControl = MockControl.createControl( ArchivaDAO.class ); - dao = ( ArchivaDAO ) daoControl.getMock(); - - generator = new SimpleRepositoryStatisticsReportGenerator(); - generator.setDao( dao ); - - artifactDaoControl = MockControl.createControl( ArtifactDAO.class ); - artifactDaoControl.setDefaultMatcher( new AlwaysMatcher() ); - artifactDao = ( ArtifactDAO ) artifactDaoControl.getMock(); - } - - private Date toDate( int year, int month, int date, int hour, int min, int sec ) - { - Calendar cal = Calendar.getInstance(); - cal.clear(); - cal.set( year, month, date, hour, min, sec ); - - return cal.getTime(); - } - - private List createArtifacts( String type ) - { - List artifacts = new ArrayList(); - artifacts.add( createArtifact( REPO, "org.apache.archiva", "repository-statistics-" + type, "1.0", type ) ); - artifacts.add( createArtifact( REPO, "org.apache.archiva", "repository-statistics-" + type, "1.1", type ) ); - artifacts.add( createArtifact( REPO, "org.apache.archiva", "repository-statistics-" + type, "1.2", type ) ); - artifacts.add( createArtifact( REPO, "org.apache.archiva", "repository-statistics-" + type, "2.0", type ) ); - artifacts.add( createArtifact( REPO, "org.apache.archiva", "repository-statistics-" + type, "3.0", type ) ); - - return artifacts; - } - - private ArchivaArtifact createArtifact( String repoId, String groupId, String artifactId, String version, String type ) - { - ArchivaArtifact artifact = new ArchivaArtifact( groupId, artifactId, version, null, type ); - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setRepositoryId( repoId ); - - return artifact; - } - - private RepositoryContentStatistics createRepositoryContentStatistics( Date startDate, String repositoryId ) - { - RepositoryContentStatistics repoContentStats = new RepositoryContentStatistics(); - repoContentStats.setRepositoryId( repositoryId ); - repoContentStats.setDuration( 10000 ); - repoContentStats.setNewFileCount( 100 ); - repoContentStats.setTotalArtifactCount( 200 ); - repoContentStats.setTotalFileCount( 250 ); - repoContentStats.setTotalGroupCount( 100 ); - repoContentStats.setTotalProjectCount( 180 ); - repoContentStats.setTotalSize( 200000 ); - repoContentStats.setWhenGathered( startDate ); - - return repoContentStats; - } - - private List createStatisticsHistoryForSingleRepositoryTest( String repoId ) - { - List repoContentStatsList = new ArrayList(); - - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 11, 1, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 10, 16, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 10, 1, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 9, 16, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 9, 1, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 8, 16, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 8, 1, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 7, 16, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 7, 1, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 6, 16, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 6, 1, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 5, 16, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 5, 1, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 4, 16, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 4, 1, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 3, 16, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 3, 1, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 2, 16, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 2, 1, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 1, 16, 0, 0, 0 ), repoId ) ); - repoContentStatsList.add( createRepositoryContentStatistics( toDate( 2008, 1, 1, 0, 0, 0 ), repoId ) ); - - return repoContentStatsList; - } - - public void testSimpleReportWithPagination() - throws Exception - { - Date startDate = toDate( 2008, 1, 1, 0, 0, 0 ); - Date endDate = toDate( 2008, 11, 30, 0, 0, 0 ); - - DataLimits limits = new DataLimits(); - limits.setPerPageCount( 5 ); - limits.setCurrentPage( 1 ); - limits.setCountOfPages( 5 ); - limits.setTotalCount( 21 ); - - List jarArtifacts = createArtifacts( RepositoryStatisticsReportGenerator.JAR_TYPE ); - List warArtifacts = createArtifacts( RepositoryStatisticsReportGenerator.WAR_TYPE ); - List mavenPlugins = createArtifacts( RepositoryStatisticsReportGenerator.MAVEN_PLUGIN ); - - List repoContentStats = createStatisticsHistoryForSingleRepositoryTest( REPO ); - - // get first page - daoControl.expectAndReturn( dao.getArtifactDAO(), artifactDao ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.JAR_TYPE, endDate, "whenGathered") ), jarArtifacts, 5 ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.WAR_TYPE, endDate, "whenGathered") ), warArtifacts, 5 ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.MAVEN_PLUGIN, endDate, "whenGathered") ), mavenPlugins, 5 ); - - daoControl.replay(); - artifactDaoControl.replay(); - - List data = generator.generateReport( repoContentStats, REPO, startDate, endDate, limits ); - - daoControl.verify(); - artifactDaoControl.verify(); - - assertEquals( 5, data.size() ); - - RepositoryStatistics stats = (RepositoryStatistics) data.get( 0 ); - assertEquals( REPO, stats.getRepositoryId() ); - assertEquals( 200, stats.getArtifactCount() ); - assertEquals( 5, stats.getJarCount() ); - assertEquals( 5, stats.getWarCount() ); - assertEquals( 5, stats.getPluginCount() ); - assertEquals( toDate( 2008, 11, 1, 0, 0, 0 ).getTime(), stats.getDateOfScan().getTime() ); - assertEquals( toDate( 2008, 9, 1, 0, 0, 0 ).getTime(), ( (RepositoryStatistics) data.get( 4 ) ).getDateOfScan().getTime() ); - - // get last page - limits.setCurrentPage( 5 ); - - daoControl.reset(); - artifactDaoControl.reset(); - - artifactDaoControl.setDefaultMatcher( new AlwaysMatcher() ); - - daoControl.expectAndReturn( dao.getArtifactDAO(), artifactDao ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.JAR_TYPE, endDate, "whenGathered") ), jarArtifacts ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.WAR_TYPE, endDate, "whenGathered") ), warArtifacts ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.MAVEN_PLUGIN, endDate, "whenGathered") ), mavenPlugins ); - - daoControl.replay(); - artifactDaoControl.replay(); - - data = generator.generateReport( repoContentStats, REPO, startDate, endDate, limits ); - - daoControl.verify(); - artifactDaoControl.verify(); - - assertEquals( 1, data.size() ); - - stats = (RepositoryStatistics) data.get( 0 ); - assertEquals( REPO, stats.getRepositoryId() ); - assertEquals( 200, stats.getArtifactCount() ); - assertEquals( 5, stats.getJarCount() ); - assertEquals( 5, stats.getWarCount() ); - assertEquals( 5, stats.getPluginCount() ); - assertEquals( toDate( 2008, 1, 1, 0, 0, 0 ).getTime(), stats.getDateOfScan().getTime() ); - } - - public void testSimpleReportWithoutPagination() - throws Exception - { - Date startDate = toDate( 2008, 1, 1, 0, 0, 0 ); - Date endDate = toDate( 2008, 11, 30, 0, 0, 0 ); - - List jarArtifacts = createArtifacts( RepositoryStatisticsReportGenerator.JAR_TYPE ); - List warArtifacts = createArtifacts( RepositoryStatisticsReportGenerator.WAR_TYPE ); - List mavenPlugins = createArtifacts( RepositoryStatisticsReportGenerator.MAVEN_PLUGIN ); - - List repoContentStats = createStatisticsHistoryForSingleRepositoryTest( REPO ); - - // get first page - daoControl.expectAndReturn( dao.getArtifactDAO(), artifactDao ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.JAR_TYPE, endDate, "whenGathered") ), jarArtifacts, 21 ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.WAR_TYPE, endDate, "whenGathered") ), warArtifacts, 21 ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.MAVEN_PLUGIN, endDate, "whenGathered") ), mavenPlugins, 21 ); - - daoControl.replay(); - artifactDaoControl.replay(); - - List data = generator.generateReport( repoContentStats, REPO, startDate, endDate ); - - daoControl.verify(); - artifactDaoControl.verify(); - - assertEquals( 21, data.size() ); - - RepositoryStatistics stats = (RepositoryStatistics) data.get( 0 ); - assertEquals( REPO, stats.getRepositoryId() ); - assertEquals( 200, stats.getArtifactCount() ); - assertEquals( 5, stats.getJarCount() ); - assertEquals( 5, stats.getWarCount() ); - assertEquals( 5, stats.getPluginCount() ); - assertEquals( toDate( 2008, 11, 1, 0, 0, 0 ).getTime(), stats.getDateOfScan().getTime() ); - assertEquals( toDate( 2008, 1, 1, 0, 0, 0 ).getTime(), ( (RepositoryStatistics) data.get( 20 ) ).getDateOfScan().getTime() ); - } - - public void testSimpleReportNoArtifactCountStatisticsAvailable() - throws Exception - { - Date startDate = toDate( 2008, 1, 1, 0, 0, 0 ); - Date endDate = toDate( 2008, 11, 30, 0, 0, 0 ); - - DataLimits limits = new DataLimits(); - limits.setPerPageCount( 5 ); - limits.setCurrentPage( 1 ); - limits.setCountOfPages( 5 ); - limits.setTotalCount( 21 ); - - List jarArtifacts = new ArrayList(); - List warArtifacts = new ArrayList(); - List mavenPlugins = new ArrayList(); - - List repoContentStats = createStatisticsHistoryForSingleRepositoryTest( REPO ); - - daoControl.expectAndReturn( dao.getArtifactDAO(), artifactDao ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.JAR_TYPE, endDate, "whenGathered") ), jarArtifacts, 5 ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.WAR_TYPE, endDate, "whenGathered") ), warArtifacts, 5 ); - - artifactDaoControl.expectAndReturn( artifactDao.queryArtifacts( - new ArtifactsByRepositoryConstraint( REPO, RepositoryStatisticsReportGenerator.MAVEN_PLUGIN, endDate, "whenGathered") ), mavenPlugins, 5 ); - - daoControl.replay(); - artifactDaoControl.replay(); - - List data = generator.generateReport( repoContentStats, REPO, startDate, endDate, limits ); - - daoControl.verify(); - artifactDaoControl.verify(); - - assertEquals( 5, data.size() ); - - RepositoryStatistics stats = (RepositoryStatistics) data.get( 0 ); - assertEquals( REPO, stats.getRepositoryId() ); - assertEquals( 200, stats.getArtifactCount() ); - assertEquals( 0, stats.getJarCount() ); - assertEquals( 0, stats.getWarCount() ); - assertEquals( 0, stats.getPluginCount() ); - assertEquals( toDate( 2008, 11, 1, 0, 0, 0 ).getTime(), stats.getDateOfScan().getTime() ); - assertEquals( toDate( 2008, 9, 1, 0, 0, 0 ).getTime(), ( (RepositoryStatistics) data.get( 4 ) ).getDateOfScan().getTime() ); - // no results found when ArtifactDAO was queried - } - - public void testSimpleReportWithPaginationInvalidRequestedPage() - throws Exception - { - Date startDate = toDate( 2008, 1, 1, 0, 0, 0 ); - Date endDate = toDate( 2008, 11, 30, 0, 0, 0 ); - - DataLimits limits = new DataLimits(); - limits.setPerPageCount( 5 ); - limits.setCurrentPage( 10 ); - limits.setCountOfPages( 5 ); - limits.setTotalCount( 21 ); - - List repoContentStats = createStatisticsHistoryForSingleRepositoryTest( REPO ); - - try - { - List data = generator.generateReport( repoContentStats, REPO, startDate, endDate, limits ); - fail( "An ArchivaReportException should have been thrown." ); - } - catch ( ArchivaReportException a ) - { - - } - // requested page exceeds total number of pages - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/META-INF/plexus/components.xml b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/META-INF/plexus/components.xml deleted file mode 100644 index 6e2700539..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/META-INF/plexus/components.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - org.codehaus.plexus.jdo.JdoFactory - archiva - org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory - - - diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/log4j.properties b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/log4j.properties deleted file mode 100644 index 9b2c26ade..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/log4j.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Set root logger level to DEBUG and its only appender to A1. -log4j.rootLogger=WARN, A1 - -# A1 is set to be a ConsoleAppender. -log4j.appender.A1=org.apache.log4j.ConsoleAppender - -# A1 uses PatternLayout. -log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n - diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/DuplicateArtifactFileReportProcessorTest.xml b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/DuplicateArtifactFileReportProcessorTest.xml deleted file mode 100644 index 5ae012392..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/DuplicateArtifactFileReportProcessorTest.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - org.apache.maven.archiva.reporting.processor.ArtifactReportProcessor - duplicate - org.apache.maven.archiva.reporting.processor.DuplicateArtifactFileReportProcessor - - - org.codehaus.plexus.digest.Digester - md5 - digester - - - org.apache.maven.archiva.indexer.RepositoryArtifactIndexFactory - indexFactory - - - org.apache.maven.archiva.reporting.database.ArtifactResultsDatabase - database - - - - ${basedir}/target/indexDirectory - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/OldArtifactReportProcessorTest.xml b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/OldArtifactReportProcessorTest.xml deleted file mode 100644 index 016361e9b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/OldArtifactReportProcessorTest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - org.apache.maven.archiva.reporting.processor.ArtifactReportProcessor - old-artifact - org.apache.maven.archiva.reporting.processor.OldArtifactReportProcessor - - - org.apache.maven.archiva.reporting.database.ArtifactResultsDatabase - database - - - - 10 - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/OldSnapshotArtifactReportProcessorTest.xml b/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/OldSnapshotArtifactReportProcessorTest.xml deleted file mode 100644 index 779aa8c24..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/archiva-report-manager/src/test/resources/org/apache/maven/archiva/reporting/processor/OldSnapshotArtifactReportProcessorTest.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - org.apache.maven.archiva.reporting.processor.ArtifactReportProcessor - old-snapshot-artifact - org.apache.maven.archiva.reporting.processor.OldSnapshotArtifactReportProcessor - - - org.apache.maven.archiva.reporting.database.ArtifactResultsDatabase - database - - - - 3600 - 2 - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-reporting/pom.xml b/archiva-security-fix/archiva-modules/archiva-reporting/pom.xml deleted file mode 100644 index bb2193438..000000000 --- a/archiva-security-fix/archiva-modules/archiva-reporting/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-modules - 1.2-SNAPSHOT - ../pom.xml - - - archiva-reporting - Archiva Reporting - pom - - - archiva-report-manager - - archiva-artifact-reports - archiva-metadata-reports - archiva-project-reports - - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/pom.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/pom.xml deleted file mode 100644 index f3c289882..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/pom.xml +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - org.apache.archiva - archiva-modules - 1.2-SNAPSHOT - - 4.0.0 - archiva-scheduled - Archiva Base :: Scheduled Tasks - - - org.apache.archiva - archiva-configuration - - - org.apache.archiva - archiva-database - - - org.apache.archiva - archiva-repository-layer - - - org.codehaus.plexus - plexus-taskqueue - - - org.codehaus.plexus - plexus-quartz - - - org.codehaus.plexus - plexus-spring - test - - - org.codehaus.plexus - plexus-component-api - - - commons-lang - commons-lang - - - org.codehaus.plexus.registry - plexus-registry-api - - - - org.apache.archiva - archiva-database-consumers - test - - - hsqldb - hsqldb - test - - - org.codehaus.plexus.registry - plexus-registry-commons - test - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - merge - - merge-descriptors - - - - ${basedir}/src/main/resources/META-INF/plexus/components.xml - ${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/ArchivaTaskScheduler.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/ArchivaTaskScheduler.java deleted file mode 100644 index 70478a591..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/ArchivaTaskScheduler.java +++ /dev/null @@ -1,60 +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.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. - * - * @author Brett Porter - */ -public interface ArchivaTaskScheduler -{ - /** - * The Plexus component role. - */ - public final static String ROLE = ArchivaTaskScheduler.class.getName(); - - public boolean isProcessingAnyRepositoryTask() - throws ArchivaException; - - public boolean isProcessingDatabaseTask() - throws ArchivaException; - - public boolean isProcessingRepositoryTask( String repositoryId ) - throws ArchivaException; - - public void queueDatabaseTask( DatabaseTask task ) - throws TaskQueueException; - - public void queueRepositoryTask( RepositoryTask task ) - throws TaskQueueException; - - public void scheduleDatabaseTasks() - throws TaskExecutionException; - - public void startup() - throws ArchivaException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DatabaseTaskJob.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DatabaseTaskJob.java deleted file mode 100644 index ede35a8f6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DatabaseTaskJob.java +++ /dev/null @@ -1,85 +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.scheduled.tasks.ArchivaTask; -import org.apache.maven.archiva.scheduled.tasks.DatabaseTask; -import org.codehaus.plexus.scheduler.AbstractJob; -import org.codehaus.plexus.taskqueue.TaskQueue; -import org.codehaus.plexus.taskqueue.TaskQueueException; -import org.quartz.JobDataMap; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; - -/** - * This class is the database job that is executed by the scheduler. - */ -public class DatabaseTaskJob - extends AbstractJob -{ - static final String TASK_KEY = "EXECUTION"; - - static final String TASK_QUEUE = "TASK_QUEUE"; - - static final String TASK_QUEUE_POLICY = "TASK_QUEUE_POLICY"; - - /** - * Execute the discoverer and the indexer. - * - * @param context - * @throws org.quartz.JobExecutionException - * - */ - public void execute( JobExecutionContext context ) - throws JobExecutionException - { - JobDataMap dataMap = context.getJobDetail().getJobDataMap(); - setJobDataMap( dataMap ); - - TaskQueue taskQueue = (TaskQueue) dataMap.get( TASK_QUEUE ); - String queuePolicy = (String) dataMap.get( TASK_QUEUE_POLICY ); - - ArchivaTask task = new DatabaseTask(); - task.setName( context.getJobDetail().getName() ); - - try - { - if ( taskQueue.getQueueSnapshot().size() == 0 ) - { - taskQueue.put( task ); - } - else - { - if ( ArchivaTask.QUEUE_POLICY_WAIT.equals( queuePolicy ) ) - { - taskQueue.put( task ); - } - else if ( ArchivaTask.QUEUE_POLICY_SKIP.equals( queuePolicy ) ) - { - // do not queue anymore, policy is to skip - } - } - } - catch ( TaskQueueException e ) - { - throw new JobExecutionException( e ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java deleted file mode 100644 index 6af0ce2dc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/DefaultArchivaTaskScheduler.java +++ /dev/null @@ -1,428 +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.commons.collections.CollectionUtils; -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.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.ArchivaTask; -import org.apache.maven.archiva.scheduled.tasks.DatabaseTask; -import org.apache.maven.archiva.scheduled.tasks.RepositoryTask; -import org.apache.maven.archiva.scheduled.tasks.RepositoryTaskSelectionPredicate; -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; - -import java.text.ParseException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -/** - * Default implementation of a scheduling component for archiva. - * - * @author Brett Porter - * @author Jesse McConnell - * @plexus.component role="org.apache.maven.archiva.scheduled.ArchivaTaskScheduler" role-hint="default" - */ -public class DefaultArchivaTaskScheduler - implements ArchivaTaskScheduler, Startable, ConfigurationListener -{ - private Logger log = LoggerFactory.getLogger( DefaultArchivaTaskScheduler.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 - */ - private ArchivaConfiguration archivaConfiguration; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - public static final String DATABASE_SCAN_GROUP = "database-group"; - - public static final String DATABASE_JOB = "database-job"; - - public static final String DATABASE_JOB_TRIGGER = "database-job-trigger"; - - public static final String REPOSITORY_SCAN_GROUP = "repository-group"; - - public static final String REPOSITORY_JOB = "repository-job"; - - public static final String REPOSITORY_JOB_TRIGGER = "repository-job-trigger"; - - public static final String CRON_HOURLY = "0 0 * * * ?"; - - private Set jobs = new HashSet(); - - private List queuedRepos = new ArrayList(); - - 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 - { - List repositories = archivaConfiguration.getConfiguration() - .getManagedRepositories(); - - for ( ManagedRepositoryConfiguration repoConfig : repositories ) - { - if ( repoConfig.isScanned() ) - { - scheduleRepositoryJobs( repoConfig ); - - if( !isPreviouslyScanned( repoConfig ) ) - { - queueInitialRepoScan( repoConfig ); - } - } - } - - scheduleDatabaseJobs(); - } - catch ( SchedulerException e ) - { - throw new StartingException( "Unable to start scheduler: " + e.getMessage(), e ); - } - } - - private boolean isPreviouslyScanned( ManagedRepositoryConfiguration repoConfig ) - { - List results = - dao.query( new MostRecentRepositoryScanStatistics( repoConfig.getId() ) ); - - if ( results != null && !results.isEmpty() ) - { - return true; - } - - return false; - } - - // MRM-848: Pre-configured repository initially appear to be empty - private synchronized void queueInitialRepoScan( ManagedRepositoryConfiguration repoConfig ) - { - String repoId = repoConfig.getId(); - - RepositoryTask task = new RepositoryTask(); - task.setRepositoryId( repoId ); - task.setName( REPOSITORY_JOB + ":" + repoId + ":initial-scan" ); - task.setQueuePolicy( ArchivaTask.QUEUE_POLICY_WAIT ); - - boolean scheduleTask = false; - - if ( queuedRepos.contains( repoId ) ) - { - log.error( "Repository [" + repoId + "] is currently being processed or is already queued." ); - } - else - { - scheduleTask = true; - } - - if ( scheduleTask ) - { - try - { - queuedRepos.add( repoConfig.getId() ); - this.queueRepositoryTask( task ); - } - catch ( TaskQueueException e ) - { - log.error( "Error occurred while queueing repository [" + repoId + "] task : " + e.getMessage() ); - } - } - } - - private synchronized void scheduleRepositoryJobs( ManagedRepositoryConfiguration repoConfig ) - throws SchedulerException - { - if ( repoConfig.getRefreshCronExpression() == null ) - { - log.warn( "Skipping job, no cron expression for " + repoConfig.getId() ); - return; - } - - // get the cron string for these database scanning jobs - String cronString = repoConfig.getRefreshCronExpression(); - - CronExpressionValidator cronValidator = new CronExpressionValidator(); - if ( !cronValidator.validate( cronString ) ) - { - log.warn( "Cron expression [" + cronString + "] for repository [" + repoConfig.getId() + - "] is invalid. Defaulting to hourly." ); - cronString = CRON_HOURLY; - } - - // setup the unprocessed artifact job - JobDetail repositoryJob = - new JobDetail( REPOSITORY_JOB + ":" + repoConfig.getId(), REPOSITORY_SCAN_GROUP, RepositoryTaskJob.class ); - - JobDataMap dataMap = new JobDataMap(); - dataMap.put( RepositoryTaskJob.TASK_QUEUE, repositoryScanningQueue ); - dataMap.put( RepositoryTaskJob.TASK_QUEUE_POLICY, ArchivaTask.QUEUE_POLICY_WAIT ); - dataMap.put( RepositoryTaskJob.TASK_REPOSITORY, repoConfig.getId() ); - repositoryJob.setJobDataMap( dataMap ); - - try - { - CronTrigger trigger = - new CronTrigger( REPOSITORY_JOB_TRIGGER + ":" + repoConfig.getId(), REPOSITORY_SCAN_GROUP, cronString ); - - jobs.add( REPOSITORY_JOB + ":" + repoConfig.getId() ); - scheduler.scheduleJob( repositoryJob, trigger ); - } - catch ( ParseException e ) - { - log.error( - "ParseException in repository scanning cron expression, disabling repository scanning for '" + - repoConfig.getId() + "': " + e.getMessage() ); - } - - } - - 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( DatabaseTaskJob.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() ); - } - - } - - public void stop() - throws StoppingException - { - try - { - scheduler.unscheduleJob( DATABASE_JOB, DATABASE_SCAN_GROUP ); - - for ( String job : jobs ) - { - scheduler.unscheduleJob( job, REPOSITORY_SCAN_GROUP ); - } - jobs.clear(); - queuedRepos.clear(); - } - 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 ); - - } - } - - public boolean isProcessingAnyRepositoryTask() - throws ArchivaException - { - List queue = null; - - try - { - queue = repositoryScanningQueue.getQueueSnapshot(); - } - catch ( TaskQueueException e ) - { - throw new ArchivaException( "Unable to get repository scanning queue:" + e.getMessage(), e ); - } - - return !queue.isEmpty(); - } - - public boolean isProcessingRepositoryTask( String repositoryId ) - throws ArchivaException - { - List queue = null; - - try - { - queue = repositoryScanningQueue.getQueueSnapshot(); - } - catch ( TaskQueueException e ) - { - throw new ArchivaException( "Unable to get repository scanning queue:" + e.getMessage(), e ); - } - - return CollectionUtils.exists( queue, new RepositoryTaskSelectionPredicate( repositoryId ) ); - } - - public boolean isProcessingDatabaseTask() - throws ArchivaException - { - List queue = null; - - try - { - queue = databaseUpdateQueue.getQueueSnapshot(); - } - catch ( TaskQueueException e ) - { - throw new ArchivaException( "Unable to get database update queue:" + e.getMessage(), e ); - } - - return !queue.isEmpty(); - } - - public void queueRepositoryTask( RepositoryTask task ) - throws TaskQueueException - { - repositoryScanningQueue.put( task ); - } - - public void queueDatabaseTask( 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." ); - } - - for ( String job : jobs ) - { - try - { - scheduler.unscheduleJob( job, REPOSITORY_SCAN_GROUP ); - } - catch ( SchedulerException e ) - { - log.error( "Error restarting the repository scanning job after property change." ); - } - } - jobs.clear(); - - List repositories = archivaConfiguration.getConfiguration().getManagedRepositories(); - - for ( ManagedRepositoryConfiguration repoConfig : repositories ) - { - if ( repoConfig.getRefreshCronExpression() != null ) - { - try - { - scheduleRepositoryJobs( repoConfig ); - } - catch ( SchedulerException e ) - { - log.error( "error restarting job: " + REPOSITORY_JOB + ":" + repoConfig.getId() ); - } - } - } - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java deleted file mode 100644 index e71d084fa..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/RepositoryTaskJob.java +++ /dev/null @@ -1,88 +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.scheduled.tasks.ArchivaTask; -import org.apache.maven.archiva.scheduled.tasks.RepositoryTask; -import org.codehaus.plexus.scheduler.AbstractJob; -import org.codehaus.plexus.taskqueue.TaskQueue; -import org.codehaus.plexus.taskqueue.TaskQueueException; -import org.quartz.JobDataMap; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; - -/** - * This class is the repository job that is executed by the scheduler. - */ -public class RepositoryTaskJob - extends AbstractJob -{ - static final String TASK_KEY = "EXECUTION"; - - static final String TASK_QUEUE = "TASK_QUEUE"; - - static final String TASK_QUEUE_POLICY = "TASK_QUEUE_POLICY"; - - static final String TASK_REPOSITORY = "TASK_REPOSITORY"; - - /** - * Execute the discoverer and the indexer. - * - * @param context - * @throws org.quartz.JobExecutionException - * - */ - public void execute( JobExecutionContext context ) - throws JobExecutionException - { - JobDataMap dataMap = context.getJobDetail().getJobDataMap(); - setJobDataMap( dataMap ); - - TaskQueue taskQueue = (TaskQueue) dataMap.get( TASK_QUEUE ); - String queuePolicy = dataMap.get( TASK_QUEUE_POLICY ).toString(); - - RepositoryTask task = new RepositoryTask(); - task.setName( context.getJobDetail().getName() ); - task.setRepositoryId( (String) dataMap.get( TASK_REPOSITORY ) ); - - try - { - if ( taskQueue.getQueueSnapshot().size() == 0 ) - { - taskQueue.put( task ); - } - else - { - if ( ArchivaTask.QUEUE_POLICY_WAIT.equals( queuePolicy ) ) - { - taskQueue.put( task ); - } - else if ( ArchivaTask.QUEUE_POLICY_SKIP.equals( queuePolicy ) ) - { - // do not queue anymore, policy is to skip - } - } - } - catch ( TaskQueueException e ) - { - throw new JobExecutionException( e ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutor.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutor.java deleted file mode 100644 index 2c764ce12..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutor.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.apache.maven.archiva.scheduled.executors; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.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; -import org.codehaus.plexus.taskqueue.execution.TaskExecutionException; -import org.codehaus.plexus.taskqueue.execution.TaskExecutor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ArchivaDatabaseTaskExecutor - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component - * role="org.codehaus.plexus.taskqueue.execution.TaskExecutor" - * role-hint="database-update" - */ -public class ArchivaDatabaseUpdateTaskExecutor - implements TaskExecutor, Initializable -{ - private Logger log = LoggerFactory.getLogger( ArchivaDatabaseUpdateTaskExecutor.class ); - - /** - * @plexus.requirement role-hint="jdo" - */ - private DatabaseUpdater databaseUpdater; - - public void initialize() - throws InitializationException - { - log.info( "Initialized " + this.getClass().getName() ); - } - - public void executeTask( Task task ) - throws TaskExecutionException - { - DatabaseTask dbtask = (DatabaseTask) task; - - log.info( "Executing task from queue with job name: " + dbtask.getName() ); - long time = System.currentTimeMillis(); - - try - { - log.info( "Task: Updating unprocessed artifacts" ); - databaseUpdater.updateAllUnprocessed(); - } - catch ( ArchivaDatabaseException e ) - { - 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-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutor.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutor.java deleted file mode 100644 index b07388b04..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutor.java +++ /dev/null @@ -1,178 +0,0 @@ -package org.apache.maven.archiva.scheduled.executors; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.constraints.ArtifactsByRepositoryConstraint; -import org.apache.maven.archiva.database.constraints.MostRecentRepositoryScanStatistics; -import org.apache.maven.archiva.database.constraints.UniqueArtifactIdConstraint; -import org.apache.maven.archiva.database.constraints.UniqueGroupIdConstraint; -import org.apache.maven.archiva.model.RepositoryContentStatistics; -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.archiva.scheduled.tasks.RepositoryTask; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; -import org.codehaus.plexus.taskqueue.Task; -import org.codehaus.plexus.taskqueue.execution.TaskExecutionException; -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 - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component - * role="org.codehaus.plexus.taskqueue.execution.TaskExecutor" - * role-hint="repository-scanning" - */ -public class ArchivaRepositoryScanningTaskExecutor - implements TaskExecutor, Initializable -{ - private Logger log = LoggerFactory.getLogger( ArchivaRepositoryScanningTaskExecutor.class ); - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - /** - * The repository scanner component. - * - * @plexus.requirement - */ - private RepositoryScanner repoScanner; - - public void initialize() - throws InitializationException - { - log.info( "Initialized " + this.getClass().getName() ); - } - - public void executeTask( Task task ) - throws TaskExecutionException - { - RepositoryTask repoTask = (RepositoryTask) task; - - if ( StringUtils.isBlank( repoTask.getRepositoryId() ) ) - { - throw new TaskExecutionException("Unable to execute RepositoryTask with blank repository Id."); - } - - log.info( "Executing task from queue with job name: " + repoTask.getName() ); - - try - { - ManagedRepositoryConfiguration arepo = archivaConfiguration.getConfiguration().findManagedRepositoryById( repoTask.getRepositoryId() ); - if ( arepo == null ) - { - throw new TaskExecutionException( "Unable to execute RepositoryTask with invalid repository id: " + repoTask.getRepositoryId() ); - } - - long sinceWhen = RepositoryScanner.FRESH_SCAN; - - List results = dao.query( new MostRecentRepositoryScanStatistics( arepo.getId() ) ); - - if ( CollectionUtils.isNotEmpty( results ) ) - { - RepositoryContentStatistics lastStats = results.get( 0 ); - sinceWhen = lastStats.getWhenGathered().getTime() + lastStats.getDuration(); - } - - RepositoryScanStatistics stats = repoScanner.scan( arepo, sinceWhen ); - - log.info( "Finished repository task: " + stats.toDump( arepo ) ); - - RepositoryContentStatistics dbstats = constructRepositoryStatistics( arepo, sinceWhen, results, stats ); - - dao.getRepositoryContentStatisticsDAO().saveRepositoryContentStatistics( dbstats ); - } - catch ( RepositoryException e ) - { - throw new TaskExecutionException( "Repository error when executing repository job.", e ); - } - } - - private RepositoryContentStatistics constructRepositoryStatistics( ManagedRepositoryConfiguration arepo, - long sinceWhen, - List results, - RepositoryScanStatistics stats ) - { - // I hate jpox and modello <-- and so do I - RepositoryContentStatistics dbstats = new RepositoryContentStatistics(); - dbstats.setDuration( stats.getDuration() ); - dbstats.setNewFileCount( stats.getNewFileCount() ); - dbstats.setRepositoryId( stats.getRepositoryId() ); - dbstats.setTotalFileCount( stats.getTotalFileCount() ); - dbstats.setWhenGathered( stats.getWhenGathered() ); - - // total artifact count - try - { - List artifacts = dao.getArtifactDAO().queryArtifacts( - new ArtifactsByRepositoryConstraint( arepo.getId(), stats.getWhenGathered(), "groupId", true ) ); - dbstats.setTotalArtifactCount( artifacts.size() ); - } - catch ( ObjectNotFoundException oe ) - { - 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 repos = new ArrayList(); - repos.add( arepo.getId() ); - - List groupIds = dao.query( new UniqueGroupIdConstraint( repos ) ); - dbstats.setTotalGroupCount( groupIds.size() ); - - List artifactIds = dao.query( new UniqueArtifactIdConstraint( arepo.getId(), true ) ); - dbstats.setTotalProjectCount( artifactIds.size() ); - - return dbstats; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/ArchivaTask.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/ArchivaTask.java deleted file mode 100644 index 642f16b7f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/ArchivaTask.java +++ /dev/null @@ -1,68 +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 org.codehaus.plexus.taskqueue.Task; - -/** - * A repository task. - * - * @author Brett Porter - */ -public interface ArchivaTask - extends Task -{ - public static final String QUEUE_POLICY_WAIT = "wait"; - - public static final String QUEUE_POLICY_SKIP = "skip"; - - /** - * Gets the queue policy for this task. - * - * @return Queue policy for this task - */ - public String getQueuePolicy(); - - /** - * Sets the queue policy for this task. - * - * @param policy - */ - public void setQueuePolicy( String policy ); - - /** - * Sets the job name to represent a group of similar / identical job tasks. Can be used to check the - * task queue for similar / identical job tasks. - */ - public void setName( String name ); - - /** - * obtains the name of the task - * @return - */ - public String getName(); - - public long getMaxExecutionTime(); - - public void setMaxExecutionTime( long maxExecutionTime ); - - - -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/DatabaseTask.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/DatabaseTask.java deleted file mode 100644 index 427d9e8e9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/DatabaseTask.java +++ /dev/null @@ -1,68 +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. - */ - -/** - * DataRefreshTask - task for discovering changes in the repository - * and updating all associated data. - * - * @author Joakim Erdfelt - * @version $Id: DataRefreshTask.java 525176 2007-04-03 15:21:33Z joakime $ - */ -public class DatabaseTask - implements ArchivaTask -{ - - String name; - - String queuePolicy; - - long maxExecutionTime; - - public long getMaxExecutionTime() - { - return maxExecutionTime; - } - - public void setMaxExecutionTime( long maxExecutionTime ) - { - this.maxExecutionTime = maxExecutionTime; - } - - public String getName() - { - return name; - } - - public void setName( String name ) - { - this.name = name; - } - - public String getQueuePolicy() - { - return queuePolicy; - } - - public void setQueuePolicy( String queuePolicy ) - { - this.queuePolicy = queuePolicy; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/RepositoryTask.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/RepositoryTask.java deleted file mode 100644 index cd4da2d6f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/RepositoryTask.java +++ /dev/null @@ -1,79 +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. - */ - -/** - * DataRefreshTask - task for discovering changes in the repository - * and updating all associated data. - * - * @author Joakim Erdfelt - * @version $Id: DataRefreshTask.java 525176 2007-04-03 15:21:33Z joakime $ - */ -public class RepositoryTask - implements ArchivaTask -{ - String repositoryId; - - String name; - - String queuePolicy; - - long maxExecutionTime; - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public long getMaxExecutionTime() - { - return maxExecutionTime; - } - - public void setMaxExecutionTime( long maxExecutionTime ) - { - this.maxExecutionTime = maxExecutionTime; - } - - public String getName() - { - return name; - } - - public void setName( String name ) - { - this.name = name; - } - - public String getQueuePolicy() - { - return queuePolicy; - } - - public void setQueuePolicy( String queuePolicy ) - { - this.queuePolicy = queuePolicy; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/RepositoryTaskSelectionPredicate.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/RepositoryTaskSelectionPredicate.java deleted file mode 100644 index c328ebe9c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/java/org/apache/maven/archiva/scheduled/tasks/RepositoryTaskSelectionPredicate.java +++ /dev/null @@ -1,54 +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 org.apache.commons.collections.Predicate; -import org.apache.commons.lang.StringUtils; - -/** - * RepositoryTaskSelectionPredicate - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryTaskSelectionPredicate - implements Predicate -{ - private String repoid; - - public RepositoryTaskSelectionPredicate( String repositoryId ) - { - this.repoid = repositoryId; - } - - public boolean evaluate( Object object ) - { - boolean satisfies = false; - - if ( object instanceof RepositoryTask ) - { - RepositoryTask task = (RepositoryTask) object; - return StringUtils.equals( repoid, task.getRepositoryId() ); - } - - return satisfies; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/resources/META-INF/plexus/components.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/resources/META-INF/plexus/components.xml deleted file mode 100644 index 4d6d6370f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/main/resources/META-INF/plexus/components.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - org.codehaus.plexus.taskqueue.TaskQueue - database-update - org.codehaus.plexus.taskqueue.DefaultTaskQueue - plexus-configurable - - - - - - - - - - - - org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor - database-update - org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor - singleton - - - org.codehaus.plexus.taskqueue.execution.TaskExecutor - database-update - - - org.codehaus.plexus.taskqueue.TaskQueue - database-update - - - - database-update - - - - - - org.codehaus.plexus.taskqueue.TaskQueue - repository-scanning - org.codehaus.plexus.taskqueue.DefaultTaskQueue - plexus-configurable - - - - - - - - - - - - org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor - repository-scanning - org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor - singleton - - - org.codehaus.plexus.taskqueue.execution.TaskExecutor - repository-scanning - - - org.codehaus.plexus.taskqueue.TaskQueue - repository-scanning - - - - repository-scanning - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseCleanupConsumer.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseCleanupConsumer.java deleted file mode 100644 index ff6979877..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseCleanupConsumer.java +++ /dev/null @@ -1,100 +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.consumers.DatabaseCleanupConsumer; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import java.util.List; - -/** - * TestDatabaseCleanupConsumer - * - * @author Joakim Erdfelt - * @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 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-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseUnprocessedConsumer.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseUnprocessedConsumer.java deleted file mode 100644 index ec93b3e87..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/TestDatabaseUnprocessedConsumer.java +++ /dev/null @@ -1,111 +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 java.util.ArrayList; -import java.util.List; - -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * TestDatabaseUnprocessedConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class TestDatabaseUnprocessedConsumer - extends AbstractMonitoredConsumer - implements DatabaseUnprocessedArtifactConsumer -{ - private Logger log = LoggerFactory.getLogger( TestDatabaseUnprocessedConsumer.class ); - - 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 getIncludedTypes() - { - List types = new ArrayList(); - types.add( "pom" ); - types.add( "jar" ); - return types; - } - - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - log.info( "Processing Artifact: " + artifact ); - countProcessed++; - } - - public String getDescription() - { - return "Test Consumer for Database Unprocessed"; - } - - public String getId() - { - return "test-db-unprocessed"; - } - - public boolean isPermanent() - { - return false; - } - - public int getCountBegin() - { - return countBegin; - } - - public int getCountComplete() - { - return countComplete; - } - - public int getCountProcessed() - { - return countProcessed; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.java deleted file mode 100644 index d6ee52438..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.java +++ /dev/null @@ -1,199 +0,0 @@ -package org.apache.maven.archiva.scheduled.executors; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -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; -import org.codehaus.plexus.taskqueue.execution.TaskExecutor; -import org.jpox.SchemaTool; - -import java.io.File; -import java.net.URL; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -import javax.jdo.PersistenceManager; -import javax.jdo.PersistenceManagerFactory; - -/** - * ArchivaDatabaseUpdateTaskExecutorTest - * - * @author Joakim Erdfelt - * @version $Id:$ - */ -public class ArchivaDatabaseUpdateTaskExecutorTest - extends PlexusInSpringTestCase -{ - private TaskExecutor taskExecutor; - - protected ArchivaDAO dao; - - protected void setUp() - throws Exception - { - super.setUp(); - - DefaultConfigurableJdoFactory jdoFactory = (DefaultConfigurableJdoFactory) lookup( JdoFactory.ROLE, "archiva" ); - assertEquals( DefaultConfigurableJdoFactory.class.getName(), jdoFactory.getClass().getName() ); - - jdoFactory.setPersistenceManagerFactoryClass( "org.jpox.PersistenceManagerFactoryImpl" ); - - /* derby version - File derbyDbDir = new File( "target/plexus-home/testdb" ); - if ( derbyDbDir.exists() ) - { - FileUtils.deleteDirectory( derbyDbDir ); - } - - jdoFactory.setDriverName( System.getProperty( "jdo.test.driver", "org.apache.derby.jdbc.EmbeddedDriver" ) ); - jdoFactory.setUrl( System.getProperty( "jdo.test.url", "jdbc:derby:" + derbyDbDir.getAbsolutePath() + ";create=true" ) ); - */ - - jdoFactory.setDriverName( System.getProperty( "jdo.test.driver", "org.hsqldb.jdbcDriver" ) ); - jdoFactory.setUrl( System.getProperty( "jdo.test.url", "jdbc:hsqldb:mem:" + getName() ) ); - - jdoFactory.setUserName( System.getProperty( "jdo.test.user", "sa" ) ); - - jdoFactory.setPassword( System.getProperty( "jdo.test.pass", "" ) ); - - jdoFactory.setProperty( "org.jpox.transactionIsolation", "READ_COMMITTED" ); - - jdoFactory.setProperty( "org.jpox.poid.transactionIsolation", "READ_COMMITTED" ); - - jdoFactory.setProperty( "org.jpox.autoCreateSchema", "true" ); - - jdoFactory.setProperty( "javax.jdo.option.RetainValues", "true" ); - - jdoFactory.setProperty( "javax.jdo.option.RestoreValues", "true" ); - - // jdoFactory.setProperty( "org.jpox.autoCreateColumns", "true" ); - - jdoFactory.setProperty( "org.jpox.validateTables", "true" ); - - jdoFactory.setProperty( "org.jpox.validateColumns", "true" ); - - jdoFactory.setProperty( "org.jpox.validateConstraints", "true" ); - - Properties properties = jdoFactory.getProperties(); - - for ( Iterator it = properties.entrySet().iterator(); it.hasNext(); ) - { - Map.Entry entry = (Map.Entry) it.next(); - - System.setProperty( (String) entry.getKey(), (String) entry.getValue() ); - } - - URL jdoFileUrls[] = new URL[] { getClass().getResource( "/org/apache/maven/archiva/model/package.jdo" ) }; - - if ( ( jdoFileUrls == null ) || ( jdoFileUrls[0] == null ) ) - { - fail( "Unable to process test " + getName() + " - missing package.jdo." ); - } - - File propsFile = null; // intentional - boolean verbose = true; - - SchemaTool.deleteSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose ); - SchemaTool.createSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose, null ); - - PersistenceManagerFactory pmf = jdoFactory.getPersistenceManagerFactory(); - - assertNotNull( pmf ); - - PersistenceManager pm = pmf.getPersistenceManager(); - - pm.close(); - - this.dao = (ArchivaDAO) lookup( ArchivaDAO.class.getName(), "jdo" ); - - taskExecutor = (TaskExecutor) lookup( TaskExecutor.class, "test-database-update" ); - } - - public void testExecutor() - throws Exception - { - File repoDir = new File( getBasedir(), "src/test/repositories/default-repository" ); - - assertTrue( "Default Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() ); - - ManagedRepositoryConfiguration repo = createRepository( "testRepo", "Test Repository", repoDir ); - assertNotNull( repo ); - - ArtifactDAO adao = dao.getArtifactDAO(); - - ArchivaArtifact sqlArtifact = adao.createArtifact( "javax.sql", "jdbc", "2.0", "", "jar" ); - sqlArtifact.getModel().setLastModified( new Date() ); - sqlArtifact.getModel().setSize( 1234 ); - sqlArtifact.getModel().setOrigin( "testcase" ); - sqlArtifact.getModel().setWhenProcessed( null ); - - adao.saveArtifact( sqlArtifact ); - - ArchivaArtifact artifact = adao.getArtifact( "javax.sql", "jdbc", "2.0", null, "jar" ); - - assertNotNull( artifact ); - - // Test for artifact existance. - List artifactList = adao.queryArtifacts( null ); - assertNotNull( "Artifact list should not be null.", artifactList ); - assertEquals( "Artifact list size", 1, artifactList.size() ); - - // Test for unprocessed artifacts. - List unprocessedResultList = adao.queryArtifacts( new ArtifactsProcessedConstraint( false ) ); - assertNotNull( "Unprocessed Results should not be null.", unprocessedResultList ); - assertEquals( "Incorrect number of unprocessed artifacts detected.", 1, unprocessedResultList.size() ); - - // Execute the database task. - DatabaseTask dataTask = new DatabaseTask(); - - dataTask.setName( "testDataTask" ); - - taskExecutor.executeTask( dataTask ); - - // Test for artifact existance. - artifactList = adao.queryArtifacts( null ); - assertNotNull( "Artifact list should not be null.", artifactList ); - assertEquals( "Artifact list size", 1, artifactList.size() ); - - // Test for processed artifacts. - List processedResultList = adao.queryArtifacts( new ArtifactsProcessedConstraint( true ) ); - assertNotNull( "Processed Results should not be null.", processedResultList ); - assertEquals( "Incorrect number of processed artifacts detected.", 1, processedResultList.size() ); - } - - 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; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.java b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.java deleted file mode 100644 index af5f708b6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/java/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.java +++ /dev/null @@ -1,176 +0,0 @@ -package org.apache.maven.archiva.scheduled.executors; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -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.scheduled.tasks.RepositoryTask; -import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory; -import org.codehaus.plexus.jdo.JdoFactory; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.codehaus.plexus.taskqueue.execution.TaskExecutor; -import org.jpox.SchemaTool; - -import java.io.File; -import java.net.URL; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -import javax.jdo.PersistenceManager; -import javax.jdo.PersistenceManagerFactory; - -/** - * ArchivaRepositoryScanningTaskExecutorTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaRepositoryScanningTaskExecutorTest - extends PlexusInSpringTestCase -{ - private TaskExecutor taskExecutor; - - protected ArchivaDAO dao; - - protected void setUp() - throws Exception - { - super.setUp(); - - DefaultConfigurableJdoFactory jdoFactory = (DefaultConfigurableJdoFactory) lookup( JdoFactory.ROLE, "archiva" ); - assertEquals( DefaultConfigurableJdoFactory.class.getName(), jdoFactory.getClass().getName() ); - - jdoFactory.setPersistenceManagerFactoryClass( "org.jpox.PersistenceManagerFactoryImpl" ); - - /* derby version - File derbyDbDir = new File( "target/plexus-home/testdb" ); - if ( derbyDbDir.exists() ) - { - FileUtils.deleteDirectory( derbyDbDir ); - } - - jdoFactory.setDriverName( System.getProperty( "jdo.test.driver", "org.apache.derby.jdbc.EmbeddedDriver" ) ); - jdoFactory.setUrl( System.getProperty( "jdo.test.url", "jdbc:derby:" + derbyDbDir.getAbsolutePath() + ";create=true" ) ); - */ - - jdoFactory.setDriverName( System.getProperty( "jdo.test.driver", "org.hsqldb.jdbcDriver" ) ); - jdoFactory.setUrl( System.getProperty( "jdo.test.url", "jdbc:hsqldb:mem:" + getName() ) ); - - jdoFactory.setUserName( System.getProperty( "jdo.test.user", "sa" ) ); - - jdoFactory.setPassword( System.getProperty( "jdo.test.pass", "" ) ); - - jdoFactory.setProperty( "org.jpox.transactionIsolation", "READ_COMMITTED" ); - - jdoFactory.setProperty( "org.jpox.poid.transactionIsolation", "READ_COMMITTED" ); - - jdoFactory.setProperty( "org.jpox.autoCreateSchema", "true" ); - - jdoFactory.setProperty( "javax.jdo.option.RetainValues", "true" ); - - jdoFactory.setProperty( "javax.jdo.option.RestoreValues", "true" ); - - // jdoFactory.setProperty( "org.jpox.autoCreateColumns", "true" ); - - jdoFactory.setProperty( "org.jpox.validateTables", "true" ); - - jdoFactory.setProperty( "org.jpox.validateColumns", "true" ); - - jdoFactory.setProperty( "org.jpox.validateConstraints", "true" ); - - Properties properties = jdoFactory.getProperties(); - - for ( Iterator it = properties.entrySet().iterator(); it.hasNext(); ) - { - Map.Entry entry = (Map.Entry) it.next(); - - System.setProperty( (String) entry.getKey(), (String) entry.getValue() ); - } - - URL jdoFileUrls[] = new URL[] { getClass() - .getResource( "/org/apache/maven/archiva/model/package.jdo" ) }; - - if ( ( jdoFileUrls == null ) || ( jdoFileUrls[0] == null ) ) - { - fail( "Unable to process test " + getName() + " - missing package.jdo." ); - } - - File propsFile = null; // intentional - boolean verbose = true; - - SchemaTool.deleteSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose ); - SchemaTool.createSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose, null ); - - PersistenceManagerFactory pmf = jdoFactory.getPersistenceManagerFactory(); - - assertNotNull( pmf ); - - PersistenceManager pm = pmf.getPersistenceManager(); - - pm.close(); - - this.dao = (ArchivaDAO) lookup( ArchivaDAO.class.getName(), "jdo" ); - - taskExecutor = (TaskExecutor) lookup( TaskExecutor.class, "test-repository-scanning" ); - } - - public void testExecutor() throws Exception - { - File repoDir = new File( getBasedir(), "src/test/repositories/default-repository" ); - - assertTrue( "Default Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() ); - - ArchivaConfiguration archivaConfig = (ArchivaConfiguration) lookup( ArchivaConfiguration.class ); - assertNotNull( archivaConfig ); - - // Create it - ManagedRepositoryConfiguration repo = createRepository( "testRepo", "Test Repository", repoDir ); - assertNotNull( repo ); - archivaConfig.getConfiguration().getManagedRepositories().clear(); - archivaConfig.getConfiguration().addManagedRepository( repo ); - - RepositoryTask repoTask = new RepositoryTask(); - - repoTask.setName( "testRepoTask" ); - repoTask.setRepositoryId( "testRepo" ); - - taskExecutor.executeTask( repoTask ); - - ArtifactDAO adao = dao.getArtifactDAO(); - List unprocessedResultList = adao.queryArtifacts( new ArtifactsProcessedConstraint( false ) ); - - assertNotNull( unprocessedResultList ); - assertEquals("Incorrect number of unprocessed artifacts detected.", 8, unprocessedResultList.size() ); - } - - 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; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/maven-metadata.xml deleted file mode 100644 index b3baf545d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/maven-metadata.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - javax.sql - jdbc - 2.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5 deleted file mode 100644 index ef7483fad..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -d41d8cd98f00b204e9800998ecf8427e jdbc-2.0.jar \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1 deleted file mode 100644 index 4bc014766..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/jdbc-2.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -da39a3ee5e6b4b0d3255bfef95601890afd80709 jdbc-2.0.jar \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml deleted file mode 100644 index caf5b6697..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/2.0/maven-metadata-repository.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - javax.sql - jdbc - 2.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml deleted file mode 100644 index bb7570891..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/jdbc/maven-metadata-repository.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - javax.sql - jdbc - 2.0 - - - 2.0 - - - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml deleted file mode 100644 index caf5b6697..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/javax/sql/maven-metadata-repository.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - javax.sql - jdbc - 2.0 - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom deleted file mode 100644 index 202a0a448..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - A - 1.0 - Maven Test Repository Artifact Discovery - war - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5 deleted file mode 100644 index 78a953bc5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -bc479af1df809dbabb92e29548776b84 A-1.0.pom \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1 deleted file mode 100644 index 71d6233aa..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -fbb4c97603c64f3915c88243e1ea49f1a238afa7 A-1.0.pom \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5 deleted file mode 100644 index 665059bc7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.md5 +++ /dev/null @@ -1 +0,0 @@ -fd4275a6811332d67075ffd879d13d4a A-1.0.war \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1 deleted file mode 100644 index c8494eb9d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/A/1.0/A-1.0.war.sha1 +++ /dev/null @@ -1 +0,0 @@ -754133cd9c36adef86d35b96c0e96e11a9c6bfc9 A-1.0.war \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom deleted file mode 100644 index fa5f8f6c8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - B - 1.0 - Maven Test Repository Artifact Discovery - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5 deleted file mode 100644 index 2324bce0c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -c543ad342d1de7a4352fc9b0f42067b8 B-1.0.pom \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1 deleted file mode 100644 index d8d5abce7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/1.0/B-1.0.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -be06d04d5824859253abf423394dc85d24971ba8 B-1.0.pom \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom deleted file mode 100644 index c3034e820..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - B - 2.0 - Maven Test Repository Artifact Discovery - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5 deleted file mode 100644 index 4ddd22b82..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -1af6c812f02f24e1ba287647a6856cd5 B-2.0.pom \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1 deleted file mode 100644 index 95912764c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/B/2.0/B-2.0.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -5d49f821499ab061c97457b3e6512fd1624a3033 B-2.0.pom \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom deleted file mode 100644 index ae14cd7eb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.maven - C - 1.0 - Maven Test Repository Artifact Discovery - war - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5 deleted file mode 100644 index d08745961..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -90f5c062bded5f794cd4ea9479b35173 C-1.0.pom \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1 deleted file mode 100644 index fbe7bd338..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -fcefa8220d30b7aa72a1b7422cc06336ca14bb6f C-1.0.pom \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war deleted file mode 100644 index 54d190b231cc8f902778a862ce9b838939be4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34 ncmYc(&CRV;NY2kINzE(KQz%Z%Eyzh#NXrBg`FS~&dc0f!;VujR diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5 deleted file mode 100644 index 4eb175498..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.md5 +++ /dev/null @@ -1 +0,0 @@ -fd4275a6811332d67075ffd879d13d4a C-1.0.war \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1 deleted file mode 100644 index 78e0b6eb7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/C/1.0/C-1.0.war.sha1 +++ /dev/null @@ -1 +0,0 @@ -754133cd9c36adef86d35b96c0e96e11a9c6bfc9 C-1.0.war \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml deleted file mode 100644 index 8ce7fc7bb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/maven/maven-metadata.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - org.apache.maven - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom deleted file mode 100644 index 12538e81a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - org.apache.testgroup - discovery - 1.0 - Maven Test Repository Artifact Discovery - pom - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5 deleted file mode 100644 index b163670f2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -764dd493029133aff4c0f7cb4be2d9b7 discovery-1.0.pom \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1 deleted file mode 100644 index dedf18ade..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/discovery-1.0.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -a7aaf680caaf5bb971753e047c439f3fd4efa473 discovery-1.0.pom \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml deleted file mode 100644 index 8ee18048c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/1.0/maven-metadata.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - org.apache.testgroup - discovery - 1.0 - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml deleted file mode 100644 index b024ef7ef..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/repositories/default-repository/org/apache/testgroup/discovery/maven-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - org.apache.testgroup - discovery - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/archiva-test.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/archiva-test.xml deleted file mode 100644 index 7721bb63e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/archiva-test.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - testRepo - Archiva Test Repository - ${basedir}/src/test/repositories/default-repository - default - true - false - true - 0 0 * * * ? - - - - - - - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - - - update-db-bad-content - - - - - 0 0 * * * ? - - test-db-unprocessed - update-db-artifact - - - test-db-cleanup - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/log4j.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/log4j.xml deleted file mode 100644 index 3c782b138..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/log4j.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.xml deleted file mode 100644 index 24e60e8fb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaDatabaseUpdateTaskExecutorTest.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - org.codehaus.plexus.taskqueue.execution.TaskExecutor - test-database-update - org.apache.maven.archiva.scheduled.executors.ArchivaDatabaseUpdateTaskExecutor - - - - org.apache.maven.archiva.database.updater.DatabaseUpdater - jdo - databaseUpdater - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configured - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - - org.codehaus.plexus.registry.Registry - configured - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - org.apache.maven.archiva.consumers.DatabaseCleanupConsumer - test-db-cleanup - org.apache.maven.archiva.scheduled.TestDatabaseCleanupConsumer - - - - org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer - test-db-unprocessed - org.apache.maven.archiva.scheduled.TestDatabaseUnprocessedConsumer - - - - - org.codehaus.plexus.jdo.JdoFactory - archiva - org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory - - org.jpox.PersistenceManagerFactoryImpl - - - javax.jdo.PersistenceManagerFactoryClass - org.jpox.PersistenceManagerFactoryImpl - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.xml b/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.xml deleted file mode 100644 index f903ba33f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-scheduled/src/test/resources/org/apache/maven/archiva/scheduled/executors/ArchivaRepositoryScanningTaskExecutorTest.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - org.codehaus.plexus.taskqueue.execution.TaskExecutor - test-repository-scanning - org.apache.maven.archiva.scheduled.executors.ArchivaRepositoryScanningTaskExecutor - - - - - org.apache.maven.archiva.database.ArchivaDAO - jdo - dao - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - archivaConfiguration - - - org.apache.maven.archiva.repository.scanner.RepositoryScanner - repoScanner - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configured - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - - org.codehaus.plexus.registry.Registry - configured - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - org.codehaus.plexus.jdo.JdoFactory - archiva - org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory - - org.jpox.PersistenceManagerFactoryImpl - - - javax.jdo.PersistenceManagerFactoryClass - org.jpox.PersistenceManagerFactoryImpl - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-applet/pom.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-applet/pom.xml deleted file mode 100644 index 47c848910..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-applet/pom.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-web - 1.2-SNAPSHOT - - archiva-applet - Archiva Web :: Applet - - Applet for performing local operations on files such as creating a checksum of an artifact - before uploading it. - - - - - org.codehaus.mojo - keytool-maven-plugin - 1.0-beta-1 - - - generate-resources - - clean - genkey - - - - - ${basedir}/target/keystore - cn=Brett Porter, ou=Archiva, L=Sydney, ST=NSW, o=Apache Software Foundation, c=AU - password - password - 10000 - - - - org.apache.maven.plugins - maven-jar-plugin - 2.1 - - ${basedir}/target/keystore - mykey - password - password - - - - - sign - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - - - **/** - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-applet/src/main/java/org/apache/maven/archiva/applet/ChecksumApplet.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-applet/src/main/java/org/apache/maven/archiva/applet/ChecksumApplet.java deleted file mode 100644 index ca9f6337d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-applet/src/main/java/org/apache/maven/archiva/applet/ChecksumApplet.java +++ /dev/null @@ -1,143 +0,0 @@ -package org.apache.maven.archiva.applet; - -/* - * 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 javax.swing.*; -import java.applet.Applet; -import java.awt.*; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.security.AccessController; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.PrivilegedAction; - -/** - * Applet that takes a file on the local filesystem and checksums it for sending to the server. - * - * @author Brett Porter - */ -public class ChecksumApplet - extends Applet -{ - private static final int CHECKSUM_BUFFER_SIZE = 8192; - - private static final int BYTE_MASK = 0xFF; - - private JProgressBar progressBar; - - public void init() - { - setLayout( new BorderLayout() ); - progressBar = new JProgressBar(); - progressBar.setStringPainted( true ); - add( progressBar, BorderLayout.CENTER ); - JLabel label = new JLabel( "Checksum progress: " ); - add( label, BorderLayout.WEST ); - } - - public String generateMd5( final String file ) - throws IOException, NoSuchAlgorithmException - { - Object o = AccessController.doPrivileged( new PrivilegedAction() - { - public Object run() - { - try - { - return checksumFile( file ); - } - catch ( NoSuchAlgorithmException e ) - { - return "Error checksumming file: " + e.getMessage(); - } - catch ( FileNotFoundException e ) - { - return "Couldn't find the file. " + e.getMessage(); - } - catch ( IOException e ) - { - return "Error reading file: " + e.getMessage(); - } - } - } ); - return (String) o; - } - - protected String checksumFile( String file ) - throws NoSuchAlgorithmException, IOException - { - MessageDigest digest = MessageDigest.getInstance( "MD5" ); - - long total = new File( file ).length(); - InputStream fis = new FileInputStream( file ); - try - { - long totalRead = 0; - byte[] buffer = new byte[CHECKSUM_BUFFER_SIZE]; - int numRead; - do - { - numRead = fis.read( buffer ); - if ( numRead > 0 ) - { - digest.update( buffer, 0, numRead ); - totalRead += numRead; - progressBar.setValue( (int) ( totalRead * progressBar.getMaximum() / total ) ); - } - } - while ( numRead != -1 ); - } - finally - { - fis.close(); - } - - return byteArrayToHexStr( digest.digest() ); - } - - protected static String byteArrayToHexStr( byte[] data ) - { - String output = ""; - - for ( int cnt = 0; cnt < data.length; cnt++ ) - { - //Deposit a byte into the 8 lsb of an int. - int tempInt = data[cnt] & BYTE_MASK; - - //Get hex representation of the int as a string. - String tempStr = Integer.toHexString( tempInt ); - - //Append a leading 0 if necessary so that each hex string will contain 2 characters. - if ( tempStr.length() == 1 ) - { - tempStr = "0" + tempStr; - } - - //Concatenate the two characters to the output string. - output = output + tempStr; - } - - return output.toUpperCase(); - } -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/pom.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/pom.xml deleted file mode 100644 index be70c4a21..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - archiva-web - org.apache.archiva - 1.2-SNAPSHOT - - 4.0.0 - archiva-rss - Archiva Web :: RSS - http://maven.apache.org - - - org.codehaus.plexus - plexus-spring - test - - - org.apache.archiva - archiva-model - - - - org.apache.archiva - archiva-database - - - commons-io - commons-io - - - org.slf4j - slf4j-api - - - rome - rome - 0.9 - - - xmlunit - xmlunit - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedEntry.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedEntry.java deleted file mode 100644 index 2090f9717..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedEntry.java +++ /dev/null @@ -1,161 +0,0 @@ -package org.apache.archiva.rss; - -import java.util.Date; - -/* - * 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. - */ - -/** - * Holds the data for the SyndEntry in the RSS feed. - * - * @author Maria Odea Ching - * @version - */ -public class RssFeedEntry -{ - private String title; - - private String link; - - private String description; - - private String author; - - private String category; - - private String comments; - - private String enclosure; - - private String guid; - - private String source; - - private Date publishedDate; - - public RssFeedEntry() - { - - } - - public RssFeedEntry( String title ) - { - this.title = title; - } - - public String getTitle() - { - return title; - } - - public void setTitle( String title ) - { - this.title = title; - } - - public String getLink() - { - return link; - } - - public void setLink( String link ) - { - this.link = link; - } - - public String getDescription() - { - return description; - } - - public void setDescription( String description ) - { - this.description = description; - } - - public String getAuthor() - { - return author; - } - - public void setAuthor( String author ) - { - this.author = author; - } - - public String getCategory() - { - return category; - } - - public void setCategory( String category ) - { - this.category = category; - } - - public String getComments() - { - return comments; - } - - public void setComments( String comments ) - { - this.comments = comments; - } - - public String getEnclosure() - { - return enclosure; - } - - public void setEnclosure( String enclosure ) - { - this.enclosure = enclosure; - } - - public String getGuid() - { - return guid; - } - - public void setGuid( String guid ) - { - this.guid = guid; - } - - public String getSource() - { - return source; - } - - public void setSource( String source ) - { - this.source = source; - } - - public Date getPublishedDate() - { - return publishedDate; - } - - public void setPublishedDate( Date publishedDate ) - { - this.publishedDate = publishedDate; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedGenerator.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedGenerator.java deleted file mode 100644 index 4b05a36fc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/RssFeedGenerator.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.apache.archiva.rss; - -/* - * 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; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.sun.syndication.feed.synd.SyndContent; -import com.sun.syndication.feed.synd.SyndContentImpl; -import com.sun.syndication.feed.synd.SyndEntry; -import com.sun.syndication.feed.synd.SyndEntryImpl; -import com.sun.syndication.feed.synd.SyndFeed; -import com.sun.syndication.feed.synd.SyndFeedImpl; - -/** - * Generates RSS feeds. - * - * @plexus.component role="org.apache.archiva.rss.RssFeedGenerator" - * instantiation-strategy="per-lookup" - * - * @author Maria Odea Ching - * @version - */ -public class RssFeedGenerator -{ - private Logger log = LoggerFactory.getLogger( RssFeedGenerator.class ); - - // TODO: make configurable - public static String DEFAULT_FEEDTYPE = "rss_2.0"; - - public static String DEFAULT_LANGUAGE = "en-us"; - - public SyndFeed generateFeed( String title, String description, List dataEntries ) - { - if( dataEntries.size() == 0 ) - { - log.debug( "No updates found, feed not generated." ); - return null; - } - - SyndFeed feed = new SyndFeedImpl(); - feed.setTitle( title ); - feed.setDescription( description ); - feed.setLanguage( DEFAULT_LANGUAGE ); - feed.setPublishedDate( dataEntries.get( dataEntries.size() - 1 ).getPublishedDate() ); - feed.setFeedType( DEFAULT_FEEDTYPE ); - feed.setEntries( getEntries( dataEntries ) ); - - log.debug( "Finished generating the feed \'" + title + "\'." ); - - return feed; - } - - private List getEntries( List dataEntries ) - { - List entries = new ArrayList(); - - SyndEntry entry; - SyndContent description; - - for ( RssFeedEntry dataEntry : dataEntries ) - { - entry = new SyndEntryImpl(); - entry.setTitle( dataEntry.getTitle() ); - entry.setPublishedDate( dataEntry.getPublishedDate() ); - - description = new SyndContentImpl(); - description.setType( "text/plain" ); - description.setValue( dataEntry.getDescription() ); - entry.setDescription( description ); - - entries.add( entry ); - } - - return entries; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/AbstractArtifactsRssFeedProcessor.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/AbstractArtifactsRssFeedProcessor.java deleted file mode 100644 index 55a7086cb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/AbstractArtifactsRssFeedProcessor.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.apache.archiva.rss.processor; - -/* - * 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.Date; -import java.util.List; -import java.util.Map; - -import org.apache.archiva.rss.RssFeedEntry; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.model.ArchivaArtifact; - -import com.sun.syndication.feed.synd.SyndFeed; - -/** - * @author Maria Odea Ching - * @version - */ -public abstract class AbstractArtifactsRssFeedProcessor - implements RssFeedProcessor -{ - public abstract SyndFeed process( Map reqParams ) throws ArchivaDatabaseException; - - protected List processData( List artifacts, boolean isRepoLevel ) - { - long tmp = 0; - RssFeedEntry entry = null; - List entries = new ArrayList(); - String description = ""; - int idx = 0; - for ( ArchivaArtifact artifact : artifacts ) - { - long whenGathered = artifact.getModel().getWhenGathered().getTime(); - - if ( tmp != whenGathered ) - { - if ( entry != null ) - { - entry.setDescription( description ); - entries.add( entry ); - entry = null; - } - - if ( !isRepoLevel ) - { - entry = - new RssFeedEntry( getTitle() + "\'" + artifact.getGroupId() + ":" + artifact.getArtifactId() + - "\'" + " as of " + new Date( whenGathered ) ); - entry.setPublishedDate( artifact.getModel().getWhenGathered() ); - description = getDescription() + "\'" + artifact.getGroupId() + ":" + artifact.getArtifactId() + - "\'" + ": \n" + artifact.toString() + " | "; - } - else - { - String repoId = artifact.getModel().getRepositoryId(); - entry = new RssFeedEntry( getTitle() + "\'" + repoId + "\'" + " as of " + new Date( whenGathered ) ); - entry.setPublishedDate( artifact.getModel().getWhenGathered() ); - description = getDescription() + "\'" + repoId + "\'" + ": \n" + artifact.toString() + " | "; - } - } - else - { - description = description + artifact.toString() + " | "; - } - - if ( idx == ( artifacts.size() - 1 ) ) - { - entry.setDescription( description ); - entries.add( entry ); - } - - tmp = whenGathered; - idx++; - } - - return entries; - } - - protected abstract String getTitle(); - - protected abstract String getDescription(); - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessor.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessor.java deleted file mode 100644 index 031fc11d4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessor.java +++ /dev/null @@ -1,141 +0,0 @@ -package org.apache.archiva.rss.processor; - -/* - * 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.Calendar; -import java.util.List; -import java.util.Map; - -import org.apache.archiva.rss.RssFeedEntry; -import org.apache.archiva.rss.RssFeedGenerator; -import org.apache.commons.lang.time.DateUtils; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.constraints.ArtifactsByRepositoryConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.sun.syndication.feed.synd.SyndFeed; - -/** - * Retrieve and process all artifacts of a repository from the database and generate a rss feed. - * The artifacts will be grouped by the date when the artifacts were gathered. - * Each group will appear as one entry in the feed. - * - * @author Maria Odea Ching - * @version - * @plexus.component role="org.apache.archiva.rss.processor.RssFeedProcessor" role-hint="new-artifacts" - */ -public class NewArtifactsRssFeedProcessor - extends AbstractArtifactsRssFeedProcessor -{ - private int numberOfDaysBeforeNow = 30; - - private static final String title = "New Artifacts in Repository "; - - private static final String desc = "These are the new artifacts found in the repository "; - - /** - * @plexus.requirement - */ - private RssFeedGenerator generator; - - private Logger log = LoggerFactory.getLogger( NewArtifactsRssFeedProcessor.class ); - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArtifactDAO artifactDAO; - - /** - * Process the newly discovered artifacts in the repository. Generate feeds for new artifacts in the repository and - * new versions of artifact. - */ - public SyndFeed process( Map reqParams ) throws ArchivaDatabaseException - { - log.debug( "Process new artifacts into rss feeds." ); - - String repoId = reqParams.get( RssFeedProcessor.KEY_REPO_ID ); - if ( repoId != null ) - { - return processNewArtifactsInRepo( repoId ); - } - - return null; - } - - private SyndFeed processNewArtifactsInRepo( String repoId ) throws ArchivaDatabaseException - { - - Calendar greaterThanThisDate = Calendar.getInstance( DateUtils.UTC_TIME_ZONE ); - greaterThanThisDate.add( Calendar.DATE, -( getNumberOfDaysBeforeNow() ) ); - - Constraint artifactsByRepo = new ArtifactsByRepositoryConstraint( repoId, greaterThanThisDate.getTime(), "whenGathered", false ); - List artifacts = artifactDAO.queryArtifacts( artifactsByRepo ); - - List entries = processData( artifacts, true ); - - return generator.generateFeed( getTitle() + "\'" + repoId + "\'", "New artifacts found in repository " + - "\'" + repoId + "\'" + " during repository scan.", entries ); - } - - public String getTitle() - { - return title; - } - - public String getDescription() - { - return desc; - } - - public RssFeedGenerator getGenerator() - { - return generator; - } - - public void setGenerator( RssFeedGenerator generator ) - { - this.generator = generator; - } - - public ArtifactDAO getArtifactDAO() - { - return artifactDAO; - } - - public void setArtifactDAO( ArtifactDAO artifactDAO ) - { - this.artifactDAO = artifactDAO; - } - - public int getNumberOfDaysBeforeNow() - { - return numberOfDaysBeforeNow; - } - - public void setNumberOfDaysBeforeNow( int numberOfDaysBeforeNow ) - { - this.numberOfDaysBeforeNow = numberOfDaysBeforeNow; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessor.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessor.java deleted file mode 100644 index 78c21480c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessor.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.apache.archiva.rss.processor; - -/* - * 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 java.util.Map; - -import org.apache.archiva.rss.RssFeedEntry; -import org.apache.archiva.rss.RssFeedGenerator; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.constraints.ArtifactVersionsConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.sun.syndication.feed.synd.SyndFeed; - -/** - * Retrieve and process new versions of an artifact from the database and - * generate a rss feed. The versions will be grouped by the date when the artifact - * was gathered. Each group will appear as one entry in the feed. - * - * @author Maria Odea Ching - * @version - * @plexus.component role="org.apache.archiva.rss.processor.RssFeedProcessor" role-hint="new-versions" - */ -public class NewVersionsOfArtifactRssFeedProcessor - extends AbstractArtifactsRssFeedProcessor -{ - private static final String title = "New Versions of Artifact "; - - private static final String desc = "These are the new versions of artifact "; - - /** - * @plexus.requirement - */ - private RssFeedGenerator generator; - - private Logger log = LoggerFactory.getLogger( NewVersionsOfArtifactRssFeedProcessor.class ); - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArtifactDAO artifactDAO; - - /** - * Process all versions of the artifact which had a rss feed request. - */ - public SyndFeed process( Map reqParams ) throws ArchivaDatabaseException - { - String repoId = reqParams.get( RssFeedProcessor.KEY_REPO_ID ); - String groupId = reqParams.get( RssFeedProcessor.KEY_GROUP_ID ); - String artifactId = reqParams.get( RssFeedProcessor.KEY_ARTIFACT_ID ); - - if ( groupId != null && artifactId != null ) - { - return processNewVersionsOfArtifact( repoId, groupId, artifactId ); - } - - return null; - } - - private SyndFeed processNewVersionsOfArtifact( String repoId, String groupId, String artifactId ) - throws ArchivaDatabaseException - { - - Constraint artifactVersions = new ArtifactVersionsConstraint( repoId, groupId, artifactId, "whenGathered" ); - List artifacts = artifactDAO.queryArtifacts( artifactVersions ); - - List entries = processData( artifacts, false ); - String key = groupId + ":" + artifactId; - - return generator.generateFeed( getTitle() + "\'" + key + "\'", "New versions of artifact " + "\'" + key + - "\' found in repository " + "\'" + repoId + "\'" + " during repository scan.", entries ); - } - - public String getTitle() - { - return title; - } - - public String getDescription() - { - return desc; - } - - public RssFeedGenerator getGenerator() - { - return generator; - } - - public void setGenerator( RssFeedGenerator generator ) - { - this.generator = generator; - } - - public ArtifactDAO getArtifactDAO() - { - return artifactDAO; - } - - public void setArtifactDAO( ArtifactDAO artifactDAO ) - { - this.artifactDAO = artifactDAO; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/RssFeedProcessor.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/RssFeedProcessor.java deleted file mode 100644 index 806fe3853..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/RssFeedProcessor.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.apache.archiva.rss.processor; - -/* - * 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.Map; - -import org.apache.maven.archiva.database.ArchivaDatabaseException; - -import com.sun.syndication.feed.synd.SyndFeed; - -/** - * Retrieve and process the data that will be fed into the RssFeedGenerator. - * - * @author Maria Odea Ching - * @version - */ -public interface RssFeedProcessor -{ - public static final String KEY_REPO_ID = "repoId"; - - public static final String KEY_GROUP_ID = "groupId"; - - public static final String KEY_ARTIFACT_ID = "artifactId"; - - SyndFeed process( Map reqParams ) throws ArchivaDatabaseException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/RssFeedGeneratorTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/RssFeedGeneratorTest.java deleted file mode 100644 index 356177ef8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/RssFeedGeneratorTest.java +++ /dev/null @@ -1,161 +0,0 @@ -package org.apache.archiva.rss; - -/* - * 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.Date; -import java.util.List; - -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import com.sun.syndication.feed.synd.SyndEntry; -import com.sun.syndication.feed.synd.SyndFeed; - -/** - * @author Maria Odea Ching - * @version - */ -public class RssFeedGeneratorTest - extends PlexusInSpringTestCase -{ - private RssFeedGenerator generator; - - public void setUp() - throws Exception - { - super.setUp(); - - generator = (RssFeedGenerator) lookup( RssFeedGenerator.class ); - } - - public void testNewFeed() - throws Exception - { - List entries = new ArrayList(); - RssFeedEntry entry = new RssFeedEntry( "Item 1" ); - - Date whenGathered = new Date( System.currentTimeMillis() ); - - entry.setDescription( "RSS 2.0 feed item 1." ); - entry.setPublishedDate( whenGathered ); - entries.add( entry ); - - entry = new RssFeedEntry( "Item 2" ); - entry.setDescription( "RSS 2.0 feed item 2." ); - entry.setPublishedDate( whenGathered ); - entries.add( entry ); - - entry = new RssFeedEntry( "Item 3" ); - entry.setDescription( "RSS 2.0 feed item 3." ); - entry.setPublishedDate( whenGathered ); - entries.add( entry ); - - SyndFeed feed = - generator.generateFeed( "Test Feed", "The test feed from Archiva.", entries ); - - assertEquals( "Test Feed", feed.getTitle() ); - assertEquals( "The test feed from Archiva.", feed.getDescription() ); - assertEquals( "en-us", feed.getLanguage() ); - assertEquals( entries.get( 2 ).getPublishedDate(), feed.getPublishedDate() ); - - List syndEntries = feed.getEntries(); - assertEquals( 3, syndEntries.size() ); - assertEquals( "Item 1", syndEntries.get( 0 ).getTitle() ); - assertEquals( "Item 2", syndEntries.get( 1 ).getTitle() ); - assertEquals( "Item 3", syndEntries.get( 2 ).getTitle() ); - } - - public void testNoDataEntries() - throws Exception - { - List entries = new ArrayList(); - SyndFeed feed = - generator.generateFeed( "Test Feed", "The test feed from Archiva.", entries ); - - assertNull( feed ); - } - - /* - * this test might need to be removed since - * no updates are happening in the feeds anymore since everything's processed from the db. - * - public void testUpdateFeed() - throws Exception - { - generator.setRssDirectory( getBasedir() + "/target/test-classes/rss-feeds/" ); - - List entries = new ArrayList(); - RssFeedEntry entry = new RssFeedEntry( "Item 1" ); - - entry.setDescription( "RSS 2.0 feed item 1." ); - entries.add( entry ); - - entry = new RssFeedEntry( "Item 2" ); - entry.setDescription( "RSS 2.0 feed item 2." ); - entries.add( entry ); - - generator.generateFeed( "Test Feed", "The test feed from Archiva.", entries, - "generated-test-update-rss2.0-feed.xml" ); - - File outputFile = new File( getBasedir(), "/target/test-classes/rss-feeds/generated-test-update-rss2.0-feed.xml" ); - String generatedContent = FileUtils.readFileToString( outputFile ); - - XMLAssert.assertXpathEvaluatesTo( "Test Feed", "//channel/title", generatedContent ); - XMLAssert.assertXpathEvaluatesTo( "http://localhost:8080/archiva/rss/generated-test-update-rss2.0-feed.xml", "//channel/link", generatedContent ); - XMLAssert.assertXpathEvaluatesTo( "The test feed from Archiva.", "//channel/description", generatedContent ); - XMLAssert.assertXpathEvaluatesTo( "en-us", "//channel/language", generatedContent ); - - String expectedItem1 = - "Item 1Item 2"; - - XMLAssert.assertXpathsEqual( "//channel/item/title", expectedItem1, "//channel/item/title", generatedContent ); - - //update existing rss feed - entries = new ArrayList(); - entry = new RssFeedEntry( "Item 3" ); - - entry.setDescription( "RSS 2.0 feed item 3." ); - entries.add( entry ); - - entry = new RssFeedEntry( "Item 4" ); - entry.setDescription( "RSS 2.0 feed item 4." ); - entries.add( entry ); - - generator.generateFeed( "Test Feed", "The test feed from Archiva.", entries, - "generated-test-update-rss2.0-feed.xml" ); - - outputFile = new File( getBasedir(), "/target/test-classes/rss-feeds/generated-test-update-rss2.0-feed.xml" ); - generatedContent = FileUtils.readFileToString( outputFile ); - - XMLAssert.assertXpathEvaluatesTo( "Test Feed", "//channel/title", generatedContent ); - XMLAssert.assertXpathEvaluatesTo( "http://localhost:8080/archiva/rss/generated-test-update-rss2.0-feed.xml", "//channel/link", generatedContent ); - XMLAssert.assertXpathEvaluatesTo( "The test feed from Archiva.", "//channel/description", generatedContent ); - XMLAssert.assertXpathEvaluatesTo( "en-us", "//channel/language", generatedContent ); - - expectedItem1 = - "Item 1Item 2" - + "Item 3Item 4"; - XMLAssert.assertXpathsEqual( "//channel/item/title", expectedItem1, "//channel/item/title", generatedContent ); - - outputFile.deleteOnExit(); - } - */ - -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.java deleted file mode 100644 index 91bb1a19c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.java +++ /dev/null @@ -1,128 +0,0 @@ -package org.apache.archiva.rss.processor; - -/* - * 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.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.archiva.rss.RssFeedGenerator; -import org.apache.archiva.rss.stubs.ArtifactDAOStub; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import com.sun.syndication.feed.synd.SyndEntry; -import com.sun.syndication.feed.synd.SyndFeed; - -/** - * @author Maria Odea Ching - * @version - */ -public class NewArtifactsRssFeedProcessorTest - extends PlexusInSpringTestCase -{ - private NewArtifactsRssFeedProcessor newArtifactsProcessor; - - private ArtifactDAOStub artifactDAOStub; - - private RssFeedGenerator rssFeedGenerator; - - public void setUp() - throws Exception - { - super.setUp(); - - newArtifactsProcessor = new NewArtifactsRssFeedProcessor(); - artifactDAOStub = new ArtifactDAOStub(); - - rssFeedGenerator = new RssFeedGenerator(); - - newArtifactsProcessor.setGenerator( rssFeedGenerator ); - newArtifactsProcessor.setArtifactDAO( artifactDAOStub ); - } - - public void testProcess() - throws Exception - { - List newArtifacts = new ArrayList(); - Date whenGathered = Calendar.getInstance().getTime(); - - ArchivaArtifact artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-one", "1.0", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - newArtifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-one", "1.1", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - newArtifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-one", "2.0", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - newArtifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-two", "1.0.1", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - newArtifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-two", "1.0.2", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - newArtifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-two", "1.0.3-SNAPSHOT", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - newArtifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-three", "2.0-SNAPSHOT", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - newArtifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-four", "1.1-beta-2", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - newArtifacts.add( artifact ); - - artifactDAOStub.setArtifacts( newArtifacts ); - - Map reqParams = new HashMap(); - reqParams.put( RssFeedProcessor.KEY_REPO_ID, "test-repo" ); - - SyndFeed feed = newArtifactsProcessor.process( reqParams ); - - assertTrue( feed.getTitle().equals( "New Artifacts in Repository 'test-repo'" ) ); - assertTrue( feed.getDescription().equals( - "New artifacts found in repository 'test-repo' during repository scan." ) ); - assertTrue( feed.getLanguage().equals( "en-us" ) ); - assertTrue( feed.getPublishedDate().equals( whenGathered ) ); - - List entries = feed.getEntries(); - assertEquals( entries.size(), 1 ); - assertTrue( entries.get( 0 ).getTitle().equals( "New Artifacts in Repository 'test-repo' as of " + whenGathered ) ); - assertTrue( entries.get( 0 ).getPublishedDate().equals( whenGathered ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessorTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessorTest.java deleted file mode 100644 index 307380af4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessorTest.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.apache.archiva.rss.processor; - -/* - * 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.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.archiva.rss.RssFeedGenerator; -import org.apache.archiva.rss.stubs.ArtifactDAOStub; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import com.sun.syndication.feed.synd.SyndEntry; -import com.sun.syndication.feed.synd.SyndFeed; - -public class NewVersionsOfArtifactRssFeedProcessorTest - extends PlexusInSpringTestCase -{ - private NewVersionsOfArtifactRssFeedProcessor newVersionsProcessor; - - private ArtifactDAOStub artifactDAOStub; - - private RssFeedGenerator rssFeedGenerator; - - public void setUp() - throws Exception - { - super.setUp(); - - newVersionsProcessor = new NewVersionsOfArtifactRssFeedProcessor(); - artifactDAOStub = new ArtifactDAOStub(); - - rssFeedGenerator = new RssFeedGenerator(); - - newVersionsProcessor.setGenerator( rssFeedGenerator ); - newVersionsProcessor.setArtifactDAO( artifactDAOStub ); - } - - public void testProcess() - throws Exception - { - List artifacts = new ArrayList(); - - Date whenGathered = Calendar.getInstance().getTime(); - whenGathered.setTime( 123456789 ); - - ArchivaArtifact artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-two", "1.0.1", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-two", "1.0.2", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifacts.add( artifact ); - - Date whenGatheredNext = Calendar.getInstance().getTime(); - whenGatheredNext.setTime( 345678912 ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-two", "1.0.3-SNAPSHOT", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGatheredNext ); - artifacts.add( artifact ); - - artifactDAOStub.setArtifacts( artifacts ); - - Map reqParams = new HashMap(); - reqParams.put( RssFeedProcessor.KEY_REPO_ID, "test-repo" ); - reqParams.put( RssFeedProcessor.KEY_GROUP_ID, "org.apache.archiva" ); - reqParams.put( RssFeedProcessor.KEY_ARTIFACT_ID, "artifact-two" ); - - SyndFeed feed = newVersionsProcessor.process( reqParams ); - - assertEquals( "New Versions of Artifact 'org.apache.archiva:artifact-two'", feed.getTitle() ); - assertEquals( - "New versions of artifact 'org.apache.archiva:artifact-two' found in repository 'test-repo' during repository scan.", - feed.getDescription() ); - assertEquals( "en-us", feed.getLanguage() ); - assertEquals( artifacts.get( 2 ).getModel().getWhenGathered(), feed.getPublishedDate() ); - - List entries = feed.getEntries(); - - assertEquals( 2, entries.size() ); - - assertEquals( "New Versions of Artifact 'org.apache.archiva:artifact-two' as of " + whenGathered, - entries.get( 0 ).getTitle() ); - assertEquals( whenGathered, entries.get( 0 ).getPublishedDate() ); - - assertEquals( "New Versions of Artifact 'org.apache.archiva:artifact-two' as of " + whenGatheredNext, - entries.get( 1 ).getTitle() ); - assertEquals( whenGatheredNext, entries.get( 1 ).getPublishedDate() ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/stubs/ArtifactDAOStub.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/stubs/ArtifactDAOStub.java deleted file mode 100644 index 6337c0b21..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/stubs/ArtifactDAOStub.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.apache.archiva.rss.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.util.List; - -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.model.ArchivaArtifact; - -/** - * ArtifactDAO stub. - * - * @author Maria Odea Ching - * @version * - */ -public class ArtifactDAOStub - implements ArtifactDAO -{ - private List artifacts; - - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - { - // TODO Auto-generated method stub - return null; - } - - public void deleteArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - // TODO Auto-generated method stub - - } - - public ArchivaArtifact getArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - // TODO Auto-generated method stub - return null; - } - - public List queryArtifacts( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - return artifacts; - } - - public ArchivaArtifact saveArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - // TODO Auto-generated method stub - return null; - } - - public void setArtifacts( List artifacts ) - { - this.artifacts = artifacts; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/pom.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/pom.xml deleted file mode 100644 index e61b0b47b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/pom.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - org.apache.archiva - archiva-web - 1.2-SNAPSHOT - - 4.0.0 - archiva-security - Archiva Web :: Security Configuration - - - org.apache.archiva - archiva-configuration - - - javax.servlet - servlet-api - provided - - - org.codehaus.plexus - plexus-spring - test - - - org.codehaus.redback - redback-system - - - org.codehaus.redback - redback-rbac-model - - - org.codehaus.redback - redback-rbac-role-manager - - - - org.codehaus.redback - redback-authorization-rbac - test - - - org.codehaus.redback - redback-keys-memory - test - - - org.codehaus.redback - redback-users-memory - test - - - org.codehaus.redback - redback-rbac-memory - test - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/AccessDeniedException.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/AccessDeniedException.java deleted file mode 100644 index 2c3ea5e40..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/AccessDeniedException.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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. - */ - -/** - * AccessDeniedException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AccessDeniedException - extends ArchivaSecurityException -{ - public AccessDeniedException( String message, Throwable cause ) - { - super( message, cause ); - } - - public AccessDeniedException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaRoleConstants.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaRoleConstants.java deleted file mode 100644 index 78745ec35..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaRoleConstants.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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 ArchivaRoleConstants -{ - public static final String DELIMITER = " - "; - - // globalish roles - public static final String SYSTEM_ADMINISTRATOR_ROLE = "System Administrator"; - - public static final String USER_ADMINISTRATOR_ROLE = "User Administrator"; - - public static final String GLOBAL_REPOSITORY_MANAGER_ROLE = "Global Repository Manager"; - - public static final String GLOBAL_REPOSITORY_OBSERVER_ROLE = "Global Repository Observer"; - - public static final String REGISTERED_USER_ROLE = "Registered User"; - - public static final String GUEST_ROLE = "Guest"; - - // principals - - public static final String PRINCIPAL_GUEST = "guest"; - - // dynamic role prefixes - public static final String REPOSITORY_MANAGER_ROLE_PREFIX = "Repository Manager"; - - public static final String REPOSITORY_OBSERVER_ROLE_PREFIX = "Repository Observer"; - - // operations - public static final String OPERATION_MANAGE_USERS = "archiva-manage-users"; - - public static final String OPERATION_MANAGE_CONFIGURATION = "archiva-manage-configuration"; - - public static final String OPERATION_ACTIVE_GUEST = "archiva-guest"; - - public static final String OPERATION_RUN_INDEXER = "archiva-run-indexer"; - - public static final String OPERATION_REGENERATE_INDEX = "archiva-regenerate-index"; - - public static final String OPERATION_ACCESS_REPORT = "archiva-access-reports"; - - public static final String OPERATION_ADD_REPOSITORY = "archiva-add-repository"; - - public static final String OPERATION_REPOSITORY_ACCESS = "archiva-read-repository"; - - public static final String OPERATION_DELETE_REPOSITORY = "archiva-delete-repository"; - - public static final String OPERATION_EDIT_REPOSITORY = "archiva-edit-repository"; - - public static final String OPERATION_REPOSITORY_UPLOAD = "archiva-upload-repository"; - - // Role templates - public static final String TEMPLATE_REPOSITORY_MANAGER = "archiva-repository-manager"; - - public static final String TEMPLATE_REPOSITORY_OBSERVER = "archiva-repository-observer"; - - public static final String TEMPLATE_GLOBAL_REPOSITORY_OBSERVER = "archiva-global-repository-observer"; - - public static final String TEMPLATE_SYSTEM_ADMIN = "archiva-system-administrator"; - - public static final String TEMPLATE_GUEST = "archiva-guest"; - - public static String toRepositoryObserverRoleName( String repoId ) - { - return REPOSITORY_OBSERVER_ROLE_PREFIX + " - " + repoId; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaSecurityException.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaSecurityException.java deleted file mode 100644 index 47973fc25..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaSecurityException.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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; - -/** - * ArchivaSecurityException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaSecurityException - extends ArchivaException -{ - public ArchivaSecurityException( String message, Throwable cause ) - { - super( message, cause ); - } - - public ArchivaSecurityException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java deleted file mode 100644 index 7059598df..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java +++ /dev/null @@ -1,128 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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 javax.servlet.http.HttpServletRequest; - -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.authentication.AuthenticationException; -import org.codehaus.plexus.redback.authentication.AuthenticationResult; -import org.codehaus.plexus.redback.authorization.AuthorizationException; -import org.codehaus.plexus.redback.authorization.AuthorizationResult; -import org.codehaus.plexus.redback.authorization.UnauthorizedException; -import org.codehaus.plexus.redback.policy.AccountLockedException; -import org.codehaus.plexus.redback.policy.MustChangePasswordException; -import org.codehaus.plexus.redback.system.DefaultSecuritySession; -import org.codehaus.plexus.redback.system.SecuritySession; -import org.codehaus.plexus.redback.system.SecuritySystem; -import org.codehaus.plexus.redback.users.User; -import org.codehaus.plexus.redback.users.UserNotFoundException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @version - * @plexus.component role="org.apache.maven.archiva.security.ServletAuthenticator" role-hint="default" - */ -public class ArchivaServletAuthenticator - implements ServletAuthenticator -{ - private Logger log = LoggerFactory.getLogger( ArchivaServletAuthenticator.class ); - - /** - * @plexus.requirement - */ - private SecuritySystem securitySystem; - - public boolean isAuthenticated( HttpServletRequest request, AuthenticationResult result ) - throws AuthenticationException, AccountLockedException, MustChangePasswordException - { - if ( result != null && !result.isAuthenticated() ) - { - throw new AuthenticationException( "User Credentials Invalid" ); - } - - return true; - } - - public boolean isAuthorized( HttpServletRequest request, SecuritySession securitySession, String repositoryId, - boolean isWriteRequest ) - throws AuthorizationException, UnauthorizedException - { - // TODO: also check for permission to proxy the resource when MRM-579 is implemented - - String permission = ArchivaRoleConstants.OPERATION_REPOSITORY_ACCESS; - - if ( isWriteRequest ) - { - permission = ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD; - } - - AuthorizationResult authzResult = securitySystem.authorize( securitySession, permission, repositoryId ); - - if ( !authzResult.isAuthorized() ) - { - if ( authzResult.getException() != null ) - { - log.info( "Authorization Denied [ip=" + request.getRemoteAddr() + ",isWriteRequest=" + isWriteRequest + - ",permission=" + permission + ",repo=" + repositoryId + "] : " + - authzResult.getException().getMessage() ); - - throw new UnauthorizedException( "Access denied for repository " + repositoryId ); - } - throw new UnauthorizedException( "User account is locked" ); - } - - return true; - } - - public boolean isAuthorized( String principal, String repoId, boolean isWriteRequest ) - throws UnauthorizedException - { - try - { - String permission = ArchivaRoleConstants.OPERATION_REPOSITORY_ACCESS; - - if ( isWriteRequest ) - { - permission = ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD; - } - - User user = securitySystem.getUserManager().findUser( principal ); - if ( user.isLocked() ) - { - throw new UnauthorizedException( "User account is locked." ); - } - - AuthenticationResult authn = new AuthenticationResult( true, principal, null ); - SecuritySession securitySession = new DefaultSecuritySession( authn, user ); - - return securitySystem.isAuthorized( securitySession, permission, repoId ); - } - catch ( UserNotFoundException e ) - { - throw new UnauthorizedException( e.getMessage() ); - } - catch ( AuthorizationException e ) - { - throw new UnauthorizedException( e.getMessage() ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaStandardRolesCheck.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaStandardRolesCheck.java deleted file mode 100644 index b513d6bee..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaStandardRolesCheck.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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.codehaus.plexus.redback.rbac.RBACManager; -import org.codehaus.plexus.redback.system.check.EnvironmentCheck; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ArchivaStandardRolesCheck tests for the existance of expected / standard roles and permissions. - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.codehaus.plexus.redback.system.check.EnvironmentCheck" - * role-hint="required-roles" - */ -public class ArchivaStandardRolesCheck - implements EnvironmentCheck -{ - private Logger log = LoggerFactory.getLogger( ArchivaStandardRolesCheck.class ); - - /** - * @plexus.requirement role-hint="cached" - */ - private RBACManager rbacManager; - - /** - * boolean detailing if this environment check has been executed - */ - private boolean checked = false; - - @SuppressWarnings("unchecked") - public void validateEnvironment( List violations ) - { - if ( !checked ) - { - String expectedRoles[] = new String[] { - ArchivaRoleConstants.SYSTEM_ADMINISTRATOR_ROLE, - ArchivaRoleConstants.GLOBAL_REPOSITORY_MANAGER_ROLE, - ArchivaRoleConstants.GLOBAL_REPOSITORY_OBSERVER_ROLE, - ArchivaRoleConstants.GUEST_ROLE, - ArchivaRoleConstants.REGISTERED_USER_ROLE, - ArchivaRoleConstants.USER_ADMINISTRATOR_ROLE }; - - log.info( "Checking the existance of required roles." ); - - for ( String roleName : expectedRoles ) - { - if ( !rbacManager.roleExists( roleName ) ) - { - violations.add( "Unable to validate the existances of the '" + roleName + "' role." ); - } - } - - String expectedOperations[] = new String[] { - ArchivaRoleConstants.OPERATION_MANAGE_USERS, - ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, - ArchivaRoleConstants.OPERATION_REGENERATE_INDEX, - ArchivaRoleConstants.OPERATION_RUN_INDEXER, - ArchivaRoleConstants.OPERATION_ACCESS_REPORT, - ArchivaRoleConstants.OPERATION_ADD_REPOSITORY, - ArchivaRoleConstants.OPERATION_DELETE_REPOSITORY, - ArchivaRoleConstants.OPERATION_REPOSITORY_ACCESS, - ArchivaRoleConstants.OPERATION_EDIT_REPOSITORY, - ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD, - ArchivaRoleConstants.OPERATION_REPOSITORY_ACCESS, - "archiva-guest" }; - - log.info( "Checking the existance of required operations." ); - - for ( String operation : expectedOperations ) - { - if ( !rbacManager.operationExists( operation ) ) - { - violations.add( "Unable to validate the existances of the '" + operation + "' operation." ); - } - } - - checked = true; - } - - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaXworkUser.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaXworkUser.java deleted file mode 100644 index c03405425..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaXworkUser.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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.Map; - -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.system.SecuritySession; -import org.codehaus.plexus.redback.system.SecuritySystemConstants; -import org.codehaus.plexus.redback.users.User; -import org.codehaus.plexus.registry.Registry; - -/** - * ArchivaXworkUser - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.security.ArchivaXworkUser" - */ -public class ArchivaXworkUser -{ - /** - * @plexus.requirement role-hint="commons-configuration" - */ - private Registry registry; - - private static final String KEY = "org.codehaus.plexus.redback"; - - private static String guest; - - public String getActivePrincipal( Map sessionMap ) - { - if ( sessionMap == null ) - { - return getGuest(); - } - - SecuritySession securitySession = - (SecuritySession) sessionMap.get( SecuritySystemConstants.SECURITY_SESSION_KEY ); - - if ( securitySession == null ) - { - securitySession = (SecuritySession) sessionMap.get( SecuritySession.ROLE ); - } - - if ( securitySession == null ) - { - return getGuest(); - } - - User user = securitySession.getUser(); - if ( user == null ) - { - return getGuest(); - } - - return (String) user.getPrincipal(); - } - - public String getGuest() - { - if( guest == null || "".equals( guest ) ) - { - Registry subset = registry.getSubset( KEY ); - guest = subset.getString( "redback.default.guest", ArchivaRoleConstants.PRINCIPAL_GUEST ); - } - - return guest; - } - - public void setGuest( String guesT ) - { - guest = guesT; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/DefaultUserRepositories.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/DefaultUserRepositories.java deleted file mode 100644 index 0d8c029bb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/DefaultUserRepositories.java +++ /dev/null @@ -1,165 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.codehaus.plexus.redback.authentication.AuthenticationResult; -import org.codehaus.plexus.redback.authorization.AuthorizationException; -import org.codehaus.plexus.redback.rbac.RBACManager; -import org.codehaus.plexus.redback.role.RoleManager; -import org.codehaus.plexus.redback.role.RoleManagerException; -import org.codehaus.plexus.redback.system.DefaultSecuritySession; -import org.codehaus.plexus.redback.system.SecuritySession; -import org.codehaus.plexus.redback.system.SecuritySystem; -import org.codehaus.plexus.redback.users.User; -import org.codehaus.plexus.redback.users.UserNotFoundException; - -/** - * DefaultUserRepositories - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.security.UserRepositories" role-hint="default" - */ -public class DefaultUserRepositories - implements UserRepositories -{ - /** - * @plexus.requirement - */ - private SecuritySystem securitySystem; - - /** - * @plexus.requirement role-hint="cached" - */ - private RBACManager rbacManager; - - /** - * @plexus.requirement role-hint="default" - */ - private RoleManager roleManager; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - public List getObservableRepositoryIds( String principal ) - throws PrincipalNotFoundException, AccessDeniedException, ArchivaSecurityException - { - - try - { - User user = securitySystem.getUserManager().findUser( principal ); - - if ( user.isLocked() ) - { - throw new AccessDeniedException( "User " + principal + "(" + user.getFullName() + ") is locked." ); - } - - AuthenticationResult authn = new AuthenticationResult( true, principal, null ); - SecuritySession securitySession = new DefaultSecuritySession( authn, user ); - - List repoIds = new ArrayList(); - - List repos = - archivaConfiguration.getConfiguration().getManagedRepositories(); - - for ( ManagedRepositoryConfiguration repo : repos ) - { - try - { - String repoId = repo.getId(); - if ( securitySystem.isAuthorized( securitySession, - ArchivaRoleConstants.OPERATION_REPOSITORY_ACCESS, repoId ) ) - { - repoIds.add( repoId ); - } - } - catch ( AuthorizationException e ) - { - // swallow. - } - } - - return repoIds; - } - catch ( UserNotFoundException e ) - { - throw new PrincipalNotFoundException( "Unable to find principal " + principal + "" ); - } - } - - public void createMissingRepositoryRoles( String repoId ) - throws ArchivaSecurityException - { - try - { - if ( !roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoId ) ) - { - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoId ); - } - - if ( !roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoId ) ) - { - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoId ); - } - } - catch ( RoleManagerException e ) - { - throw new ArchivaSecurityException( - "Unable to create roles for configured repositories: " + e.getMessage(), - e ); - } - } - - public boolean isAuthorizedToUploadArtifacts( String principal, String repoId ) - throws PrincipalNotFoundException, ArchivaSecurityException - { - try - { - User user = securitySystem.getUserManager().findUser( principal ); - - if ( user.isLocked() ) - { - throw new AccessDeniedException( "User " + principal + "(" + user.getFullName() + ") is locked." ); - } - - AuthenticationResult authn = new AuthenticationResult( true, principal, null ); - SecuritySession securitySession = new DefaultSecuritySession( authn, user ); - - return securitySystem.isAuthorized( securitySession, ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD, - repoId ); - - } - catch ( UserNotFoundException e ) - { - throw new PrincipalNotFoundException( "Unable to find principal " + principal + "" ); - } - catch ( AuthorizationException e ) - { - throw new ArchivaSecurityException( e.getMessage() ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/PrincipalNotFoundException.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/PrincipalNotFoundException.java deleted file mode 100644 index 196204436..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/PrincipalNotFoundException.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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. - */ - -/** - * PrincipalNotFoundException - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class PrincipalNotFoundException - extends ArchivaSecurityException -{ - public PrincipalNotFoundException( String message, Throwable cause ) - { - super( message, cause ); - } - - public PrincipalNotFoundException( String message ) - { - super( message ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/SecurityStartup.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/SecurityStartup.java deleted file mode 100644 index ed854668d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/SecurityStartup.java +++ /dev/null @@ -1,208 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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; -import java.util.Map; -import java.util.Map.Entry; - -import org.apache.commons.collections.CollectionUtils; -import org.apache.maven.archiva.common.ArchivaException; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationNames; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.codehaus.plexus.redback.rbac.RBACManager; -import org.codehaus.plexus.redback.rbac.RbacManagerException; -import org.codehaus.plexus.redback.rbac.UserAssignment; -import org.codehaus.plexus.redback.system.check.EnvironmentCheck; -import org.codehaus.plexus.registry.Registry; -import org.codehaus.plexus.registry.RegistryListener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * SecurityStartup - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.security.SecurityStartup" - */ -public class SecurityStartup - implements RegistryListener -{ - private Logger log = LoggerFactory.getLogger( SecurityStartup.class ); - - /** - * @plexus.requirement - */ - private UserRepositories userRepos; - - /** - * @plexus.requirement role-hint="cached" - */ - private RBACManager rbacManager; - - /** - * @plexus.requirement role="org.codehaus.plexus.redback.system.check.EnvironmentCheck" - */ - private Map checkers; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isManagedRepositories( propertyName ) ) - { - createMissingManagedRepositoryRoles( archivaConfiguration.getConfiguration().getManagedRepositories() ); - } - } - - public void assignRepositoryObserverToGuestUser( List repos ) - { - for ( ManagedRepositoryConfiguration repoConfig : repos ) - { - String repoId = repoConfig.getId(); - - // TODO: Use the Redback / UserConfiguration..getString( "redback.default.guest" ) to get the right name. - String principal = "guest"; - - try - { - UserAssignment ua; - - if ( rbacManager.userAssignmentExists( principal ) ) - { - ua = rbacManager.getUserAssignment( principal ); - } - else - { - ua = rbacManager.createUserAssignment( principal ); - } - - ua.addRoleName( ArchivaRoleConstants.toRepositoryObserverRoleName( repoId ) ); - rbacManager.saveUserAssignment( ua ); - } - catch ( RbacManagerException e ) - { - log.warn( - "Unable to add role [" + ArchivaRoleConstants.toRepositoryObserverRoleName( repoId ) - + "] to " + principal + " user.", e ); - } - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* do nothing */ - } - - public void createMissingManagedRepositoryRoles( List repos ) - { - // NOTE: Remote Repositories do not have roles or security placed around them. - - for ( ManagedRepositoryConfiguration repoConfig : repos ) - { - // manage roles for repositories - try - { - userRepos.createMissingRepositoryRoles( repoConfig.getId() ); - } - catch ( ArchivaSecurityException e ) - { - log.warn( e.getMessage(), e ); - } - } - } - - public void createMissingRepositoryRoles( List repoIds ) - { - for ( String repoId : repoIds ) - { - // manage roles for repositories - try - { - userRepos.createMissingRepositoryRoles( repoId ); - } - catch ( ArchivaSecurityException e ) - { - log.warn( e.getMessage(), e ); - } - } - } - - public void executeEnvironmentChecks() - throws ArchivaException - { - if ( ( checkers == null ) || CollectionUtils.isEmpty( checkers.values() ) ) - { - throw new ArchivaException( "Unable to initialize the Redback Security Environment, " - + "no Environment Check components found." ); - } - - List violations = new ArrayList(); - - for ( Entry entry : checkers.entrySet() ) - { - EnvironmentCheck check = entry.getValue(); - log.info( "Running Environment Check: " + entry.getKey() ); - check.validateEnvironment( violations ); - } - - if ( CollectionUtils.isNotEmpty( violations ) ) - { - StringBuffer msg = new StringBuffer(); - msg.append( "EnvironmentCheck Failure.\n" ); - msg.append( "======================================================================\n" ); - msg.append( " ENVIRONMENT FAILURE !! \n" ); - msg.append( "\n" ); - - for ( String violation : violations ) - { - msg.append( violation ).append( "\n" ); - } - - msg.append( "\n" ); - msg.append( "======================================================================" ); - log.error( msg.toString() ); - - throw new ArchivaException( "Unable to initialize Redback Security Environment, [" + violations.size() - + "] violation(s) encountered, See log for details." ); - } - } - - public void startup() - throws ArchivaException - { - executeEnvironmentChecks(); - - createMissingManagedRepositoryRoles( archivaConfiguration.getConfiguration().getManagedRepositories() ); - archivaConfiguration.addChangeListener( this ); - - if ( archivaConfiguration.isDefaulted() ) - { - assignRepositoryObserverToGuestUser( archivaConfiguration.getConfiguration().getManagedRepositories() ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ServletAuthenticator.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ServletAuthenticator.java deleted file mode 100644 index adc6ad1ab..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ServletAuthenticator.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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 javax.servlet.http.HttpServletRequest; - -import org.codehaus.plexus.redback.authentication.AuthenticationException; -import org.codehaus.plexus.redback.authentication.AuthenticationResult; -import org.codehaus.plexus.redback.authorization.AuthorizationException; -import org.codehaus.plexus.redback.authorization.UnauthorizedException; -import org.codehaus.plexus.redback.policy.AccountLockedException; -import org.codehaus.plexus.redback.policy.MustChangePasswordException; -import org.codehaus.plexus.redback.system.SecuritySession; - -/** - * @author Maria Odea Ching - * @version - */ -public interface ServletAuthenticator -{ - /** - * Authentication check for users. - * - * @param request - * @param result - * @return - * @throws AuthenticationException - * @throws AccountLockedException - * @throws MustChangePasswordException - */ - public boolean isAuthenticated( HttpServletRequest request, AuthenticationResult result ) - throws AuthenticationException, AccountLockedException, MustChangePasswordException; - - /** - * Authorization check for valid users. - * - * @param request - * @param securitySession - * @param repositoryId - * @param isWriteRequest - * @return - * @throws AuthorizationException - * @throws UnauthorizedException - */ - public boolean isAuthorized( HttpServletRequest request, SecuritySession securitySession, String repositoryId, - boolean isWriteRequest ) throws AuthorizationException, UnauthorizedException; - - /** - * Authorization check specific for user guest, which doesn't go through - * HttpBasicAuthentication#getAuthenticationResult( HttpServletRequest request, HttpServletResponse response ) - * since no credentials are attached to the request. - * - * See also MRM-911 - * - * @param principal - * @param repoId - * @param isWriteRequest - * @return - * @throws UnauthorizedException - */ - public boolean isAuthorized( String principal, String repoId, boolean isWriteRequest ) - throws UnauthorizedException; -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/UserRepositories.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/UserRepositories.java deleted file mode 100644 index 4ea6c7f2d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/UserRepositories.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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; - -/** - * UserRepositories - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public interface UserRepositories -{ - /** - * Get the list of observable repository ids for the user specified. - * - * @param principal the principle to obtain the observable repository ids from. - * @return the list of observable repository ids. - * @throws PrincipalNotFoundException - * @throws AccessDeniedException - * @throws ArchivaSecurityException - */ - public List getObservableRepositoryIds( String principal ) - throws PrincipalNotFoundException, AccessDeniedException, ArchivaSecurityException; - - /** - * Create any missing repository roles for the provided repository id. - * - * @param repoId the repository id to work off of. - * @throws ArchivaSecurityException if there was a problem creating the repository roles. - */ - public void createMissingRepositoryRoles( String repoId ) - throws ArchivaSecurityException; - - /** - * Check if user is authorized to upload artifacts in the repository. - * - * @param principal - * @param repoId - * @return - * @throws PrincipalNotFoundException - * @throws ArchivaSecurityException - */ - public boolean isAuthorizedToUploadArtifacts( String principal, String repoId) - throws PrincipalNotFoundException, ArchivaSecurityException; - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/resources/META-INF/redback/redback.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/resources/META-INF/redback/redback.xml deleted file mode 100644 index 4a12cb481..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/main/resources/META-INF/redback/redback.xml +++ /dev/null @@ -1,228 +0,0 @@ - - 1.0.0 - - - Archiva - 1.0 - - - archiva-manage-users - archiva-manage-users - Manage Archiva Users - - - archiva-manage-configuration - archiva-manage-configuration - Manage Archiva Configuration - - - archiva-regenerate-index - archiva-regenerate-index - Regenerate Archiva Index - - - archiva-run-indexer - archiva-run-indexer - Run Archiva Indexer - - - archiva-access-reports - archiva-access-reports - Access Archiva Reports - - - archiva-add-repository - archiva-add-repository - Add Archiva Repository - - - archiva-delete-repository - archiva-delete-repository - Delete Archiva Repository - - - archiva-read-repository - archiva-read-repository - Read Archiva Repository - - - archiva-edit-repository - archiva-edit-repository - Edit Archiva Repository - - - archiva-upload-repository - archiva-upload-repository - Upload Archiva Repository - - - archiva-access-repository - archiva-access-repository - Access Archiva Repository - - - archiva-guest - archiva-guest - Active Archiva Guest - - - - - archiva-system-administrator - Archiva System Administrator - true - false - - - archiva-manage-configuration - archiva-manage-configuration - archiva-manage-configuration - global - true - - - archiva-manage-users - archiva-manage-users - archiva-manage-users - global - true - - - archiva-run-indexer - archiva-run-indexer - archiva-run-indexer - global - true - - - archiva-regenerate-index - archiva-regenerate-index - archiva-regenerate-index - global - true - - - archiva-access-reports - archiva-access-reports - archiva-access-reports - global - true - - - - archiva-global-repository-manager - - - system-administrator - - - - archiva-user-administrator - Archiva User Administrator - true - false - - - archiva-guest - Archiva Guest Permission - archiva-guest - global - true - - - - user-administrator - - - - archiva-guest - Archiva Guest - true - false - - - archiva-guest - Archiva Guest Permission - archiva-guest - global - true - - - - guest - - - - archiva-global-repository-manager - Global Repository Manager - true - true - - - archiva-add-repository - Archiva Add Repository - archiva-add-repository - global - true - - - - - archiva-global-repository-observer - Global Repository Observer - true - true - - - - - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/AbstractSecurityTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/AbstractSecurityTest.java deleted file mode 100644 index 399c87eed..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/AbstractSecurityTest.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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.io.FileUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.codehaus.plexus.redback.rbac.RBACManager; -import org.codehaus.plexus.redback.role.RoleManager; -import org.codehaus.plexus.redback.system.SecuritySystem; -import org.codehaus.plexus.redback.users.User; -import org.codehaus.plexus.redback.users.UserManager; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * AbstractSecurityTest - * - * @author Maria Odea Ching - * @version $Id: AbstractSecurityTest - */ -public abstract class AbstractSecurityTest - extends PlexusInSpringTestCase -{ - protected static final String USER_GUEST = "guest"; - - protected static final String USER_ADMIN = "admin"; - - protected static final String USER_ALPACA = "alpaca"; - - protected SecuritySystem securitySystem; - - private RBACManager rbacManager; - - protected RoleManager roleManager; - - private ArchivaConfiguration archivaConfiguration; - - protected UserRepositories userRepos; - - protected void setupRepository( String repoId ) - throws Exception - { - // Add repo to configuration. - ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration(); - repoConfig.setId( repoId ); - repoConfig.setName( "Testable repo <" + repoId + ">" ); - repoConfig.setLocation( getTestPath( "target/test-repo/" + repoId ) ); - archivaConfiguration.getConfiguration().addManagedRepository( repoConfig ); - - // Add repo roles to security. - userRepos.createMissingRepositoryRoles( repoId ); - } - - protected void assignRepositoryObserverRole( String principal, String repoId ) - throws Exception - { - roleManager.assignTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoId, principal ); - } - - protected User createUser( String principal, String fullname ) - { - UserManager userManager = securitySystem.getUserManager(); - - User user = userManager.createUser( principal, fullname, principal + "@testable.archiva.apache.org" ); - securitySystem.getPolicy().setEnabled( false ); - userManager.addUser( user ); - securitySystem.getPolicy().setEnabled( true ); - - return user; - } - - @Override - public void setUp() - throws Exception - { - super.setUp(); - - File srcConfig = getTestFile( "src/test/resources/repository-archiva.xml" ); - File destConfig = getTestFile( "target/test-conf/archiva.xml" ); - - destConfig.getParentFile().mkdirs(); - destConfig.delete(); - - FileUtils.copyFile( srcConfig, destConfig ); - - securitySystem = (SecuritySystem) lookup( SecuritySystem.class, "testable" ); - rbacManager = (RBACManager) lookup( RBACManager.class, "memory" ); - roleManager = (RoleManager) lookup( RoleManager.class, "default" ); - userRepos = (UserRepositories) lookup( UserRepositories.class, "default" ); - archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.class ); - - // Some basic asserts. - assertNotNull( securitySystem ); - assertNotNull( rbacManager ); - assertNotNull( roleManager ); - assertNotNull( userRepos ); - assertNotNull( archivaConfiguration ); - - // Setup Admin User. - User adminUser = createUser( USER_ADMIN, "Admin User" ); - roleManager.assignRole( ArchivaRoleConstants.TEMPLATE_SYSTEM_ADMIN, adminUser.getPrincipal().toString() ); - - // Setup Guest User. - User guestUser = createUser( USER_GUEST, "Guest User" ); - roleManager.assignRole( ArchivaRoleConstants.TEMPLATE_GUEST, guestUser.getPrincipal().toString() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.java deleted file mode 100644 index d100b88ac..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.java +++ /dev/null @@ -1,224 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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 javax.servlet.http.HttpServletRequest; - -import org.codehaus.plexus.redback.authentication.AuthenticationException; -import org.codehaus.plexus.redback.authentication.AuthenticationResult; -import org.codehaus.plexus.redback.authorization.UnauthorizedException; -import org.codehaus.plexus.redback.system.DefaultSecuritySession; -import org.codehaus.plexus.redback.system.SecuritySession; -import org.codehaus.plexus.redback.users.User; -import org.codehaus.plexus.redback.users.UserManager; - -import org.easymock.MockControl; - -/** - * ArchivaServletAuthenticatorTest - * - * @author Maria Odea Ching - * @version - */ -public class ArchivaServletAuthenticatorTest - extends AbstractSecurityTest -{ - private ServletAuthenticator servletAuth; - - private MockControl httpServletRequestControl; - - private HttpServletRequest request; - - @Override - public void setUp() - throws Exception - { - super.setUp(); - - servletAuth = ( ServletAuthenticator ) lookup( ServletAuthenticator.class, "default" ); - - httpServletRequestControl = MockControl.createControl( HttpServletRequest.class ); - request = ( HttpServletRequest ) httpServletRequestControl.getMock(); - - setupRepository( "corporate" ); - } - - @Override - protected String getPlexusConfigLocation() - { - return "org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.xml"; - } - - protected void assignRepositoryManagerRole( String principal, String repoId ) - throws Exception - { - roleManager.assignTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoId, principal ); - } - - public void testIsAuthenticatedUserExists() - throws Exception - { - AuthenticationResult result = new AuthenticationResult( true, "user", null ); - boolean isAuthenticated = servletAuth.isAuthenticated( request, result ); - - assertTrue( isAuthenticated ); - } - - public void testIsAuthenticatedUserDoesNotExist() - throws Exception - { - AuthenticationResult result = new AuthenticationResult( false, "non-existing-user", null ); - try - { - servletAuth.isAuthenticated( request, result ); - fail( "Authentication exception should have been thrown." ); - } - catch ( AuthenticationException e ) - { - assertEquals( "User Credentials Invalid", e.getMessage() ); - } - } - - public void testIsAuthorizedUserHasWriteAccess() - throws Exception - { - createUser( USER_ALPACA, "Al 'Archiva' Paca" ); - - assignRepositoryManagerRole( USER_ALPACA, "corporate" ); - - UserManager userManager = securitySystem.getUserManager(); - User user = userManager.findUser( USER_ALPACA ); - - AuthenticationResult result = new AuthenticationResult( true, USER_ALPACA, null ); - - SecuritySession session = new DefaultSecuritySession( result, user ); - boolean isAuthorized = servletAuth.isAuthorized( request, session, "corporate", true ); - - assertTrue( isAuthorized ); - } - - public void testIsAuthorizedUserHasNoWriteAccess() - throws Exception - { - createUser( USER_ALPACA, "Al 'Archiva' Paca" ); - - assignRepositoryObserverRole( USER_ALPACA, "corporate" ); - - httpServletRequestControl.expectAndReturn( request.getRemoteAddr(), "192.168.111.111" ); - - UserManager userManager = securitySystem.getUserManager(); - User user = userManager.findUser( USER_ALPACA ); - - AuthenticationResult result = new AuthenticationResult( true, USER_ALPACA, null ); - - SecuritySession session = new DefaultSecuritySession( result, user ); - - httpServletRequestControl.replay(); - - try - { - servletAuth.isAuthorized( request, session, "corporate", true ); - fail( "UnauthorizedException should have been thrown." ); - } - catch ( UnauthorizedException e ) - { - assertEquals( "Access denied for repository corporate", e.getMessage() ); - } - - httpServletRequestControl.verify(); - } - - - public void testIsAuthorizedUserHasReadAccess() - throws Exception - { - createUser( USER_ALPACA, "Al 'Archiva' Paca" ); - - assignRepositoryObserverRole( USER_ALPACA, "corporate" ); - - UserManager userManager = securitySystem.getUserManager(); - User user = userManager.findUser( USER_ALPACA ); - - AuthenticationResult result = new AuthenticationResult( true, USER_ALPACA, null ); - - SecuritySession session = new DefaultSecuritySession( result, user ); - boolean isAuthorized = servletAuth.isAuthorized( request, session, "corporate", false ); - - assertTrue( isAuthorized ); - } - - public void testIsAuthorizedUserHasNoReadAccess() - throws Exception - { - createUser( USER_ALPACA, "Al 'Archiva' Paca" ); - - UserManager userManager = securitySystem.getUserManager(); - User user = userManager.findUser( USER_ALPACA ); - - AuthenticationResult result = new AuthenticationResult( true, USER_ALPACA, null ); - - SecuritySession session = new DefaultSecuritySession( result, user ); - try - { - servletAuth.isAuthorized( request, session, "corporate", false ); - fail( "UnauthorizedException should have been thrown." ); - } - catch ( UnauthorizedException e ) - { - assertEquals( "Access denied for repository corporate", e.getMessage() ); - } - } - - public void testIsAuthorizedGuestUserHasWriteAccess() - throws Exception - { - assignRepositoryManagerRole( USER_GUEST, "corporate" ); - boolean isAuthorized = servletAuth.isAuthorized( USER_GUEST, "corporate", true ); - - assertTrue( isAuthorized ); - } - - public void testIsAuthorizedGuestUserHasNoWriteAccess() - throws Exception - { - assignRepositoryObserverRole( USER_GUEST, "corporate" ); - - boolean isAuthorized = servletAuth.isAuthorized( USER_GUEST, "corporate", true ); - assertFalse( isAuthorized ); - } - - public void testIsAuthorizedGuestUserHasReadAccess() - throws Exception - { - assignRepositoryObserverRole( USER_GUEST, "corporate" ); - - boolean isAuthorized = servletAuth.isAuthorized( USER_GUEST, "corporate", false ); - - assertTrue( isAuthorized ); - } - - public void testIsAuthorizedGuestUserHasNoReadAccess() - throws Exception - { - boolean isAuthorized = servletAuth.isAuthorized( USER_GUEST, "corporate", false ); - - assertFalse( isAuthorized ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.java deleted file mode 100644 index a9f8c1897..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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.commons.lang.StringUtils; - -/** - * DefaultUserRepositoriesTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DefaultUserRepositoriesTest - extends AbstractSecurityTest -{ - @Override - protected String getPlexusConfigLocation() - { - return "org/apache/maven/archiva/security/DefaultUserRepositoriesTest.xml"; - } - - public void testGetObservableRepositoryIds() - throws Exception - { - // create some users. - createUser( USER_ALPACA, "Al 'Archiva' Paca" ); - - assertEquals( "Expected users", 3, securitySystem.getUserManager().getUsers().size() ); - - // some unassigned repo observer roles. - setupRepository( "central" ); - setupRepository( "corporate" ); - setupRepository( "internal" ); - setupRepository( "snapshots" ); - setupRepository( "secret" ); - - // some assigned repo observer roles. - assignRepositoryObserverRole( USER_ALPACA, "corporate" ); - assignRepositoryObserverRole( USER_ALPACA, "central" ); - assignRepositoryObserverRole( USER_GUEST, "corporate" ); - // the global repo observer role. - assignGlobalRepositoryObserverRole( USER_ADMIN ); - - assertRepoIds( new String[] { "central", "corporate" }, userRepos.getObservableRepositoryIds( USER_ALPACA ) ); - assertRepoIds( new String[] { "coporate" }, userRepos.getObservableRepositoryIds( USER_GUEST ) ); - assertRepoIds( new String[] { "central", "internal", "corporate", "snapshots", "secret" }, userRepos - .getObservableRepositoryIds( USER_ADMIN ) ); - } - - private void assertRepoIds( String[] expectedRepoIds, List observableRepositoryIds ) - { - assertNotNull( "Observable Repository Ids cannot be null.", observableRepositoryIds ); - - if ( expectedRepoIds.length != observableRepositoryIds.size() ) - { - fail( "Size of Observable Repository Ids wrong, expected <" + expectedRepoIds.length + "> but got <" - + observableRepositoryIds.size() + "> instead. \nExpected: [" + StringUtils.join( expectedRepoIds, "," ) - + "]\nActual: [" + StringUtils.join( observableRepositoryIds.iterator(), "," ) + "]" ); - } - } - - private void assignGlobalRepositoryObserverRole( String principal ) - throws Exception - { - roleManager.assignRole( ArchivaRoleConstants.TEMPLATE_GLOBAL_REPOSITORY_OBSERVER, principal ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/RoleManagerTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/RoleManagerTest.java deleted file mode 100644 index f2a4474c4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/RoleManagerTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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.spring.PlexusInSpringTestCase; -import org.codehaus.plexus.redback.role.RoleManager; - -/** - * RoleProfilesTest - * - * @author Joakim Erdfelt - * @version $Id: RoleManagerTest.java 4330 2007-05-10 17:28:56Z jmcconnell $ - */ -public class RoleManagerTest - extends PlexusInSpringTestCase -{ - /** - * @plexus.requirement role-hint="default" - */ - RoleManager roleManager; - - protected void setUp() - throws Exception - { - super.setUp(); - - roleManager = (RoleManager) lookup( RoleManager.ROLE, "default" ); - } - - public void testExpectedRoles() - throws Exception - { - assertNotNull( roleManager ); - - assertTrue( roleManager.roleExists( "system-administrator" ) ); - assertTrue( roleManager.roleExists( "user-administrator" ) ); - assertTrue( roleManager.roleExists( "archiva-global-repository-observer" ) ); - assertTrue( roleManager.roleExists( "archiva-guest" ) ); - assertTrue( roleManager.roleExists( "guest" ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/SecurityStartupTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/SecurityStartupTest.java deleted file mode 100644 index 7096133cc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/java/org/apache/maven/archiva/security/SecurityStartupTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.apache.maven.archiva.security; - -/* - * 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.spring.PlexusInSpringTestCase; - -/** - * SecurityStartupTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class SecurityStartupTest - extends PlexusInSpringTestCase -{ - private SecurityStartup secStart; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - secStart = (SecurityStartup) lookup( SecurityStartup.class ); - } - - public void testEnvironmentChecks() - throws Exception - { - secStart.executeEnvironmentChecks(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/META-INF/redback/redback-core.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/META-INF/redback/redback-core.xml deleted file mode 100644 index 6e6457b80..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/META-INF/redback/redback-core.xml +++ /dev/null @@ -1,204 +0,0 @@ - - 1.0.0 - - - Redback XWork Integration Security Core - 1.0 - - - global - * - true - - global resource implies full access for authorization - - - - username - ${username} - true - - replaced with the username of the principal at authorization - check time - - - - - - configuration-edit - configuration-edit - edit configuration - true - - - user-management-user-create - user-management-user-create - create user - true - - - user-management-user-edit - user-management-user-edit - edit user - true - - - user-management-user-role - user-management-user-role - user roles - true - - - user-management-user-delete - user-management-user-delete - delete user - true - - - user-management-user-list - user-management-user-list - list users - true - - - user-management-role-grant - user-management-role-grant - grant role - true - - - user-management-role-drop - user-management-role-drop - drop role - true - - - user-management-rbac-admin - user-management-rbac-admin - administer rbac - true - - - guest-access - guest-access - access guest - true - - - - - system-administrator - System Administrator - true - true - - - edit-redback-configuration - Edit Redback Configuration - configuration-edit - global - true - - - manage-rbac-setup - User RBAC Management - user-management-rbac-admin - global - true - - - - user-administrator - - - - user-administrator - User Administrator - true - true - - - drop-roles-for-anyone - Drop Roles for Anyone - user-management-role-drop - global - true - - - grant-roles-for-anyone - Grant Roles for Anyone - user-management-role-grant - global - true - - - user-create - Create Users - user-management-user-create - global - true - - - user-delete - Delete Users - user-management-user-delete - global - true - - - user-edit - Edit Users - user-management-user-edit - global - true - - - access-users-roles - Access Users Roles - user-management-user-role - global - true - - - access-user-list - Access User List - user-management-user-list - global - true - - - - - registered-user - Registered User - true - true - - - edit-user-by-username - Edit User Data by Username - user-management-user-edit - username - true - - - - - guest - Guest - true - true - - - guest-permission - Guest Permission - guest-access - global - true - - - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/log4j.properties b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/log4j.properties deleted file mode 100644 index 6d107570b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/log4j.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Set root logger level to DEBUG and its only appender to A1. -log4j.rootLogger=INFO, A1 - -# A1 is set to be a ConsoleAppender. -log4j.appender.A1=org.apache.log4j.ConsoleAppender - -# A1 uses PatternLayout. -log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.xml deleted file mode 100644 index adfb9b2b4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/ArchivaServletAuthenticatorTest.xml +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - org.apache.maven.archiva.security.ServletAuthenticator - default - org.apache.maven.archiva.security.ArchivaServletAuthenticator - ArchivaServletAuthenticator - - - org.codehaus.plexus.redback.system.SecuritySystem - testable - securitySystem - - - - - - org.apache.maven.archiva.security.UserRepositories - default - org.apache.maven.archiva.security.DefaultUserRepositories - DefaultUserRepositories - - - org.codehaus.plexus.redback.system.SecuritySystem - testable - securitySystem - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - org.codehaus.plexus.redback.role.RoleManager - default - roleManager - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - archivaConfiguration - - - - - - org.codehaus.plexus.redback.system.SecuritySystem - testable - org.codehaus.plexus.redback.system.DefaultSecuritySystem - DefaultSecuritySystem: - - - org.codehaus.plexus.redback.authentication.AuthenticationManager - authnManager - - - org.codehaus.plexus.redback.authorization.Authorizer - rbac - authorizer - - - org.codehaus.plexus.redback.users.UserManager - memory - userManager - - - org.codehaus.plexus.redback.keys.KeyManager - memory - keyManager - - - org.codehaus.plexus.redback.policy.UserSecurityPolicy - policy - - - - - - org.codehaus.plexus.redback.authorization.Authorizer - rbac - org.codehaus.plexus.redback.authorization.rbac.RbacAuthorizer - RbacAuthorizer: - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - manager - - - org.codehaus.plexus.redback.users.UserManager - memory - userManager - - - org.codehaus.plexus.redback.authorization.rbac.evaluator.PermissionEvaluator - default - evaluator - - - org.codehaus.plexus.redback.configuration.UserConfiguration - default - config - - - - - - org.codehaus.plexus.redback.authorization.rbac.evaluator.PermissionEvaluator - default - org.codehaus.plexus.redback.authorization.rbac.evaluator.DefaultPermissionEvaluator - - - org.codehaus.plexus.redback.users.UserManager - memory - userManager - - - - - - org.codehaus.plexus.redback.role.RoleManager - default - org.codehaus.plexus.redback.role.DefaultRoleManager - RoleProfileManager: - - - org.codehaus.plexus.redback.role.validator.RoleModelValidator - default - modelValidator - - - org.codehaus.plexus.redback.role.processor.RoleModelProcessor - default - modelProcessor - - - org.codehaus.plexus.redback.role.template.RoleTemplateProcessor - default - templateProcessor - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - - org.codehaus.plexus.redback.role.processor.RoleModelProcessor - default - org.codehaus.plexus.redback.role.processor.DefaultRoleModelProcessor - DefaultRoleModelProcessor: inserts the components of the model that can be populated into the rbac manager - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - - org.codehaus.plexus.redback.role.template.RoleTemplateProcessor - default - org.codehaus.plexus.redback.role.template.DefaultRoleTemplateProcessor - DefaultRoleTemplateProcessor: inserts the components of a template into the rbac manager - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configured - - - - - org.codehaus.plexus.registry.Registry - configured - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.xml deleted file mode 100644 index 8d43cac8d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/DefaultUserRepositoriesTest.xml +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - org.apache.maven.archiva.security.UserRepositories - default - org.apache.maven.archiva.security.DefaultUserRepositories - DefaultUserRepositories - - - org.codehaus.plexus.redback.system.SecuritySystem - testable - securitySystem - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - org.codehaus.plexus.redback.role.RoleManager - default - roleManager - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - archivaConfiguration - - - - - - org.codehaus.plexus.redback.system.SecuritySystem - testable - org.codehaus.plexus.redback.system.DefaultSecuritySystem - DefaultSecuritySystem: - - - org.codehaus.plexus.redback.authentication.AuthenticationManager - authnManager - - - org.codehaus.plexus.redback.authorization.Authorizer - rbac - authorizer - - - org.codehaus.plexus.redback.users.UserManager - memory - userManager - - - org.codehaus.plexus.redback.keys.KeyManager - memory - keyManager - - - org.codehaus.plexus.redback.policy.UserSecurityPolicy - policy - - - - - - org.codehaus.plexus.redback.authorization.Authorizer - rbac - org.codehaus.plexus.redback.authorization.rbac.RbacAuthorizer - RbacAuthorizer: - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - manager - - - org.codehaus.plexus.redback.users.UserManager - memory - userManager - - - org.codehaus.plexus.redback.authorization.rbac.evaluator.PermissionEvaluator - default - evaluator - - - org.codehaus.plexus.redback.configuration.UserConfiguration - default - config - - - - - - org.codehaus.plexus.redback.authorization.rbac.evaluator.PermissionEvaluator - default - org.codehaus.plexus.redback.authorization.rbac.evaluator.DefaultPermissionEvaluator - - - org.codehaus.plexus.redback.users.UserManager - memory - userManager - - - - - - org.codehaus.plexus.redback.role.RoleManager - default - org.codehaus.plexus.redback.role.DefaultRoleManager - RoleProfileManager: - - - org.codehaus.plexus.redback.role.validator.RoleModelValidator - default - modelValidator - - - org.codehaus.plexus.redback.role.processor.RoleModelProcessor - default - modelProcessor - - - org.codehaus.plexus.redback.role.template.RoleTemplateProcessor - default - templateProcessor - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - - org.codehaus.plexus.redback.role.processor.RoleModelProcessor - default - org.codehaus.plexus.redback.role.processor.DefaultRoleModelProcessor - DefaultRoleModelProcessor: inserts the components of the model that can be populated into the rbac manager - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - - org.codehaus.plexus.redback.role.template.RoleTemplateProcessor - default - org.codehaus.plexus.redback.role.template.DefaultRoleTemplateProcessor - DefaultRoleTemplateProcessor: inserts the components of a template into the rbac manager - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configured - - - - - org.codehaus.plexus.registry.Registry - configured - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/RoleManagerTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/RoleManagerTest.xml deleted file mode 100644 index f32a77d10..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/RoleManagerTest.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - org.codehaus.plexus.redback.role.RoleManager - default - org.codehaus.plexus.redback.role.DefaultRoleManager - RoleProfileManager: - - - org.codehaus.plexus.redback.role.validator.RoleModelValidator - default - modelValidator - - - org.codehaus.plexus.redback.role.processor.RoleModelProcessor - default - modelProcessor - - - org.codehaus.plexus.redback.role.template.RoleTemplateProcessor - default - templateProcessor - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - org.codehaus.plexus.redback.role.processor.RoleModelProcessor - default - org.codehaus.plexus.redback.role.processor.DefaultRoleModelProcessor - DefaultRoleModelProcessor: inserts the components of the model that can be populated into the rbac manager - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - - org.codehaus.plexus.redback.role.template.RoleTemplateProcessor - default - org.codehaus.plexus.redback.role.template.DefaultRoleTemplateProcessor - DefaultRoleTemplateProcessor: inserts the components of a template into the rbac manager - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - org.codehaus.plexus.redback.system.check.EnvironmentCheck - required-roles - org.apache.maven.archiva.security.ArchivaStandardRolesCheck - ArchivaStandardRolesCheck tests for the existance of expected / standard roles and permissions. - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - - org.apache.maven.archiva.security.SecurityStartup - org.apache.maven.archiva.security.SecurityStartup - SecurityStartup - - - org.codehaus.plexus.redback.role.RoleManager - default - roleManager - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - org.codehaus.plexus.redback.system.check.EnvironmentCheck - checkers - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - archivaConfiguration - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/SecurityStartupTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/SecurityStartupTest.xml deleted file mode 100644 index 0ff02e859..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/org/apache/maven/archiva/security/SecurityStartupTest.xml +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - org.codehaus.plexus.redback.system.check.EnvironmentCheck - required-roles - org.apache.maven.archiva.security.ArchivaStandardRolesCheck - ArchivaStandardRolesCheck tests for the existance of expected / standard roles and permissions. - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - - org.apache.maven.archiva.security.SecurityStartup - org.apache.maven.archiva.security.SecurityStartup - SecurityStartup - - - org.apache.maven.archiva.security.UserRepositories - userRepos - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - org.codehaus.plexus.redback.system.check.EnvironmentCheck - checkers - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - archivaConfiguration - - - - - - org.apache.maven.archiva.security.UserRepositories - default - org.apache.maven.archiva.security.DefaultUserRepositories - DefaultUserRepositories - - - org.codehaus.plexus.redback.system.SecuritySystem - testable - securitySystem - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - org.codehaus.plexus.redback.role.RoleManager - default - roleManager - - - - - - org.codehaus.plexus.redback.role.template.RoleTemplateProcessor - default - org.codehaus.plexus.redback.role.template.DefaultRoleTemplateProcessor - DefaultRoleTemplateProcessor: inserts the components of a template into the rbac manager - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - - org.codehaus.plexus.redback.role.processor.RoleModelProcessor - default - org.codehaus.plexus.redback.role.processor.DefaultRoleModelProcessor - DefaultRoleModelProcessor: inserts the components of the model that can be populated into the rbac manager - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - - - - org.codehaus.plexus.redback.role.RoleManager - default - org.codehaus.plexus.redback.role.DefaultRoleManager - singleton - RoleProfileManager: - - - org.codehaus.plexus.redback.role.validator.RoleModelValidator - default - modelValidator - - - org.codehaus.plexus.redback.role.processor.RoleModelProcessor - default - modelProcessor - - - org.codehaus.plexus.redback.role.template.RoleTemplateProcessor - default - templateProcessor - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - rbacManager - - - org.codehaus.plexus.PlexusContainer - container - - - - - - org.codehaus.plexus.redback.system.SecuritySystem - testable - org.codehaus.plexus.redback.system.DefaultSecuritySystem - DefaultSecuritySystem: - - - org.codehaus.plexus.redback.authentication.AuthenticationManager - authnManager - - - org.codehaus.plexus.redback.authorization.Authorizer - rbac - authorizer - - - org.codehaus.plexus.redback.users.UserManager - memory - userManager - - - org.codehaus.plexus.redback.keys.KeyManager - memory - keyManager - - - org.codehaus.plexus.redback.policy.UserSecurityPolicy - policy - - - - - - org.codehaus.plexus.redback.authorization.Authorizer - rbac - org.codehaus.plexus.redback.authorization.rbac.RbacAuthorizer - RbacAuthorizer: - - - org.codehaus.plexus.redback.rbac.RBACManager - memory - manager - - - org.codehaus.plexus.redback.users.UserManager - memory - userManager - - - org.codehaus.plexus.redback.authorization.rbac.evaluator.PermissionEvaluator - default - evaluator - - - org.codehaus.plexus.redback.configuration.UserConfiguration - default - config - - - - - - org.codehaus.plexus.redback.authorization.rbac.evaluator.PermissionEvaluator - default - org.codehaus.plexus.redback.authorization.rbac.evaluator.DefaultPermissionEvaluator - - - org.codehaus.plexus.redback.users.UserManager - memory - userManager - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/repository-archiva.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/repository-archiva.xml deleted file mode 100644 index 997d62b00..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-security/src/test/resources/repository-archiva.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - 2 - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/pom.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/pom.xml deleted file mode 100644 index 4d996f96a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/pom.xml +++ /dev/null @@ -1,321 +0,0 @@ - - - - 4.0.0 - - org.apache.archiva - archiva-web - 1.2-SNAPSHOT - - archiva-webapp-test - pom - Archiva Web :: Application Tests - - - org.codehaus.plexus - plexus-command-line - 1.0-alpha-2 - - - plexus-container-default - org.codehaus.plexus - - - - - org.apache.archiva - archiva-webapp - war - - - org.apache.maven.shared - maven-web-ui-tests - 1.0-SNAPSHOT - test - - - org.codehaus.plexus - plexus-utils - - - org.codehaus.plexus - plexus-slf4j-logging - - - - - jdom - jdom - - - jaxen - jaxen - - - - - org.apache.derby - derby - - - javax.mail - mail - - - javax.activation - activation - - - - src/test/it - - - org.codehaus.mojo - dependency-maven-plugin - - - unzip-archiva-webapp - generate-resources - - unpack - - - - - ${project.groupId} - archiva-webapp - ${project.version} - war - - - ${project.build.directory}/${container.name}conf/webapps/archiva - - - - prepare-provided-dependencies - generate-resources - - copy-dependencies - - - org.apache.derby,javax.mail,javax.activation - false - true - false - ${project.build.directory}/providedDependencies - - - - - - maven-antrun-plugin - - - generate-resources - - run - - - - - - - - - - - - - - - - - - - - - - - - - - copy-container-conf - package - - - - - - - - - - - - - - run - - - - check-archiva-loaded - integration-test - - - - - - - - run - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - - testCompile - - - - - - org.codehaus.mojo - selenium-maven-plugin - 1.0-beta-1 - - - start-selenium - pre-integration-test - - start-server - - - - - true - - - - org.codehaus.cargo - cargo-maven2-plugin - - - start-container - pre-integration-test - - start - - - - stop-container - post-integration-test - - stop - - - - - false - - ${container.name} - - ${container.url} - ${project.build.directory}/installs/${container.name} - - ${project.build.directory}/logs/${container.name}.log - ${project.build.directory}/logs/${container.name}.out - 600000 - - ${project.build.directory}/appserver-base - ${project.build.directory}/appserver-base - - - - ${project.build.directory}/${container.name}conf - existing - - 9696 - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - integration-test - - test - - - - - - - browser - ${browser} - - - - - - - - - tomcat5x - - true - - - tomcat5x - http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.26/bin/apache-tomcat-5.5.26.zip - - - - firefox - - true - - - *firefox - - - - iexplore - - *iexplore - - - - otherbrowser - - *custom ${browserPath} - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/AbstractArchivaTestCase.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/AbstractArchivaTestCase.java deleted file mode 100644 index de0db4e7e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/AbstractArchivaTestCase.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.apache.maven.archiva.web.test; - -/* - * 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.shared.web.test.AbstractSeleniumTestCase; - -/** - * @author Edwin Punzalan - */ -public abstract class AbstractArchivaTestCase - extends AbstractSeleniumTestCase -{ - private String baseUrl = "http://localhost:9696/archiva"; - - protected String getApplicationName() - { - return "Archiva"; - } - - protected String getInceptionYear() - { - return "2005"; - } - - protected void postAdminUserCreation() - { - if ( getTitle().equals( getTitlePrefix() + "Configuration" ) ) - { - //Add Managed Repository - setFieldValue( "id", "test-repository" ); - setFieldValue( "urlName", "test-repository" ); - setFieldValue( "name", "Web UI Test Managed Repository" ); - setFieldValue( "directory", getBasedir() + "/target/repository" ); - clickButtonWithValue( "Add Repository" ); - - //Set Index location - assertPage( "Configuration" ); - setFieldValue( "indexPath", getBasedir() + "/target/index" ); - clickButtonWithValue( "Save Configuration" ); - assertPage( "Administration" ); - } - } - - public void assertHeader() - { - assertTrue( "banner is missing", getSelenium().isElementPresent( "xpath=//div[@id='banner']" ) ); - assertTrue( "bannerLeft is missing", - getSelenium().isElementPresent( "xpath=//div[@id='banner']" + "/span[@id='bannerLeft']" ) ); - assertTrue( "bannerLeft link is missing", getSelenium().isElementPresent( - "xpath=//div[@id='banner']" + "/span[@id='bannerLeft']/a[@href='http://maven.apache.org/archiva/']" ) ); - assertTrue( "bannerLeft img is missing", getSelenium().isElementPresent( "xpath=//div[@id='banner']" + - "/span[@id='bannerLeft']/a[@href='http://maven.apache.org/archiva/']" + "/img[@src='" + getWebContext() + - "/images/archiva.png']" ) ); - - assertTrue( "bannerRight is missing", - getSelenium().isElementPresent( "xpath=//div[@id='banner']/span[@id='bannerRight']" ) ); - } - - protected String getTitlePrefix() - { - return "Maven Archiva :: "; - } - - public String getBaseUrl() - { - return baseUrl; - } - - protected String getWebContext() - { - return "/archiva"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/BrowseRepositoryTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/BrowseRepositoryTest.java deleted file mode 100644 index a02dc1d6a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/BrowseRepositoryTest.java +++ /dev/null @@ -1,194 +0,0 @@ -package org.apache.maven.archiva.web.test; - -/* - * 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. - */ - -/** - * Archiva's webapp UI test for browsing the indexed repository. - * - * @author Napoleon Esmundo C. Ramirez - */ -public class BrowseRepositoryTest - extends AbstractArchivaTestCase -{ - private void browseArtifact() - { - clickLinkWithText( "Browse" ); - assertPage( "Browse Repository" ); - assertTextPresent( "Browse Repository" ); - assertLinkPresent( "org.apache.maven.archiva.web.test/" ); - - clickLinkWithText( "org.apache.maven.archiva.web.test/" ); - assertPage( "Browse Repository" ); - assertTextPresent( "Browse Repository" ); - assertTextPresent( "Artifacts" ); - assertLinkPresent( "artifact-a/" ); - - clickLinkWithText( "artifact-a/" ); - assertPage( "Browse Repository" ); - assertTextPresent( "Browse Repository" ); - assertTextPresent( "Versions" ); - assertLinkPresent( "1.0/" ); - - clickLinkWithText( "1.0/" ); - assertPage( "Browse Repository" ); - assertTextPresent( "artifact-a" ); - assertLinkPresent( "Main" ); - } - - public void testBrowseArtifactInfo() - { - browseArtifact(); - - assertTextPresent( "Info" ); - assertLinkPresent( "Dependencies" ); - assertLinkPresent( "Dependency Tree" ); - assertLinkPresent( "Used By" ); - assertLinkPresent( "Mailing Lists" ); - - assertEquals("Group ID", getSelenium().getTable("//table[1].0.0")); - assertEquals("org.apache.maven.archiva.web.test", getSelenium().getTable("//table[1].0.1")); - assertEquals("Artifact ID", getSelenium().getTable("//table[1].1.0")); - assertEquals("artifact-a", getSelenium().getTable("//table[1].1.1")); - assertEquals("Version", getSelenium().getTable("//table[1].2.0")); - assertEquals("1.0", getSelenium().getTable("//table[1].2.1")); - assertEquals("Packaging", getSelenium().getTable("//table[1].3.0")); - assertEquals("jar", getSelenium().getTable("//table[1].3.1")); - } - - public void testBrowseArtifactDependencies() - { - browseArtifact(); - - clickLinkWithText( "Dependencies" ); - assertLinkPresent( "Info" ); - assertTextPresent( "Dependencies" ); - assertLinkPresent( "Dependency Tree" ); - assertLinkPresent( "Used By" ); - assertLinkPresent( "Mailing Lists" ); - - assertPage( "Browse Repository" ); - assertTextPresent( "artifact-a" ); - assertLinkPresent( "artifact-b" ); - } - - public void testBrowseArtifactDependencyTree() - { - browseArtifact(); - - clickLinkWithText( "Dependency Tree" ); - assertLinkPresent( "Info" ); - assertLinkPresent( "Dependencies" ); - assertTextPresent( "Dependency Tree" ); - assertLinkPresent( "Used By" ); - assertLinkPresent( "Mailing Lists" ); - - assertPage( "Browse Repository" ); - assertTextPresent( "artifact-a" ); - assertLinkPresent( "artifact-b" ); - assertLinkPresent( "artifact-c" ); - } - - public void testBrowseArtifactUsedBy() - { - browseArtifact(); - - clickLinkWithText( "Used By" ); - assertLinkPresent( "Info" ); - assertLinkPresent( "Dependencies" ); - assertLinkPresent( "Dependency Tree" ); - assertTextPresent( "Used By" ); - assertLinkPresent( "Mailing Lists" ); - - assertPage( "Browse Repository" ); - assertTextPresent( "artifact-a" ); - assertLinkPresent( "artifact-s" ); - } - - public void testBrowseArtifactMailingLists() - { - browseArtifact(); - - clickLinkWithText( "Mailing Lists" ); - assertLinkPresent( "Info" ); - assertLinkPresent( "Dependencies" ); - assertLinkPresent( "Dependency Tree" ); - assertLinkPresent( "Used By" ); - assertTextPresent( "Mailing Lists" ); - - assertPage( "Browse Repository" ); - assertTextPresent( "artifact-a" ); - assertTextPresent( "No mailing lists" ); - } - - public void testBrowseUpRepositoryDirectory() - { - browseArtifact(); - - assertLinkPresent( "artifact-a" ); - - clickLinkWithText( "artifact-a" ); - assertPage( "Browse Repository" ); - assertTextPresent( "Browse Repository" ); - assertTextPresent( "artifact-a" ); - assertTextPresent( "Versions" ); - assertLinkPresent( "1.0/" ); - assertLinkPresent( "test" ); - - clickLinkWithText( "test" ); - assertPage( "Browse Repository" ); - assertTextPresent( "Browse Repository" ); - assertTextPresent( "Artifacts" ); - assertLinkPresent( "artifact-a/" ); - assertLinkPresent( "web" ); - - clickLinkWithText( "web" ); - assertPage( "Browse Repository" ); - assertTextPresent( "Browse Repository" ); - assertTextPresent( "Groups" ); - assertLinkPresent( "org.apache.maven.archiva.web.test/" ); - assertLinkPresent( "[top]" ); - - clickLinkWithText( "[top]" ); - assertPage( "Browse Repository" ); - assertTextPresent( "Browse Repository" ); - assertTextPresent( "Groups" ); - assertLinkPresent( "org.apache.maven.archiva.web.test/" ); - } - - public void testBrowseDependencyArtifact() - { - browseArtifact(); - - clickLinkWithText( "Dependencies" ); - assertPage( "Browse Repository" ); - assertTextPresent( "artifact-a" ); - assertLinkPresent( "artifact-b" ); - - clickLinkWithText( "artifact-b" ); - assertEquals("Group ID", getSelenium().getTable("//table[1].0.0")); - assertEquals("org.apache.maven.archiva.web.test", getSelenium().getTable("//table[1].0.1")); - assertEquals("Artifact ID", getSelenium().getTable("//table[1].1.0")); - assertEquals("artifact-b", getSelenium().getTable("//table[1].1.1")); - assertEquals("Version", getSelenium().getTable("//table[1].2.0")); - assertEquals("2.0", getSelenium().getTable("//table[1].2.1")); - assertEquals("Packaging", getSelenium().getTable("//table[1].3.0")); - assertEquals("jar", getSelenium().getTable("//table[1].3.1")); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/LoginTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/LoginTest.java deleted file mode 100644 index 6dda27d90..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/LoginTest.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.apache.maven.archiva.web.test; - -/* - * 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. - */ - -/** - * @author Edwin Punzalan - */ -public class LoginTest - extends AbstractArchivaTestCase -{ - public void testBadLogin() - { - goToLoginPage(); - submitLoginPage( "badUsername", "badPassword", false ); - assertTextPresent( "You have entered an incorrect username and/or password" ); - } - - public void testUserLogin() - { - createUser( "test-user", "temp-pass" ); - - goToLoginPage(); - submitLoginPage( "test-user", "temp-pass" ); - - // change of password required for new users - if ( getTitle().equals( getTitlePrefix() + "Change Password" ) ) - { - setFieldValue( "existingPassword", "temp-pass" ); - setFieldValue( "newPassword", "p4ssw0rd" ); - setFieldValue( "newPasswordConfirm", "p4ssw0rd" ); - clickButtonWithValue( "Change Password" ); - } - - logout(); - - deleteUser( "test-user" ); - } - - private void createUser( String username, String password ) - { - goToLoginPage(); - submitLoginPage( adminUsername, adminPassword ); - - clickLinkWithText( "User Management" ); - //assertPage( "[Admin] User List" ); - //assertLinkNotPresent( username ); - clickButtonWithValue( "Create New User" ); - - //assertPage( "[Admin] User Create" ); - setFieldValue( "user.username", username ); - setFieldValue( "user.fullName", username + " FullName" ); - setFieldValue( "user.email", username + "@localhost.com" ); - setFieldValue( "user.password", password ); - setFieldValue( "user.confirmPassword", password ); - clickButtonWithValue( "Create User" ); - waitPage(); - //assertPage( "[Admin] User List" ); - //assertLinkPresent( username ); - - logout(); - } - - private void deleteUser( String username ) - { - goToLoginPage(); - submitLoginPage( adminUsername, adminPassword ); - - clickLinkWithText( "User Management" ); - assertPage( "[Admin] User List" ); - assertLinkPresent( username ); - - //this does not work bec the image is pointing to /archiva/archiva/images/pss/admin/delete.gif - // when ran in selenium - // clickLinkWithXPath( "//a[@href='/security/userdelete.action?username=" + username + "']" ); - //so instead we use this - open( "/archiva/security/userdelete.action?username=" + username ); - - assertPage( "[Admin] User Delete" ); - assertTextPresent( "The following user will be deleted: " + username ); - clickButtonWithValue( "Delete User" ); - assertPage( "[Admin] User List" ); - - logout(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java deleted file mode 100644 index b25ae8195..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java +++ /dev/null @@ -1,201 +0,0 @@ -package org.apache.maven.archiva.web.test; - -/* - * 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. - */ - -/** - * Archiva's webapp UI test for adding/editing/deleting managed repositories. - * - * @author Napoleon Esmundo C. Ramirez - */ -public class ManagedRepositoryTest - extends AbstractArchivaTestCase -{ - private static final String TEST_REPOSITORY_ID = "test-repository-id"; - - private static final String TEST_REPOSITORY_URL = "test-repository-url"; - - private static final String TEST_REPOSITORY_NAME = "test-repository-name"; - - private static final String TEST_REPOSITORY_DIRECTORY = "test-repository-directory"; - - - private void clickManagedRepositories() - { - goToLoginPage(); - submitLoginPage( adminUsername, adminPassword ); - - clickLinkWithText( "Managed Repositories" ); - assertPage( "Administration" ); - assertTextPresent( "Administration" ); - } - - private void createManagedRepository( String id, String url, String name, String directory ) - { - clickManagedRepositories(); - - clickLinkWithText( "Add Repository" ); - assertTextPresent( "Configuration" ); - - setFieldValue( "addRepository_id", id ); - setFieldValue( "urlName", url ); - setFieldValue( "addRepository_name", name ); - setFieldValue( "addRepository_directory", directory ); - - clickButtonWithValue( "Add Repository", false ); - } - - private void removeManagedRepository( String id ) - { - logout(); - - clickManagedRepositories(); - - clickLinkWithLocator( "//a[contains(@href, '/admin/deleteRepository!input.action?repoId=" + id + "')]" ); - clickLinkWithLocator( "deleteRepository_operationdelete-contents", false ); - clickButtonWithValue( "Go" ); - - assertPage( "Administration" ); - assertTextNotPresent( TEST_REPOSITORY_ID ); - } - - public void testAddRepositoryWithValidValues() - { - createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY ); - waitPage(); - - assertPage( "Administration" ); - assertTextPresent( TEST_REPOSITORY_ID ); - - removeManagedRepository( TEST_REPOSITORY_ID ); - } - - public void testAddRepositoryWithInvalidValues() - { - createManagedRepository( "", "", "", "" ); - - assertTextPresent( "You must enter the repository identifier." ); - assertTextPresent( "You must enter the url name." ); - assertTextPresent( "You must enter the repository name." ); - assertTextPresent( "You must enter the repository directory." ); - } - - public void testEditRepositoryWithValidValues() - { - createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY ); - waitPage(); - - assertPage( "Administration" ); - assertTextPresent( TEST_REPOSITORY_NAME ); - - clickLinkWithLocator( "//a[contains(@href, '/admin/editRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" ); - assertPage( "Configuration" ); - assertTextPresent( "Configuration" ); - - assertTextPresent( "Edit Managed Repository" ); - assertEquals( TEST_REPOSITORY_URL, getFieldValue( "urlName" ) ); - assertEquals( TEST_REPOSITORY_NAME, getFieldValue( "editRepository_name" ) ); - assertTrue( getFieldValue( "editRepository_directory" ).endsWith( TEST_REPOSITORY_DIRECTORY ) ); - - setFieldValue( "urlName", "edited-" + TEST_REPOSITORY_URL ); - setFieldValue( "editRepository_name", "edited-" + TEST_REPOSITORY_NAME ); - setFieldValue( "editRepository_directory", "edited-" + TEST_REPOSITORY_DIRECTORY ); - - clickButtonWithValue( "Update Repository" ); - assertPage( "Administration" ); - assertTextPresent( TEST_REPOSITORY_ID ); - assertTextPresent( "edited-" + TEST_REPOSITORY_NAME ); - - removeManagedRepository( TEST_REPOSITORY_ID ); - } - - public void testEditRepositoryWithInvalidValues() - { - createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY ); - waitPage(); - - assertPage( "Administration" ); - assertTextPresent( TEST_REPOSITORY_NAME ); - - clickLinkWithLocator( "//a[contains(@href, '/admin/editRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" ); - assertPage( "Configuration" ); - assertTextPresent( "Configuration" ); - - assertTextPresent( "Edit Managed Repository" ); - assertEquals( TEST_REPOSITORY_URL, getFieldValue( "urlName" ) ); - assertEquals( TEST_REPOSITORY_NAME, getFieldValue( "editRepository_name" ) ); - assertTrue( getFieldValue( "editRepository_directory" ).endsWith( TEST_REPOSITORY_DIRECTORY ) ); - - setFieldValue( "urlName", "" ); - setFieldValue( "editRepository_name", "" ); - setFieldValue( "editRepository_directory", "" ); - - clickButtonWithValue( "Update Repository", false ); - assertTextPresent( "You must enter the url name." ); - assertTextPresent( "You must enter the repository name." ); - assertTextPresent( "You must enter the repository directory." ); - - removeManagedRepository( TEST_REPOSITORY_ID ); - } - - public void testDeleteRepositoryButLeaveUnmodified() - { - createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY ); - waitPage(); - - assertPage( "Administration" ); - assertTextPresent( TEST_REPOSITORY_ID ); - - clickLinkWithLocator( "//a[contains(@href, '/admin/deleteRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" ); - clickLinkWithLocator( "deleteRepository_operationunmodified", false ); - clickButtonWithValue( "Go" ); - - assertPage( "Administration" ); - assertTextPresent( TEST_REPOSITORY_ID ); - - removeManagedRepository( TEST_REPOSITORY_ID ); - } - - public void testDeleteRepositoryAndContents() - { - createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY ); - waitPage(); - - assertPage( "Administration" ); - assertTextPresent( TEST_REPOSITORY_ID ); - - removeManagedRepository( TEST_REPOSITORY_ID ); - } - - public void testDeleteRepositoryButLeaveContentsUnmodified() - { - createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY ); - waitPage(); - - assertPage( "Administration" ); - assertTextPresent( TEST_REPOSITORY_ID ); - - clickLinkWithLocator( "//a[contains(@href, '/admin/deleteRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" ); - clickLinkWithLocator( "deleteRepository_operationdelete-entry", false ); - clickButtonWithValue( "Go" ); - - assertPage( "Administration" ); - assertTextNotPresent( TEST_REPOSITORY_ID ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/MavenConnectionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/MavenConnectionTest.java deleted file mode 100644 index a0eb5aebf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/MavenConnectionTest.java +++ /dev/null @@ -1,397 +0,0 @@ -package org.apache.maven.archiva.web.test; - -/* - * 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.util.cli.CommandLineUtils; -import org.codehaus.plexus.util.cli.Commandline; -import org.codehaus.plexus.util.cli.StreamConsumer; -import org.codehaus.plexus.util.cli.WriterStreamConsumer; -import org.codehaus.plexus.commandline.ExecutableResolver; -import org.codehaus.plexus.commandline.DefaultExecutableResolver; -import org.jdom.input.SAXBuilder; -import org.jdom.Document; -import org.jdom.Element; -import org.jdom.output.XMLOutputter; -import org.jdom.xpath.XPath; - -import java.io.File; -import java.io.Writer; -import java.io.FileWriter; -import java.io.FileReader; -import java.io.BufferedReader; -import java.util.List; -import java.util.Collections; - - -/** - * Test maven connection to archiva - * - * @author Maria Odea Ching - */ -public class MavenConnectionTest - extends AbstractArchivaTestCase -{ - public static final String PATH_TO_ARCHIVA_XML = "/target/appserver-base/conf/archiva.xml"; - - public static final String PATH_TO_SETTINGS_XML = "/target/local-repo/settings.xml"; - - public static final String NEW_LOCAL_REPO_VALUE = "/target/local-repo"; - - /** - * @throws Exception - */ - public void setUp() - throws Exception - { - super.setUp(); - - String newValue = getBasedir() + NEW_LOCAL_REPO_VALUE; - updateXml( new File( getBasedir(), PATH_TO_ARCHIVA_XML ), newValue ); - updateXml( new File( getBasedir(), PATH_TO_SETTINGS_XML ), newValue ); - } - - /** - * Update localRepository element value - * - * @param f - * @param newValue - * @throws Exception - */ - private void updateXml( File f, String newValue ) - throws Exception - { - SAXBuilder builder = new SAXBuilder(); - FileReader reader = new FileReader( f ); - Document document = builder.build( reader ); - - Element localRepository = - (Element) XPath.newInstance( "./" + "localRepository" ).selectSingleNode( document.getRootElement() ); - localRepository.setText( newValue ); - - // re-write xml file - FileWriter writer = new FileWriter( f ); - XMLOutputter output = new XMLOutputter(); - output.output( document, writer ); - } - - private void clickManagedRepositories() - { - goToLoginPage(); - submitLoginPage( adminUsername, adminPassword ); - - clickLinkWithText( "Managed Repositories" ); - assertPage( "Administration" ); - assertTextPresent( "Administration" ); - } - - private void removeManagedRepository( String id ) - { - clickManagedRepositories(); - - clickLinkWithLocator( "//a[contains(@href, '/admin/deleteRepository!input.action?repoId=" + id + "')]" ); - clickLinkWithLocator( "deleteRepository_operationdelete-contents", false ); - clickButtonWithValue( "Go" ); - - assertPage( "Administration" ); - } - - /** - * Click Settings from the navigation menu - */ - private void clickProxiedRepositories() - { - goToLoginPage(); - submitLoginPage( adminUsername, adminPassword ); - - clickLinkWithText( "Proxied Repositories" ); - assertPage( "Administration" ); - assertTextPresent( "Proxied Repositories" ); - } - - /** - * Remove the created test repo - */ - protected void removeProxiedRepository() - { - if ( !isLinkPresent( "Login" ) ) - { - logout(); - } - - clickProxiedRepositories(); - - if ( isTextPresent( "Delete Repository " ) ) - { - clickLinkWithText( "Delete Repository" ); - assertPage( "Configuration" ); - clickLinkWithLocator( "deleteProxiedRepository_operationdelete-entry", false ); - clickButtonWithValue( "Go" ); - - assertPage( "Administration" ); - assertTextNotPresent( "Test Proxied Repository" ); - } - - logout(); - } - - /** - * Execute 'mvn' from commandline - * - * @param workingDir - * @param outputFile - * @return - * @throws Exception - */ - private int executeMaven( String workingDir, File outputFile ) - throws Exception - { - - ExecutableResolver executableResolver = new DefaultExecutableResolver(); - - String actualExecutable = "mvn"; - File workingDirectory = new File( workingDir ); - - List path = executableResolver.getDefaultPath(); - - if ( path == null ) - { - path = Collections.EMPTY_LIST; - } - - File e = executableResolver.findExecutable( "mvn", path ); - - if ( e != null ) - { - actualExecutable = e.getAbsolutePath(); - } - - File actualExecutableFile = new File( actualExecutable ); - - if ( !actualExecutableFile.exists() ) - { - actualExecutable = "mvn"; - } - - // Set command line - Commandline cmd = new Commandline(); - - cmd.addSystemEnvironment(); - - cmd.addEnvironment( "MAVEN_TERMINATE_CMD", "on" ); - - cmd.setExecutable( actualExecutable ); - - cmd.setWorkingDirectory( workingDirectory.getAbsolutePath() ); - - cmd.createArgument().setValue( "clean" ); - - cmd.createArgument().setValue( "install" ); - - cmd.createArgument().setValue( "-s" ); - - cmd.createArgument().setValue( getBasedir() + "/target/local-repo/settings.xml" ); - - // Excute command - - Writer writer = new FileWriter( outputFile ); - - StreamConsumer consumer = new WriterStreamConsumer( writer ); - - int exitCode = CommandLineUtils.executeCommandLine( cmd, consumer, consumer ); - - writer.flush(); - - writer.close(); - - return exitCode; - } - - public void testBadDependency() - throws Exception - { - File outputFile = new File( getBasedir(), "/target/projects/bad-dependency/bad-dependency.log" ); - int exitCode = executeMaven( getBasedir() + "/target/projects/bad-dependency", outputFile ); - - assertEquals( 1, exitCode ); - - File f = new File( getBasedir(), - "/target/local-repo/org/apache/mavem/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar" ); - assertTrue( !f.exists() ); - - BufferedReader reader = new BufferedReader( new FileReader( outputFile ) ); - String str; - boolean foundSnapshot = false, foundBadDep = false; - - while ( ( str = reader.readLine() ) != null ) - { - //System.out.println( str ); - if ( str.indexOf( - "mvn install:install-file -DgroupId=org.apache.maven.archiva.web.test -DartifactId=foo-bar" ) != -1 ) - { - foundSnapshot = true; - } - else if ( str.indexOf( - "mvn install:install-file -DgroupId=org.apache.maven.archiva.web.test -DartifactId=bad-dependency" ) != - -1 ) - { - foundBadDep = true; - } - } - - reader.close(); - - assertTrue( foundSnapshot ); - assertTrue( foundBadDep ); - } - - /* - @todo: commented out since tests are currently failing due to MRM-323 - - public void testDownloadArtifactFromManagedRepo() - throws Exception - { - clickManagedRepositories(); - - clickLinkWithText( "Add Repository" ); - assertTextPresent( "Configuration" ); - - setFieldValue( "addRepository_id", "snapshots" ); - setFieldValue( "urlName", "snapshots" ); - setFieldValue( "addRepository_name", "snapshots-repository" ); - setFieldValue( "addRepository_directory", getBasedir() + "/target/snapshots" ); - - clickButtonWithValue( "Add Repository" ); - assertPage( "Administration" ); - - clickLinkWithText( "User Management" ); - clickLinkWithLocator( "//a[contains(@href, '/security/useredit.action?username=admin')]" ); - clickLinkWithText( "Edit Roles" ); - checkField( "addRolesToUser_addSelectedRolesRepository Observer - snapshots" ); - checkField( "addRolesToUser_addSelectedRolesRepository Manager - snapshots" ); - - clickButtonWithValue( "Add Selected Roles" ); - assertPage( "[Admin] User List" ); - - logout(); - - File outputFile = new File( getBasedir(), "/target/projects/bad-dependency/bad-dependency2.log" ); - int exitCode = executeMaven( getBasedir() + "/target/projects/bad-dependency", - outputFile ); - - assertEquals( 0, exitCode ); - - File f = new File( getBasedir(), - "/target/local-repo/org/apache/maven/archiva/web/test/foo-bar-1.0-SNAPSHOT.jar" ); - assertTrue( f.exists() ); - - BufferedReader reader = new BufferedReader( new FileReader( outputFile ) ); - String str; - - while( ( str = reader.readLine() ) != null) - { - System.out.println( str ); - } - reader.close(); - - removeManagedRepository( "snapshots" ); - } - - - public void testDownloadArtifactFromProxiedRepo() - throws Exception - { - //add managed repository - clickManagedRepositories(); - - clickLinkWithText( "Add Repository" ); - assertTextPresent( "Configuration" ); - - setFieldValue( "addRepository_id", "repository" ); - setFieldValue( "urlName", "repository" ); - setFieldValue( "addRepository_name", "repository" ); - setFieldValue( "addRepository_directory", getBasedir() + "/target/repository" ); - - clickButtonWithValue( "Add Repository" ); - waitPage(); - assertPage( "Administration" ); - - clickLinkWithText( "User Management" ); - clickLinkWithLocator( "//a[contains(@href, '/security/useredit.action?username=admin')]" ); - clickLinkWithText( "Edit Roles" ); - checkField( "addRolesToUser_addSelectedRolesRepository Observer - repository" ); - checkField( "addRolesToUser_addSelectedRolesRepository Manager - repository" ); - - clickButtonWithValue( "Add Selected Roles" ); - assertPage( "[Admin] User List" ); - logout(); - - //add proxied repository - clickProxiedRepositories(); - clickLinkWithText( "Add Repository" ); - assertPage( "Configuration" ); - setFieldValue( "id", "central" ); - setFieldValue( "name", "Central Repository" ); - setFieldValue( "url", "http://mirrors.ibiblio.org/pub/mirrors/maven2" ); - clickButtonWithValue( "Add Repository" ); - waitPage(); - - assertPage( "Administration" ); - assertTextPresent( "Central Repository" ); - assertLinkPresent( "Edit Repository" ); - - logout(); - - File outputFile = new File( getBasedir(), "/target/projects/dependency-in-proxied/dependency-in-proxied.log" ); - int exitCode = executeMaven( getBasedir() + "/target/projects/dependency-in-proxied", - outputFile ); - - assertEquals( 0, exitCode ); - - File f = new File( getBasedir(),"/target/repository/com/lowagie/itext/1.3/itext-1.3.jar" ); - assertTrue( f.exists() ); - - f = new File( getBasedir(), "/target/local-repo/com/lowagie/itext/1.3/itext-1.3.jar" ); - assertTrue( f.exists() ); - - - BufferedReader reader = new BufferedReader( new FileReader( outputFile ) ); - String str; - - while( ( str = reader.readLine() ) != null) - { - System.out.println( str ); - } - reader.close(); - - removeProxiedRepository(); - removeManagedRepository( "repository" ); - } - - */ - - /** - * @throws Exception - */ - public void tearDown() - throws Exception - { - super.tearDown(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ProxiedRepositoryTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ProxiedRepositoryTest.java deleted file mode 100644 index 370995765..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ProxiedRepositoryTest.java +++ /dev/null @@ -1,233 +0,0 @@ -package org.apache.maven.archiva.web.test; - -/* - * 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. - */ - -/** - * Test archiva proxied repositories configuration - * - * @author Maria Odea Ching - */ -public class ProxiedRepositoryTest - extends AbstractArchivaTestCase -{ - /** - * - */ - protected void initialize() - { - super.initialize(); - - createTestRepo(); - } - - /** - * Create a proxied repo which will be used for testing - */ - private void createTestRepo() - { - clickProxiedRepositories(); - - if ( isTextPresent( "There are no proxied repositories configured yet." ) ) - { - clickLinkWithText( "Add Repository" ); - assertPage( "Configuration" ); - setFieldValue( "id", "test-proxied" ); - setFieldValue( "name", "Test Proxied Repository" ); - setFieldValue( "url", "http://test.com/test-proxied" ); - clickButtonWithValue( "Add Repository" ); - waitPage(); - - assertPage( "Administration" ); - assertTextPresent( "Test Proxied Repository" ); - assertLinkPresent( "Edit Repository" ); - } - - logout(); - } - - /** - * Test add proxied repo with invalid data - */ - public void testInvalidAddProxiedRepoConfiguration() - { - clickProxiedRepositories(); - - clickLinkWithText( "Add Repository" ); - assertPage( "Configuration" ); - - clickButtonWithValue( "Add Repository", false ); - assertPage( "Configuration" ); - assertTextPresent( "You must enter the repository identifier." ); - assertTextPresent( "You must enter the repository name." ); - assertTextPresent( "You must enter the repository URL." ); - - logout(); - } - - /** - * Test edit proxied repo with valid data - */ - public void testValidEditProxiedRepoConfiguration() - { - clickProxiedRepositories(); - clickLinkWithText( "Edit Repository" ); - - assertPage( "Configuration" ); - assertTextPresent( "Edit Proxied Repository" ); - setFieldValue( "name", "Test Valid" ); - setFieldValue( "url", "http://valid.org/test-valid" ); - clickButtonWithValue( "Update Repository" ); - waitPage(); - - assertPage( "Administration" ); - assertTextPresent( "Test Valid" ); - assertLinkPresent( "Edit Repository" ); - - logout(); - } - - /** - * Test edit proxied repo with invalid data - */ - public void testInvalidEditProxiedRepoConfiguration() - { - clickProxiedRepositories(); - clickLinkWithText( "Edit Repository" ); - - assertPage( "Configuration" ); - assertTextPresent( "Edit Proxied Repository" ); - setFieldValue( "name", "" ); - setFieldValue( "url", "" ); - clickButtonWithValue( "Update Repository", false ); - - assertPage( "Configuration" ); - assertTextPresent( "You must enter the repository name." ); - assertTextPresent( "You must enter the repository URL." ); - - logout(); - } - - /** - * Test delete repository, unmodified entry and contents - */ - public void testDeleteRepoUnmodified() - { - clickProxiedRepositories(); - clickLinkWithText( "Delete Repository" ); - - assertPage( "Configuration" ); - assertTextPresent( "Delete Proxied Repository" ); - clickButtonWithValue( "Go" ); - - assertPage( "Administration" ); - assertTextPresent( "Test Proxied Repository" ); - - logout(); - } - - /** - * Test delete repository including contents - */ - public void testDeleteRepoRemoveFromDisk() - { - clickProxiedRepositories(); - clickLinkWithText( "Delete Repository" ); - - assertPage( "Configuration" ); - clickLinkWithLocator( "deleteProxiedRepository_operationdelete-contents", false ); - clickButtonWithValue( "Go" ); - - assertPage( "Administration" ); - assertTextNotPresent( "Test Proxied Repository" ); - - logout(); - } - - /** - * Test delete repository, unmodified contents/entry deleted - */ - public void testDeleteRepoUnmodifiedContents() - { - clickProxiedRepositories(); - clickLinkWithText( "Delete Repository" ); - - assertPage( "Configuration" ); - clickLinkWithLocator( "deleteProxiedRepository_operationdelete-entry", false ); - clickButtonWithValue( "Go" ); - - assertPage( "Administration" ); - assertTextNotPresent( "Test Proxied Repository" ); - - logout(); - } - - /** - * Click Settings from the navigation menu - */ - private void clickProxiedRepositories() - { - goToLoginPage(); - submitLoginPage( adminUsername, adminPassword ); - - clickLinkWithText( "Proxied Repositories" ); - assertPage( "Administration" ); - assertTextPresent( "Proxied Repositories" ); - } - - /** - * Remove the created test repo - */ - protected void removeTestRepo() - { - if ( !isLinkPresent( "Login" ) ) - { - logout(); - } - - clickProxiedRepositories(); - - if ( isTextPresent( "Delete Repository " ) ) - { - clickLinkWithText( "Delete Repository" ); - assertPage( "Configuration" ); - clickLinkWithLocator( "deleteProxiedRepository_operationdelete-entry", false ); - clickButtonWithValue( "Go" ); - - assertPage( "Administration" ); - assertTextNotPresent( "Test Proxied Repository" ); - } - - logout(); - } - - /** - * Revert to original value - * - * @throws Exception - */ - public void tearDown() - throws Exception - { - removeTestRepo(); - - super.tearDown(); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/SearchTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/SearchTest.java deleted file mode 100644 index 67ce4271a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/SearchTest.java +++ /dev/null @@ -1,129 +0,0 @@ -package org.apache.maven.archiva.web.test; - -/* - * 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 SearchTest - extends AbstractArchivaTestCase -{ - private static int PAGE_LOAD_WAIT = 1500; - - public void testSearchNonExistingArtifact() - { - searchForArtifact( "asdf" ); - - waitPage( PAGE_LOAD_WAIT ); - - assertTextPresent( "No results found" ); - } - - public void testSearchExistingArtifact() - { - searchForArtifact( "artifact-a" ); - - waitPage( PAGE_LOAD_WAIT ); - - assertPage( "Search Results" ); - - assertTextPresent( "artifact-a" ); - } - - public void testViewSearchedArtifact() - { - // test viewing artifact (header link) listed in search results - - searchForArtifact( "artifact-a" ); - - waitPage( PAGE_LOAD_WAIT ); - - getSelenium().click( "link=artifact-a" ); - - waitPage( PAGE_LOAD_WAIT ); - - assertPage( "Browse Repository" ); - - assertTextPresent( "artifact-a" ); - - //test viewing artifact listed in search results - - searchForArtifact( "artifact-a" ); - - waitPage( PAGE_LOAD_WAIT ); - - clickLinkWithText( "1.0" ); - - waitPage( PAGE_LOAD_WAIT ); - - assertPage( "Browse Repository" ); - - assertTextPresent( "Artifact ID" ); - - assertTextPresent( "artifact-a" ); - - assertTextPresent( "Version" ); - - assertTextPresent( "1.0" ); - } - - public void testBrowseSearchedArtifact() - { - // test viewing artifact listed in search results - - searchForArtifact( "artifact-a" ); - - waitPage( PAGE_LOAD_WAIT ); - - getSelenium().click("//p[1]/span/a[1]"); - - waitPage( PAGE_LOAD_WAIT ); - - assertPage( "Browse Repository" ); - - assertTextPresent( "artifact-a" ); - } - - public void testBrowseRepoFromSearchResults() - { - searchForArtifact( "artifact-a" ); - - waitPage( PAGE_LOAD_WAIT ); - - clickLinkWithText( "[top]" ); - - waitPage( PAGE_LOAD_WAIT ); - - assertPage( "Browse Repository" ); - } - - private void searchForArtifact( String artifactId ) - { - if ( !"Maven Archiva :: Quick Search".equals( getSelenium().getTitle() ) ) - { - clickLinkWithText( "Search" ); - - waitPage( PAGE_LOAD_WAIT ); - - assertPage( "Quick Search" ); - } - - setFieldValue( "quickSearch_q", artifactId ); - - clickButtonWithValue( "Submit" ); - } -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/SettingsTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/SettingsTest.java deleted file mode 100644 index 2b88efb33..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/SettingsTest.java +++ /dev/null @@ -1,184 +0,0 @@ -package org.apache.maven.archiva.web.test; - -/* - * 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. - */ - - -/** - * Test archiva 'Settings' - * - * @author Maria Odea Ching - */ -public class SettingsTest - extends AbstractArchivaTestCase -{ - /* - public void testRunIndexer() - { - clickSettings(); - - clickLinkWithText( "Run Now" ); - waitPage(); - - assertPage( "Administration" ); - - logout(); - } */ - - public void testEditIndexDirectory() - { - clickEditConfiguration(); - - setFieldValue( "indexPath", getBasedir() + "/target/web-ui-index" ); - clickButtonWithValue( "Save Configuration" ); - waitPage(); - assertPage( "Administration" ); - assertTextPresent( getBasedir() + "/target/web-ui-index" ); - - logout(); - } - - public void testValidIndexSchedule() - { - clickEditConfiguration(); - - setFieldValue( "second", "*" ); - setFieldValue( "minute", "*" ); - clickButtonWithValue( "Save Configuration" ); - waitPage(); - assertPage( "Administration" ); - - logout(); - } - - public void testInvalidIndexSchedule() - { - clickEditConfiguration(); - setFieldValue( "second", "asdf" ); - clickButtonWithValue( "Save Configuration" ); - waitPage(); - assertPage( "Configuration" ); - assertTextPresent( "Invalid Cron Expression" ); - - logout(); - } - - public void testEditProxyHost() - { - clickEditConfiguration(); - - setFieldValue( "proxy.host", "asdf" ); - clickButtonWithValue( "Save Configuration" ); - waitPage(); - assertPage( "Administration" ); - - logout(); - } - - public void testValidProxyPort() - { - clickEditConfiguration(); - - setFieldValue( "proxy.port", "32143" ); - clickButtonWithValue( "Save Configuration" ); - waitPage(); - assertPage( "Administration" ); - - logout(); - } - - public void testInvalidProxyPort() - { - clickEditConfiguration(); - setFieldValue( "proxy.port", "asdf" ); - clickButtonWithValue( "Save Configuration" ); - waitPage(); - assertPage( "Configuration" ); - assertTextPresent( "Port" ); - assertTextPresent( "Invalid field value for field \"proxy.port\"" ); - - setFieldValue( "proxy.port", "-1" ); - clickButtonWithValue( "Save Configuration" ); - waitPage(); - assertPage( "Administration" ); - - logout(); - } - - public void testEditProxyCredentials() - { - clickEditConfiguration(); - - setFieldValue( "proxy.username", "asdf" ); - clickButtonWithValue( "Save Configuration" ); - waitPage(); - assertPage( "Administration" ); - - logout(); - } - - /** - * Click Edit Configuration link - */ - private void clickEditConfiguration() - { - clickSettings(); - - clickLinkWithText( "Edit Configuration" ); - assertPage( "Configuration" ); - } - - /** - * Click Settings from the navigation menu - */ - private void clickSettings() - { - goToLoginPage(); - submitLoginPage( adminUsername, adminPassword ); - - clickLinkWithText( "Settings" ); - assertPage( "Administration" ); - } - - public void tearDown() - throws Exception - { - clickEditConfiguration(); - setFieldValue( "indexPath", getBasedir() + "/target/web-ui-index" ); - setFieldValue( "second", "0" ); - setFieldValue( "minute", "0,30" ); - setFieldValue( "hour", "*" ); - setFieldValue( "dayOfMonth", "*" ); - setFieldValue( "month", "*" ); - setFieldValue( "dayOfWeek", "?" ); - setFieldValue( "year", "" ); - setFieldValue( "proxy.port", "8080" ); - setFieldValue( "proxy.host", "" ); - setFieldValue( "proxy.username", "" ); - setFieldValue( "proxy.password", "" ); - clickButtonWithValue( "Save Configuration" ); - waitPage(); - assertPage( "Administration" ); - - logout(); - - super.tearDown(); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/appserver-base/conf/archiva.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/appserver-base/conf/archiva.xml deleted file mode 100644 index 4208167ec..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/appserver-base/conf/archiva.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/appserver-base/conf/shared.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/appserver-base/conf/shared.xml deleted file mode 100644 index 9afb83352..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/appserver-base/conf/shared.xml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/index/_7.cfs b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/index/_7.cfs deleted file mode 100644 index e95ea7eb8a4a9d3a16c9db4d9419d3ef752b296f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5106 zcmdT{y>BB$6yMoTJL}k&OXv`S0txBl^?rJH(?#e`x+2%)ghYjAcV`pdUF^l{3kjm2 zqv9_>qM)FlprD|*f`WpA0we@TP*6}%Q1B-Z-kaHRj5%++@LQwN*eSfM`?q;;*NXLnXd(u z-h3mVbmuz(r9VFkC>{D)K~8VK zW6~*D#l{62=Ob1VeRftcqEA^hA$CS<_8Obkqsf@G%F!csFnXH_X-tn9X&+7}k1K9P zJ1!!kRu74F(sVGeLrttkhioob!(kuMdbU3)M&*bV#L5BIpx$n}gN9vACl6RYyT^yB zX#S8Mj>d;%L4nr)RHY& zE9a-Li&+^&AURW{93g^uA}5ec z6FO+7i8I7n1CkC&>a}%zTJVV6(y*T^l(6dL`Q6J zOi$Q&K&Sc9=!6d5V%cEE>KRmsUD2ll&v6%EAE5JqPCMi!u;K_S4!7boRvfV6pq1?l zdiLoC(V(l&bD#v6xXE)(>7i~PcUe7}O{QmErR%$H?1ogmDo?uJ3taMq^sCkWrtxak-*S~x3&R~D<-rYO55AHkrcQ#fp>fDCIclgHKjCctv zomhAcgKBc@oE|@VW*cy>R1D_E>aE4MMToo7o!vP}vR&VC*CbXx2o{Nz_W@poSUC_2 zx&pBvUx!%0on>O30-V&J-7swPvWtb*3@)G8Gk(V={ zMPWhdFb;<)a0fYKjFw8D5h~uzSw?VRVY>&3bSRTo0jI^C9@Ma3x$8-qMDdS6ebNw_&EhARFwqNiK>S zi^gpmXMk>_3GIddj@9{)U5qL(b`SJx=^8|typd0sOE_UJG%j|)E$Jf4&G=lz@wvde ziz?{Oh1FjW7Ft{U8i13t3)8kWh~B!eVzvesGYTEmPq1A5Wq{vnt1oV$wdzC`TB|}v zuEoE2kg03$k~U1Z*(Gi8{g%OZi4f~uxOz}j=Eu$!-wxRp-v{{?wk>~QX{d7Pz+?w4 zUHWTk2M4@#h%B@(d#iD6Tu2osfal}}`iAG^1`dnoq!8c?6awhn;7y<-1ke!z1`g2l Y&cCD?q~)d>(g`G4KbOzWL{(G%1+l2Zi~s-t diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/index/deletable b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/index/deletable deleted file mode 100644 index 593f4708db84ac8fd0f5cc47c634f38c013fe9e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4 LcmZQzU|;|M00aO5 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/index/segments b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/index/segments deleted file mode 100644 index d9d4f014f6c2ccc1337d89943229869ab905f822..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27 gcmezW|Nnmm21X%H(ffZH7#KK!n2{;o97wSM0E@i_uK)l5 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/local-repo/settings.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/local-repo/settings.xml deleted file mode 100644 index 23b66a9db..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/local-repo/settings.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - snapshots - admin - admin1 - - - - - repositories - - - snapshots - snapshots-repository - http://localhost:9696/archiva/repository/snapshots/ - - false - - - true - - - - - - snapshots - snapshots-repository - http://localhost:9696/archiva/repository/snapshot/ - - false - - - true - - - - - - - repositories - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/bad-dependency/bad-dependency.log b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/bad-dependency/bad-dependency.log deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/bad-dependency/bad-dependency2.log b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/bad-dependency/bad-dependency2.log deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/bad-dependency/pom.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/bad-dependency/pom.xml deleted file mode 100644 index 24fc2aa46..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/bad-dependency/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - 4.0.0 - org.apache.archiva - bad-dependency - 1.0 - jar - Bad Dependency - - - org.apache.archiva.web.test - bad-dependency - 1.0 - - - org.apache.archiva.web.test - foo-bar - 1.2-SNAPSHOT - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/dependency-in-proxied/dependency-in-proxied.log b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/dependency-in-proxied/dependency-in-proxied.log deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/dependency-in-proxied/pom.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/dependency-in-proxied/pom.xml deleted file mode 100644 index 82606837b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/projects/dependency-in-proxied/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - 4.0.0 - org.apache.archiva - dependency-in-proxied - 1.0 - jar - Dependency In Proxied - - - - com.lowagie - itext - 1.3 - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/.datarefresh b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/.datarefresh deleted file mode 100644 index c53a40aad..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/.datarefresh +++ /dev/null @@ -1,7 +0,0 @@ -#Last Scan Information, managed by Archiva. DO NOT EDIT -#Thu Apr 19 17:04:36 PHT 2007 -scan.included.files=12 -scan.skipped.files=0 -scan.finished.timestamp=1176973476967 -scan.consumed.files=20 -scan.started.timestamp=1176973467414 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.jar.md5 deleted file mode 100644 index 158138e09..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -0360f14347d5502114ba7afe4ea2e07f \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.jar.sha1 deleted file mode 100644 index c9524a069..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4a667b9923fb936409b96c8242bebc2f96f374f5 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom deleted file mode 100644 index 9d419ea6d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - 4.0.0 - org.apache.maven.archiva.web.test - artifact-a - jar - 1.0 - artifact-a - http://maven.apache.org - - - org.apache.maven.archiva.web.test - artifact-b - 2.0 - - - - - - org.apache.maven.wagon - wagon-webdav - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom.md5 deleted file mode 100644 index 93cdd6f43..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -cdf69ffbcb888aacea6cfeaf479fefd1 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom.sha1 deleted file mode 100644 index 293b6c1f4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/1.0/artifact-a-1.0.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -f6a384b1ab62ed45ae7dee1a059815e94bbc7fa6 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml deleted file mode 100644 index 113676922..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - org.apache.maven.archiva.web.test - artifact-a - 1.0 - - - 1.0 - - 20070417090928 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml.md5 deleted file mode 100644 index a02aa88a4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -bc87573a595a2c387b5baa4ad7d06743 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml.sha1 deleted file mode 100644 index 11bee708c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-a/maven-metadata.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -e9ecaaa14a3c09b07206980c15749a631dbc986a \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.jar.md5 deleted file mode 100644 index 3bb4fd4e6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -16a308257949f23afa5d1f1dec41aa44 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.jar.sha1 deleted file mode 100644 index e5d0934b1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -36a3a9cc35b8ca0d73998d7b39d290b489800a22 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom deleted file mode 100644 index 218543673..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - 4.0.0 - org.apache.maven.archiva.web.test - artifact-b - jar - 2.0 - artifact-b - http://maven.apache.org - - - org.apache.maven.archiva.web.test - artifact-c - 3.0 - - - - - - org.apache.maven.wagon - wagon-webdav - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom.md5 deleted file mode 100644 index 5fabe5807..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -be5b8f8539a62b5935793ebeb87215fd \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom.sha1 deleted file mode 100644 index 6eb9715a0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/2.0/artifact-b-2.0.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -012a658d4a4f70aa3e8dd4b2db67020817b7dfcc \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml deleted file mode 100644 index 60b171df5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - org.apache.maven.archiva.web.test - artifact-b - 2.0 - - - 2.0 - - 20070417090908 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml.md5 deleted file mode 100644 index 80c703319..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -bedfccc27fc7dc262d5c99a7aa8b83d8 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml.sha1 deleted file mode 100644 index 42390adcc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-b/maven-metadata.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -4902ea6b16838ff26f9136460c4394b0ad7cc7f5 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.jar.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.jar.md5 deleted file mode 100644 index edc258a75..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -853a10a201f8a296e37e856615c5349c \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.jar.sha1 deleted file mode 100644 index aafda15fa..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -5155da8820ed77c43e983c1244d94a3b27bf08f7 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom deleted file mode 100644 index 8299fbf11..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom +++ /dev/null @@ -1,26 +0,0 @@ - - 4.0.0 - org.apache.maven.archiva.web.test - artifact-c - jar - 3.0 - artifact-c - http://maven.apache.org - - - junit - junit - 3.8.1 - test - - - - - - org.apache.maven.wagon - wagon-webdav - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom.md5 deleted file mode 100644 index d225acc75..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -4df0417579b1492f37da14316adb85af \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom.sha1 deleted file mode 100644 index 1f2435ee6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/3.0/artifact-c-3.0.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -c3b007acd9c17b80753b39a4121255965e7e2e65 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml deleted file mode 100644 index 1d7394c7a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - org.apache.maven.archiva.web.test - artifact-c - 3.0 - - - 3.0 - - 20070417090835 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml.md5 deleted file mode 100644 index 8c0378271..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -74d58d97e78d5e51cc02c489c5edba0d \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml.sha1 deleted file mode 100644 index 535860369..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-c/maven-metadata.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -5c7571eb35248be0f65758783b036e8f7899c146 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.jar.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.jar.md5 deleted file mode 100644 index 9d902f06e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -55f498a518e1151ce2e54daa674691de \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.jar.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.jar.sha1 deleted file mode 100644 index b351a034e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -730551bde461564d3f8a7e0178ef9bc54a86d2dd \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom deleted file mode 100644 index 478f8fd50..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom +++ /dev/null @@ -1,25 +0,0 @@ - - 4.0.0 - org.apache.maven.archiva.web.test - artifact-s - jar - 0.1 - artifact-s - http://maven.apache.org - - - org.apache.maven.archiva.web.test - artifact-a - 1.0 - - - - - - org.apache.maven.wagon - wagon-webdav - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom.md5 deleted file mode 100644 index b49dc167a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -746ba2848229dbc1c9683ece0e7f02c8 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom.sha1 deleted file mode 100644 index ae029df5c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/0.1/artifact-s-0.1.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -0d068f63069a86d982075a1dca7fe74fd95a29df \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml deleted file mode 100644 index ddcad75d9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - org.apache.maven.archiva.web.test - artifact-s - 0.1 - - - 0.1 - - 20070417090721 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml.md5 deleted file mode 100644 index f6bd69743..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -baa0ad0afaba9cee66ec262b38f796b6 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml.sha1 deleted file mode 100644 index c341e6296..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/repository/org/apache/maven/archiva/web/test/artifact-s/maven-metadata.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -dea84d579f673d2d87c7bd47e4318cdf8e59e4d0 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/.datarefresh b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/.datarefresh deleted file mode 100644 index c53a40aad..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/.datarefresh +++ /dev/null @@ -1,7 +0,0 @@ -#Last Scan Information, managed by Archiva. DO NOT EDIT -#Thu Apr 19 17:04:36 PHT 2007 -scan.included.files=12 -scan.skipped.files=0 -scan.finished.timestamp=1176973476967 -scan.consumed.files=20 -scan.started.timestamp=1176973467414 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar deleted file mode 100644 index 033956d4326c4267c5fb7d87a2faad78952d8a1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 773 zcmWIWW@Zs#-~hr$jWf*{kN_tG3xls~h@-BjpPT-_Qw$8u3<2Kk93T};P-Ou)HH!dM zz%~0i`gyv!28ZbRx_$ONbK1vSSMMUPx31Q?Gv_x48C)@b@U%$J%U8$K_hRWP7S0(j zB{ecwra#mCk)|g8R6Ja4`jTg2+7-`KUuS+Q`dGvWcEz$yz7t)5c7QO*63f?R&%Kg|==a{g6-oor}t9Qp7yeayn_n*ar`%7;b99he^vQz79 zS-G~*$F9g}!R>WfMa$>z1I2~$xm@>JpxfpHaey}?lL!N9RKns36qTp|9yg$fMc0ZP zxS)tc09zmvt`#X-K_+l9;En`@35S79NR%LSV2c!lj;Bx^kSIcU5)?_u0RW051mI>w ZL@ZL21$eWvffTU - 4.0.0 - org.apache.maven.archiva.web.test - foo-bar - 1.0-SNAPSHOT - - deployed - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.pom.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.pom.md5 deleted file mode 100644 index 6caf8be40..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -8e896baea663a45d7bd2737f8e464481 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.pom.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.pom.sha1 deleted file mode 100644 index a3bbc7ea1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -e37897c617d78dedd978766a2db318d301e80105 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index ab1eb426d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - org.apache.maven.archiva.web.test - foo-bar - 1.0-SNAPSHOT - - - 1 - - 20070425105840 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml.md5 deleted file mode 100644 index 76ef1e4b3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -add4f71a005137e9a296c5b192e900c2 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml.sha1 deleted file mode 100644 index ebe7cf339..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/maven-metadata.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -b505e302169e04fc821bf571da7435b1e42ef8d7 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml deleted file mode 100644 index 8f00ecefa..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - org.apache.maven.archiva.web.test - foo-bar - 1.0-SNAPSHOT - - - 1.0-SNAPSHOT - - 20070425105840 - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml.md5 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml.md5 deleted file mode 100644 index f6270d9c8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -f3b657fb48d2e82fee5fada169756938 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml.sha1 b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml.sha1 deleted file mode 100644 index 7f4812f9f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/maven-metadata.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -f4629e609deb95cefdcdddc6dd8c2942d1c3e47f \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/archiva.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/archiva.xml deleted file mode 100644 index 180dbb742..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/archiva.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/host-manager.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/host-manager.xml deleted file mode 100644 index e41e1a918..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/host-manager.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/manager.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/manager.xml deleted file mode 100644 index 29abc9f1c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/Catalina/localhost/manager.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/catalina.policy b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/catalina.policy deleted file mode 100644 index 53a6c90e2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/catalina.policy +++ /dev/null @@ -1,172 +0,0 @@ -// ============================================================================ -// catalina.corepolicy - Security Policy Permissions for Tomcat 5 -// -// This file contains a default set of security policies to be enforced (by the -// JVM) when Catalina is executed with the "-security" option. In addition -// to the permissions granted here, the following additional permissions are -// granted to the codebase specific to each web application: -// -// * Read access to the document root directory -// -// $Id: catalina.policy 393732 2006-04-13 06:32:25Z pero $ -// ============================================================================ - - -// ========== SYSTEM CODE PERMISSIONS ========================================= - - -// These permissions apply to javac -grant codeBase "file:${java.home}/lib/-" { - permission java.security.AllPermission; -}; - -// These permissions apply to all shared system extensions -grant codeBase "file:${java.home}/jre/lib/ext/-" { - permission java.security.AllPermission; -}; - -// These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre -grant codeBase "file:${java.home}/../lib/-" { - permission java.security.AllPermission; -}; - -// These permissions apply to all shared system extensions when -// ${java.home} points at $JAVA_HOME/jre -grant codeBase "file:${java.home}/lib/ext/-" { - permission java.security.AllPermission; -}; - - -// ========== CATALINA CODE PERMISSIONS ======================================= - - -// These permissions apply to the launcher code -grant codeBase "file:${catalina.home}/bin/commons-launcher.jar" { - permission java.security.AllPermission; -}; - -// These permissions apply to the daemon code -grant codeBase "file:${catalina.home}/bin/commons-daemon.jar" { - permission java.security.AllPermission; -}; - -// These permissions apply to the commons-logging API -grant codeBase "file:${catalina.home}/bin/commons-logging-api.jar" { - permission java.security.AllPermission; -}; - -// These permissions apply to the server startup code -grant codeBase "file:${catalina.home}/bin/bootstrap.jar" { - permission java.security.AllPermission; -}; - -// These permissions apply to the JMX server -grant codeBase "file:${catalina.home}/bin/jmx.jar" { - permission java.security.AllPermission; -}; - -// These permissions apply to JULI -grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" { - permission java.security.AllPermission; -}; - -// These permissions apply to the servlet API classes -// and those that are shared across all class loaders -// located in the "common" directory -grant codeBase "file:${catalina.home}/common/-" { - permission java.security.AllPermission; -}; - -// These permissions apply to the container's core code, plus any additional -// libraries installed in the "server" directory -grant codeBase "file:${catalina.home}/server/-" { - permission java.security.AllPermission; -}; - -// The permissions granted to the balancer WEB-INF/classes and WEB-INF/lib directory -grant codeBase "file:${catalina.home}/webapps/balancer/-" { - permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.digester"; - permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.digester.*"; -}; -// ========== WEB APPLICATION PERMISSIONS ===================================== - - -// These permissions are granted by default to all web applications -// In addition, a web application will be given a read FilePermission -// and JndiPermission for all files and directories in its document root. -grant { - // Required for JNDI lookup of named JDBC DataSource's and - // javamail named MimePart DataSource used to send mail - permission java.util.PropertyPermission "java.home", "read"; - permission java.util.PropertyPermission "java.naming.*", "read"; - permission java.util.PropertyPermission "javax.sql.*", "read"; - - // OS Specific properties to allow read access - permission java.util.PropertyPermission "os.name", "read"; - permission java.util.PropertyPermission "os.version", "read"; - permission java.util.PropertyPermission "os.arch", "read"; - permission java.util.PropertyPermission "file.separator", "read"; - permission java.util.PropertyPermission "path.separator", "read"; - permission java.util.PropertyPermission "line.separator", "read"; - - // JVM properties to allow read access - permission java.util.PropertyPermission "java.version", "read"; - permission java.util.PropertyPermission "java.vendor", "read"; - permission java.util.PropertyPermission "java.vendor.url", "read"; - permission java.util.PropertyPermission "java.class.version", "read"; - permission java.util.PropertyPermission "java.specification.version", "read"; - permission java.util.PropertyPermission "java.specification.vendor", "read"; - permission java.util.PropertyPermission "java.specification.name", "read"; - - permission java.util.PropertyPermission "java.vm.specification.version", "read"; - permission java.util.PropertyPermission "java.vm.specification.vendor", "read"; - permission java.util.PropertyPermission "java.vm.specification.name", "read"; - permission java.util.PropertyPermission "java.vm.version", "read"; - permission java.util.PropertyPermission "java.vm.vendor", "read"; - permission java.util.PropertyPermission "java.vm.name", "read"; - - // Required for OpenJMX - permission java.lang.RuntimePermission "getAttribute"; - - // Allow read of JAXP compliant XML parser debug - permission java.util.PropertyPermission "jaxp.debug", "read"; - - // Precompiled JSPs need access to this package. - permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime"; - permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*"; - -}; - - -// You can assign additional permissions to particular web applications by -// adding additional "grant" entries here, based on the code base for that -// application, /WEB-INF/classes/, or /WEB-INF/lib/ jar files. -// -// Different permissions can be granted to JSP pages, classes loaded from -// the /WEB-INF/classes/ directory, all jar files in the /WEB-INF/lib/ -// directory, or even to individual jar files in the /WEB-INF/lib/ directory. -// -// For instance, assume that the standard "examples" application -// included a JDBC driver that needed to establish a network connection to the -// corresponding database and used the scrape taglib to get the weather from -// the NOAA web server. You might create a "grant" entries like this: -// -// The permissions granted to the context root directory apply to JSP pages. -// grant codeBase "file:${catalina.home}/webapps/examples/-" { -// permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect"; -// permission java.net.SocketPermission "*.noaa.gov:80", "connect"; -// }; -// -// The permissions granted to the context WEB-INF/classes directory -// grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/classes/-" { -// }; -// -// The permission granted to your JDBC driver -// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar!/-" { -// permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect"; -// }; -// The permission granted to the scrape taglib -// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/scrape.jar!/-" { -// permission java.net.SocketPermission "*.noaa.gov:80", "connect"; -// }; - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/catalina.properties b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/catalina.properties deleted file mode 100644 index 3e937aced..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/catalina.properties +++ /dev/null @@ -1,85 +0,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. -# - -# -# List of comma-separated packages that start with or equal this string -# will cause a security exception to be thrown when -# passed to checkPackageAccess unless the -# corresponding RuntimePermission ("accessClassInPackage."+package) has -# been granted. -package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans. -# -# List of comma-separated packages that start with or equal this string -# will cause a security exception to be thrown when -# passed to checkPackageDefinition unless the -# corresponding RuntimePermission ("defineClassInPackage."+package) has -# been granted. -# -# by default, no packages are restricted for definition, and none of -# the class loaders supplied with the JDK call checkPackageDefinition. -# -package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper. - -# -# -# List of comma-separated paths defining the contents of the "common" -# classloader. Prefixes should be used to define what is the repository type. -# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute. -# If left as blank,the JVM system loader will be used as Catalina's "common" -# loader. -# Examples: -# "foo": Add this folder as a class repository -# "foo/*.jar": Add all the JARs of the specified folder as class -# repositories -# "foo/bar.jar": Add bar.jar as a class repository -common.loader=${catalina.home}/common/classes,${catalina.home}/common/i18n/*.jar,${catalina.home}/common/endorsed/*.jar,${catalina.home}/common/lib/*.jar - -# -# List of comma-separated paths defining the contents of the "server" -# classloader. Prefixes should be used to define what is the repository type. -# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute. -# If left as blank, the "common" loader will be used as Catalina's "server" -# loader. -# Examples: -# "foo": Add this folder as a class repository -# "foo/*.jar": Add all the JARs of the specified folder as class -# repositories -# "foo/bar.jar": Add bar.jar as a class repository -server.loader=${catalina.home}/server/classes,${catalina.home}/server/lib/*.jar - -# -# List of comma-separated paths defining the contents of the "shared" -# classloader. Prefixes should be used to define what is the repository type. -# Path may be relative to the CATALINA_BASE path or absolute. If left as blank, -# the "common" loader will be used as Catalina's "shared" loader. -# Examples: -# "foo": Add this folder as a class repository -# "foo/*.jar": Add all the JARs of the specified folder as class -# repositories -# "foo/bar.jar": Add bar.jar as a class repository -# Please note that for individual jar files, e.g. bar.jar, you need the URL form -# starting with file:. -shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar - -# -# String cache configuration. -tomcat.util.buf.StringCache.byte.enabled=true -#tomcat.util.buf.StringCache.char.enabled=true -#tomcat.util.buf.StringCache.trainThreshold=500000 -#tomcat.util.buf.StringCache.cacheSize=5000 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/context.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/context.xml deleted file mode 100644 index 895adb9b1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/context.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - WEB-INF/web.xml - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/logging.properties b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/logging.properties deleted file mode 100644 index 07f85e265..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/logging.properties +++ /dev/null @@ -1,74 +0,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. -# - -handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler - -.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler - -############################################################ -# Handler specific properties. -# Describes specific configuration info for Handlers. -############################################################ - -1catalina.org.apache.juli.FileHandler.level = FINE -1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs -1catalina.org.apache.juli.FileHandler.prefix = catalina. - -2localhost.org.apache.juli.FileHandler.level = FINE -2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs -2localhost.org.apache.juli.FileHandler.prefix = localhost. - -3manager.org.apache.juli.FileHandler.level = FINE -3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs -3manager.org.apache.juli.FileHandler.prefix = manager. - -4admin.org.apache.juli.FileHandler.level = FINE -4admin.org.apache.juli.FileHandler.directory = ${catalina.base}/logs -4admin.org.apache.juli.FileHandler.prefix = admin. - -5host-manager.org.apache.juli.FileHandler.level = FINE -5host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs -5host-manager.org.apache.juli.FileHandler.prefix = host-manager. - -java.util.logging.ConsoleHandler.level = FINE -java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter - - -############################################################ -# Facility specific properties. -# Provides extra control for each logger. -############################################################ - -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler - -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler - -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].level = INFO -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].handlers = 4admin.org.apache.juli.FileHandler - -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 5host-manager.org.apache.juli.FileHandler - -# For example, set the com.xyz.foo logger to only log SEVERE -# messages: -#org.apache.catalina.startup.ContextConfig.level = FINE -#org.apache.catalina.startup.HostConfig.level = FINE -#org.apache.catalina.session.ManagerBase.level = FINE diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/server-minimal.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/server-minimal.xml deleted file mode 100644 index 316475801..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/server-minimal.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/server.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/server.xml deleted file mode 100644 index 22a041059..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/server.xml +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/tomcat-users.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/tomcat-users.xml deleted file mode 100644 index 472566645..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/tomcat-users.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/web.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/web.xml deleted file mode 100644 index 0263f1e46..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp-test/src/test/tomcat5x/conf/web.xml +++ /dev/null @@ -1,1183 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - default - org.apache.catalina.servlets.DefaultServlet - - debug - 0 - - - listings - false - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - jsp - org.apache.jasper.servlet.JspServlet - - fork - false - - - xpoweredBy - false - - 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - default - / - - - - - - - - jsp - *.jsp - - - - jsp - *.jspx - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 30 - - - - - - - - - - - - abs - audio/x-mpeg - - - ai - application/postscript - - - aif - audio/x-aiff - - - aifc - audio/x-aiff - - - aiff - audio/x-aiff - - - aim - application/x-aim - - - art - image/x-jg - - - asf - video/x-ms-asf - - - asx - video/x-ms-asf - - - au - audio/basic - - - avi - video/x-msvideo - - - avx - video/x-rad-screenplay - - - bcpio - application/x-bcpio - - - bin - application/octet-stream - - - bmp - image/bmp - - - body - text/html - - - cdf - application/x-netcdf - - - cer - application/x-x509-ca-cert - - - class - application/java - - - cpio - application/x-cpio - - - csh - application/x-csh - - - css - text/css - - - dib - image/bmp - - - doc - application/msword - - - dtd - application/xml-dtd - - - dv - video/x-dv - - - dvi - application/x-dvi - - - eps - application/postscript - - - etx - text/x-setext - - - exe - application/octet-stream - - - gif - image/gif - - - gtar - application/x-gtar - - - gz - application/x-gzip - - - hdf - application/x-hdf - - - htc - text/x-component - - - htm - text/html - - - html - text/html - - - hqx - application/mac-binhex40 - - - ico - image/x-icon - - - ief - image/ief - - - jad - text/vnd.sun.j2me.app-descriptor - - - jar - application/java-archive - - - java - text/plain - - - jnlp - application/x-java-jnlp-file - - - jpe - image/jpeg - - - jpeg - image/jpeg - - - jpg - image/jpeg - - - js - text/javascript - - - jsf - text/plain - - - jspf - text/plain - - - kar - audio/midi - - - latex - application/x-latex - - - m3u - audio/x-mpegurl - - - mac - image/x-macpaint - - - man - application/x-troff-man - - - mathml - application/mathml+xml - - - me - application/x-troff-me - - - mid - audio/midi - - - midi - audio/midi - - - mif - application/vnd.mif - - - mov - video/quicktime - - - movie - video/x-sgi-movie - - - mp1 - audio/x-mpeg - - - mp2 - audio/mpeg - - - mp3 - audio/mpeg - - - mpa - audio/x-mpeg - - - mpe - video/mpeg - - - mpeg - video/mpeg - - - mpega - audio/x-mpeg - - - mpg - video/mpeg - - - mpv2 - video/mpeg2 - - - ms - application/x-troff-ms - - - nc - application/x-netcdf - - - oda - application/oda - - - - odb - application/vnd.oasis.opendocument.database - - - - odc - application/vnd.oasis.opendocument.chart - - - - odf - application/vnd.oasis.opendocument.formula - - - - odg - application/vnd.oasis.opendocument.graphics - - - - odi - application/vnd.oasis.opendocument.image - - - - odm - application/vnd.oasis.opendocument.text-master - - - - odp - application/vnd.oasis.opendocument.presentation - - - - ods - application/vnd.oasis.opendocument.spreadsheet - - - - odt - application/vnd.oasis.opendocument.text - - - ogg - application/ogg - - - - otg - application/vnd.oasis.opendocument.graphics-template - - - - oth - application/vnd.oasis.opendocument.text-web - - - - otp - application/vnd.oasis.opendocument.presentation-template - - - - ots - application/vnd.oasis.opendocument.spreadsheet-template - - - - ott - application/vnd.oasis.opendocument.text-template - - - pbm - image/x-portable-bitmap - - - pct - image/pict - - - pdf - application/pdf - - - pgm - image/x-portable-graymap - - - pic - image/pict - - - pict - image/pict - - - pls - audio/x-scpls - - - png - image/png - - - pnm - image/x-portable-anymap - - - pnt - image/x-macpaint - - - ppm - image/x-portable-pixmap - - - pps - application/vnd.ms-powerpoint - - - ppt - application/vnd.ms-powerpoint - - - ps - application/postscript - - - psd - image/x-photoshop - - - qt - video/quicktime - - - qti - image/x-quicktime - - - qtif - image/x-quicktime - - - ras - image/x-cmu-raster - - - rdf - application/rdf+xml - - - rgb - image/x-rgb - - - rm - application/vnd.rn-realmedia - - - roff - application/x-troff - - - rtf - text/rtf - - - rtx - text/richtext - - - sh - application/x-sh - - - shar - application/x-shar - - - - smf - audio/x-midi - - - sit - application/x-stuffit - - - snd - audio/basic - - - src - application/x-wais-source - - - sv4cpio - application/x-sv4cpio - - - sv4crc - application/x-sv4crc - - - svg - image/svg+xml - - - svgz - image/svg - - - swf - application/x-shockwave-flash - - - t - application/x-troff - - - tar - application/x-tar - - - tcl - application/x-tcl - - - tex - application/x-tex - - - texi - application/x-texinfo - - - texinfo - application/x-texinfo - - - tif - image/tiff - - - tiff - image/tiff - - - tr - application/x-troff - - - tsv - text/tab-separated-values - - - txt - text/plain - - - ulw - audio/basic - - - ustar - application/x-ustar - - - vrml - model/vrml - - - vsd - application/x-visio - - - vxml - application/voicexml+xml - - - wav - audio/x-wav - - - - wbmp - image/vnd.wap.wbmp - - - - wml - text/vnd.wap.wml - - - - wmlc - application/vnd.wap.wmlc - - - - wmls - text/vnd.wap.wmlscript - - - - wmlscriptc - application/vnd.wap.wmlscriptc - - - wrl - model/vrml - - - xbm - image/x-xbitmap - - - xht - application/xhtml+xml - - - xhtml - application/xhtml+xml - - - xls - application/vnd.ms-excel - - - xml - application/xml - - - xpm - image/x-xpixmap - - - xsl - application/xml - - - xslt - application/xslt+xml - - - xul - application/vnd.mozilla.xul+xml - - - xwd - image/x-xwindowdump - - - Z - application/x-compress - - - z - application/x-compress - - - zip - application/zip - - - - - - - - - - - - - - - - index.html - index.htm - index.jsp - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/pom.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/pom.xml deleted file mode 100644 index 97bfcd57a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/pom.xml +++ /dev/null @@ -1,525 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-web - 1.2-SNAPSHOT - ../pom.xml - - archiva-webapp - war - Archiva Web :: Application - - - org.apache.archiva - archiva-report-manager - - - org.apache.archiva - archiva-scheduled - - - org.apache.archiva - archiva-indexer - - - org.apache.archiva - archiva-proxy - - - org.apache.archiva - archiva-database - - - org.apache.archiva - archiva-repository-layer - - - org.apache.archiva - archiva-security - - - org.apache.archiva - archiva-core-consumers - - - org.apache.archiva - archiva-database-consumers - - - org.apache.archiva - archiva-lucene-consumers - - - org.apache.archiva - archiva-signature-consumers - - - org.apache.archiva - archiva-applet - - provided - - - org.apache.archiva - archiva-rss - - - javax.servlet - servlet-api - provided - - - javax.servlet - jsp-api - provided - - - opensymphony - sitemesh - - - taglibs - standard - - - javax.servlet - jstl - - - org.codehaus.plexus - plexus-slf4j-logging - runtime - - - org.slf4j - slf4j-log4j12 - - - commons-lang - commons-lang - - - com.opensymphony - webwork - - - org.codehaus.plexus.registry - plexus-registry-api - - - org.codehaus.plexus.registry - plexus-registry-commons - - - org.codehaus.plexus.cache - plexus-cache-api - - - org.codehaus.plexus.cache - plexus-cache-ehcache - - - org.codehaus.plexus - plexus-component-api - - - - org.codehaus.redback - redback-xwork-content - war - runtime - - - org.codehaus.redback - redback-xwork-integration - - - org.codehaus.redback - redback-taglib - - - - org.apache.archiva - archiva-webdav - - - commons-io - commons-io - - - org.springframework - spring-web - - - javax.mail - mail - provided - - - javax.activation - activation - provided - - - org.codehaus.plexus - plexus-quartz - - - org.codehaus.plexus - plexus-taskqueue - - - commons-fileupload - commons-fileupload - - - commons-codec - commons-codec - - - stax - stax - - - org.apache.maven.wagon - wagon-http-lightweight - runtime - - - org.apache.maven.wagon - wagon-file - runtime - - - commons-logging - commons-logging-api - 1.1 - - - - - - src/main/resources - - - src/main/filtered-resources - true - - - - - - org.apache.maven.plugins - maven-clean-plugin - 2.1.1 - - - - - ${basedir}/src/main/webapp - - - META-INF - archiva-applet.jar - images/redback - - template/redback - - WEB-INF/classes - - WEB-INF/lib - - WEB-INF/database - - WEB-INF/logs - - redback - - css/redback - WEB-INF/jsp/redback - - WEB-INF/template/redback - - WEB-INF/logs - - WEB-INF/temp - - WEB-INF/jasperreports - - - - - - - - org.apache.maven.plugins - maven-war-plugin - 2.0.1 - - - false - META-INF/**,WEB-INF/web.xml,WEB-INF/classes/xwork.xml - WEB-INF/lib/xalan-*.jar,WEB-INF/lib/velocity-dep-*.jar,WEB-INF/lib/xml-apis-*.jar,WEB-INF/lib/wstx-asl-*.jar,WEB-INF/lib/stax-utils-*.jar,WEB-INF/lib/xercesImpl-*.jar - - - - - compile - - - inplace - - - - - - org.mortbay.jetty - maven-jetty-plugin - 6.1.1 - - 10 - / - src/jetty-env.xml - - - 9091 - 60000 - - - - - plexus.home - ${project.build.directory}/appserver-base - - - appserver.base - ${project.build.directory}/appserver-base - - - appserver.home - ${project.build.directory}/appserver-home - - - derby.system.home - ${project.build.directory}/appserver-base/logs - - - - - - org.apache.derby - derby - 10.1.3.1 - - - - - - org.apache.maven.plugins - maven-dependency-plugin - 2.0 - - - copy - process-resources - - copy - - - - - ${project.groupId} - archiva-applet - ${project.version} - src/main/webapp - archiva-applet.jar - - - - - - - - org.codehaus.plexus - plexus-maven-plugin - - - - com.opensymphony.xwork.Action - per-lookup - - - - - - maven-antrun-plugin - 1.1 - - - generate-resources - - run - - - - - - - - - - - - - - - - mysql - - - mysql - mysql-connector-java - 5.0.4 - - - - - - org.mortbay.jetty - maven-jetty-plugin - - src/jetty-env-mysql.xml - - - - - - - postgres - - - postgresql - postgresql - 8.2-504.jdbc3 - - - - - - org.mortbay.jetty - maven-jetty-plugin - - src/jetty-env-postgres.xml - - - - - - - - jasper - - - jasperreports - jasperreports - 1.2.0 - - - - - - org.codehaus.mojo - jasperreports-maven-plugin - 1.0-SNAPSHOT - - - compile - - compile-reports - - - - - src/main/webapp/WEB-INF/jasperreports - - - - - - - Codehaus Snapshots - http://snapshots.repository.codehaus.org/ - - true - - - false - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/shared.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/shared.xml deleted file mode 100644 index 9afb83352..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/shared.xml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/logs/.donotdelete b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/logs/.donotdelete deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-mysql.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-mysql.xml deleted file mode 100644 index 989988361..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-mysql.xml +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - mail/Session - - - - - - - localhost - 25 - - - - - - - - - - - jdbc/archiva - - - localhost - archiva - archiva - sa - - - - - - jdbc/archivaShutdown - - - - localhost - archiva - archiva - sa - - - - - - - jdbc/users - - - - localhost - redback - archiva - sa - - - - - - jdbc/usersShutdown - - - jdbc:mysql://localhost/redback - archiva - sa - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-postgres.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-postgres.xml deleted file mode 100644 index 8914ac44a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-postgres.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - mail/Session - - - - - - - localhost - continuum@localhost - Continuum - true - - - - - - - - jdbc/archiva - - - localhost - archiva - postgres - sparky - - - - - jdbc/archiva_shutdown - - - localhost - archiva - postgres - sparky - - - - - jdbc/users - - - localhost - users - postgres - sparky - - - - - jdbc/users_shutdown - - - localhost - users - postgres - sparky - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env.xml deleted file mode 100644 index 6774b0e32..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/jetty-env.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - mail/Session - - - - - - - localhost - archiva@localhost - Archiva - true - - - - - - - - - jdbc/archiva - - - ../databases/archiva - sa - create - - - - - - jdbc/archivaShutdown - - - ../databases/archiva - sa - shutdown - - - - - - - jdbc/users - - - ../databases/users - sa - create - - - - - - jdbc/usersShutdown - - - ../databases/users - sa - shutdown - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/filtered-resources/application.properties b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/filtered-resources/application.properties deleted file mode 100644 index ba4360776..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/filtered-resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -user.agent=Apache Archiva/${project.version} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/jasperreports/report.jrxml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/jasperreports/report.jrxml deleted file mode 100644 index bebb368d3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/jasperreports/report.jrxml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - <band height="50"> - <staticText> - <reportElement x="0" y="0" width="1040" height="50"/> - <textElement textAlignment="Center"> - <font size="14" isBold="true"/> - </textElement> - <text><![CDATA[Archiva Report]]></text> - </staticText> - </band> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java deleted file mode 100644 index 92b4c8c91..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java +++ /dev/null @@ -1,188 +0,0 @@ -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 java.util.Collections; -import java.util.List; - -import com.opensymphony.xwork.ActionContext; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.database.browsing.BrowsingResults; -import org.apache.maven.archiva.database.browsing.RepositoryBrowsing; -import org.apache.maven.archiva.security.*; -import org.apache.maven.archiva.security.ArchivaXworkUser; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -/** - * Browse the repository. - * - * @todo cache browsing results. - * @todo implement repository selectors (all or specific repository) - * @todo implement security around browse (based on repository id at first) - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="browseAction" - */ -public class BrowseAction - extends PlexusActionSupport -{ - /** - * @plexus.requirement role-hint="default" - */ - private RepositoryBrowsing repoBrowsing; - - /** - * @plexus.requirement - */ - private UserRepositories userRepositories; - - /** - * @plexus.requirement - */ - private ArchivaXworkUser archivaXworkUser; - - private BrowsingResults results; - - private String groupId; - - private String artifactId; - - private String repositoryId; - - public String browse() - { - List selectedRepos = getObservableRepos(); - if ( CollectionUtils.isEmpty( selectedRepos ) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - this.results = repoBrowsing.getRoot( getPrincipal(), selectedRepos ); - return SUCCESS; - } - - public String browseGroup() - { - if ( StringUtils.isEmpty( groupId ) ) - { - // TODO: i18n - addActionError( "You must specify a group ID to browse" ); - return ERROR; - } - - List selectedRepos = getObservableRepos(); - if ( CollectionUtils.isEmpty( selectedRepos ) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - - this.results = repoBrowsing.selectGroupId( getPrincipal(), selectedRepos, groupId ); - return SUCCESS; - } - - public String browseArtifact() - { - if ( StringUtils.isEmpty( groupId ) ) - { - // TODO: i18n - addActionError( "You must specify a group ID to browse" ); - return ERROR; - } - - if ( StringUtils.isEmpty( artifactId ) ) - { - // TODO: i18n - addActionError( "You must specify a artifact ID to browse" ); - return ERROR; - } - - List selectedRepos = getObservableRepos(); - if ( CollectionUtils.isEmpty( selectedRepos ) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - - this.results = repoBrowsing.selectArtifactId( getPrincipal(), selectedRepos, groupId, artifactId ); - return SUCCESS; - } - - private String getPrincipal() - { - return archivaXworkUser.getActivePrincipal( ActionContext.getContext().getSession() ); - } - - private List getObservableRepos() - { - try - { - return userRepositories.getObservableRepositoryIds( getPrincipal() ); - } - catch ( PrincipalNotFoundException e ) - { - getLogger().warn( e.getMessage(), e ); - } - catch ( AccessDeniedException e ) - { - getLogger().warn( e.getMessage(), e ); - // TODO: pass this onto the screen. - } - catch ( ArchivaSecurityException e ) - { - getLogger().warn( e.getMessage(), e ); - } - return Collections.emptyList(); - } - - 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 BrowsingResults getResults() - { - return results; - } - - public String getRepositoryId(){ - - return repositoryId; - } - - public void setRepositoryId(String repositoryId){ - - this.repositoryId = repositoryId; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/GlobalResults.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/GlobalResults.java deleted file mode 100644 index 7552dfa1b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/GlobalResults.java +++ /dev/null @@ -1,31 +0,0 @@ -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. - */ - -/** - * GlobalResults - constants for global result definitions. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class GlobalResults -{ - public static final String ACCESS_TO_NO_REPOS = "access_to_no_repos"; -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java deleted file mode 100644 index 35e770b26..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java +++ /dev/null @@ -1,561 +0,0 @@ -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 java.net.MalformedURLException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.constraints.ArtifactsByChecksumConstraint; -import org.apache.maven.archiva.indexer.RepositoryIndexException; -import org.apache.maven.archiva.indexer.RepositoryIndexSearchException; -import org.apache.maven.archiva.indexer.search.CrossRepositorySearch; -import org.apache.maven.archiva.indexer.search.SearchResultLimits; -import org.apache.maven.archiva.indexer.search.SearchResults; -import org.apache.maven.archiva.security.AccessDeniedException; -import org.apache.maven.archiva.security.ArchivaSecurityException; -import org.apache.maven.archiva.security.ArchivaXworkUser; -import org.apache.maven.archiva.security.PrincipalNotFoundException; -import org.apache.maven.archiva.security.UserRepositories; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import com.opensymphony.xwork.ActionContext; -import com.opensymphony.xwork.Preparable; - -/** - * Search all indexed fields by the given criteria. - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="searchAction" - */ -public class SearchAction - extends PlexusActionSupport - implements Preparable -{ - /** - * Query string. - */ - - private ArchivaConfiguration archivaConfiguration; - - private Map managedRepositories; - - private String q; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * The Search Results. - */ - private SearchResults results; - - /** - * @plexus.requirement role-hint="default" - */ - private CrossRepositorySearch crossRepoSearch; - - /** - * @plexus.requirement - */ - private UserRepositories userRepositories; - - /** - * @plexus.requirement - */ - private ArchivaXworkUser archivaXworkUser; - - private static final String RESULTS = "results"; - - private static final String ARTIFACT = "artifact"; - - private List databaseResults; - - private int currentPage = 0; - - private int totalPages; - - private boolean searchResultsOnly; - - private String completeQueryString; - - private static final String COMPLETE_QUERY_STRING_SEPARATOR = ";"; - - private static final String BYTECODE_KEYWORD = "bytecode:"; - - private List managedRepositoryList; - - private String groupId; - - private String artifactId; - - private String version; - - private String className; - - private int rowCount = 30; - - private String repositoryId; - - private boolean fromFilterSearch; - - private boolean filterSearch = false; - - private boolean fromResultsPage; - - private int num; - - public boolean isFromResultsPage() - { - return fromResultsPage; - } - - public void setFromResultsPage( boolean fromResultsPage ) - { - this.fromResultsPage = fromResultsPage; - } - - public boolean isFromFilterSearch() - { - return fromFilterSearch; - } - - public void setFromFilterSearch( boolean fromFilterSearch ) - { - this.fromFilterSearch = fromFilterSearch; - } - - public void prepare() - { - managedRepositoryList = new ArrayList(); - managedRepositoryList = getObservableRepos(); - - if ( managedRepositoryList.size() > 0 ) - { - managedRepositoryList.add( "all" ); - } - } - - // advanced search MRM-90 -- filtered search - public String filteredSearch() - throws MalformedURLException, RepositoryIndexException, RepositoryIndexSearchException - { - fromFilterSearch = true; - - if ( CollectionUtils.isEmpty( managedRepositoryList ) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - SearchResultLimits limits = new SearchResultLimits( currentPage ); - - limits.setPageSize( rowCount ); - List selectedRepos = new ArrayList(); - - if ( repositoryId.equals( "all" ) ) - { - selectedRepos = getObservableRepos(); - } - else - { - selectedRepos.add( repositoryId ); - } - - if ( CollectionUtils.isEmpty( selectedRepos ) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - results = - crossRepoSearch.executeFilteredSearch( getPrincipal(), selectedRepos, groupId, artifactId, version, - className, limits ); - - if ( results.isEmpty() ) - { - addActionError( "No results found" ); - return INPUT; - } - - totalPages = results.getTotalHits() / limits.getPageSize(); - - if ( ( results.getTotalHits() % limits.getPageSize() ) != 0 ) - { - totalPages = totalPages + 1; - } - - return SUCCESS; - } - - public String quickSearch() - throws MalformedURLException, RepositoryIndexException, RepositoryIndexSearchException - { - /* TODO: give action message if indexing is in progress. - * This should be based off a count of 'unprocessed' artifacts. - * This (yet to be written) routine could tell the user that X (unprocessed) artifacts are not yet - * present in the full text search. - */ - - assert q != null && q.length() != 0; - - fromFilterSearch = false; - - SearchResultLimits limits = new SearchResultLimits( currentPage ); - - List selectedRepos = getObservableRepos(); - if ( CollectionUtils.isEmpty( selectedRepos ) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - if( isBytecodeSearch( q ) ) - { - results = crossRepoSearch.searchForBytecode( getPrincipal(), selectedRepos, removeKeyword( q ), limits ); - } - else - { - if( searchResultsOnly && !completeQueryString.equals( "" ) ) - { - results = crossRepoSearch.searchForTerm( getPrincipal(), selectedRepos, q, limits, parseCompleteQueryString() ); - } - else - { - completeQueryString = ""; - results = crossRepoSearch.searchForTerm( getPrincipal(), selectedRepos, q, limits ); - } - } - - if ( results.isEmpty() ) - { - addActionError( "No results found" ); - return INPUT; - } - - totalPages = results.getTotalHits() / limits.getPageSize(); - - if( (results.getTotalHits() % limits.getPageSize()) != 0 ) - { - totalPages = totalPages + 1; - } - // TODO: filter / combine the artifacts by version? (is that even possible with non-artifact hits?) - - /* I don't think that we should, as I expect us to utilize the 'score' system in lucene in - * the future to return relevant links better. - * I expect the lucene scoring system to take multiple hits on different areas of a single document - * to result in a higher score. - * - Joakim - */ - - if( !isEqualToPreviousSearchTerm( q ) ) - { - buildCompleteQueryString( q ); - } - - return SUCCESS; - } - - public String findArtifact() - throws Exception - { - // TODO: give action message if indexing is in progress - - if ( StringUtils.isBlank( q ) ) - { - addActionError( "Unable to search for a blank checksum" ); - return INPUT; - } - - Constraint constraint = new ArtifactsByChecksumConstraint( q ); - databaseResults = dao.getArtifactDAO().queryArtifacts( constraint ); - - if ( databaseResults.isEmpty() ) - { - addActionError( "No results found" ); - return INPUT; - } - - if ( databaseResults.size() == 1 ) - { - // 1 hit? return it's information directly! - return ARTIFACT; - } - - return RESULTS; - } - - @Override - public String doInput() - { - return INPUT; - } - - private String getPrincipal() - { - return archivaXworkUser.getActivePrincipal( ActionContext.getContext().getSession() ); - } - - private List getObservableRepos() - { - try - { - return userRepositories.getObservableRepositoryIds( getPrincipal() ); - } - catch ( PrincipalNotFoundException e ) - { - getLogger().warn( e.getMessage(), e ); - } - catch ( AccessDeniedException e ) - { - getLogger().warn( e.getMessage(), e ); - // TODO: pass this onto the screen. - } - catch ( ArchivaSecurityException e ) - { - getLogger().warn( e.getMessage(), e ); - } - return Collections.emptyList(); - } - - private void buildCompleteQueryString( String searchTerm ) - { - if ( searchTerm.indexOf( COMPLETE_QUERY_STRING_SEPARATOR ) != -1 ) - { - searchTerm = StringUtils.remove( searchTerm, COMPLETE_QUERY_STRING_SEPARATOR ); - } - - if ( completeQueryString == null || "".equals( completeQueryString ) ) - { - completeQueryString = searchTerm; - } - else - { - completeQueryString = completeQueryString + COMPLETE_QUERY_STRING_SEPARATOR + searchTerm; - } - } - - private List parseCompleteQueryString() - { - List parsedCompleteQueryString = new ArrayList(); - String[] parsed = StringUtils.split( completeQueryString, COMPLETE_QUERY_STRING_SEPARATOR ); - CollectionUtils.addAll( parsedCompleteQueryString, parsed ); - - return parsedCompleteQueryString; - } - - private boolean isEqualToPreviousSearchTerm( String searchTerm ) - { - if ( !"".equals( completeQueryString ) ) - { - String[] parsed = StringUtils.split( completeQueryString, COMPLETE_QUERY_STRING_SEPARATOR ); - if ( StringUtils.equalsIgnoreCase( searchTerm, parsed[parsed.length - 1] ) ) - { - return true; - } - } - - return false; - } - - public String getQ() - { - return q; - } - - public void setQ( String q ) - { - this.q = q; - } - - public SearchResults getResults() - { - return results; - } - - public List getDatabaseResults() - { - return databaseResults; - } - - public void setCurrentPage( int page ) - { - this.currentPage = page; - } - - public int getCurrentPage() - { - return currentPage; - } - - public int getTotalPages() - { - return totalPages; - } - - public void setTotalPages( int totalPages ) - { - this.totalPages = totalPages; - } - - public boolean isSearchResultsOnly() - { - return searchResultsOnly; - } - - public void setSearchResultsOnly( boolean searchResultsOnly ) - { - this.searchResultsOnly = searchResultsOnly; - } - - public String getCompleteQueryString() - { - return completeQueryString; - } - - public void setCompleteQueryString( String completeQueryString ) - { - this.completeQueryString = completeQueryString; - } - - private boolean isBytecodeSearch( String queryString ) - { - if ( queryString.startsWith( BYTECODE_KEYWORD ) ) - { - return true; - } - - return false; - } - - private String removeKeyword( String queryString ) - { - String qString = StringUtils.uncapitalize( queryString ); - qString = StringUtils.remove( queryString, BYTECODE_KEYWORD ); - - return qString; - } - - public ArchivaConfiguration getArchivaConfiguration() - { - return archivaConfiguration; - } - - public void setArchivaConfiguration( ArchivaConfiguration archivaConfiguration ) - { - this.archivaConfiguration = archivaConfiguration; - } - - public Map getManagedRepositories() - { - return getArchivaConfiguration().getConfiguration().getManagedRepositoriesAsMap(); - } - - public void setManagedRepositories( Map managedRepositories ) - { - this.managedRepositories = managedRepositories; - } - - 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 String getVersion() - { - return version; - } - - public void setVersion( String version ) - { - this.version = version; - } - - public int getRowCount() - { - return rowCount; - } - - public void setRowCount( int rowCount ) - { - this.rowCount = rowCount; - } - - public boolean isFilterSearch() - { - return filterSearch; - } - - public void setFilterSearch( boolean filterSearch ) - { - this.filterSearch = filterSearch; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public List getManagedRepositoryList() - { - return managedRepositoryList; - } - - public void setManagedRepositoryList( List managedRepositoryList ) - { - this.managedRepositoryList = managedRepositoryList; - } - - public String getClassName() - { - return className; - } - - public void setClassName( String className ) - { - this.className = className; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java deleted file mode 100644 index a402515c3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java +++ /dev/null @@ -1,295 +0,0 @@ -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 java.util.Collections; -import java.util.List; - -import org.apache.commons.lang.StringUtils; -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.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.apache.maven.archiva.security.ArchivaXworkUser; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import com.opensymphony.xwork.ActionContext; -import com.opensymphony.xwork.Validateable; - -/** - * Browse the repository. - * - * TODO change name to ShowVersionedAction to conform to terminology. - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="showArtifactAction" - */ -public class ShowArtifactAction - extends PlexusActionSupport - implements Validateable -{ - /* .\ Not Exposed \._____________________________________________ */ - - /** - * @plexus.requirement role-hint="default" - */ - private RepositoryBrowsing repoBrowsing; - - /** - * @plexus.requirement - */ - private UserRepositories userRepositories; - - /** - * @plexus.requirement - */ - private ArchivaXworkUser archivaXworkUser; - - /* .\ Input Parameters \.________________________________________ */ - - private String groupId; - - private String artifactId; - - private String version; - - private String repositoryId; - - /* .\ Exposed Output Objects \.__________________________________ */ - - /** - * The model of this versioned project. - */ - private ArchivaProjectModel model; - - /** - * The list of artifacts that depend on this versioned project. - */ - private List dependees; - - /** - * The reports associated with this versioned project. - */ - private List reports; - - private List mailingLists; - - private List dependencies; - - /** - * Show the versioned project information tab. TODO: Change name to 'project' - */ - public String artifact() - throws ObjectNotFoundException, ArchivaDatabaseException - { - try - { - this.model = - repoBrowsing.selectVersion( getPrincipal(), getObservableRepos(), groupId, artifactId, version ); - this.repositoryId = - repoBrowsing.getRepositoryId( getPrincipal(), getObservableRepos(), groupId, artifactId, version ); - } - catch ( ObjectNotFoundException oe ) - { - addActionError( "Unable to find project model for [" + groupId + ":" + artifactId + ":" + version + "]." ); - - return ERROR; - } - - return SUCCESS; - } - - /** - * Show the artifact information tab. - */ - public String dependencies() - throws ObjectNotFoundException, ArchivaDatabaseException - { - this.model = repoBrowsing.selectVersion( getPrincipal(), getObservableRepos(), groupId, artifactId, version ); - - this.dependencies = model.getDependencies(); - - return SUCCESS; - } - - /** - * Show the mailing lists information tab. - */ - public String mailingLists() - throws ObjectNotFoundException, ArchivaDatabaseException - { - this.model = repoBrowsing.selectVersion( getPrincipal(), getObservableRepos(), groupId, artifactId, version ); - this.mailingLists = model.getMailingLists(); - - return SUCCESS; - } - - /** - * Show the reports tab. - */ - public String reports() - throws ObjectNotFoundException, ArchivaDatabaseException - { - System.out.println( "#### In reports." ); - // TODO: hook up reports on project - this.reports = artifactsDatabase.findArtifactResults( groupId, artifactId, - // version ); - System.out.println( "#### Found " + reports.size() + " reports." ); - - return SUCCESS; - } - - /** - * Show the dependees (other artifacts that depend on this project) tab. - */ - public String dependees() - throws ObjectNotFoundException, ArchivaDatabaseException - { - this.model = repoBrowsing.selectVersion( getPrincipal(), getObservableRepos(), groupId, artifactId, version ); - - this.dependees = repoBrowsing.getUsedBy( getPrincipal(), getObservableRepos(), groupId, artifactId, version ); - - return SUCCESS; - } - - /** - * Show the dependencies of this versioned project tab. - */ - public String dependencyTree() - throws ObjectNotFoundException, ArchivaDatabaseException - { - this.model = repoBrowsing.selectVersion( getPrincipal(), getObservableRepos(), groupId, artifactId, version ); - - return SUCCESS; - } - - private String getPrincipal() - { - return archivaXworkUser.getActivePrincipal( ActionContext.getContext().getSession() ); - } - - private List getObservableRepos() - { - try - { - return userRepositories.getObservableRepositoryIds( getPrincipal() ); - } - catch ( PrincipalNotFoundException e ) - { - getLogger().warn( e.getMessage(), e ); - } - catch ( AccessDeniedException e ) - { - getLogger().warn( e.getMessage(), e ); - // TODO: pass this onto the screen. - } - catch ( ArchivaSecurityException e ) - { - getLogger().warn( e.getMessage(), e ); - } - return Collections.emptyList(); - } - - public void validate() - { - if ( StringUtils.isBlank( groupId ) ) - { - addActionError( "You must specify a group ID to browse" ); - } - - if ( StringUtils.isBlank( artifactId ) ) - { - addActionError( "You must specify a artifact ID to browse" ); - } - - if ( StringUtils.isBlank( version ) ) - { - addActionError( "You must specify a version to browse" ); - } - } - - public ArchivaProjectModel getModel() - { - return model; - } - - 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 String getVersion() - { - return version; - } - - public void setVersion( String version ) - { - this.version = version; - } - - public List getReports() - { - return reports; - } - - public List getMailingLists() - { - return mailingLists; - } - - public List getDependencies() - { - return dependencies; - } - - public List getDependees() - { - return dependees; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java deleted file mode 100644 index cb8bcfe48..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java +++ /dev/null @@ -1,638 +0,0 @@ -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 java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.Collections; -import java.util.List; -import java.util.TimeZone; - -import org.apache.archiva.checksum.ChecksumAlgorithm; -import org.apache.archiva.checksum.ChecksummedFile; -import org.apache.maven.archiva.common.utils.VersionComparator; -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.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArchivaRepositoryMetadata; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.SnapshotVersion; -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.RepositoryNotFoundException; -import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers; -import org.apache.maven.archiva.repository.audit.AuditEvent; -import org.apache.maven.archiva.repository.audit.AuditListener; -import org.apache.maven.archiva.repository.audit.Auditable; -import org.apache.maven.archiva.repository.metadata.MetadataTools; -import org.apache.maven.archiva.repository.metadata.RepositoryMetadataException; -import org.apache.maven.archiva.repository.metadata.RepositoryMetadataReader; -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.security.ArchivaSecurityException; -import org.apache.maven.archiva.security.PrincipalNotFoundException; -import org.apache.maven.archiva.security.UserRepositories; -import org.apache.maven.archiva.security.ArchivaXworkUser; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import com.opensymphony.webwork.ServletActionContext; -import com.opensymphony.xwork.ActionContext; -import com.opensymphony.xwork.Preparable; -import com.opensymphony.xwork.Validateable; -import org.apache.commons.io.FilenameUtils; -import org.apache.commons.lang.StringUtils; - -/** - * 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. - * - * @author Wendy Smoak - * @author Maria Odea Ching - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="uploadAction" - */ -public class UploadAction - extends PlexusActionSupport - implements Validateable, Preparable, Auditable -{ - /** - * @plexus.requirement - */ - private RepositoryContentConsumers consumers; - - /** - * @plexus.requirement - */ - private ArchivaXworkUser archivaXworkUser; - - /** - * The groupId of the artifact to be deployed. - */ - private String groupId; - - /** - * The artifactId of the artifact to be deployed. - */ - private String artifactId; - - /** - * The version of the artifact to be deployed. - */ - private String version; - - /** - * The packaging of the artifact to be deployed. - */ - private String packaging; - - /** - * The classifier of the artifact to be deployed. - */ - private String classifier; - - /** - * The temporary file representing the artifact to be deployed. - */ - private File artifactFile; - - /** - * The content type of the artifact to be deployed. - */ - private String artifactContentType; - - /** - * The original filename of the uploaded artifact file. - */ - private String artifactFilename; - - /** - * The temporary file representing the pom to be deployed alongside the artifact. - */ - private File pomFile; - - /** - * The content type of the pom file. - */ - private String pomContentType; - - /** - * The original filename of the uploaded pom file. - */ - private String pomFilename; - - /** - * The repository where the artifact is to be deployed. - */ - private String repositoryId; - - /** - * Flag whether to generate a pom for the artifact or not. - */ - private boolean generatePom; - - /** - * List of managed repositories to deploy to. - */ - private List managedRepoIdList; - - /** - * @plexus.requirement - */ - private UserRepositories userRepositories; - - /** - * @plexus.requirement role-hint="default" - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement role="org.apache.maven.archiva.repository.audit.AuditListener" - */ - private List auditListeners = new ArrayList(); - - private ChecksumAlgorithm[] algorithms = new ChecksumAlgorithm[] { ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 }; - - private ProjectModelWriter pomWriter = new ProjectModel400Writer(); - - public void setArtifact( File file ) - { - this.artifactFile = file; - } - - public void setArtifactContentType( String contentType ) - { - this.artifactContentType = contentType; - } - - public void setArtifactFileName( String filename ) - { - this.artifactFilename = filename; - } - - public void setPom( File file ) - { - this.pomFile = file; - } - - public void setPomContentType( String contentType ) - { - this.pomContentType = contentType; - } - - public void setPomFileName( String filename ) - { - this.pomFilename = filename; - } - - 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 String getVersion() - { - return version; - } - - public void setVersion( String version ) - { - this.version = version; - } - - public String getPackaging() - { - return packaging; - } - - public void setPackaging( String packaging ) - { - this.packaging = packaging; - } - - public String getClassifier() - { - return classifier; - } - - public void setClassifier( String classifier ) - { - this.classifier = classifier; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public boolean isGeneratePom() - { - return generatePom; - } - - public void setGeneratePom( boolean generatePom ) - { - this.generatePom = generatePom; - } - - public List getManagedRepoIdList() - { - return managedRepoIdList; - } - - public void setManagedRepoIdList( List managedRepoIdList ) - { - this.managedRepoIdList = managedRepoIdList; - } - - public void prepare() - { - managedRepoIdList = - new ArrayList( configuration.getConfiguration().getManagedRepositoriesAsMap().keySet() ); - } - - public String input() - { - return INPUT; - } - - private void reset() - { - // reset the fields so the form is clear when - // the action returns to the jsp page - groupId = ""; - artifactId = ""; - version = ""; - packaging = ""; - classifier = ""; - artifactFile = null; - artifactContentType = ""; - artifactFilename = ""; - pomFile = null; - pomContentType = ""; - pomFilename = ""; - repositoryId = ""; - generatePom = false; - } - - public String doUpload() - { - try - { - ManagedRepositoryConfiguration repoConfig = - configuration.getConfiguration().findManagedRepositoryById( repositoryId ); - - ArtifactReference artifactReference = new ArtifactReference(); - artifactReference.setArtifactId( artifactId ); - artifactReference.setGroupId( groupId ); - artifactReference.setVersion( version ); - artifactReference.setClassifier( classifier ); - artifactReference.setType( packaging ); - - ManagedRepositoryContent repository = repositoryFactory.getManagedRepositoryContent( repositoryId ); - - String artifactPath = repository.toPath( artifactReference ); - - int lastIndex = artifactPath.lastIndexOf( '/' ); - - File targetPath = new File( repoConfig.getLocation(), artifactPath.substring( 0, lastIndex ) ); - - Date lastUpdatedTimestamp = Calendar.getInstance().getTime(); - int newBuildNumber = -1; - String timestamp = null; - - File metadataFile = getMetadata( targetPath.getAbsolutePath() ); - ArchivaRepositoryMetadata metadata = getMetadata( metadataFile ); - - if (VersionUtil.isSnapshot(version)) - { - TimeZone timezone = TimeZone.getTimeZone( "UTC" ); - DateFormat fmt = new SimpleDateFormat( "yyyyMMdd.HHmmss" ); - fmt.setTimeZone( timezone ); - timestamp = fmt.format( lastUpdatedTimestamp ); - if ( metadata.getSnapshotVersion() != null ) - { - newBuildNumber = metadata.getSnapshotVersion().getBuildNumber() + 1; - } - else - { - metadata.setSnapshotVersion( new SnapshotVersion() ); - newBuildNumber = 1; - } - } - - if ( !targetPath.exists() ) - { - targetPath.mkdirs(); - } - - String filename = artifactPath.substring( lastIndex + 1 ); - if ( VersionUtil.isSnapshot( version ) ) - { - filename = filename.replaceAll( "SNAPSHOT", timestamp + "-" + newBuildNumber ); - } - - try - { - copyFile( artifactFile, targetPath, filename ); - consumers.executeConsumers( repoConfig, repository.toFile( artifactReference ) ); - } - catch ( IOException ie ) - { - addActionError( "Error encountered while uploading file: " + ie.getMessage() ); - return ERROR; - } - - String pomFilename = filename; - if( classifier != null && !"".equals( classifier ) ) - { - pomFilename = StringUtils.remove( pomFilename, "-" + classifier ); - } - pomFilename = FilenameUtils.removeExtension( pomFilename ) + ".pom"; - - if ( generatePom ) - { - try - { - File generatedPomFile = createPom( targetPath, pomFilename ); - consumers.executeConsumers( repoConfig, generatedPomFile ); - } - catch ( IOException ie ) - { - addActionError( "Error encountered while writing pom file: " + ie.getMessage() ); - return ERROR; - } - catch ( ProjectModelException pe ) - { - addActionError( "Error encountered while generating pom file: " + pe.getMessage() ); - return ERROR; - } - } - - if ( pomFile != null && pomFile.length() > 0 ) - { - try - { - copyFile( pomFile, targetPath, pomFilename ); - consumers.executeConsumers( repoConfig, new File( targetPath, pomFilename ) ); - } - catch ( IOException ie ) - { - addActionError( "Error encountered while uploading pom file: " + ie.getMessage() ); - return ERROR; - } - - } - - updateMetadata( metadata, metadataFile, lastUpdatedTimestamp, timestamp, newBuildNumber ); - - String msg = "Artifact \'" + groupId + ":" + artifactId + ":" + version + - "\' was successfully deployed to repository \'" + repositoryId + "\'"; - - triggerAuditEvent( getPrincipal(), repositoryId, groupId + ":" + artifactId + ":" + version, AuditEvent.UPLOAD_FILE ); - - addActionMessage( msg ); - - reset(); - return SUCCESS; - } - catch ( RepositoryNotFoundException re ) - { - addActionError( "Target repository cannot be found: " + re.getMessage() ); - return ERROR; - } - catch ( RepositoryException rep ) - { - addActionError( "Repository exception: " + rep.getMessage() ); - return ERROR; - } - } - - private String getPrincipal() - { - return archivaXworkUser.getActivePrincipal( ActionContext.getContext().getSession() ); - } - - private void copyFile( File sourceFile, File targetPath, String targetFilename ) - throws IOException - { - FileOutputStream out = new FileOutputStream( new File( targetPath, targetFilename ) ); - - try - { - FileInputStream input = new FileInputStream( sourceFile ); - int i = 0; - while ( ( i = input.read() ) != -1 ) - { - out.write( i ); - } - out.flush(); - } - finally - { - out.close(); - } - } - - private File createPom( File targetPath, String filename ) - throws IOException, ProjectModelException - { - ArchivaProjectModel projectModel = new ArchivaProjectModel(); - projectModel.setGroupId( groupId ); - projectModel.setArtifactId( artifactId ); - projectModel.setVersion( version ); - projectModel.setPackaging( packaging ); - - File pomFile = new File( targetPath, filename); - pomWriter.write( projectModel, pomFile ); - - return pomFile; - } - - private File getMetadata( String targetPath ) - { - String artifactPath = targetPath.substring( 0, targetPath.lastIndexOf( File.separatorChar ) ); - - return new File( artifactPath, MetadataTools.MAVEN_METADATA ); - } - - private ArchivaRepositoryMetadata getMetadata( File metadataFile ) - throws RepositoryMetadataException - { - ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata(); - if ( metadataFile.exists() ) - { - metadata = RepositoryMetadataReader.read( metadataFile ); - } - return metadata; - } - - /** - * Update artifact level metadata. If it does not exist, create the metadata. - * - * @param metadata - */ - private void updateMetadata( ArchivaRepositoryMetadata metadata, File metadataFile, Date lastUpdatedTimestamp, - String timestamp, int buildNumber ) - throws RepositoryMetadataException - { - List availableVersions = new ArrayList(); - String latestVersion = version; - - if ( metadataFile.exists() ) - { - availableVersions = metadata.getAvailableVersions(); - - Collections.sort( availableVersions, VersionComparator.getInstance() ); - - if ( !availableVersions.contains( version ) ) - { - availableVersions.add( version ); - } - - latestVersion = availableVersions.get( availableVersions.size() - 1 ); - } - else - { - availableVersions.add( version ); - - metadata.setGroupId( groupId ); - metadata.setArtifactId( artifactId ); - } - - if ( metadata.getGroupId() == null ) - { - metadata.setGroupId( groupId ); - } - if ( metadata.getArtifactId() == null ) - { - metadata.setArtifactId( artifactId ); - } - - metadata.setLatestVersion( latestVersion ); - metadata.setLastUpdatedTimestamp( lastUpdatedTimestamp ); - metadata.setAvailableVersions( availableVersions ); - - if ( !VersionUtil.isSnapshot( version ) ) - { - metadata.setReleasedVersion( latestVersion ); - } - else - { - metadata.getSnapshotVersion().setBuildNumber( buildNumber ); - - metadata.getSnapshotVersion().setTimestamp( timestamp ); - } - - RepositoryMetadataWriter.write( metadata, metadataFile ); - ChecksummedFile checksum = new ChecksummedFile( metadataFile ); - checksum.fixChecksums( algorithms ); - } - - public void validate() - { - try - { - // is this enough check for the repository permission? - if ( !userRepositories.isAuthorizedToUploadArtifacts( getPrincipal(), repositoryId ) ) - { - addActionError( "User is not authorized to upload in repository " + repositoryId ); - } - - if ( artifactFile == null || artifactFile.length() == 0 ) - { - addActionError( "Please add a file to upload." ); - } - - if ( !VersionUtil.isVersion( version ) ) - { - addActionError( "Invalid version." ); - } - } - catch ( PrincipalNotFoundException pe ) - { - addActionError( pe.getMessage() ); - } - catch ( ArchivaSecurityException ae ) - { - addActionError( ae.getMessage() ); - } - } - - public void addAuditListener( AuditListener listener ) - { - this.auditListeners.add( listener ); - } - - public void clearAuditListeners() - { - this.auditListeners.clear(); - } - - public void removeAuditListener( AuditListener listener ) - { - this.auditListeners.remove( listener ); - } - - private void triggerAuditEvent( String user, String repositoryId, String resource, String action ) - { - AuditEvent event = new AuditEvent( repositoryId, user, resource, action ); - event.setRemoteIP( ServletActionContext.getRequest().getRemoteAddr() ); - - for ( AuditListener listener : auditListeners ) - { - listener.auditEvent( event ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SchedulerAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SchedulerAction.java deleted file mode 100644 index fb0db8436..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SchedulerAction.java +++ /dev/null @@ -1,188 +0,0 @@ -package org.apache.maven.archiva.web.action.admin; - -/* - * 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.common.ArchivaException; -import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler; -import org.apache.maven.archiva.scheduled.DefaultArchivaTaskScheduler; -import org.apache.maven.archiva.scheduled.tasks.ArchivaTask; -import org.apache.maven.archiva.scheduled.tasks.DatabaseTask; -import org.apache.maven.archiva.scheduled.tasks.RepositoryTask; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.redback.xwork.interceptor.SecureAction; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.taskqueue.TaskQueueException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -/** - * Configures the application. - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="schedulerAction" - */ -public class SchedulerAction - extends PlexusActionSupport - implements SecureAction -{ - private static final String REPO_SUCCESS = "repoSucces"; - - private static final String DB_SUCCESS = "dbSuccess"; - - /** - * @plexus.requirement - */ - private ArchivaTaskScheduler taskScheduler; - - private String repoid; - - public String scanRepository() - { - if ( StringUtils.isBlank( repoid ) ) - { - addActionError( "Cannot run indexer on blank repository id." ); - return SUCCESS; - } - - RepositoryTask task = new RepositoryTask(); - task.setRepositoryId( repoid ); - task.setName( DefaultArchivaTaskScheduler.REPOSITORY_JOB + ":" + repoid ); - task.setQueuePolicy( ArchivaTask.QUEUE_POLICY_WAIT ); - - boolean scheduleTask = false; - - try - { - if ( taskScheduler.isProcessingAnyRepositoryTask() ) - { - if ( taskScheduler.isProcessingRepositoryTask( repoid ) ) - { - addActionError( "Repository [" + repoid + "] task was already queued." ); - } - else - { - scheduleTask = true; - } - } - else - { - scheduleTask = true; - } - } - catch ( ArchivaException e ) - { - scheduleTask = false; - addActionError( e.getMessage() ); - } - - if ( scheduleTask ) - { - try - { - taskScheduler.queueRepositoryTask( task ); - addActionMessage( "Your request to have repository [" + repoid + "] be indexed has been queued." ); - } - catch ( TaskQueueException e ) - { - addActionError( "Unable to queue your request to have repository [" + repoid + "] be indexed: " - + e.getMessage() ); - } - } - - // Return to the repositories screen. - return SUCCESS; - } - - public String updateDatabase() - { - DatabaseTask task = new DatabaseTask(); - task.setName( DefaultArchivaTaskScheduler.DATABASE_JOB + ":user-requested" ); - task.setQueuePolicy( ArchivaTask.QUEUE_POLICY_WAIT ); - - boolean scheduleTask = false; - - try - { - if ( taskScheduler.isProcessingDatabaseTask() ) - { - addActionError( "Database task was already queued." ); - } - else - { - scheduleTask = true; - } - } - catch ( ArchivaException e ) - { - scheduleTask = false; - addActionError( e.getMessage() ); - } - - if ( scheduleTask ) - { - try - { - taskScheduler.queueDatabaseTask( task ); - addActionMessage( "Your request to update the database has been queued." ); - } - catch ( TaskQueueException e ) - { - addActionError( "Unable to queue your request to update the database: " + e.getMessage() ); - } - } - - // Return to the database screen. - return SUCCESS; - } - - public void addActionMessage( String aMessage ) - { - super.addActionMessage( aMessage ); - getLogger().info( "[ActionMessage] " + aMessage ); - } - - public void addActionError( String anErrorMessage ) - { - super.addActionError( anErrorMessage ); - getLogger().warn( "[ActionError] " + anErrorMessage ); - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_RUN_INDEXER, Resource.GLOBAL ); - - return bundle; - } - - public String getRepoid() - { - return repoid; - } - - public void setRepoid( String repoid ) - { - this.repoid = repoid; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/AbstractAppearanceAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/AbstractAppearanceAction.java deleted file mode 100644 index f8d6bf73f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/AbstractAppearanceAction.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.appearance; - -/* - * 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.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.OrganisationInformation; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import com.opensymphony.xwork.Preparable; - -/** - * AbstractAppearanceAction - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractAppearanceAction - extends PlexusActionSupport - implements Preparable -{ - /** - * Archiva Application Configuration - * @plexus.requirement - */ - protected ArchivaConfiguration configuration; - - private String organisationLogo; - - private String organisationUrl; - - private String organisationName; - - public void setConfiguration(ArchivaConfiguration configuration) - { - this.configuration = configuration; - } - - public String getOrganisationLogo() - { - return organisationLogo; - } - - public String getOrganisationName() - { - return organisationName; - } - - public String getOrganisationUrl() - { - return organisationUrl; - } - - public void setOrganisationLogo(String organisationLogo) - { - this.organisationLogo = organisationLogo; - } - - public void setOrganisationName(String organisationName) - { - this.organisationName = organisationName; - } - - public void setOrganisationUrl(String organisationUrl) - { - this.organisationUrl = organisationUrl; - } - - public void prepare() - throws Exception - { - Configuration config = configuration.getConfiguration(); - if (config != null) - { - OrganisationInformation orgInfo = config.getOrganisationInfo(); - if (orgInfo != null) - { - setOrganisationLogo(orgInfo.getLogoLocation()); - setOrganisationName(orgInfo.getName()); - setOrganisationUrl(orgInfo.getUrl()); - } - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/EditOrganisationInfoAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/EditOrganisationInfoAction.java deleted file mode 100644 index 1304b5046..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/EditOrganisationInfoAction.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.appearance; - -/* - * 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.redback.xwork.interceptor.SecureAction; - -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.OrganisationInformation; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.registry.RegistryException; - -/** - * @author Brett Porter - * @version $Id: ConfigurationAction.java 480950 2006-11-30 14:58:35Z evenisse $ - * - * @plexus.component role="com.opensymphony.xwork.Action" - * role-hint="editOrganisationInfo" - */ -public class EditOrganisationInfoAction - extends AbstractAppearanceAction - implements SecureAction -{ - @Override - public String execute() - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = configuration.getConfiguration(); - if (config != null) - { - OrganisationInformation orgInfo = config.getOrganisationInfo(); - if (orgInfo == null) - { - config.setOrganisationInfo(orgInfo); - } - - orgInfo.setLogoLocation(getOrganisationLogo()); - orgInfo.setName(getOrganisationName()); - orgInfo.setUrl(getOrganisationUrl()); - - configuration.save(config); - } - return SUCCESS; - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - return bundle; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/OrganisationInfoAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/OrganisationInfoAction.java deleted file mode 100644 index bcacf1ea4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/appearance/OrganisationInfoAction.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.appearance; - -/* - * 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. - */ - -/** - * Stores the organisation information for displaying on the page. - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="organisationInfo" - */ -public class OrganisationInfoAction - extends AbstractAppearanceAction -{ -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorAction.java deleted file mode 100644 index b7f2e60d4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorAction.java +++ /dev/null @@ -1,137 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.collections.functors.NotPredicate; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.functors.ProxyConnectorSelectionPredicate; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.redback.xwork.interceptor.SecureAction; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import java.util.List; -import java.util.Map; - -/** - * AbstractProxyConnectorAction - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractProxyConnectorAction - extends PlexusActionSupport - implements SecureAction -{ - public static final String DIRECT_CONNECTION = "(direct connection)"; - - /** - * @plexus.requirement - */ - protected ArchivaConfiguration archivaConfiguration; - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public void setArchivaConfiguration( ArchivaConfiguration archivaConfiguration ) - { - this.archivaConfiguration = archivaConfiguration; - } - - protected void addProxyConnector( ProxyConnectorConfiguration proxyConnector ) - { - getConfig().addProxyConnector( proxyConnector ); - } - - protected ProxyConnectorConfiguration findProxyConnector( String sourceId, String targetId ) - { - if ( StringUtils.isBlank( sourceId ) ) - { - return null; - } - - if ( StringUtils.isBlank( targetId ) ) - { - return null; - } - - ProxyConnectorSelectionPredicate selectedProxy = new ProxyConnectorSelectionPredicate( sourceId, targetId ); - return (ProxyConnectorConfiguration) CollectionUtils.find( getConfig().getProxyConnectors(), selectedProxy ); - } - - protected Configuration getConfig() - { - return this.archivaConfiguration.getConfiguration(); - } - - protected Map> createProxyConnectorMap() - { - return getConfig().getProxyConnectorAsMap(); - } - - protected void removeConnector( String sourceId, String targetId ) - { - ProxyConnectorSelectionPredicate selectedProxy = new ProxyConnectorSelectionPredicate( sourceId, targetId ); - NotPredicate notSelectedProxy = new NotPredicate( selectedProxy ); - CollectionUtils.filter( getConfig().getProxyConnectors(), notSelectedProxy ); - } - - protected void removeProxyConnector( ProxyConnectorConfiguration connector ) - { - getConfig().removeProxyConnector( connector ); - } - - protected String saveConfiguration() - { - try - { - archivaConfiguration.save( getConfig() ); - addActionMessage( "Successfully saved configuration" ); - } - catch ( RegistryException e ) - { - addActionError( "Unable to save configuration: " + e.getMessage() ); - return INPUT; - } - catch ( IndeterminateConfigurationException e ) - { - addActionError( e.getMessage() ); - return INPUT; - } - - return SUCCESS; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java deleted file mode 100644 index 1318f5765..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java +++ /dev/null @@ -1,452 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.xwork.Preparable; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.policies.DownloadErrorPolicy; -import org.apache.maven.archiva.policies.Policy; -import org.apache.maven.archiva.policies.PostDownloadPolicy; -import org.apache.maven.archiva.policies.PreDownloadPolicy; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * AbstractProxyConnectorFormAction - generic fields and methods for either add or edit actions related with the - * Proxy Connector. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractProxyConnectorFormAction - extends AbstractProxyConnectorAction - implements Preparable -{ - - /** - * @plexus.requirement role="org.apache.maven.archiva.policies.PreDownloadPolicy" - */ - private Map preDownloadPolicyMap; - - /** - * @plexus.requirement role="org.apache.maven.archiva.policies.PostDownloadPolicy" - */ - private Map postDownloadPolicyMap; - - /** - * @plexus.requirement role="org.apache.maven.archiva.policies.DownloadErrorPolicy" - */ - private Map downloadErrorPolicyMap; - - /** - * The list of network proxy ids that are available. - */ - private List proxyIdOptions; - - /** - * The list of managed repository ids that are available. - */ - private List managedRepoIdList; - - /** - * The list of remove repository ids that are available. - */ - private List remoteRepoIdList; - - /** - * The map of policies that are available to be set. - */ - private Map policyMap; - - /** - * The property key to add or remove. - */ - private String propertyKey; - - /** - * The property value to add. - */ - private String propertyValue; - - /** - * The blacklist pattern to add. - */ - private String blackListPattern; - - /** - * The whitelist pattern to add. - */ - private String whiteListPattern; - - /** - * The pattern to add or remove (black or white). - */ - private String pattern; - - /** - * The model for this action. - */ - protected ProxyConnectorConfiguration connector; - - public String addBlackListPattern() - { - String pattern = getBlackListPattern(); - - if ( StringUtils.isBlank( pattern ) ) - { - addActionError( "Cannot add a blank black list pattern." ); - } - - if ( !hasActionErrors() ) - { - getConnector().getBlackListPatterns().add( pattern ); - setBlackListPattern( null ); - } - - return INPUT; - } - - public String addProperty() - { - String key = getPropertyKey(); - String value = getPropertyValue(); - - if ( StringUtils.isBlank( key ) ) - { - addActionError( "Unable to add property with blank key." ); - } - - if ( StringUtils.isBlank( value ) ) - { - addActionError( "Unable to add property with blank value." ); - } - - if ( !hasActionErrors() ) - { - getConnector().getProperties().put( key, value ); - setPropertyKey( null ); - setPropertyValue( null ); - } - - return INPUT; - } - - public String addWhiteListPattern() - { - String pattern = getWhiteListPattern(); - - if ( StringUtils.isBlank( pattern ) ) - { - addActionError( "Cannot add a blank white list pattern." ); - } - - if ( !hasActionErrors() ) - { - getConnector().getWhiteListPatterns().add( pattern ); - setWhiteListPattern( null ); - } - - return INPUT; - } - - public String getBlackListPattern() - { - return blackListPattern; - } - - public ProxyConnectorConfiguration getConnector() - { - return connector; - } - - public List getManagedRepoIdList() - { - return managedRepoIdList; - } - - public String getPattern() - { - return pattern; - } - - public Map getPolicyMap() - { - return policyMap; - } - - public String getPropertyKey() - { - return propertyKey; - } - - public String getPropertyValue() - { - return propertyValue; - } - - public List getProxyIdOptions() - { - return proxyIdOptions; - } - - public List getRemoteRepoIdList() - { - return remoteRepoIdList; - } - - public String getWhiteListPattern() - { - return whiteListPattern; - } - - public void prepare() - { - proxyIdOptions = createNetworkProxyOptions(); - managedRepoIdList = createManagedRepoOptions(); - remoteRepoIdList = createRemoteRepoOptions(); - policyMap = createPolicyMap(); - } - - public String removeBlackListPattern() - { - String pattern = getPattern(); - - if ( StringUtils.isBlank( pattern ) ) - { - addActionError( "Cannot remove a blank black list pattern." ); - } - - if ( !getConnector().getBlackListPatterns().contains( pattern ) ) - { - addActionError( "Non-existant black list pattern [" + pattern + "], no black list pattern removed." ); - } - - if ( !hasActionErrors() ) - { - getConnector().getBlackListPatterns().remove( pattern ); - } - - setBlackListPattern( null ); - setPattern( null ); - - return INPUT; - } - - public String removeProperty() - { - String key = getPropertyKey(); - - if ( StringUtils.isBlank( key ) ) - { - addActionError( "Unable to remove property with blank key." ); - } - - if ( !getConnector().getProperties().containsKey( key ) ) - { - addActionError( "Non-existant property key [" + pattern + "], no property was removed." ); - } - - if ( !hasActionErrors() ) - { - getConnector().getProperties().remove( key ); - } - - setPropertyKey( null ); - setPropertyValue( null ); - - return INPUT; - } - - public String removeWhiteListPattern() - { - String pattern = getPattern(); - - if ( StringUtils.isBlank( pattern ) ) - { - addActionError( "Cannot remove a blank white list pattern." ); - } - - if ( !getConnector().getWhiteListPatterns().contains( pattern ) ) - { - addActionError( "Non-existant white list pattern [" + pattern + "], no white list pattern removed." ); - } - - if ( !hasActionErrors() ) - { - getConnector().getWhiteListPatterns().remove( pattern ); - } - - setWhiteListPattern( null ); - setPattern( null ); - - return INPUT; - } - - public void setBlackListPattern( String blackListPattern ) - { - this.blackListPattern = blackListPattern; - } - - public void setConnector( ProxyConnectorConfiguration connector ) - { - this.connector = connector; - } - - public void setManagedRepoIdList( List managedRepoIdList ) - { - this.managedRepoIdList = managedRepoIdList; - } - - public void setPattern( String pattern ) - { - this.pattern = pattern; - } - - public void setPolicyMap( Map policyMap ) - { - this.policyMap = policyMap; - } - - public void setPropertyKey( String propertyKey ) - { - this.propertyKey = propertyKey; - } - - public void setPropertyValue( String propertyValue ) - { - this.propertyValue = propertyValue; - } - - public void setProxyIdOptions( List proxyIdOptions ) - { - this.proxyIdOptions = proxyIdOptions; - } - - public void setRemoteRepoIdList( List remoteRepoIdList ) - { - this.remoteRepoIdList = remoteRepoIdList; - } - - public void setWhiteListPattern( String whiteListPattern ) - { - this.whiteListPattern = whiteListPattern; - } - - protected List createManagedRepoOptions() - { - return new ArrayList( getConfig().getManagedRepositoriesAsMap().keySet() ); - } - - protected List createNetworkProxyOptions() - { - List options = new ArrayList(); - - options.add( DIRECT_CONNECTION ); - options.addAll( getConfig().getNetworkProxiesAsMap().keySet() ); - - return options; - } - - protected Map createPolicyMap() - { - Map policyMap = new HashMap(); - - policyMap.putAll( preDownloadPolicyMap ); - policyMap.putAll( postDownloadPolicyMap ); - policyMap.putAll( downloadErrorPolicyMap ); - - return policyMap; - } - - protected List createRemoteRepoOptions() - { - return new ArrayList( getConfig().getRemoteRepositoriesAsMap().keySet() ); - } - - protected void validateConnector() - { - if ( connector.getPolicies() == null ) - { - addActionError( "Policies must be set." ); - } - else - { - // Validate / Fix policy settings arriving from browser. - for ( Map.Entry entry : getPolicyMap().entrySet() ) - { - String policyId = entry.getKey(); - Policy policy = entry.getValue(); - List options = policy.getOptions(); - - if ( !connector.getPolicies().containsKey( policyId ) ) - { - addActionError( "Policy [" + policyId + "] must be set (missing id)." ); - continue; - } - - Map properties = connector.getProperties(); - for ( Iterator j = properties.keySet().iterator(); j.hasNext(); ) - { - String key = (String) j.next(); - - Object value = properties.get( key ); - if ( value.getClass().isArray() ) - { - String[] arr = (String[]) value; - properties.put( key, arr[0] ); - } - } - - // Ugly hack to compensate for ugly browsers. - Object o = connector.getPolicies().get( policyId ); - String value; - if ( o.getClass().isArray() ) - { - String arr[] = (String[]) o; - value = arr[0]; - } - else - { - value = (String) o; - } - - connector.getPolicies().put( policyId, value ); - - if ( StringUtils.isBlank( value ) ) - { - addActionError( "Policy [" + policyId + "] must be set (missing value)." ); - continue; - } - - if ( !options.contains( value ) ) - { - addActionError( "Value of [" + value + "] is invalid for policy [" + policyId + "], valid values: " - + options ); - continue; - } - } - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java deleted file mode 100644 index 84c158cff..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.configuration.ProxyConnectorConfiguration; - -/** - * AddProxyConnectorAction - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="addProxyConnectorAction" - */ -public class AddProxyConnectorAction - extends AbstractProxyConnectorFormAction -{ - @Override - public void prepare() - { - super.prepare(); - connector = new ProxyConnectorConfiguration(); - } - - public String input() - { - return INPUT; - } - - public String commit() - { - /* Too complex for webwork's ${Action}-validation.xml techniques. - * Not appropriate for use with webwork's implements Validatable, as that validates regardless of - * the request method, such as .addProperty() or .addWhiteList(). - * - * This validation is ultimately only useful on this one request method. - */ - String sourceId = connector.getSourceRepoId(); - String targetId = connector.getTargetRepoId(); - - ProxyConnectorConfiguration otherConnector = findProxyConnector( sourceId, targetId ); - if ( otherConnector != null ) - { - addActionError( "Unable to add proxy connector, as one already exists with source repository id [" - + sourceId + "] and target repository id [" + targetId + "]." ); - } - - validateConnector(); - - if ( hasActionErrors() ) - { - return INPUT; - } - - if( StringUtils.equals( DIRECT_CONNECTION, connector.getProxyId() ) ) - { - connector.setProxyId( null ); - } - - addProxyConnector( connector ); - return saveConfiguration(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorAction.java deleted file mode 100644 index 2de3ee9a5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorAction.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.configuration.ProxyConnectorConfiguration; - -/** - * DeleteProxyConnectorAction - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="deleteProxyConnectorAction" - */ -public class DeleteProxyConnectorAction - extends AbstractProxyConnectorAction -{ - private String source; - - private String target; - - private ProxyConnectorConfiguration proxyConfig; - - public String confirmDelete() - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( "Unable to delete proxy configuration, configuration with source [" + source - + "], and target [" + target + "] does not exist." ); - return ERROR; - } - - return INPUT; - } - - public String delete() - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( "Unable to delete proxy configuration, configuration with source [" + source - + "], and target [" + target + "] does not exist." ); - return ERROR; - } - - if ( hasActionErrors() ) - { - return ERROR; - } - - removeProxyConnector( proxyConfig ); - addActionMessage( "Successfully removed proxy connector [" + source + " , " + target + " ]" ); - - setSource( null ); - setTarget( null ); - - return saveConfiguration(); - } - - public String getSource() - { - return source; - } - - public void setSource( String id ) - { - this.source = id; - } - - public String getTarget() - { - return target; - } - - public void setTarget( String id ) - { - this.target = id; - } - - public ProxyConnectorConfiguration getProxyConfig() - { - return proxyConfig; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorAction.java deleted file mode 100644 index 5ae3a4ddf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorAction.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; - -/* - * 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. - */ - -/** - * DisableProxyConnectorAction - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="disableProxyConnectorAction" - */ -public class DisableProxyConnectorAction extends AbstractProxyConnectorAction -{ - private String source; - - private String target; - - private ProxyConnectorConfiguration proxyConfig; - - public String confirmDisable() - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( "Unable to disable proxy configuration, configuration with source [" + source - + "], and target [" + target + "] does not exist." ); - return ERROR; - } - - return INPUT; - } - - public String disable() - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( "Unable to disable proxy configuration, configuration with source [" + source - + "], and target [" + target + "] does not exist." ); - return ERROR; - } - - if ( hasActionErrors() ) - { - return ERROR; - } - - proxyConfig.setDisabled(true); - - addActionMessage( "Successfully disabled proxy connector [" + source + " , " + target + " ]" ); - - setSource( null ); - setTarget( null ); - - return saveConfiguration(); - } - - public String getSource() - { - return source; - } - - public void setSource(String source) - { - this.source = source; - } - - public String getTarget() - { - return target; - } - - public void setTarget(String target) - { - this.target = target; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java deleted file mode 100644 index 8b050e94f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.configuration.ProxyConnectorConfiguration; - - -/** - * EditProxyConnectorAction - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="editProxyConnectorAction" - */ -public class EditProxyConnectorAction - extends AbstractProxyConnectorFormAction -{ - /** - * The proxy connector source id to edit. (used with {@link #target}) - */ - private String source; - - /** - * The proxy connector target id to edit. (used with {@link #source}) - */ - private String target; - - @Override - public void prepare() - { - super.prepare(); - - connector = findProxyConnector( source, target ); - } - - public String input() - { - if ( connector == null ) - { - addActionError( "Unable to edit non existant proxy connector with source [" + source + "] and target [" - + target + "]" ); - return ERROR; - } - - return INPUT; - } - - public String commit() - { - validateConnector(); - - if ( hasActionErrors() ) - { - return INPUT; - } - - String sourceId = connector.getSourceRepoId(); - String targetId = connector.getTargetRepoId(); - - ProxyConnectorConfiguration otherConnector = findProxyConnector( sourceId, targetId ); - if ( otherConnector != null ) - { - // Remove the previous connector. - removeProxyConnector( otherConnector ); - } - - if ( hasActionErrors() ) - { - return INPUT; - } - - addProxyConnector( connector ); - return saveConfiguration(); - } - - public String getSource() - { - return source; - } - - public void setSource( String source ) - { - this.source = source; - } - - public String getTarget() - { - return target; - } - - public void setTarget( String target ) - { - this.target = target; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorAction.java deleted file mode 100644 index 9a46d597d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorAction.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; - -/* - * 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. - */ - -/** - * EnableProxyConnectorAction - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="enableProxyConnectorAction" - */ -public class EnableProxyConnectorAction extends AbstractProxyConnectorAction -{ - private String source; - - private String target; - - private ProxyConnectorConfiguration proxyConfig; - - public String confirmEnable() - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( "Unable to enable proxy configuration, configuration with source [" + source - + "], and target [" + target + "] does not exist." ); - return ERROR; - } - - return INPUT; - } - - public String enable() - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( "Unable to enabled proxy configuration, configuration with source [" + source - + "], and target [" + target + "] does not exist." ); - return ERROR; - } - - if ( hasActionErrors() ) - { - return ERROR; - } - - proxyConfig.setDisabled(false); - - addActionMessage( "Successfully enabled proxy connector [" + source + " , " + target + " ]" ); - - setSource( null ); - setTarget( null ); - - return saveConfiguration(); - } - - public String getSource() - { - return source; - } - - public void setSource(String source) - { - this.source = source; - } - - public String getTarget() - { - return target; - } - - public void setTarget(String target) - { - this.target = target; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ProxyConnectorsAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ProxyConnectorsAction.java deleted file mode 100644 index 3cfb0ece9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ProxyConnectorsAction.java +++ /dev/null @@ -1,83 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.xwork.Preparable; - -import org.apache.maven.archiva.configuration.AbstractRepositoryConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * ProxyConnectorsAction - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="proxyConnectorsAction" - */ -public class ProxyConnectorsAction - extends AbstractProxyConnectorAction - implements Preparable -{ - private Map repoMap; - - /** - * boolean to indicate that remote repo is present. Used for Add Link - */ - private boolean remoteRepoExists=false; - - /** - * Map of Proxy Connectors. - */ - private Map> proxyConnectorMap; - - public void prepare() - { - Configuration config = archivaConfiguration.getConfiguration(); - - repoMap = new HashMap(); - repoMap.putAll( config.getRemoteRepositoriesAsMap() ); - repoMap.putAll( config.getManagedRepositoriesAsMap() ); - - proxyConnectorMap = createProxyConnectorMap(); - - remoteRepoExists=config.getRemoteRepositories().size()>0; - } - - public Map getRepoMap() - { - return repoMap; - } - - public Map> getProxyConnectorMap() - { - return proxyConnectorMap; - } - - public boolean getRemoteRepoExists() - { - return remoteRepoExists; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsAction.java deleted file mode 100644 index 75b0f455a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsAction.java +++ /dev/null @@ -1,136 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.configuration.ProxyConnectorConfiguration; - -import java.util.List; - -/** - * SortProxyConnectorsAction - - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="sortProxyConnectorsAction" - */ -public class SortProxyConnectorsAction - extends AbstractProxyConnectorAction -{ - private String source; - - private String target; - - public String getSource() - { - return source; - } - - public String getTarget() - { - return target; - } - - public void setSource( String id ) - { - this.source = id; - } - - public void setTarget( String id ) - { - this.target = id; - } - - public String sortDown() - { - List connectors = createProxyConnectorMap().get( source ); - - int idx = findTargetConnector( connectors, target ); - - if ( idx >= 0 ) - { - incrementConnectorOrder( connectors, idx ); - decrementConnectorOrder( connectors, idx + 1 ); - } - - return saveConfiguration(); - } - - public String sortUp() - { - List connectors = createProxyConnectorMap().get( source ); - - int idx = findTargetConnector( connectors, target ); - - if ( idx >= 0 ) - { - decrementConnectorOrder( connectors, idx ); - incrementConnectorOrder( connectors, idx - 1 ); - } - - return saveConfiguration(); - } - - private void decrementConnectorOrder( List connectors, int idx ) - { - if ( !validIndex( connectors, idx ) ) - { - // Do nothing. - return; - } - - int order = connectors.get( idx ).getOrder(); - connectors.get( idx ).setOrder( Math.max( 1, order - 1 ) ); - } - - private int findTargetConnector( List connectors, String targetRepoId ) - { - int idx = ( -1 ); - - for ( int i = 0; i < connectors.size(); i++ ) - { - if ( StringUtils.equals( targetRepoId, connectors.get( i ).getTargetRepoId() ) ) - { - idx = i; - break; - } - } - - return idx; - } - - private void incrementConnectorOrder( List connectors, int idx ) - { - if ( !validIndex( connectors, idx ) ) - { - // Do nothing. - return; - } - - int order = connectors.get( idx ).getOrder(); - connectors.get( idx ).setOrder( order + 1 ); - } - - private boolean validIndex( List connectors, int idx ) - { - return ( idx >= 0 ) && ( idx < connectors.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AddAdminDatabaseConsumerClosure.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AddAdminDatabaseConsumerClosure.java deleted file mode 100644 index e777de63e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AddAdminDatabaseConsumerClosure.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.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.collections.Closure; -import org.apache.maven.archiva.consumers.ArchivaArtifactConsumer; - -import java.util.ArrayList; -import java.util.List; - -/** - * AddAdminDatabaseConsumerClosure - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AddAdminDatabaseConsumerClosure - implements Closure -{ - private List list = new ArrayList(); - - private List selectedIds; - - public AddAdminDatabaseConsumerClosure( List selectedIds ) - { - this.selectedIds = selectedIds; - } - - public void execute( Object input ) - { - if ( input instanceof ArchivaArtifactConsumer ) - { - ArchivaArtifactConsumer consumer = (ArchivaArtifactConsumer) input; - - boolean enabled = this.selectedIds.contains( consumer.getId() ); - - AdminDatabaseConsumer adminconsumer = new AdminDatabaseConsumer(); - adminconsumer.setEnabled( enabled ); - adminconsumer.setId( consumer.getId() ); - adminconsumer.setDescription( consumer.getDescription() ); - - list.add( adminconsumer ); - } - } - - public List getList() - { - return list; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AdminDatabaseConsumer.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AdminDatabaseConsumer.java deleted file mode 100644 index 33172320f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AdminDatabaseConsumer.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.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. - */ - -/** - * AdminDatabaseConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AdminDatabaseConsumer -{ - private boolean enabled = false; - - private String id; - - private String description; - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isEnabled() - { - return enabled; - } - - public void setDescription( String description ) - { - this.description = description; - } - - public void setEnabled( boolean enabled ) - { - this.enabled = enabled; - } - - public void setId( String id ) - { - this.id = id; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AdminDatabaseConsumerComparator.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AdminDatabaseConsumerComparator.java deleted file mode 100644 index 98d1f51a5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/AdminDatabaseConsumerComparator.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.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.util.Comparator; - -/** - * AdminDatabaseConsumerComparator - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AdminDatabaseConsumerComparator - implements Comparator -{ - private static AdminDatabaseConsumerComparator INSTANCE = new AdminDatabaseConsumerComparator(); - - public static AdminDatabaseConsumerComparator getInstance() - { - return INSTANCE; - } - - public int compare( Object o1, Object o2 ) - { - if ( o1 == null && o2 == null ) - { - return 0; - } - - if ( o1 == null && o2 != null ) - { - return 1; - } - - if ( o1 != null && o2 == null ) - { - return -1; - } - - if ( ( o1 instanceof AdminDatabaseConsumer ) && ( o2 instanceof AdminDatabaseConsumer ) ) - { - String id1 = ( (AdminDatabaseConsumer) o1 ).getId(); - String id2 = ( (AdminDatabaseConsumer) o2 ).getId(); - return id1.compareToIgnoreCase( id2 ); - } - - return 0; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java deleted file mode 100644 index 277aefee6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/database/DatabaseAction.java +++ /dev/null @@ -1,199 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.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 com.opensymphony.xwork.Preparable; -import org.apache.commons.collections.CollectionUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.DatabaseScanningConfiguration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.database.updater.DatabaseConsumers; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.apache.maven.archiva.web.action.admin.scanning.AdminRepositoryConsumerComparator; -import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.redback.xwork.interceptor.SecureAction; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import java.util.Collections; -import java.util.List; - -/** - * DatabaseAction - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="databaseAction" - */ -public class DatabaseAction - extends PlexusActionSupport - implements Preparable, SecureAction -{ - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - /** - * @plexus.requirement - */ - private DatabaseConsumers databaseConsumers; - - private String cron; - - /** - * List of available {@link AdminDatabaseConsumer} objects for unprocessed artifacts. - */ - private List unprocessedConsumers; - - /** - * List of enabled {@link AdminDatabaseConsumer} objects for unprocessed artifacts. - */ - private List enabledUnprocessedConsumers; - - /** - * List of {@link AdminDatabaseConsumer} objects for "to cleanup" artifacts. - */ - private List cleanupConsumers; - - /** - * List of enabled {@link AdminDatabaseConsumer} objects for "to cleanup" artifacts. - */ - private List enabledCleanupConsumers; - - public void prepare() - throws Exception - { - Configuration config = archivaConfiguration.getConfiguration(); - DatabaseScanningConfiguration dbscanning = config.getDatabaseScanning(); - - this.cron = dbscanning.getCronExpression(); - - AddAdminDatabaseConsumerClosure addAdminDbConsumer; - - addAdminDbConsumer = new AddAdminDatabaseConsumerClosure( dbscanning.getUnprocessedConsumers() ); - CollectionUtils.forAllDo( databaseConsumers.getAvailableUnprocessedConsumers(), addAdminDbConsumer ); - this.unprocessedConsumers = addAdminDbConsumer.getList(); - Collections.sort( this.unprocessedConsumers, AdminRepositoryConsumerComparator.getInstance() ); - - addAdminDbConsumer = new AddAdminDatabaseConsumerClosure( dbscanning.getCleanupConsumers() ); - CollectionUtils.forAllDo( databaseConsumers.getAvailableCleanupConsumers(), addAdminDbConsumer ); - this.cleanupConsumers = addAdminDbConsumer.getList(); - Collections.sort( this.cleanupConsumers, AdminRepositoryConsumerComparator.getInstance() ); - } - - public String updateUnprocessedConsumers() - { - archivaConfiguration.getConfiguration().getDatabaseScanning().setUnprocessedConsumers( - enabledUnprocessedConsumers ); - - return saveConfiguration(); - } - - public String updateCleanupConsumers() - { - archivaConfiguration.getConfiguration().getDatabaseScanning().setCleanupConsumers( enabledCleanupConsumers ); - - return saveConfiguration(); - } - - public String updateSchedule() - { - archivaConfiguration.getConfiguration().getDatabaseScanning().setCronExpression( cron ); - - return saveConfiguration(); - } - - private String saveConfiguration() - { - try - { - archivaConfiguration.save( archivaConfiguration.getConfiguration() ); - addActionMessage( "Successfully saved configuration" ); - } - catch ( RegistryException e ) - { - getLogger().error( e.getMessage(), e ); - addActionError( "Error in saving configuration" ); - return INPUT; - } - catch ( IndeterminateConfigurationException e ) - { - addActionError( e.getMessage() ); - return INPUT; - } - - return SUCCESS; - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public String getCron() - { - return cron; - } - - public void setCron( String cron ) - { - this.cron = cron; - } - - public List getCleanupConsumers() - { - return cleanupConsumers; - } - - public List getUnprocessedConsumers() - { - return unprocessedConsumers; - } - - public List getEnabledUnprocessedConsumers() - { - return enabledUnprocessedConsumers; - } - - public void setEnabledUnprocessedConsumers( List enabledUnprocessedConsumers ) - { - this.enabledUnprocessedConsumers = enabledUnprocessedConsumers; - } - - public List getEnabledCleanupConsumers() - { - return enabledCleanupConsumers; - } - - public void setEnabledCleanupConsumers( List enabledCleanupConsumers ) - { - this.enabledCleanupConsumers = enabledCleanupConsumers; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction.java deleted file mode 100644 index fa7f22616..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction.java +++ /dev/null @@ -1,184 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.legacy; - -/* - * 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.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.LegacyArtifactPath; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import com.opensymphony.webwork.components.ActionError; -import com.opensymphony.xwork.Preparable; - -/** - * Add a LegacyArtifactPath to archiva configuration - * - * @since 1.1 - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="addLegacyArtifactPathAction" - */ -public class AddLegacyArtifactPathAction - extends PlexusActionSupport - implements Preparable -{ - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - /** - * @plexus.requirement role-hint="legacy" - */ - private ManagedRepositoryContent repositoryContent; - - - private LegacyArtifactPath legacyArtifactPath; - - private String groupId; - - private String artifactId; - - private String version; - - private String classifier; - - private String type; - - - public void prepare() - { - this.legacyArtifactPath = new LegacyArtifactPath(); - } - - public String input() - { - return INPUT; - } - - public String commit() - { - this.legacyArtifactPath.setArtifact( - this.groupId + ":" + this.artifactId + ":" + this.classifier + ":" + this.version + ":" + this.type ); - - // Check the proposed Artifact macthes the path - ArtifactReference artifact = new ArtifactReference(); - - artifact.setGroupId( this.groupId ); - artifact.setArtifactId( this.artifactId ); - artifact.setClassifier( this.classifier ); - artifact.setVersion( this.version ); - artifact.setType( this.type ); - - String path = repositoryContent.toPath( artifact ); - if ( ! path.equals( this.legacyArtifactPath.getPath() ) ) - { - addActionError( "artifact reference does not match the initial path : " + path ); - return ERROR; - } - - Configuration configuration = archivaConfiguration.getConfiguration(); - configuration.addLegacyArtifactPath( legacyArtifactPath ); - return saveConfiguration( configuration ); - } - - public LegacyArtifactPath getLegacyArtifactPath() - { - return legacyArtifactPath; - } - - public void setLegacyArtifactPath( LegacyArtifactPath legacyArtifactPath ) - { - this.legacyArtifactPath = legacyArtifactPath; - } - - protected String saveConfiguration( Configuration configuration ) - { - try - { - archivaConfiguration.save( configuration ); - addActionMessage( "Successfully saved configuration" ); - } - catch ( IndeterminateConfigurationException e ) - { - addActionError( e.getMessage() ); - return INPUT; - } - catch ( RegistryException e ) - { - addActionError( "Configuration Registry Exception: " + e.getMessage() ); - return INPUT; - } - - return SUCCESS; - } - - 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 String getVersion() - { - return version; - } - - public void setVersion( String version ) - { - this.version = version; - } - - public String getClassifier() - { - return classifier; - } - - public void setClassifier( String classifier ) - { - this.classifier = classifier; - } - - public String getType() - { - return type; - } - - public void setType( String type ) - { - this.type = type; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/DeleteLegacyArtifactPathAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/DeleteLegacyArtifactPathAction.java deleted file mode 100644 index 0a0f6a025..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/DeleteLegacyArtifactPathAction.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.legacy; - -/* - * 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.Iterator; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.LegacyArtifactPath; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -/** - * Delete a LegacyArtifactPath to archiva configuration - * - * - * @since 1.1 - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="deleteLegacyArtifactPathAction" - */ -public class DeleteLegacyArtifactPathAction - extends PlexusActionSupport -{ - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - private String path; - - public String delete() - { - getLogger().info( "remove [" + path + "] from legacy artifact path resolution" ); - Configuration configuration = archivaConfiguration.getConfiguration(); - for ( Iterator iterator = configuration.getLegacyArtifactPaths().iterator(); iterator.hasNext(); ) - { - LegacyArtifactPath legacyArtifactPath = (LegacyArtifactPath) iterator.next(); - if (legacyArtifactPath.match( path )) - { - iterator.remove(); - } - } - return saveConfiguration( configuration ); - } - - protected String saveConfiguration( Configuration configuration ) - { - try - { - archivaConfiguration.save( configuration ); - addActionMessage( "Successfully saved configuration" ); - } - catch ( IndeterminateConfigurationException e ) - { - addActionError( e.getMessage() ); - return INPUT; - } - catch ( RegistryException e ) - { - addActionError( "Configuration Registry Exception: " + e.getMessage() ); - return INPUT; - } - - return SUCCESS; - } - - public String getPath() - { - return path; - } - - public void setPath( String path ) - { - this.path = path; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/LegacyArtifactPathAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/LegacyArtifactPathAction.java deleted file mode 100644 index 7efa73b6b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/legacy/LegacyArtifactPathAction.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.legacy; - -/* - * 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; - -import javax.servlet.http.HttpServletRequest; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.LegacyArtifactPath; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.apache.maven.archiva.web.util.ContextUtils; -import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.redback.xwork.interceptor.SecureAction; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import com.opensymphony.webwork.interceptor.ServletRequestAware; -import com.opensymphony.xwork.Preparable; - -/** - * Shows the LegacyArtifactPath Tab for the administrator. - * - * @since 1.1 - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="legacyArtifactPathAction" - */ -public class LegacyArtifactPathAction - extends PlexusActionSupport - implements SecureAction, ServletRequestAware, Preparable -{ - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - private List legacyArtifactPaths; - - /** - * Used to construct the repository WebDAV URL in the repository action. - */ - private String baseUrl; - - public void setServletRequest( HttpServletRequest request ) - { - // TODO: is there a better way to do this? - this.baseUrl = ContextUtils.getBaseURL( request, "repository" ); - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, - Resource.GLOBAL ); - - return bundle; - } - - public void prepare() - { - Configuration config = archivaConfiguration.getConfiguration(); - - legacyArtifactPaths = new ArrayList( config.getLegacyArtifactPaths() ); - } - - public List getLegacyArtifactPaths() - { - return legacyArtifactPaths; - } - - public String getBaseUrl() - { - return baseUrl; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction.java deleted file mode 100644 index 4acc3ae14..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction.java +++ /dev/null @@ -1,229 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.networkproxies; - -/* - * 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.xwork.Preparable; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.functors.NotPredicate; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.NetworkProxyConfiguration; -import org.apache.maven.archiva.configuration.functors.NetworkProxySelectionPredicate; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.redback.xwork.interceptor.SecureAction; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -/** - * ConfigureNetworkProxyAction - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="configureNetworkProxyAction" - */ -public class ConfigureNetworkProxyAction - extends PlexusActionSupport - implements SecureAction, Preparable -{ - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - private String mode; - - private String proxyid; - - private NetworkProxyConfiguration proxy; - - public String add() - { - this.mode = "add"; - return INPUT; - } - - public String confirm() - { - return INPUT; - } - - public String delete() - { - Configuration config = archivaConfiguration.getConfiguration(); - - String id = getProxyid(); - if ( StringUtils.isBlank( id ) ) - { - addActionError( "Unable to delete network proxy with blank id." ); - return SUCCESS; - } - - NetworkProxySelectionPredicate networkProxySelection = new NetworkProxySelectionPredicate( id ); - NetworkProxyConfiguration proxyConfig = (NetworkProxyConfiguration) CollectionUtils.find( config - .getNetworkProxies(), networkProxySelection ); - if ( proxyConfig == null ) - { - addActionError( "Unable to remove network proxy, proxy with id [" + id + "] not found." ); - return SUCCESS; - } - - archivaConfiguration.getConfiguration().removeNetworkProxy( proxyConfig ); - addActionMessage( "Successfully removed network proxy [" + id + "]" ); - return saveConfiguration(); - } - - public String edit() - { - this.mode = "edit"; - return INPUT; - } - - public String getMode() - { - return mode; - } - - public NetworkProxyConfiguration getProxy() - { - return proxy; - } - - public String getProxyid() - { - return proxyid; - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public String input() - { - return INPUT; - } - - public void prepare() - throws Exception - { - String id = getProxyid(); - - if ( StringUtils.isNotBlank( id ) ) - { - proxy = findNetworkProxy( id ); - } - - if ( proxy == null ) - { - proxy = new NetworkProxyConfiguration(); - } - } - - public String save() - { - String mode = getMode(); - - String id = getProxy().getId(); - - if ( StringUtils.equalsIgnoreCase( "edit", mode ) ) - { - removeNetworkProxy( id ); - } - else - { - if ( findNetworkProxy( id ) != null ) - { - addActionError( "Unable to add new repository with id [" + id + "], that id already exists." ); - return INPUT; - } - } - - addNetworkProxy( getProxy() ); - return saveConfiguration(); - } - - public void setMode( String mode ) - { - this.mode = mode; - } - - public void setProxy( NetworkProxyConfiguration proxy ) - { - this.proxy = proxy; - } - - public void setProxyid( String proxyid ) - { - this.proxyid = proxyid; - } - - private void addNetworkProxy( NetworkProxyConfiguration proxy ) - { - archivaConfiguration.getConfiguration().addNetworkProxy( proxy ); - } - - private NetworkProxyConfiguration findNetworkProxy( String id ) - { - Configuration config = archivaConfiguration.getConfiguration(); - - NetworkProxySelectionPredicate selectedProxy = new NetworkProxySelectionPredicate( id ); - - return (NetworkProxyConfiguration) CollectionUtils.find( config.getNetworkProxies(), selectedProxy ); - } - - private void removeNetworkProxy( String id ) - { - NetworkProxySelectionPredicate selectedProxy = new NetworkProxySelectionPredicate( id ); - NotPredicate notSelectedProxy = new NotPredicate( selectedProxy ); - CollectionUtils.filter( archivaConfiguration.getConfiguration().getNetworkProxies(), notSelectedProxy ); - } - - private String saveConfiguration() - { - try - { - archivaConfiguration.save( archivaConfiguration.getConfiguration() ); - addActionMessage( "Successfully saved configuration" ); - } - catch ( RegistryException e ) - { - addActionError( "Unable to save configuration: " + e.getMessage() ); - return INPUT; - } - catch ( IndeterminateConfigurationException e ) - { - addActionError( e.getMessage() ); - return INPUT; - } - - return SUCCESS; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/networkproxies/NetworkProxiesAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/networkproxies/NetworkProxiesAction.java deleted file mode 100644 index 467b3e454..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/networkproxies/NetworkProxiesAction.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.networkproxies; - -/* - * 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.xwork.Preparable; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.redback.xwork.interceptor.SecureAction; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import java.util.List; - -/** - * NetworkProxiesAction - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="networkProxiesAction" - */ -public class NetworkProxiesAction - extends PlexusActionSupport - implements Preparable, SecureAction -{ - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - private List networkProxies; - - public void prepare() - throws Exception - { - networkProxies = configuration.getConfiguration().getNetworkProxies(); - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public List getNetworkProxies() - { - return networkProxies; - } - - public void setNetworkProxies( List networkProxies ) - { - this.networkProxies = networkProxies; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java deleted file mode 100644 index a16700f75..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java +++ /dev/null @@ -1,129 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.role.RoleManager; -import org.codehaus.plexus.redback.role.RoleManagerException; - -import java.io.File; -import java.io.IOException; - -/** - * Abstract ManagedRepositories Action. - * - * Place for all generic methods used in Managed Repository Administration. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractManagedRepositoriesAction - extends AbstractRepositoriesAdminAction -{ - /** - * @plexus.requirement role-hint="default" - */ - protected RoleManager roleManager; - - public static final String CONFIRM = "confirm"; - - public RoleManager getRoleManager() - { - return roleManager; - } - - public void setRoleManager( RoleManager roleManager ) - { - this.roleManager = roleManager; - } - - protected void addRepository( ManagedRepositoryConfiguration repository, Configuration configuration ) - throws IOException - { - // Normalize the path - File file = new File( repository.getLocation() ); - repository.setLocation( file.getCanonicalPath() ); - if ( !file.exists() ) - { - file.mkdirs(); - } - if ( !file.exists() || !file.isDirectory() ) - { - throw new IOException( "Unable to add repository - no write access, can not create the root directory: " + file ); - } - - configuration.addManagedRepository( repository ); - - } - - protected void addRepositoryRoles( ManagedRepositoryConfiguration newRepository ) throws RoleManagerException - { - String repoId = newRepository.getId(); - - // TODO: double check these are configured on start up - // TODO: belongs in the business logic - - if ( !roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoId ) ) - { - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoId ); - } - - if ( !roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoId ) ) - { - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoId ); - } - } - - protected void removeContents( ManagedRepositoryConfiguration existingRepository ) - throws IOException - { - FileUtils.deleteDirectory( new File( existingRepository.getLocation() ) ); - } - - protected void removeRepository( String repoId, Configuration configuration ) - { - ManagedRepositoryConfiguration toremove = configuration.findManagedRepositoryById( repoId ); - if ( toremove != null ) - { - configuration.removeManagedRepository( toremove ); - } - } - - protected void removeRepositoryRoles( ManagedRepositoryConfiguration existingRepository ) - throws RoleManagerException - { - String repoId = existingRepository.getId(); - - if ( roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoId ) ) - { - roleManager.removeTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoId ); - } - - if ( roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoId ) ) - { - roleManager.removeTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoId ); - } - - getLogger().debug( "removed user roles associated with repository " + repoId ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRemoteRepositoriesAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRemoteRepositoriesAction.java deleted file mode 100644 index f991673e1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRemoteRepositoriesAction.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.codehaus.plexus.redback.role.RoleManagerException; - -import java.io.IOException; - -/* - * 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. - */ - -/** - * AbstractRemoteRepositoriesAction - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AbstractRemoteRepositoriesAction - extends AbstractRepositoriesAdminAction -{ - protected void addRepository( RemoteRepositoryConfiguration repository, Configuration configuration ) - throws IOException, RoleManagerException - { - configuration.addRemoteRepository( repository ); - } - - protected void removeRepository( String repoId, Configuration configuration ) - { - RemoteRepositoryConfiguration toremove = configuration.findRemoteRepositoryById( repoId ); - if ( toremove != null ) - { - configuration.removeRemoteRepository( toremove ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java deleted file mode 100644 index a7cd0d7f2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.redback.xwork.interceptor.SecureAction; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import java.util.ArrayList; -import java.util.List; - -/** - * Abstract AdminRepositories Action base. - * - * Base class for all repository administrative functions. - * This should be neutral to the type of action (add/edit/delete) and type of repo (managed/remote) - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractRepositoriesAdminAction - extends PlexusActionSupport - implements SecureAction -{ - /** - * @plexus.requirement - */ - protected ArchivaConfiguration archivaConfiguration; - - public ArchivaConfiguration getArchivaConfiguration() - { - return archivaConfiguration; - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public void setArchivaConfiguration( ArchivaConfiguration archivaConfiguration ) - { - this.archivaConfiguration = archivaConfiguration; - } - - /** - * Save the configuration. - * - * @param configuration the configuration to save. - * @return the webwork result code to issue. - * @throws IOException thrown if unable to save file to disk. - * @throws InvalidConfigurationException thrown if configuration is invalid. - * @throws RegistryException thrown if configuration subsystem has a problem saving the configuration to disk. - */ - protected String saveConfiguration( Configuration configuration ) - { - try - { - archivaConfiguration.save( configuration ); - addActionMessage( "Successfully saved configuration" ); - } - catch ( IndeterminateConfigurationException e ) - { - addActionError( e.getMessage() ); - return INPUT; - } - catch ( RegistryException e ) - { - addActionError( "Configuration Registry Exception: " + e.getMessage() ); - return INPUT; - } - - return SUCCESS; - } - - /** - * Get the list of ProxyConnectors that are present in the configuration. - * - * @return a new list of ProxyConnectors present in the configuration. - */ - protected List getProxyConnectors() - { - return new ArrayList( archivaConfiguration.getConfiguration().getProxyConnectors() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java deleted file mode 100644 index 919bce071..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java +++ /dev/null @@ -1,151 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Preparable; -import com.opensymphony.xwork.Validateable; - -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.codehaus.plexus.redback.role.RoleManagerException; -import org.codehaus.plexus.scheduler.CronExpressionValidator; -import java.io.File; -import java.io.IOException; - -/** - * AddManagedRepositoryAction - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="addManagedRepositoryAction" - */ -public class AddManagedRepositoryAction - extends AbstractManagedRepositoriesAction - implements Preparable, Validateable -{ - /** - * The model for this action. - */ - private ManagedRepositoryConfiguration repository; - - private String action = "addRepository"; - - public void prepare() - { - this.repository = new ManagedRepositoryConfiguration(); - this.repository.setReleases( false ); - this.repository.setScanned( false ); - } - - public String input() - { - this.repository.setReleases( true ); - this.repository.setScanned( true ); - - return INPUT; - } - - public String confirmAdd() - { - return save(); - } - - public String commit() - { - File location = new File( repository.getLocation() ); - if( location.exists() ) - { - return CONFIRM; - } - - return save(); - } - - private String save() - { - Configuration configuration = archivaConfiguration.getConfiguration(); - - String result; - try - { - addRepository( repository, configuration ); - addRepositoryRoles( repository ); - result = saveConfiguration( configuration ); - } - catch ( RoleManagerException e ) - { - addActionError( "Role Manager Exception: " + e.getMessage() ); - result = INPUT; - } - catch ( IOException e ) - { - addActionError( "Role Manager Exception: " + e.getMessage() ); - result = INPUT; - } - - return result; - } - - @Override - public void validate() - { - Configuration config = archivaConfiguration.getConfiguration(); - - CronExpressionValidator validator = new CronExpressionValidator(); - String repoId = repository.getId(); - - if ( config.getManagedRepositoriesAsMap().containsKey( repoId ) ) - { - addFieldError( "repository.id", "Unable to add new repository with id [" + repoId - + "], that id already exists as a managed repository." ); - } - else if ( config.getRemoteRepositoriesAsMap().containsKey( repoId ) ) - { - addFieldError( "repository.id", "Unable to add new repository with id [" + repoId - + "], that id already exists as a remote repository." ); - } - else if( config.getRepositoryGroupsAsMap().containsKey( repoId ) ) - { - addFieldError( "repository.id", "Unable to add new repository with id [" + repoId - + "], that id already exists as a repository group." ); - } - - if ( !validator.validate( repository.getRefreshCronExpression() ) ) - { - addFieldError( "repository.refreshCronExpression", "Invalid cron expression." ); - } - } - - public ManagedRepositoryConfiguration getRepository() - { - return repository; - } - - public void setRepository( ManagedRepositoryConfiguration repository ) - { - this.repository = repository; - } - - public String getAction() - { - return action; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryAction.java deleted file mode 100644 index 80d67582c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryAction.java +++ /dev/null @@ -1,119 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Preparable; -import com.opensymphony.xwork.Validateable; - -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.codehaus.plexus.redback.role.RoleManagerException; - -import java.io.IOException; - -/** - * AddRemoteRepositoryAction - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="addRemoteRepositoryAction" - */ -public class AddRemoteRepositoryAction - extends AbstractRemoteRepositoriesAction - implements Preparable, Validateable -{ - /** - * The model for this action. - */ - private RemoteRepositoryConfiguration repository; - - public void prepare() - { - this.repository = new RemoteRepositoryConfiguration(); - } - - public String input() - { - return INPUT; - } - - public String commit() - { - Configuration configuration = archivaConfiguration.getConfiguration(); - - //MRM-752 - url needs trimming - repository.setUrl(repository.getUrl().trim()); - - // Save the repository configuration. - String result; - try - { - addRepository( repository, configuration ); - result = saveConfiguration( configuration ); - } - catch ( IOException e ) - { - addActionError( "I/O Exception: " + e.getMessage() ); - result = INPUT; - } - catch ( RoleManagerException e ) - { - addActionError( "Role Manager Exception: " + e.getMessage() ); - result = INPUT; - } - - return result; - } - - @Override - public void validate() - { - Configuration config = archivaConfiguration.getConfiguration(); - - String repoId = repository.getId(); - - if ( config.getManagedRepositoriesAsMap().containsKey( repoId ) ) - { - addFieldError( "repository.id", "Unable to add new repository with id [" + repoId - + "], that id already exists as a managed repository." ); - } - else if ( config.getRemoteRepositoriesAsMap().containsKey( repoId ) ) - { - addFieldError( "repository.id", "Unable to add new repository with id [" + repoId - + "], that id already exists as a remote repository." ); - } - else if( config.getRepositoryGroupsAsMap().containsKey( repoId ) ) - { - addFieldError( "repository.id", "Unable to add new repository with id [" + repoId - + "], that id already exists as a repository group." ); - } - } - - public RemoteRepositoryConfiguration getRepository() - { - return repository; - } - - public void setRepository( RemoteRepositoryConfiguration repository ) - { - this.repository = repository; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java deleted file mode 100644 index 79b5c8d78..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java +++ /dev/null @@ -1,245 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Preparable; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; - -import org.apache.maven.archiva.database.ArchivaDAO; -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.constraints.ArtifactsByRepositoryConstraint; -import org.apache.maven.archiva.database.constraints.RepositoryContentStatisticsByRepositoryConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.RepositoryContentStatistics; - -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; - -import org.codehaus.plexus.redback.role.RoleManagerException; - -import java.io.IOException; -import java.util.List; -import java.util.Map; - -/** - * DeleteManagedRepositoryAction - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="deleteManagedRepositoryAction" - */ -public class DeleteManagedRepositoryAction - extends AbstractManagedRepositoriesAction - implements Preparable -{ - private ManagedRepositoryConfiguration repository; - - private String repoid; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO archivaDAO; - - public void prepare() - { - if ( StringUtils.isNotBlank( repoid ) ) - { - this.repository = archivaConfiguration.getConfiguration().findManagedRepositoryById( repoid ); - } - } - - public String confirmDelete() - { - if ( StringUtils.isBlank( repoid ) ) - { - addActionError( "Unable to delete managed repository: repository id was blank." ); - return ERROR; - } - - return INPUT; - } - - public String deleteEntry() - { - return deleteRepository( false ); - } - - public String deleteContents() - { - return deleteRepository( true ); - } - - private String deleteRepository( boolean deleteContents ) - { - ManagedRepositoryConfiguration existingRepository = repository; - if ( existingRepository == null ) - { - addActionError( "A repository with that id does not exist" ); - return ERROR; - } - - String result = SUCCESS; - - try - { - Configuration configuration = archivaConfiguration.getConfiguration(); - cleanupRepositoryData( existingRepository ); - removeRepository( repoid, configuration ); - result = saveConfiguration( configuration ); - - if ( result.equals( SUCCESS ) ) - { - if ( deleteContents ) - { - removeContents( existingRepository ); - } - } - } - catch ( IOException e ) - { - addActionError( "Unable to delete repository: " + e.getMessage() ); - result = ERROR; - } - catch ( RoleManagerException e ) - { - addActionError( "Unable to delete repository: " + e.getMessage() ); - result = ERROR; - } - catch ( ArchivaDatabaseException e ) - { - addActionError( "Unable to delete repositoy: " + e.getMessage() ); - result = ERROR; - } - - return result; - } - - private void cleanupRepositoryData( ManagedRepositoryConfiguration cleanupRepository ) - throws RoleManagerException, ArchivaDatabaseException - { - removeRepositoryRoles( cleanupRepository ); - cleanupDatabase( cleanupRepository.getId() ); - cleanupScanStats( cleanupRepository.getId() ); - - List proxyConnectors = getProxyConnectors(); - for ( ProxyConnectorConfiguration proxyConnector : proxyConnectors ) - { - if ( StringUtils.equals( proxyConnector.getSourceRepoId(), cleanupRepository.getId() ) ) - { - archivaConfiguration.getConfiguration().removeProxyConnector( proxyConnector ); - } - } - - Map> repoToGroupMap = archivaConfiguration.getConfiguration().getRepositoryToGroupMap(); - if( repoToGroupMap != null ) - { - if( repoToGroupMap.containsKey( cleanupRepository.getId() ) ) - { - List repoGroups = repoToGroupMap.get( cleanupRepository.getId() ); - for( String repoGroup : repoGroups ) - { - archivaConfiguration.getConfiguration().findRepositoryGroupById( repoGroup ).removeRepository( cleanupRepository.getId() ); - } - } - } - } - - private void cleanupDatabase( String repoId ) - throws ArchivaDatabaseException - { - Constraint constraint = new ArtifactsByRepositoryConstraint( repoId ); - - List artifacts = archivaDAO.getArtifactDAO().queryArtifacts( constraint ); - - for ( ArchivaArtifact artifact : artifacts ) - { - getLogger().info( "Removing artifact " + artifact + " from the database." ); - try - { - archivaDAO.getArtifactDAO().deleteArtifact( artifact ); - - ArchivaProjectModel projectModel = - archivaDAO.getProjectModelDAO().getProjectModel( artifact.getGroupId(), artifact.getArtifactId(), - artifact.getVersion() ); - - archivaDAO.getProjectModelDAO().deleteProjectModel( projectModel ); - } - catch ( ObjectNotFoundException oe ) - { - getLogger().info( "Project model of artifact " + artifact + " does not exist in the database. " + - "Moving on to the next artifact." ); - } - catch ( ArchivaDatabaseException ae ) - { - getLogger().info( "Unable to delete artifact " + artifact + " from the database. " + - "Moving on to the next artifact." ); - } - } - } - - private void cleanupScanStats( String repoId ) - throws ArchivaDatabaseException - { - List results = - archivaDAO.getRepositoryContentStatisticsDAO().queryRepositoryContentStatistics( - new RepositoryContentStatisticsByRepositoryConstraint( repoId ) ); - - for ( RepositoryContentStatistics stats : results ) - { - archivaDAO.getRepositoryContentStatisticsDAO().deleteRepositoryContentStatistics( stats ); - } - } - - public ManagedRepositoryConfiguration getRepository() - { - return repository; - } - - public void setRepository( ManagedRepositoryConfiguration repository ) - { - this.repository = repository; - } - - public String getRepoid() - { - return repoid; - } - - public void setRepoid( String repoid ) - { - this.repoid = repoid; - } - - public void setArchivaDAO( ArchivaDAO archivaDAO ) - { - this.archivaDAO = archivaDAO; - } - - public ArchivaDAO getArchivaDAO() - { - return archivaDAO; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryAction.java deleted file mode 100644 index c63996b5f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryAction.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Preparable; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; - -import java.util.List; - -/** - * DeleteRemoteRepositoryAction - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="deleteRemoteRepositoryAction" - */ -public class DeleteRemoteRepositoryAction - extends AbstractRemoteRepositoriesAction - implements Preparable -{ - private RemoteRepositoryConfiguration repository; - - private String repoid; - - public void prepare() - { - if ( StringUtils.isNotBlank( repoid ) ) - { - this.repository = archivaConfiguration.getConfiguration().findRemoteRepositoryById( repoid ); - } - } - - public String confirmDelete() - { - if ( StringUtils.isBlank( repoid ) ) - { - addActionError( "Unable to delete remote repository: repository id was blank." ); - return ERROR; - } - - return INPUT; - } - - public String delete() - { - String result = SUCCESS; - RemoteRepositoryConfiguration existingRepository = repository; - if ( existingRepository == null ) - { - addActionError( "A repository with that id does not exist" ); - return ERROR; - } - - Configuration configuration = archivaConfiguration.getConfiguration(); - removeRepository( repoid, configuration ); - result = saveConfiguration( configuration ); - - cleanupRepositoryData( existingRepository ); - - return result; - } - - private void cleanupRepositoryData( RemoteRepositoryConfiguration existingRepository ) - { - // [MRM-520] Proxy Connectors are not deleted with the deletion of a Repository. - - List proxyConnectors = getProxyConnectors(); - for ( ProxyConnectorConfiguration proxyConnector : proxyConnectors ) - { - if ( StringUtils.equals( proxyConnector.getTargetRepoId(), existingRepository.getId() ) ) - { - archivaConfiguration.getConfiguration().removeProxyConnector( proxyConnector ); - } - } - } - - public RemoteRepositoryConfiguration getRepository() - { - return repository; - } - - public void setRepository( RemoteRepositoryConfiguration repository ) - { - this.repository = repository; - } - - public String getRepoid() - { - return repoid; - } - - public void setRepoid( String repoid ) - { - this.repoid = repoid; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRepositoryGroupAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRepositoryGroupAction.java deleted file mode 100644 index 653a29318..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRepositoryGroupAction.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Preparable; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.RepositoryGroupConfiguration; - -/** - * DeleteRepositoryGroupAction - * - * @author - * @version - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="deleteRepositoryGroupAction" - */ -public class DeleteRepositoryGroupAction - extends AbstractRepositoriesAdminAction - implements Preparable -{ - private RepositoryGroupConfiguration repositoryGroup; - - private String repoGroupId; - - public void prepare() - { - if ( StringUtils.isNotBlank( repoGroupId ) ) - { - this.repositoryGroup = archivaConfiguration.getConfiguration().findRepositoryGroupById( repoGroupId ); - } - } - - public String confirmDelete() - { - if ( StringUtils.isBlank( repoGroupId ) ) - { - addActionError( "Unable to delete repository group: repository id was blank." ); - return ERROR; - } - - return INPUT; - } - - public String delete() - { - Configuration config = archivaConfiguration.getConfiguration(); - - RepositoryGroupConfiguration group = config.findRepositoryGroupById( repoGroupId ); - if ( group == null ) - { - addActionError( "A repository group with that id does not exist." ); - return ERROR; - } - - config.removeRepositoryGroup( group ); - return saveConfiguration( config ); - } - - public RepositoryGroupConfiguration getRepositoryGroup() - { - return repositoryGroup; - } - - public void setRepositoryGroup( RepositoryGroupConfiguration repositoryGroup ) - { - this.repositoryGroup = repositoryGroup; - } - - public String getRepoGroupId() - { - return repoGroupId; - } - - public void setRepoGroupId( String repoGroupId ) - { - this.repoGroupId = repoGroupId; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java deleted file mode 100644 index 86817bab6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java +++ /dev/null @@ -1,167 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Preparable; -import com.opensymphony.xwork.Validateable; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.codehaus.plexus.redback.role.RoleManagerException; -import org.codehaus.plexus.scheduler.CronExpressionValidator; - -import java.io.File; -import java.io.IOException; - -/** - * AddManagedRepositoryAction - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="editManagedRepositoryAction" - */ -public class EditManagedRepositoryAction - extends AbstractManagedRepositoriesAction - implements Preparable, Validateable -{ - /** - * The model for this action. - */ - private ManagedRepositoryConfiguration repository; - - private String repoid; - - private final String action = "editRepository"; - - public void prepare() - { - if ( StringUtils.isNotBlank( repoid ) ) - { - repository = archivaConfiguration.getConfiguration().findManagedRepositoryById( repoid ); - } - else if ( repository != null ) - { - repository.setReleases( false ); - repository.setScanned( false ); - } - } - - public String input() - { - if ( repository == null ) - { - addActionError( "Edit failure, unable to edit a repository with a blank repository id." ); - return ERROR; - } - - return INPUT; - } - - public String confirmUpdate() - { - return save(); - } - - public String commit() - { - ManagedRepositoryConfiguration existingConfig = - archivaConfiguration.getConfiguration().findManagedRepositoryById( repository.getId() ); - - // check if the location was changed - if( !StringUtils.equalsIgnoreCase( existingConfig.getLocation().trim(), repository.getLocation().trim() ) ) - { - File dir = new File( repository.getLocation() ); - if( dir.exists() ) - { - return CONFIRM; - } - } - - return save(); - } - - private String save() - { - // Ensure that the fields are valid. - Configuration configuration = archivaConfiguration.getConfiguration(); - - // We are in edit mode, remove the old repository configuration. - removeRepository( repository.getId(), configuration ); - - // Save the repository configuration. - String result; - try - { - addRepository( repository, configuration ); - addRepositoryRoles( repository ); - result = saveConfiguration( configuration ); - } - catch ( IOException e ) - { - addActionError( "I/O Exception: " + e.getMessage() ); - result = ERROR; - } - catch ( RoleManagerException e ) - { - addActionError( "Role Manager Exception: " + e.getMessage() ); - result = ERROR; - } - - return result; - } - - @Override - public void validate() - { - CronExpressionValidator validator = new CronExpressionValidator(); - - if ( !validator.validate( repository.getRefreshCronExpression() ) ) - { - addFieldError( "repository.refreshCronExpression", "Invalid cron expression." ); - } - } - - public String getRepoid() - { - return repoid; - } - - public void setRepoid( String repoid ) - { - this.repoid = repoid; - } - - public ManagedRepositoryConfiguration getRepository() - { - return repository; - } - - public void setRepository( ManagedRepositoryConfiguration repository ) - { - this.repository = repository; - } - - public String getAction() - { - return action; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryAction.java deleted file mode 100644 index abcb8d775..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryAction.java +++ /dev/null @@ -1,120 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Preparable; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.codehaus.plexus.redback.role.RoleManagerException; - -import java.io.IOException; - -/** - * EditRemoteRepositoryAction - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="editRemoteRepositoryAction" - */ -public class EditRemoteRepositoryAction - extends AbstractRemoteRepositoriesAction - implements Preparable -{ - /** - * The model for this action. - */ - private RemoteRepositoryConfiguration repository; - - /** - * The repository id to edit. - */ - private String repoid; - - public void prepare() - { - String id = repoid; - if ( StringUtils.isNotBlank( repoid ) ) - { - this.repository = archivaConfiguration.getConfiguration().findRemoteRepositoryById( id ); - } - } - - public String input() - { - if ( StringUtils.isBlank( repoid ) ) - { - addActionError( "Edit failure, unable to edit a repository with a blank repository id." ); - return ERROR; - } - - return INPUT; - } - - public String commit() - { - Configuration configuration = archivaConfiguration.getConfiguration(); - - // We are in edit mode, remove the old repository configuration. - removeRepository( repository.getId(), configuration ); - - // Save the repository configuration. - String result; - try - { - addRepository( repository, configuration ); - result = saveConfiguration( configuration ); - } - catch ( IOException e ) - { - addActionError( "I/O Exception: " + e.getMessage() ); - result = INPUT; - } - catch ( RoleManagerException e ) - { - addActionError( "Role Manager Exception: " + e.getMessage() ); - result = INPUT; - } - - return result; - } - - public RemoteRepositoryConfiguration getRepository() - { - return repository; - } - - public void setRepository( RemoteRepositoryConfiguration repository ) - { - this.repository = repository; - } - - public String getRepoid() - { - return repoid; - } - - public void setRepoid( String repoid ) - { - this.repoid = repoid; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java deleted file mode 100644 index 3dda6d7d5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java +++ /dev/null @@ -1,145 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.webwork.interceptor.ServletRequestAware; -import com.opensymphony.xwork.Preparable; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.configuration.functors.RepositoryConfigurationComparator; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.constraints.MostRecentRepositoryScanStatistics; -import org.apache.maven.archiva.model.RepositoryContentStatistics; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.apache.maven.archiva.web.util.ContextUtils; -import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.redback.xwork.interceptor.SecureAction; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Shows the Repositories Tab for the administrator. - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="repositoriesAction" - */ -public class RepositoriesAction - extends PlexusActionSupport - implements SecureAction, ServletRequestAware, Preparable -{ - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - private List managedRepositories; - - private List remoteRepositories; - - private Map repositoryStatistics; - - private Map> repositoryToGroupMap; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * Used to construct the repository WebDAV URL in the repository action. - */ - private String baseUrl; - - public void setServletRequest( HttpServletRequest request ) - { - // TODO: is there a better way to do this? - this.baseUrl = ContextUtils.getBaseURL( request, "repository" ); - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public void prepare() - { - Configuration config = archivaConfiguration.getConfiguration(); - - remoteRepositories = new ArrayList( config.getRemoteRepositories() ); - managedRepositories = new ArrayList( config.getManagedRepositories() ); - repositoryToGroupMap = config.getRepositoryToGroupMap(); - - Collections.sort( managedRepositories, new RepositoryConfigurationComparator() ); - Collections.sort( remoteRepositories, new RepositoryConfigurationComparator() ); - - repositoryStatistics = new HashMap(); - for ( ManagedRepositoryConfiguration repo : managedRepositories ) - { - List results = - dao.query( new MostRecentRepositoryScanStatistics( repo.getId() ) ); - if ( !results.isEmpty() ) - { - repositoryStatistics.put( repo.getId(), results.get( 0 ) ); - } - } - } - - public List getManagedRepositories() - { - return managedRepositories; - } - - public List getRemoteRepositories() - { - return remoteRepositories; - } - - public Map getRepositoryStatistics() - { - return repositoryStatistics; - } - - public String getBaseUrl() - { - return baseUrl; - } - - public Map> getRepositoryToGroupMap() - { - return repositoryToGroupMap; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryGroupsAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryGroupsAction.java deleted file mode 100644 index d1109d12a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryGroupsAction.java +++ /dev/null @@ -1,264 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.List; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.servlet.http.HttpServletRequest; - -import com.opensymphony.webwork.interceptor.ServletRequestAware; -import com.opensymphony.xwork.Preparable; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.RepositoryGroupConfiguration; -import org.apache.maven.archiva.web.util.ContextUtils; - -/** - * RepositoryGroupsAction - * - * @author - * @version - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="repositoryGroupsAction" - */ -public class RepositoryGroupsAction - extends AbstractRepositoriesAdminAction - implements ServletRequestAware, Preparable -{ - private RepositoryGroupConfiguration repositoryGroup; - - private Map repositoryGroups; - - private Map managedRepositories; - - private Map> groupToRepositoryMap; - - private String repoGroupId; - - private String repoId; - - /** - * Used to construct the repository WebDAV URL in the repository action. - */ - private String baseUrl; - - private static final Pattern REPO_GROUP_ID_PATTERN = Pattern.compile( "[A-Za-z0-9\\._\\-]+" ); - - public void setServletRequest( HttpServletRequest request ) - { - this.baseUrl = ContextUtils.getBaseURL( request, "repository" ); - } - - public void prepare() - { - Configuration config = archivaConfiguration.getConfiguration(); - - repositoryGroup = new RepositoryGroupConfiguration(); - repositoryGroups = config.getRepositoryGroupsAsMap(); - managedRepositories = config.getManagedRepositoriesAsMap(); - groupToRepositoryMap = config.getGroupToRepositoryMap(); - } - - public String addRepositoryGroup() - { - Configuration configuration = archivaConfiguration.getConfiguration(); - - String repoGroupId = repositoryGroup.getId(); - - if( repoGroupId == null || "".equals( repoGroupId.trim() ) ) - { - addActionError( "Identifier field is required." ); - return ERROR; - } - - if( repoGroupId.length() > 100 ) - { - addActionError( "Identifier [" + repoGroupId + "] is over the maximum limit of 100 characters" ); - return ERROR; - } - - Matcher matcher = REPO_GROUP_ID_PATTERN.matcher( repoGroupId ); - if( !matcher.matches() ) - { - addActionError( "Invalid character(s) found in identifier. Only the following characters are allowed: alphanumeric, '.', '-' and '_'" ); - return ERROR; - } - - if ( StringUtils.isBlank( repoGroupId ) ) - { - addActionError( "You must enter a repository group id." ); - return ERROR; - } - - if ( configuration.getRepositoryGroupsAsMap().containsKey( repoGroupId ) ) - { - addActionError( "Unable to add new repository group with id [" + repoGroupId - + "], that id already exists as a repository group." ); - return ERROR; - } - else if ( configuration.getManagedRepositoriesAsMap().containsKey( repoGroupId ) ) - { - addActionError( "Unable to add new repository group with id [" + repoGroupId - + "], that id already exists as a managed repository." ); - return ERROR; - } - else if ( configuration.getRemoteRepositoriesAsMap().containsKey( repoGroupId ) ) - { - addActionError( "Unable to add new repository group with id [" + repoGroupId - + "], that id already exists as a remote repository." ); - return ERROR; - } - - configuration.addRepositoryGroup( repositoryGroup ); - return saveConfiguration( configuration ); - } - - public String addRepositoryToGroup() - { - Configuration config = archivaConfiguration.getConfiguration(); - RepositoryGroupConfiguration group = config.findRepositoryGroupById( repoGroupId ); - - validateRepository(); - - if ( hasErrors() ) - { - return ERROR; - } - - if ( group.getRepositories().contains( repoId ) ) - { - addActionError( "Repository with id [" + repoId + "] is already in the group" ); - return ERROR; - } - - // remove the old repository group configuration - config.removeRepositoryGroup( group ); - - // save repository group configuration - group.addRepository( repoId ); - config.addRepositoryGroup( group ); - - return saveConfiguration( config ); - } - - public String removeRepositoryFromGroup() - { - Configuration config = archivaConfiguration.getConfiguration(); - RepositoryGroupConfiguration group = config.findRepositoryGroupById( repoGroupId ); - - validateRepository(); - - if( hasErrors() ) - { - return ERROR; - } - - if ( !group.getRepositories().contains( repoId ) ) - { - addActionError( "No repository with id[" + repoId + "] found in the group" ); - return ERROR; - } - - // remove the old repository group configuration - config.removeRepositoryGroup( group ); - - // save repository group configuration - group.removeRepository( repoId ); - config.addRepositoryGroup( group ); - - return saveConfiguration( config ); - } - - public void validateRepository() - { - Configuration config = archivaConfiguration.getConfiguration(); - RepositoryGroupConfiguration group = config.findRepositoryGroupById( repoGroupId ); - ManagedRepositoryConfiguration repo = config.findManagedRepositoryById( repoId ); - - if ( group == null ) - { - addActionError( "A repository group with that id does not exist." ); - } - - if ( repo == null ) - { - addActionError( "A repository with that id does not exist." ); - } - } - - public RepositoryGroupConfiguration getRepositoryGroup() - { - return repositoryGroup; - } - - public void setRepositoryGroup( RepositoryGroupConfiguration repositoryGroup ) - { - this.repositoryGroup = repositoryGroup; - } - - public Map getRepositoryGroups() - { - return repositoryGroups; - } - - public void setRepositoryGroups( Map repositoryGroups ) - { - this.repositoryGroups = repositoryGroups; - } - - public Map getManagedRepositories() - { - return managedRepositories; - } - - public Map> getGroupToRepositoryMap() - { - return this.groupToRepositoryMap; - } - - public String getRepoGroupId() - { - return repoGroupId; - } - - public void setRepoGroupId( String repoGroupId ) - { - this.repoGroupId = repoGroupId; - } - - public String getRepoId() - { - return repoId; - } - - public void setRepoId( String repoId ) - { - this.repoId = repoId; - } - - public String getBaseUrl() - { - return baseUrl; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/SortRepositoriesAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/SortRepositoriesAction.java deleted file mode 100644 index 4ac5c3ddc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/SortRepositoriesAction.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.List; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.RepositoryGroupConfiguration; - -/** - * SortRepositoriesAction - * - * @author - * @version - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="sortRepositoriesAction" - */ -public class SortRepositoriesAction - extends AbstractRepositoriesAdminAction -{ - private String repoGroupId; - - private String targetRepo; - - public String sortDown() - { - Configuration config = archivaConfiguration.getConfiguration(); - - List repositories = getRepositoriesFromGroup(); - - int idx = findTargetRepository( repositories, targetRepo ); - - if ( idx >= 0 && validIndex( repositories, idx + 1 ) ) - { - repositories.remove( idx ); - repositories.add( idx + 1, targetRepo ); - } - - return saveConfiguration( config ); - } - - public String sortUp() - { - Configuration config = archivaConfiguration.getConfiguration(); - - List repositories = getRepositoriesFromGroup(); - - int idx = findTargetRepository( repositories, targetRepo ); - - if ( idx >= 0 && validIndex( repositories, idx - 1 ) ) - { - repositories.remove( idx ); - repositories.add( idx - 1, targetRepo ); - } - - return saveConfiguration( config ); - } - - public String getRepoGroupId() - { - return repoGroupId; - } - - public void setRepoGroupId( String repoGroupId ) - { - this.repoGroupId = repoGroupId; - } - - public String getTargetRepo() - { - return targetRepo; - } - - public void setTargetRepo( String targetRepo ) - { - this.targetRepo = targetRepo; - } - - private int findTargetRepository( List repositories, String targetRepository ) - { - int idx = ( -1 ); - - for ( int i = 0; i < repositories.size(); i++ ) - { - if ( StringUtils.equals( targetRepository, repositories.get(i) ) ) - { - idx = i; - break; - } - } - return idx; - } - - private List getRepositoriesFromGroup() - { - Configuration config = archivaConfiguration.getConfiguration(); - RepositoryGroupConfiguration repoGroup = config.findRepositoryGroupById( repoGroupId ); - return repoGroup.getRepositories(); - } - - private boolean validIndex( List repositories, int idx ) - { - return ( idx >= 0 ) && ( idx < repositories.size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AddAdminRepoConsumerClosure.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AddAdminRepoConsumerClosure.java deleted file mode 100644 index eba5cee96..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AddAdminRepoConsumerClosure.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.scanning; - -/* - * 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.collections.Closure; -import org.apache.maven.archiva.consumers.RepositoryContentConsumer; - -import java.util.ArrayList; -import java.util.List; - -/** - * AddAdminRepoConsumerClosure - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AddAdminRepoConsumerClosure - implements Closure -{ - private List list = new ArrayList(); - - private List selectedIds; - - public AddAdminRepoConsumerClosure( List selectedIds ) - { - this.selectedIds = selectedIds; - } - - public void execute( Object input ) - { - if ( input instanceof RepositoryContentConsumer ) - { - RepositoryContentConsumer consumer = (RepositoryContentConsumer) input; - - boolean enabled = this.selectedIds.contains( consumer.getId() ); - AdminRepositoryConsumer adminconsumer = new AdminRepositoryConsumer(); - adminconsumer.setEnabled( enabled ); - adminconsumer.setId( consumer.getId() ); - adminconsumer.setDescription( consumer.getDescription() ); - - list.add( adminconsumer ); - } - } - - public List getList() - { - return list; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AdminRepositoryConsumer.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AdminRepositoryConsumer.java deleted file mode 100644 index cc33d23b4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AdminRepositoryConsumer.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.scanning; - -/* - * 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. - */ - -/** - * AdminRepositoryConsumer - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AdminRepositoryConsumer -{ - private boolean enabled = false; - private String id; - private String description; - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isEnabled() - { - return enabled; - } - - public void setDescription( String description ) - { - this.description = description; - } - - public void setEnabled( boolean enabled ) - { - this.enabled = enabled; - } - - public void setId( String id ) - { - this.id = id; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AdminRepositoryConsumerComparator.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AdminRepositoryConsumerComparator.java deleted file mode 100644 index cf549fe0d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/AdminRepositoryConsumerComparator.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.scanning; - -/* - * 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.Comparator; - -/** - * AdminRepositoryConsumerComparator - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AdminRepositoryConsumerComparator - implements Comparator -{ - private static AdminRepositoryConsumerComparator INSTANCE = new AdminRepositoryConsumerComparator(); - - public static AdminRepositoryConsumerComparator getInstance() - { - return INSTANCE; - } - - public int compare( Object o1, Object o2 ) - { - if ( o1 == null && o2 == null ) - { - return 0; - } - - if ( o1 == null && o2 != null ) - { - return 1; - } - - if ( o1 != null && o2 == null ) - { - return -1; - } - - if ( ( o1 instanceof AdminRepositoryConsumer ) && ( o2 instanceof AdminRepositoryConsumer ) ) - { - String id1 = ( (AdminRepositoryConsumer) o1 ).getId(); - String id2 = ( (AdminRepositoryConsumer) o2 ).getId(); - return id1.compareToIgnoreCase( id2 ); - } - - return 0; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java deleted file mode 100644 index 0fb82401b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java +++ /dev/null @@ -1,320 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.scanning; - -/* - * 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.xwork.Preparable; -import com.opensymphony.xwork.Validateable; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.FileType; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.RepositoryScanningConfiguration; -import org.apache.maven.archiva.configuration.functors.FiletypeSelectionPredicate; -import org.apache.maven.archiva.configuration.functors.FiletypeToMapClosure; -import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.redback.xwork.interceptor.SecureAction; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -/** - * RepositoryScanningAction - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="repositoryScanningAction" - */ -public class RepositoryScanningAction - extends PlexusActionSupport - implements Preparable, Validateable, SecureAction -{ - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - /** - * @plexus.requirement - */ - private RepositoryContentConsumers repoconsumerUtil; - - private Map fileTypeMap; - - private List fileTypeIds; - - /** - * List of {@link AdminRepositoryConsumer} objects for consumers of known content. - */ - private List knownContentConsumers; - - /** - * List of enabled {@link AdminRepositoryConsumer} objects for consumers of known content. - */ - private List enabledKnownContentConsumers; - - /** - * List of {@link AdminRepositoryConsumer} objects for consumers of invalid/unknown content. - */ - private List invalidContentConsumers; - - /** - * List of enabled {@link AdminRepositoryConsumer} objects for consumers of invalid/unknown content. - */ - private List enabledInvalidContentConsumers; - - private String pattern; - - private String fileTypeId; - - public void addActionError( String anErrorMessage ) - { - super.addActionError( anErrorMessage ); - getLogger().warn( "[ActionError] " + anErrorMessage ); - } - - public void addActionMessage( String aMessage ) - { - super.addActionMessage( aMessage ); - getLogger().info( "[ActionMessage] " + aMessage ); - } - - public String addFiletypePattern() - { - getLogger().info( "Add New File Type Pattern [" + getFileTypeId() + ":" + getPattern() + "]" ); - - if ( !isValidFiletypeCommand() ) - { - return INPUT; - } - - String id = getFileTypeId(); - String pattern = getPattern(); - - FileType filetype = findFileType( id ); - if ( filetype == null ) - { - addActionError( "Pattern not added, unable to find filetype " + id ); - return INPUT; - } - - if ( filetype.getPatterns().contains( pattern ) ) - { - addActionError( "Not adding pattern \"" + pattern + "\" to filetype " + id + " as it already exists." ); - return INPUT; - } - - filetype.addPattern( pattern ); - addActionMessage( "Added pattern \"" + pattern + "\" to filetype " + id ); - - return saveConfiguration(); - } - - public String getFileTypeId() - { - return fileTypeId; - } - - public List getFileTypeIds() - { - return fileTypeIds; - } - - public Map getFileTypeMap() - { - return fileTypeMap; - } - - public List getInvalidContentConsumers() - { - return invalidContentConsumers; - } - - public List getKnownContentConsumers() - { - return knownContentConsumers; - } - - public String getPattern() - { - return pattern; - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public void prepare() - throws Exception - { - Configuration config = archivaConfiguration.getConfiguration(); - RepositoryScanningConfiguration reposcanning = config.getRepositoryScanning(); - - FiletypeToMapClosure filetypeToMapClosure = new FiletypeToMapClosure(); - - CollectionUtils.forAllDo( reposcanning.getFileTypes(), filetypeToMapClosure ); - fileTypeMap = filetypeToMapClosure.getMap(); - - AddAdminRepoConsumerClosure addAdminRepoConsumer; - - addAdminRepoConsumer = new AddAdminRepoConsumerClosure( reposcanning.getKnownContentConsumers() ); - CollectionUtils.forAllDo( repoconsumerUtil.getAvailableKnownConsumers(), addAdminRepoConsumer ); - this.knownContentConsumers = addAdminRepoConsumer.getList(); - Collections.sort( knownContentConsumers, AdminRepositoryConsumerComparator.getInstance() ); - - addAdminRepoConsumer = new AddAdminRepoConsumerClosure( reposcanning.getInvalidContentConsumers() ); - CollectionUtils.forAllDo( repoconsumerUtil.getAvailableInvalidConsumers(), addAdminRepoConsumer ); - this.invalidContentConsumers = addAdminRepoConsumer.getList(); - Collections.sort( invalidContentConsumers, AdminRepositoryConsumerComparator.getInstance() ); - - fileTypeIds = new ArrayList(); - fileTypeIds.addAll( fileTypeMap.keySet() ); - Collections.sort( fileTypeIds ); - } - - public String removeFiletypePattern() - { - getLogger().info( "Remove File Type Pattern [" + getFileTypeId() + ":" + getPattern() + "]" ); - - if ( !isValidFiletypeCommand() ) - { - return INPUT; - } - - FileType filetype = findFileType( getFileTypeId() ); - if ( filetype == null ) - { - addActionError( "Pattern not removed, unable to find filetype " + getFileTypeId() ); - return INPUT; - } - - filetype.removePattern( getPattern() ); - - return saveConfiguration(); - } - - public void setFileTypeId( String fileTypeId ) - { - this.fileTypeId = fileTypeId; - } - - public void setPattern( String pattern ) - { - this.pattern = pattern; - } - - public String updateInvalidConsumers() - { - addActionMessage( "Update Invalid Consumers" ); - - archivaConfiguration.getConfiguration().getRepositoryScanning().setInvalidContentConsumers( - enabledInvalidContentConsumers ); - - return saveConfiguration(); - } - - public String updateKnownConsumers() - { - addActionMessage( "Update Known Consumers" ); - - archivaConfiguration.getConfiguration().getRepositoryScanning().setKnownContentConsumers( - enabledKnownContentConsumers ); - - return saveConfiguration(); - } - - private FileType findFileType( String id ) - { - RepositoryScanningConfiguration scanning = archivaConfiguration.getConfiguration().getRepositoryScanning(); - return (FileType) CollectionUtils.find( scanning.getFileTypes(), new FiletypeSelectionPredicate( id ) ); - } - - private boolean isValidFiletypeCommand() - { - if ( StringUtils.isBlank( getFileTypeId() ) ) - { - addActionError( "Unable to process blank filetype id." ); - } - - if ( StringUtils.isBlank( getPattern() ) ) - { - addActionError( "Unable to process blank pattern." ); - } - - return !hasActionErrors(); - } - - private String saveConfiguration() - { - try - { - archivaConfiguration.save( archivaConfiguration.getConfiguration() ); - addActionMessage( "Successfully saved configuration" ); - } - catch ( RegistryException e ) - { - addActionError( "Unable to save configuration: " + e.getMessage() ); - return INPUT; - } - catch ( IndeterminateConfigurationException e ) - { - addActionError( e.getMessage() ); - return INPUT; - } - - return SUCCESS; - } - - public List getEnabledInvalidContentConsumers() - { - return enabledInvalidContentConsumers; - } - - public void setEnabledInvalidContentConsumers( List enabledInvalidContentConsumers ) - { - this.enabledInvalidContentConsumers = enabledInvalidContentConsumers; - } - - public List getEnabledKnownContentConsumers() - { - return enabledKnownContentConsumers; - } - - public void setEnabledKnownContentConsumers( List enabledKnownContentConsumers ) - { - this.enabledKnownContentConsumers = enabledKnownContentConsumers; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java deleted file mode 100644 index 0fcb62342..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java +++ /dev/null @@ -1,649 +0,0 @@ -package org.apache.maven.archiva.web.action.reports; - -/* - * 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.webwork.interceptor.ServletRequestAware; -import com.opensymphony.xwork.Preparable; - -import org.apache.commons.lang.time.DateFormatUtils; -import org.apache.commons.lang.time.DateUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.database.ArchivaDAO; -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.RepositoryContentStatisticsDAO; -import org.apache.maven.archiva.database.constraints.RangeConstraint; -import org.apache.maven.archiva.database.constraints.RepositoryContentStatisticsByRepositoryConstraint; -import org.apache.maven.archiva.database.constraints.RepositoryProblemByGroupIdConstraint; -import org.apache.maven.archiva.database.constraints.RepositoryProblemByRepositoryIdConstraint; -import org.apache.maven.archiva.database.constraints.RepositoryProblemConstraint; -import org.apache.maven.archiva.database.constraints.UniqueFieldConstraint; -import org.apache.maven.archiva.model.RepositoryContentStatistics; -import org.apache.maven.archiva.model.RepositoryProblem; -import org.apache.maven.archiva.model.RepositoryProblemReport; -import org.apache.maven.archiva.reporting.ArchivaReportException; -import org.apache.maven.archiva.reporting.DataLimits; -import org.apache.maven.archiva.reporting.RepositoryStatistics; -import org.apache.maven.archiva.reporting.RepositoryStatisticsReportGenerator; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.redback.xwork.interceptor.SecureAction; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.xwork.action.PlexusActionSupport; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.servlet.http.HttpServletRequest; - -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -/** - * @plexus.component role="com.opensymphony.xwork.Action" role-hint="generateReport" - */ -public class GenerateReportAction - extends PlexusActionSupport - implements SecureAction, ServletRequestAware, Preparable -{ - private Logger log = LoggerFactory.getLogger( GenerateReportAction.class ); - - /** - * @plexus.requirement role-hint="jdo" - */ - protected ArchivaDAO dao; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - protected Constraint constraint; - - protected HttpServletRequest request; - - protected List reports = new ArrayList(); - - protected String groupId; - - protected String repositoryId; - - protected String prev; - - protected String next; - - protected int[] range = new int[2]; - - protected int page = 1; - - protected int rowCount = 100; - - protected boolean isLastPage; - - public static final String BLANK = "blank"; - - public static final String BASIC = "basic"; - - private static Boolean jasperPresent; - - private Collection repositoryIds; - - public static final String ALL_REPOSITORIES = "All Repositories"; - - protected Map> repositoriesMap = - new TreeMap>(); - - // for statistics report - /** - * @plexus.requirement role-hint="simple" - */ - private RepositoryStatisticsReportGenerator generator; - - private List selectedRepositories = new ArrayList(); - - private List availableRepositories; - - private String startDate; - - private String endDate; - - private int reposSize; - - private String selectedRepo; - - private List repositoryStatistics = new ArrayList(); - - private DataLimits limits = new DataLimits(); - - private String[] datePatterns = new String[] { "MM/dd/yy", "MM/dd/yyyy", "MMMMM/dd/yyyy", "MMMMM/dd/yy", - "dd MMMMM yyyy", "dd/MM/yy", "dd/MM/yyyy", "yyyy/MM/dd" }; - - public void prepare() - { - repositoryIds = new ArrayList(); - repositoryIds.add( ALL_REPOSITORIES ); // comes first to be first in the list - repositoryIds.addAll( - dao.query( new UniqueFieldConstraint( RepositoryProblem.class.getName(), "repositoryId" ) ) ); - - availableRepositories = new ArrayList(); - - // remove selected repositories in the option for the statistics report - availableRepositories.addAll( archivaConfiguration.getConfiguration().getManagedRepositoriesAsMap().keySet() ); - for( String repo : selectedRepositories ) - { - if( availableRepositories.contains( repo ) ) - { - availableRepositories.remove( repo ); - } - } - } - - public Collection getRepositoryIds() - { - return repositoryIds; - } - - /** - * Generate the statistics report. - * - * check whether single repo report or comparison report - * 1. if it is a single repository, get all the statistics for the repository on the specified date - * - if no date is specified, get only the latest - * (total page = 1 --> no pagination since only the most recent stats will be displayed) - * - otherwise, get everything within the date range (total pages = repo stats / rows per page) - * - required params: repository, startDate, endDate - * - * 2. if multiple repositories, get the latest statistics on each repository on the specified date - * - if no date is specified, use the current date endDate - * - required params: repositories, endDate - * - total pages = repositories / rows per page - * - * @return - */ - public String generateStatistics() - { - if( rowCount < 10 ) - { - addFieldError( "rowCount", "Row count must be larger than 10." ); - return INPUT; - } - reposSize = selectedRepositories.size(); - Date startDateInDateFormat = null; - Date endDateInDateFormat = null; - - if( startDate == null || "".equals( startDate ) ) - { - startDateInDateFormat = getDefaultStartDate(); - } - else - { - try - { - startDateInDateFormat = DateUtils.parseDate( startDate, datePatterns ); - } - catch ( ParseException e ) - { - addFieldError( "startDate", "Invalid date format."); - return INPUT; - } - } - - if( endDate == null || "".equals( endDate ) ) - { - endDateInDateFormat = getDefaultEndDate(); - } - else - { - try - { - endDateInDateFormat = DateUtils.parseDate( endDate, datePatterns ); - } - catch ( ParseException e ) - { - addFieldError( "endDate", "Invalid date format."); - return INPUT; - } - } - - try - { - RepositoryContentStatisticsDAO repoContentStatsDao = dao.getRepositoryContentStatisticsDAO(); - if( selectedRepositories.size() > 1 ) - { - limits.setTotalCount( selectedRepositories.size() ); - limits.setCurrentPage( 1 ); - limits.setPerPageCount( 1 ); - limits.setCountOfPages( 1 ); - - // multiple repos - for( String repo : selectedRepositories ) - { - try - { - List contentStats = repoContentStatsDao.queryRepositoryContentStatistics( - new RepositoryContentStatisticsByRepositoryConstraint( repo, startDateInDateFormat, endDateInDateFormat ) ); - - if( contentStats == null || contentStats.isEmpty() ) - { - log.info( "No statistics available for repository '" + repo + "'." ); - // TODO set repo's stats to 0 - - continue; - } - repositoryStatistics.addAll( generator.generateReport( contentStats, repo, startDateInDateFormat, endDateInDateFormat, limits ) ); - } - catch ( ObjectNotFoundException oe ) - { - log.error( "No statistics available for repository '" + repo + "'." ); - // TODO set repo's stats to 0 - } - catch ( ArchivaDatabaseException ae ) - { - log.error( "Error encountered while querying statistics of repository '" + repo + "'." ); - // TODO set repo's stats to 0 - } - } - } - else if ( selectedRepositories.size() == 1 ) - { - limits.setCurrentPage( getPage() ); - limits.setPerPageCount( getRowCount() ); - - selectedRepo = selectedRepositories.get( 0 ); - try - { - List contentStats = repoContentStatsDao.queryRepositoryContentStatistics( - new RepositoryContentStatisticsByRepositoryConstraint( selectedRepo, startDateInDateFormat, endDateInDateFormat ) ); - - if( contentStats == null || contentStats.isEmpty() ) - { - addActionError( "No statistics available for repository. Repository might not have been scanned." ); - return ERROR; - } - - limits.setTotalCount( contentStats.size() ); - int extraPage = ( limits.getTotalCount() % limits.getPerPageCount() ) != 0 ? 1 : 0; - int totalPages = ( limits.getTotalCount() / limits.getPerPageCount() ) + extraPage; - limits.setCountOfPages( totalPages ); - - repositoryStatistics = generator.generateReport( contentStats, selectedRepo, startDateInDateFormat, endDateInDateFormat, limits ); - } - catch ( ObjectNotFoundException oe ) - { - addActionError( oe.getMessage() ); - return ERROR; - } - catch ( ArchivaDatabaseException de ) - { - addActionError( de.getMessage() ); - return ERROR; - } - } - else - { - addFieldError( "availableRepositories", "Please select a repository (or repositories) from the list." ); - return INPUT; - } - - if( repositoryStatistics.isEmpty() ) - { - return BLANK; - } - - if( startDate.equals( getDefaultStartDate() ) ) - { - startDate = null; - } - else - { - startDate = DateFormatUtils.format( startDateInDateFormat, "MM/dd/yyyy" ); - } - - endDate = DateFormatUtils.format( endDateInDateFormat, "MM/dd/yyyy" ); - } - catch ( ArchivaReportException e ) - { - addActionError( "Error encountered while generating report :: " + e.getMessage() ); - return ERROR; - } - - return SUCCESS; - } - - private Date getDefaultStartDate() - { - Calendar cal = Calendar.getInstance(); - cal.clear(); - cal.set( 1900, 1, 1, 0, 0, 0 ); - - return cal.getTime(); - } - - private Date getDefaultEndDate() - { - return Calendar.getInstance().getTime(); - } - - public String execute() - throws Exception - { - if( repositoryId == null ) - { - addFieldError( "repositoryId", "You must provide a repository id."); - return INPUT; - } - - if( rowCount < 10 ) - { - addFieldError( "rowCount", "Row count must be larger than 10." ); - return INPUT; - } - - List problemArtifacts = - dao.getRepositoryProblemDAO().queryRepositoryProblems( configureConstraint() ); - - String contextPath = - request.getRequestURL().substring( 0, request.getRequestURL().indexOf( request.getRequestURI() ) ); - RepositoryProblem problemArtifact; - RepositoryProblemReport problemArtifactReport; - for ( int i = 0; i < problemArtifacts.size(); i++ ) - { - problemArtifact = (RepositoryProblem) problemArtifacts.get( i ); - problemArtifactReport = new RepositoryProblemReport( problemArtifact ); - - problemArtifactReport.setGroupURL( contextPath + "/browse/" + problemArtifact.getGroupId() ); - problemArtifactReport.setArtifactURL( - contextPath + "/browse/" + problemArtifact.getGroupId() + "/" + problemArtifact.getArtifactId() ); - - addToList( problemArtifactReport ); - - // retained the reports list because this is the datasource for the jasper report - reports.add( problemArtifactReport ); - } - - if ( reports.size() <= rowCount ) - { - isLastPage = true; - } - else - { - reports.remove( rowCount ); - } - - prev = request.getRequestURL() + "?page=" + ( page - 1 ) + "&rowCount=" + rowCount + "&groupId=" + groupId + - "&repositoryId=" + repositoryId; - next = request.getRequestURL() + "?page=" + ( page + 1 ) + "&rowCount=" + rowCount + "&groupId=" + groupId + - "&repositoryId=" + repositoryId; - - if ( reports.size() == 0 && page == 1 ) - { - return BLANK; - } - else if ( isJasperPresent() ) - { - return "jasper"; - } - else - { - return SUCCESS; - } - } - - private static boolean isJasperPresent() - { - if ( jasperPresent == null ) - { - try - { - Class.forName( "net.sf.jasperreports.engine.JRExporterParameter" ); - jasperPresent = Boolean.TRUE; - } - catch ( NoClassDefFoundError e ) - { - jasperPresent = Boolean.FALSE; - } - catch ( ClassNotFoundException e ) - { - jasperPresent = Boolean.FALSE; - } - } - return jasperPresent.booleanValue(); - } - - private Constraint configureConstraint() - { - Constraint constraint; - - range[0] = ( page - 1 ) * rowCount; - range[1] = ( page * rowCount ) + 1; // Add 1 to check if it's the last page or not. - - if ( groupId != null && ( !groupId.equals( "" ) ) ) - { - if ( repositoryId != null && ( !repositoryId.equals( "" ) && !repositoryId.equals( ALL_REPOSITORIES ) ) ) - { - constraint = new RepositoryProblemConstraint( range, groupId, repositoryId ); - } - else - { - constraint = new RepositoryProblemByGroupIdConstraint( range, groupId ); - } - } - else if ( repositoryId != null && ( !repositoryId.equals( "" ) && !repositoryId.equals( ALL_REPOSITORIES ) ) ) - { - constraint = new RepositoryProblemByRepositoryIdConstraint( range, repositoryId ); - } - else - { - constraint = new RangeConstraint( range, "repositoryId" ); - } - - return constraint; - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_ACCESS_REPORT, Resource.GLOBAL ); - - return bundle; - } - - private void addToList( RepositoryProblemReport repoProblemReport ) - { - List problemsList = null; - - if ( repositoriesMap.containsKey( repoProblemReport.getRepositoryId() ) ) - { - problemsList = ( List ) repositoriesMap.get( repoProblemReport.getRepositoryId() ); - } - else - { - problemsList = new ArrayList(); - repositoriesMap.put( repoProblemReport.getRepositoryId(), problemsList ); - } - - problemsList.add( repoProblemReport ); - } - - public void setServletRequest( HttpServletRequest request ) - { - this.request = request; - } - - public List getReports() - { - return reports; - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public String getPrev() - { - return prev; - } - - public String getNext() - { - return next; - } - - public int getPage() - { - return page; - } - - public void setPage( int page ) - { - this.page = page; - } - - public int getRowCount() - { - return rowCount; - } - - public void setRowCount( int rowCount ) - { - this.rowCount = rowCount; - } - - public boolean getIsLastPage() - { - return isLastPage; - } - - public void setRepositoriesMap( Map> repositoriesMap ) - { - this.repositoriesMap = repositoriesMap; - } - - public Map> getRepositoriesMap() - { - return repositoriesMap; - } - - public List getSelectedRepositories() - { - return selectedRepositories; - } - - public void setSelectedRepositories( List selectedRepositories ) - { - this.selectedRepositories = selectedRepositories; - } - - public List getAvailableRepositories() - { - return availableRepositories; - } - - public void setAvailableRepositories( List availableRepositories ) - { - this.availableRepositories = availableRepositories; - } - - public String getStartDate() - { - return startDate; - } - - public void setStartDate( String startDate ) - { - this.startDate = startDate; - } - - public String getEndDate() - { - return endDate; - } - - public void setEndDate( String endDate ) - { - this.endDate = endDate; - } - - public List getRepositoryStatistics() - { - return repositoryStatistics; - } - - public void setRepositoryStatistics( List repositoryStatistics ) - { - this.repositoryStatistics = repositoryStatistics; - } - - public int getReposSize() - { - return reposSize; - } - - public void setReposSize( int reposSize ) - { - this.reposSize = reposSize; - } - - public String getSelectedRepo() - { - return selectedRepo; - } - - public void setSelectedRepo( String selectedRepo ) - { - this.selectedRepo = selectedRepo; - } - - public DataLimits getLimits() - { - return limits; - } - - public void setLimits( DataLimits limits ) - { - this.limits = limits; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java deleted file mode 100644 index 0ab429965..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.apache.maven.archiva.web.interceptor; - -/* - * 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.webwork.ServletActionContext; -import com.opensymphony.xwork.ActionInvocation; -import com.opensymphony.xwork.interceptor.Interceptor; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; - -import javax.servlet.ServletContext; - -/** - * An interceptor that makes the configuration bits available, both to the application and the webapp - * - * @author Brett Porter - * @plexus.component role="com.opensymphony.xwork.interceptor.Interceptor" - * role-hint="configurationInterceptor" - */ -public class ConfigurationInterceptor - implements Interceptor -{ - /** - * @plexus.requirement role-hint="default" - */ - private ArchivaConfiguration configuration; - - public String intercept( ActionInvocation actionInvocation ) - throws Exception - { - // populate webapp configuration bits into the session - ServletContext applicationScope = ServletActionContext.getServletContext(); - applicationScope.setAttribute( "uiOptions", configuration.getConfiguration().getWebapp().getUi() ); - - return actionInvocation.invoke(); - } - - public void destroy() - { - // This space left intentionally blank - } - - public void init() - { - // This space left intentionally blank - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/mapper/RepositoryActionMapper.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/mapper/RepositoryActionMapper.java deleted file mode 100644 index 37e657baa..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/mapper/RepositoryActionMapper.java +++ /dev/null @@ -1,214 +0,0 @@ -package org.apache.maven.archiva.web.mapper; - -/* - * 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.webwork.dispatcher.mapper.ActionMapping; -import com.opensymphony.webwork.dispatcher.mapper.DefaultActionMapper; - -import org.apache.commons.lang.StringUtils; - -import java.util.HashMap; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -/** - * Map alternate URLs to specific actions. Used for the repository browser and the proxy. - * - * @author Brett Porter - */ -public class RepositoryActionMapper - extends DefaultActionMapper -{ - private static final String ACTION_BROWSE = "browse"; - - private static final String ACTION_BROWSE_ARTIFACT = "browseArtifact"; - - private static final String ACTION_BROWSE_GROUP = "browseGroup"; - - private static final String ACTION_SHOW_ARTIFACT = "showArtifact"; - - private static final String ACTION_SHOW_ARTIFACT_DEPENDEES = "showArtifactDependees"; - - private static final String ACTION_SHOW_ARTIFACT_DEPENDENCIES = "showArtifactDependencies"; - - private static final String ACTION_SHOW_ARTIFACT_DEPENDENCY_TREE = "showArtifactDependencyTree"; - - private static final String ACTION_SHOW_ARTIFACT_MAILING_LISTS = "showArtifactMailingLists"; - - private static final String BROWSE_PREFIX = "/browse"; - - private static final String METHOD_DEPENDENCIES = "dependencies"; - - private static final String METHOD_DEPENDENCY_TREE = "dependencyTree"; - - private static final String METHOD_MAILING_LISTS = "mailingLists"; - - private static final String METHOD_USEDBY = "usedby"; - - private static final String PARAM_ARTIFACT_ID = "artifactId"; - - private static final String PARAM_GROUP_ID = "groupId"; - - private static final String PARAM_VERSION = "version"; - - public ActionMapping getMapping( HttpServletRequest httpServletRequest ) - { - String path = httpServletRequest.getServletPath(); - - if ("".equals(path)){ - // if JEE 5 spec is correctly implemented, the "/*" pattern implies an empty string in servletpath - path = httpServletRequest.getPathInfo(); - } - - if ( path.startsWith( BROWSE_PREFIX ) ) - { - path = path.substring( BROWSE_PREFIX.length() ); - if ( StringUtils.isBlank( path ) || - StringUtils.equals( path, "/" ) || - StringUtils.equals( path, ".action" ) ) - { - // Return "root" browse. - return new ActionMapping( ACTION_BROWSE, "/", "", null ); - } - else - { - Map params = new HashMap(); - - if ( path.charAt( 0 ) == '/' ) - { - path = path.substring( 1 ); - } - - String[] parts = path.split( "/" ); - switch ( parts.length ) - { - case 1: - params.put( PARAM_GROUP_ID, parts[0] ); - return new ActionMapping( ACTION_BROWSE_GROUP, "/", "", params ); - - case 2: - params.put( PARAM_GROUP_ID, parts[0] ); - params.put( PARAM_ARTIFACT_ID, parts[1] ); - return new ActionMapping( ACTION_BROWSE_ARTIFACT, "/", "", params ); - - case 3: - params.put( PARAM_GROUP_ID, parts[0] ); - params.put( PARAM_ARTIFACT_ID, parts[1] ); - params.put( PARAM_VERSION, parts[2] ); - return new ActionMapping( ACTION_SHOW_ARTIFACT, "/", "", params ); - - case 4: - params.put( PARAM_GROUP_ID, parts[0] ); - params.put( PARAM_ARTIFACT_ID, parts[1] ); - params.put( PARAM_VERSION, parts[2] ); - - if ( METHOD_DEPENDENCIES.equals( parts[3] ) ) - { - return new ActionMapping( ACTION_SHOW_ARTIFACT_DEPENDENCIES, "/", "", params ); - } - else if ( METHOD_MAILING_LISTS.equals( parts[3] ) ) - { - return new ActionMapping( ACTION_SHOW_ARTIFACT_MAILING_LISTS, "/", "", params ); - } - else if ( METHOD_USEDBY.equals( parts[3] ) ) - { - return new ActionMapping( ACTION_SHOW_ARTIFACT_DEPENDEES, "/", "", params ); - } - else if ( METHOD_DEPENDENCY_TREE.equals( parts[3] ) ) - { - return new ActionMapping( ACTION_SHOW_ARTIFACT_DEPENDENCY_TREE, "/", "", params ); - } - break; - } - } - } - - return super.getMapping( httpServletRequest ); - } - - public String getUriFromActionMapping( ActionMapping actionMapping ) - { - Map params = actionMapping.getParams(); - if ( ACTION_BROWSE.equals( actionMapping.getName() ) ) - { - return BROWSE_PREFIX; - } - else if ( ACTION_BROWSE_GROUP.equals( actionMapping.getName() ) ) - { - return toUri( params, false, false, null ); - } - else if ( ACTION_BROWSE_ARTIFACT.equals( actionMapping.getName() ) ) - { - return toUri( params, true, false, null ); - } - else if ( ACTION_SHOW_ARTIFACT.equals( actionMapping.getName() ) ) - { - return toUri( params, true, true, null ); - } - else if ( ACTION_SHOW_ARTIFACT_DEPENDENCIES.equals( actionMapping.getName() ) ) - { - return toUri( params, true, true, METHOD_DEPENDENCIES ); - } - else if ( ACTION_SHOW_ARTIFACT_MAILING_LISTS.equals( actionMapping.getName() ) ) - { - return toUri( params, true, true, METHOD_MAILING_LISTS ); - } - else if ( ACTION_SHOW_ARTIFACT_DEPENDEES.equals( actionMapping.getName() ) ) - { - return toUri( params, true, true, METHOD_USEDBY ); - } - else if ( ACTION_SHOW_ARTIFACT_DEPENDENCY_TREE.equals( actionMapping.getName() ) ) - { - return toUri( params, true, true, METHOD_DEPENDENCY_TREE ); - } - - return super.getUriFromActionMapping( actionMapping ); - } - - private String toUri( Map params, boolean artifactId, boolean version, String method ) - { - StringBuffer buf = new StringBuffer(); - - buf.append( BROWSE_PREFIX ); - buf.append( '/' ); - buf.append( params.remove( PARAM_GROUP_ID ) ); - - if ( artifactId ) - { - buf.append( '/' ); - buf.append( params.remove( PARAM_ARTIFACT_ID ) ); - - if ( version ) - { - buf.append( '/' ); - buf.append( params.remove( PARAM_VERSION ) ); - - if ( StringUtils.isNotBlank( method ) ) - { - buf.append( '/' ); - buf.append( method ); - } - } - } - - return buf.toString(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java deleted file mode 100644 index 89570523a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java +++ /dev/null @@ -1,342 +0,0 @@ -package org.apache.maven.archiva.web.rss; - -/* - * 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.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.archiva.rss.processor.RssFeedProcessor; -import org.apache.commons.codec.Decoder; -import org.apache.commons.codec.DecoderException; -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.security.AccessDeniedException; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.apache.maven.archiva.security.ArchivaSecurityException; -import org.apache.maven.archiva.security.ArchivaXworkUser; -import org.apache.maven.archiva.security.PrincipalNotFoundException; -import org.apache.maven.archiva.security.ServletAuthenticator; -import org.apache.maven.archiva.security.UserRepositories; -import org.codehaus.plexus.redback.authentication.AuthenticationException; -import org.codehaus.plexus.redback.authentication.AuthenticationResult; -import org.codehaus.plexus.redback.authorization.AuthorizationException; -import org.codehaus.plexus.redback.authorization.UnauthorizedException; -import org.codehaus.plexus.redback.policy.AccountLockedException; -import org.codehaus.plexus.redback.policy.MustChangePasswordException; -import org.codehaus.plexus.redback.system.SecuritySession; -import org.codehaus.plexus.redback.users.UserNotFoundException; -import org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator; -import org.codehaus.plexus.spring.PlexusToSpringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; - -import com.sun.syndication.feed.synd.SyndFeed; -import com.sun.syndication.io.FeedException; -import com.sun.syndication.io.SyndFeedOutput; - -/** - * Servlet for handling rss feed requests. - * - * @author Maria Odea Ching - * @version - */ -public class RssFeedServlet - extends HttpServlet -{ - public static final String MIME_TYPE = "application/rss+xml; charset=UTF-8"; - - private static final String COULD_NOT_GENERATE_FEED_ERROR = "Could not generate feed"; - - private static final String COULD_NOT_AUTHENTICATE_USER = "Could not authenticate user"; - - private static final String USER_NOT_AUTHORIZED = "User not authorized to access feed."; - - private Logger log = LoggerFactory.getLogger( RssFeedServlet.class ); - - private RssFeedProcessor processor; - - private WebApplicationContext wac; - - private UserRepositories userRepositories; - - private ServletAuthenticator servletAuth; - - private HttpAuthenticator httpAuth; - - private ArchivaXworkUser archivaXworkUser; - - public void init( javax.servlet.ServletConfig servletConfig ) - throws ServletException - { - super.init( servletConfig ); - wac = WebApplicationContextUtils.getRequiredWebApplicationContext( servletConfig.getServletContext() ); - userRepositories = - (UserRepositories) wac.getBean( PlexusToSpringUtils.buildSpringId( UserRepositories.class.getName() ) ); - servletAuth = - (ServletAuthenticator) wac.getBean( PlexusToSpringUtils.buildSpringId( ServletAuthenticator.class.getName() ) ); - httpAuth = - (HttpAuthenticator) wac.getBean( PlexusToSpringUtils.buildSpringId( HttpAuthenticator.ROLE, "basic" ) ); - archivaXworkUser = (ArchivaXworkUser) wac.getBean( PlexusToSpringUtils.buildSpringId( ArchivaXworkUser.class ) ); - } - - public void doGet( HttpServletRequest req, HttpServletResponse res ) - throws ServletException, IOException - { - String repoId = null; - String groupId = null; - String artifactId = null; - - String url = StringUtils.removeEnd( req.getRequestURL().toString(), "/" ); - if( StringUtils.countMatches( StringUtils.substringAfter( url, "feeds/" ), "/" ) > 0 ) - { - artifactId = StringUtils.substringAfterLast( url, "/" ); - groupId = StringUtils.substringBeforeLast( StringUtils.substringAfter( url, "feeds/" ), "/"); - groupId = StringUtils.replaceChars( groupId, '/', '.' ); - } - else if( StringUtils.countMatches( StringUtils.substringAfter( url, "feeds/" ), "/" ) == 0 ) - { - repoId = StringUtils.substringAfterLast( url, "/" ); - } - else - { - res.sendError( HttpServletResponse.SC_BAD_REQUEST, "Invalid request url." ); - return; - } - - try - { - Map map = new HashMap(); - SyndFeed feed = null; - - if ( isAllowed( req, repoId, groupId, artifactId ) ) - { - if ( repoId != null ) - { - // new artifacts in repo feed request - processor = - (RssFeedProcessor) wac.getBean( PlexusToSpringUtils.buildSpringId( - RssFeedProcessor.class.getName(), - "new-artifacts" ) ); - map.put( RssFeedProcessor.KEY_REPO_ID, repoId ); - } - else if ( ( groupId != null ) && ( artifactId != null ) ) - { - // new versions of artifact feed request - processor = - (RssFeedProcessor) wac.getBean( PlexusToSpringUtils.buildSpringId( - RssFeedProcessor.class.getName(), - "new-versions" ) ); - map.put( RssFeedProcessor.KEY_GROUP_ID, groupId ); - map.put( RssFeedProcessor.KEY_ARTIFACT_ID, artifactId ); - } - } - else - { - res.sendError( HttpServletResponse.SC_UNAUTHORIZED, USER_NOT_AUTHORIZED ); - return; - } - - feed = processor.process( map ); - if( feed == null ) - { - res.sendError( HttpServletResponse.SC_NO_CONTENT, "No information available." ); - return; - } - - res.setContentType( MIME_TYPE ); - - if ( repoId != null ) - { - feed.setLink( req.getRequestURL().toString() ); - } - else if ( ( groupId != null ) && ( artifactId != null ) ) - { - feed.setLink( req.getRequestURL().toString() ); - } - - SyndFeedOutput output = new SyndFeedOutput(); - output.output( feed, res.getWriter() ); - } - catch ( ArchivaDatabaseException e ) - { - log.debug( COULD_NOT_GENERATE_FEED_ERROR, e ); - res.sendError( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, COULD_NOT_GENERATE_FEED_ERROR ); - } - catch ( UserNotFoundException unfe ) - { - log.debug( COULD_NOT_AUTHENTICATE_USER, unfe ); - res.sendError( HttpServletResponse.SC_UNAUTHORIZED, COULD_NOT_AUTHENTICATE_USER ); - } - catch ( AccountLockedException acce ) - { - res.sendError( HttpServletResponse.SC_UNAUTHORIZED, COULD_NOT_AUTHENTICATE_USER ); - } - catch ( AuthenticationException authe ) - { - log.debug( COULD_NOT_AUTHENTICATE_USER, authe ); - res.sendError( HttpServletResponse.SC_UNAUTHORIZED, COULD_NOT_AUTHENTICATE_USER ); - } - catch ( FeedException ex ) - { - log.debug( COULD_NOT_GENERATE_FEED_ERROR, ex ); - res.sendError( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, COULD_NOT_GENERATE_FEED_ERROR ); - } - catch ( MustChangePasswordException e ) - { - res.sendError( HttpServletResponse.SC_UNAUTHORIZED, COULD_NOT_AUTHENTICATE_USER ); - } - catch ( UnauthorizedException e ) - { - log.debug( e.getMessage() ); - if ( repoId != null ) - { - res.setHeader("WWW-Authenticate", "Basic realm=\"Repository Archiva Managed " + repoId + " Repository" ); - } - else - { - res.setHeader("WWW-Authenticate", "Basic realm=\"Artifact " + groupId + ":" + artifactId ); - } - - res.sendError( HttpServletResponse.SC_UNAUTHORIZED, USER_NOT_AUTHORIZED ); - } - } - - /** - * Basic authentication. - * - * @param req - * @param repositoryId TODO - * @param groupId TODO - * @param artifactId TODO - * @return - */ - private boolean isAllowed( HttpServletRequest req, String repositoryId, String groupId, String artifactId ) - throws UserNotFoundException, AccountLockedException, AuthenticationException, MustChangePasswordException, - UnauthorizedException - { - String auth = req.getHeader( "Authorization" ); - List repoIds = new ArrayList(); - - if ( repositoryId != null ) - { - repoIds.add( repositoryId ); - } - else if ( artifactId != null && groupId != null ) - { - if ( auth != null ) - { - if ( !auth.toUpperCase().startsWith( "BASIC " ) ) - { - return false; - } - - Decoder dec = new Base64(); - String usernamePassword = ""; - - try - { - usernamePassword = new String( (byte[]) dec.decode( auth.substring( 6 ).getBytes() ) ); - } - catch ( DecoderException ie ) - { - log.warn( "Error decoding username and password.", ie.getMessage() ); - } - - if ( usernamePassword == null || usernamePassword.trim().equals( "" ) ) - { - repoIds = getObservableRepos( archivaXworkUser.getGuest() ); - } - else - { - String[] userCredentials = usernamePassword.split( ":" ); - repoIds = getObservableRepos( userCredentials[0] ); - } - } - else - { - repoIds = getObservableRepos( archivaXworkUser.getGuest() ); - } - } - else - { - return false; - } - - for ( String repoId : repoIds ) - { - try - { - AuthenticationResult result = httpAuth.getAuthenticationResult( req, null ); - SecuritySession securitySession = httpAuth.getSecuritySession(); - - if ( servletAuth.isAuthenticated( req, result ) && - servletAuth.isAuthorized( req, securitySession, repoId, false ) ) - { - return true; - } - } - catch ( AuthorizationException e ) - { - - } - catch ( UnauthorizedException e ) - { - - } - } - - throw new UnauthorizedException( "Access denied." ); - } - - private List getObservableRepos( String principal ) - { - try - { - return userRepositories.getObservableRepositoryIds( principal ); - } - catch ( PrincipalNotFoundException e ) - { - log.warn( e.getMessage(), e ); - } - catch ( AccessDeniedException e ) - { - log.warn( e.getMessage(), e ); - } - catch ( ArchivaSecurityException e ) - { - log.warn( e.getMessage(), e ); - } - - return Collections.emptyList(); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java deleted file mode 100644 index 1cb8fe56f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaStartup.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.apache.maven.archiva.web.startup; - -/* - * 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 javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; - -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.web.context.WebApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; - -/** - * ArchivaStartup - the startup of all archiva features in a deterministic order. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaStartup - implements ServletContextListener -{ - public void contextDestroyed(ServletContextEvent arg0) { - } - - public void contextInitialized(ServletContextEvent arg0) { - WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(arg0.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)); - TaskQueueExecutor databaseUpdateQueue = (TaskQueueExecutor) wac.getBean(PlexusToSpringUtils.buildSpringId(TaskQueueExecutor.class, "database-update")); - TaskQueueExecutor repositoryScanningQueue = (TaskQueueExecutor) wac.getBean(PlexusToSpringUtils.buildSpringId(TaskQueueExecutor.class, "repository-scanning")); - Banner banner = new Banner(); - - try - { - securitySync.startup(); - resolverFactory.startup(); - taskScheduler.startup(); - banner.display(); - } - catch ( ArchivaException e ) - { - throw new RuntimeException( "Unable to properly startup archiva: " + e.getMessage(), e ); - } - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaVersion.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaVersion.java deleted file mode 100644 index ea78d8761..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ArchivaVersion.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.apache.maven.archiva.web.startup; - -/* - * 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.IOException; -import java.io.InputStream; -import java.util.Properties; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; - -/** - * ArchivaVersion - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ArchivaVersion -{ - private static String version = null; - - private ArchivaVersion() - { - } - - public static String determineVersion( ) - { - if ( version != null ) - { - return version; - } - - InputStream is = ArchivaConfiguration.class.getResourceAsStream( "/META-INF/maven/org.apache.archiva/archiva-configuration/pom.properties" ); - - if ( is != null ) - { - try - { - Properties props = new Properties(); - props.load( is ); - String version = props.getProperty( "version" ); - if ( StringUtils.isNotBlank( version ) ) - { - ArchivaVersion.version = version; - return version; - } - } - catch ( IOException e ) - { - /* do nothing */ - } - finally - { - IOUtils.closeQuietly( is ); - } - } - - ArchivaVersion.version = ""; - return version; - } - - public static String getVersion() - { - return version; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/Banner.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/Banner.java deleted file mode 100644 index ea090e624..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/Banner.java +++ /dev/null @@ -1,226 +0,0 @@ -package org.apache.maven.archiva.web.startup; - -/* - * 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.regex.Matcher; -import java.util.regex.Pattern; - -import org.apache.commons.lang.StringUtils; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; -import org.slf4j.LoggerFactory; - -/** - * Banner - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class Banner -{ - public static String encode( String raw ) - { - StringBuffer encoded = new StringBuffer(); - int rawlen = raw.length(); - - for ( int i = 0; i < rawlen; i++ ) - { - char c = raw.charAt( i ); - if ( c == '\\' ) - { - encoded.append( "$." ); - } - else if ( c == '$' ) - { - encoded.append( "$$" ); - } - else if ( c == '\n' ) - { - encoded.append( "$n" ); - } - else if ( Character.isDigit( c ) ) - { - encoded.append( c ); - } - else if ( Character.isLetter( c ) ) - { - encoded.append( rot13( c ) ); - } - else if ( i < raw.length() - 1 ) - { - char nc; - boolean done = false; - int count = 0; - for ( int n = i; !done; n++ ) - { - if ( n >= rawlen ) - { - break; - } - - nc = raw.charAt( n ); - - if ( nc != c ) - { - done = true; - } - else - { - count++; - } - } - if ( count < 3 ) - { - encoded.append( c ); - } - else - { - encoded.append( "$" ).append( String.valueOf( count ) ).append( c ); - i += count - 1; - } - } - else - { - encoded.append( c ); - } - } - - return encoded.toString(); - } - - public static String decode( String encoded ) - { - StringBuffer decoded = new StringBuffer(); - int enlen = encoded.length(); - for ( int i = 0; i < enlen; i++ ) - { - char c = encoded.charAt( i ); - if ( c == '$' ) - { - char nc = encoded.charAt( i + 1 ); - if ( nc == '$' ) - { - decoded.append( '$' ); - i++; - } - else if ( nc == '.' ) - { - decoded.append( '\\' ); - i++; - } - else if ( nc == 'n' ) - { - decoded.append( '\n' ); - i++; - } - else if ( Character.isDigit( nc ) ) - { - int count = 0; - int nn = i + 1; - while ( Character.isDigit( nc ) ) - { - count = ( count * 10 ); - count += ( nc - '0' ); - nc = encoded.charAt( ++nn ); - } - for ( int d = 0; d < count; d++ ) - { - decoded.append( nc ); - } - i = nn; - } - } - else if ( Character.isLetter( c ) ) - { - decoded.append( rot13( c ) ); - } - else - { - decoded.append( c ); - } - } - - return decoded.toString(); - } - - private static char rot13( char c ) - { - if ( ( c >= 'a' ) && ( c <= 'z' ) ) - { - char dc = c += 13; - if ( dc > 'z' ) - { - dc -= 26; - } - return dc; - } - else if ( ( c >= 'A' ) && ( c <= 'Z' ) ) - { - char dc = c += 13; - if ( dc > 'Z' ) - { - dc -= 26; - } - return dc; - } - else - { - return c; - } - } - - public static String injectVersion( String text, String version ) - { - Pattern pat = Pattern.compile( "#{2,}" ); - Matcher mat = pat.matcher( text ); - StringBuffer ret = new StringBuffer(); - int off = 0; - - while ( mat.find( off ) ) - { - ret.append( text.substring( off, mat.start() ) ); - String repl = mat.group(); - ret.append( StringUtils.center( version, repl.length() ) ); - off = mat.end(); - } - - ret.append( text.substring( off ) ); - - return ret.toString(); - } - - public static String getBanner( String version ) - { - String encodedBanner = "$26 $34_$n$15 /$._$7 /$34 $.$n$14 /`/@),$4 | Ba" + - " orunys bs nyy bs gur nycnpn'f |$n$14 | (~' __| gbvyvat njnl ba " + - "gur Ncnpur Nepuvin |$n$6 _,--.$3_/ |$4 $.$5 cebwrpg grnz, V jbhyq y" + - "vxr gb$3 |$n$4 ,' ,$5 ($3 |$5 $.$5 jrypbzr lbh gb Nepuvin$6 |$" + - "n$4 | ($6 $. /$6 | $32# |$n$5 $. )$._/ ,_/$7 |$36 |$n$5 / /$3 " + - "( |/$9 | uggc://nepuvin.ncnpur.bet/ |$n$4 ( |$4 ( |$10 | hf" + - "ref@nepuvin.ncnpur.bet$7 |$n$5 $.|$5 $.|$11 $.$34_/$n$n"; - - return injectVersion( decode( encodedBanner ), version ); - } - - public void display() - { - String banner = getBanner( ArchivaVersion.determineVersion() ); - LoggerFactory.getLogger( Banner.class ).info( StringUtils.repeat( "_", 25 ) + "\n" + banner ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ResolverFactoryInit.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ResolverFactoryInit.java deleted file mode 100644 index 2371ed2e1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ResolverFactoryInit.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.apache.maven.archiva.web.startup; - -/* - * 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.database.project.ProjectModelToDatabaseListener; -import org.apache.maven.archiva.repository.project.ProjectModelResolver; -import org.apache.maven.archiva.repository.project.ProjectModelResolverFactory; - -/** - * ResolverFactoryInit - Initialize the Resolver Factory, and hook it up to - * the database. - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component - * role="org.apache.maven.archiva.web.startup.ResolverFactoryInit" - * role-hint="default" - */ -public class ResolverFactoryInit -{ - /** - * @plexus.requirement role-hint="database" - */ - private ProjectModelResolver databaseResolver; - - /** - * @plexus.requirement - * role="org.apache.maven.archiva.repository.project.resolvers.ProjectModelResolutionListener" - * role-hint="model-to-db" - */ - private ProjectModelToDatabaseListener modelToDbListener; - - /** - * The resolver factorying being initialized. - * - * @plexus.requirement - */ - private ProjectModelResolverFactory resolverFactory; - - public void startup() - throws ArchivaException - { - if ( !resolverFactory.getCurrentResolverStack().hasResolver( databaseResolver ) ) - { - resolverFactory.getCurrentResolverStack().prependProjectModelResolver( databaseResolver ); - } - resolverFactory.getCurrentResolverStack().addListener( modelToDbListener ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/SecuritySynchronization.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/SecuritySynchronization.java deleted file mode 100644 index 7671c7391..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/SecuritySynchronization.java +++ /dev/null @@ -1,208 +0,0 @@ -package org.apache.maven.archiva.web.startup; - -/* - * 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; -import java.util.Map; -import java.util.Map.Entry; - -import org.apache.commons.collections.CollectionUtils; -import org.apache.maven.archiva.common.ArchivaException; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationNames; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.rbac.RBACManager; -import org.codehaus.plexus.redback.rbac.RbacManagerException; -import org.codehaus.plexus.redback.rbac.UserAssignment; -import org.codehaus.plexus.redback.role.RoleManager; -import org.codehaus.plexus.redback.role.RoleManagerException; -import org.codehaus.plexus.redback.system.check.EnvironmentCheck; -import org.codehaus.plexus.registry.Registry; -import org.codehaus.plexus.registry.RegistryListener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ConfigurationSynchronization - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.web.startup.SecuritySynchronization" - * role-hint="default" - */ -public class SecuritySynchronization - implements RegistryListener -{ - private Logger log = LoggerFactory.getLogger( SecuritySynchronization.class ); - - /** - * @plexus.requirement role-hint="default" - */ - private RoleManager roleManager; - - /** - * @plexus.requirement role-hint="cached" - */ - private RBACManager rbacManager; - - /** - * @plexus.requirement role="org.codehaus.plexus.redback.system.check.EnvironmentCheck" - */ - private Map checkers; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isManagedRepositories( propertyName ) ) - { - synchConfiguration( archivaConfiguration.getConfiguration().getManagedRepositories() ); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* do nothing */ - } - - private void synchConfiguration( List repos ) - { - // NOTE: Remote Repositories do not have roles or security placed around them. - - for ( ManagedRepositoryConfiguration repoConfig : repos ) - { - // manage roles for repositories - try - { - if ( !roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoConfig - .getId() ) ) - { - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoConfig - .getId() ); - } - - if ( !roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoConfig - .getId() ) ) - { - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoConfig - .getId() ); - } - } - catch ( RoleManagerException e ) - { - // Log error. - log.error( "Unable to create roles for configured repositories: " + e.getMessage(), e ); - } - } - } - - public void startup() - throws ArchivaException - { - executeEnvironmentChecks(); - - synchConfiguration( archivaConfiguration.getConfiguration().getManagedRepositories() ); - archivaConfiguration.addChangeListener( this ); - - if ( archivaConfiguration.isDefaulted() ) - { - assignRepositoryObserverToGuestUser( archivaConfiguration.getConfiguration().getManagedRepositories() ); - } - } - - private void executeEnvironmentChecks() - throws ArchivaException - { - if ( ( checkers == null ) || CollectionUtils.isEmpty( checkers.values() ) ) - { - throw new ArchivaException( "Unable to initialize the Redback Security Environment, " - + "no Environment Check components found." ); - } - - List violations = new ArrayList(); - - for ( Entry entry : checkers.entrySet() ) - { - EnvironmentCheck check = entry.getValue(); - log.info( "Running Environment Check: " + entry.getKey() ); - check.validateEnvironment( violations ); - } - - if ( CollectionUtils.isNotEmpty( violations ) ) - { - StringBuffer msg = new StringBuffer(); - msg.append( "EnvironmentCheck Failure.\n" ); - msg.append( "======================================================================\n" ); - msg.append( " ENVIRONMENT FAILURE !! \n" ); - msg.append( "\n" ); - - for ( String violation : violations ) - { - msg.append( violation ).append( "\n" ); - } - - msg.append( "\n" ); - msg.append( "======================================================================" ); - log.error( msg.toString() ); - - throw new ArchivaException( "Unable to initialize Redback Security Environment, [" + violations.size() - + "] violation(s) encountered, See log for details." ); - } - } - - private void assignRepositoryObserverToGuestUser( List repos ) - { - for ( ManagedRepositoryConfiguration repoConfig : repos ) - { - String repoId = repoConfig.getId(); - - // TODO: Use the Redback / UserConfiguration..getString( "redback.default.guest" ) to get the right name. - String principal = "guest"; - - try - { - UserAssignment ua; - - if ( rbacManager.userAssignmentExists( principal ) ) - { - ua = rbacManager.getUserAssignment( principal ); - } - else - { - ua = rbacManager.createUserAssignment( principal ); - } - - ua.addRoleName( ArchivaRoleConstants.toRepositoryObserverRoleName( repoId ) ); - rbacManager.saveUserAssignment( ua ); - } - catch ( RbacManagerException e ) - { - log.warn( "Unable to add role [" + ArchivaRoleConstants.toRepositoryObserverRoleName( repoId ) - + "] to " + principal + " user.", e ); - } - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/CopyPasteSnippetTag.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/CopyPasteSnippetTag.java deleted file mode 100644 index 0a18effe6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/CopyPasteSnippetTag.java +++ /dev/null @@ -1,180 +0,0 @@ -package org.apache.maven.archiva.web.tags; - -/* - * 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.IOException; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.TagSupport; - -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.web.util.ContextUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * CopyPasteSnippetTag - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class CopyPasteSnippetTag - extends TagSupport -{ - private Logger log = LoggerFactory.getLogger( CopyPasteSnippetTag.class ); - - private Object object; - - private String wrapper = PRE; - - public static final String PRE = "pre"; - - public static final String TOGGLE = "toggle"; - - public void release() - { - object = null; - super.release(); - } - - public int doEndTag() - throws JspException - { - StringBuffer prefix = new StringBuffer(); - StringBuffer buf = new StringBuffer(); - StringBuffer suffix = new StringBuffer(); - - if ( object == null ) - { - buf.append( "Error generating snippet." ); - log.error( "Unable to generate snippet for null object." ); - } - else if ( object instanceof ManagedRepositoryConfiguration ) - { - ManagedRepositoryConfiguration repo = (ManagedRepositoryConfiguration) object; - - if ( TOGGLE.equals( wrapper ) ) - { - prefix.append( "Show POM Snippet
" ); - prefix.append( "
" );
-        
-                suffix.append( "
" ); - } - else if ( PRE.equals( wrapper ) ) - { - prefix.append( "
" );
-                suffix.append( "
" ); - } - - createSnippet( buf, repo, pageContext ); - } - else - { - buf.append( "Unable to generate snippet for object " ).append( object.getClass().getName() ); - } - - try - { - JspWriter out = pageContext.getOut(); - - out.write( prefix.toString() ); - out.write( StringEscapeUtils.escapeXml( buf.toString() ) ); - out.write( suffix.toString() ); - - out.flush(); - } - catch ( IOException e ) - { - throw new JspException( "Unable to write snippet to output: " + e.getMessage(), e ); - } - - return super.doEndTag(); - } - - public void setObject( Object object ) - { - this.object = object; - } - - public void setWrapper( String wrapper ) - { - this.wrapper = wrapper; - } - - private void createSnippet( StringBuffer snippet, ManagedRepositoryConfiguration repo, PageContext pageContext ) - { - snippet.append( "\n" ); - snippet.append( " ...\n" ); - snippet.append( " \n" ); - - String distRepoName = "repository"; - if ( repo.isSnapshots() ) - { - distRepoName = "snapshotRepository"; - } - - snippet.append( " <" ).append( distRepoName ).append( ">\n" ); - snippet.append( " " ).append( repo.getId() ).append( "\n" ); - snippet.append( " dav:" ).append( ContextUtils.getBaseURL( pageContext, "repository" ) ); - snippet.append( "/" ).append( repo.getId() ).append( "/" ).append( "\n" ); - - if ( !"default".equals( repo.getLayout() ) ) - { - snippet.append( " " ).append( repo.getLayout() ).append( "" ); - } - - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( "\n" ); - - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( " " ).append( repo.getId() ).append( "\n" ); - snippet.append( " " ).append( repo.getName() ).append( "\n" ); - - snippet.append( " " ); - snippet.append( ContextUtils.getBaseURL( pageContext, "repository" ) ); - snippet.append( "/" ).append( repo.getId() ).append( "/" ); - - snippet.append( "\n" ); - - if ( !"default".equals( repo.getLayout() ) ) - { - snippet.append( " " ).append( repo.getLayout() ).append( "\n" ); - } - - snippet.append( " \n" ); - snippet.append( " " ).append( Boolean.valueOf( repo.isReleases() ) ).append( "\n" ); - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( " " ).append( Boolean.valueOf( repo.isSnapshots() ) ).append( "\n" ); - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( " \n" ); - - snippet.append( " ...\n" ); - snippet.append( "\n" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DependencyTree.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DependencyTree.java deleted file mode 100644 index eab658979..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DependencyTree.java +++ /dev/null @@ -1,265 +0,0 @@ -package org.apache.maven.archiva.web.tags; - -/* - * 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; -import java.util.Stack; - -import javax.servlet.jsp.PageContext; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.common.ArchivaException; -import org.apache.maven.archiva.dependency.DependencyGraphFactory; -import org.apache.maven.archiva.dependency.graph.DependencyGraph; -import org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder; -import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; -import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; -import org.apache.maven.archiva.dependency.graph.GraphTaskException; -import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; -import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; -import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.DependencyScope; -import org.apache.maven.archiva.model.Keys; -import org.apache.maven.archiva.model.VersionedReference; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * DependencyTree - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.web.tags.DependencyTree" - */ -public class DependencyTree - implements Initializable -{ - private Logger log = LoggerFactory.getLogger( DependencyTree.class ); - - /** - * @plexus.requirement - * role="org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder" - * role-hint="project-model" - */ - private DependencyGraphBuilder graphBuilder; - - private DependencyGraphFactory graphFactory = new DependencyGraphFactory(); - - public class TreeEntry - { - private String pre = ""; - - private String post = ""; - - private ArtifactReference artifact; - - public void setArtifact( ArtifactReference artifact ) - { - this.artifact = artifact; - } - - public ArtifactReference getArtifact() - { - return artifact; - } - - public String getPost() - { - return post; - } - - public void setPost( String post ) - { - this.post = post; - } - - public String getPre() - { - return pre; - } - - public void setPre( String pre ) - { - this.pre = pre; - } - - public void appendPre( String string ) - { - this.pre += string; - } - - public void appendPost( String string ) - { - this.post += string; - } - } - - public List gatherTreeList( String groupId, String artifactId, String modelVersion, String nodevar, - PageContext pageContext ) throws ArchivaException - { - if ( StringUtils.isBlank( groupId ) ) - { - String emsg = "Error generating dependency tree [" + Keys.toKey( groupId, artifactId, modelVersion ) - + "]: groupId is blank."; - log.error( emsg ); - throw new ArchivaException( emsg ); - } - - if ( StringUtils.isBlank( artifactId ) ) - { - String emsg = "Error generating dependency tree [" + Keys.toKey( groupId, artifactId, modelVersion ) - + "]: artifactId is blank."; - log.error( emsg ); - throw new ArchivaException( emsg ); - } - - if ( StringUtils.isBlank( modelVersion ) ) - { - String emsg = "Error generating dependency tree [" + Keys.toKey( groupId, artifactId, modelVersion ) - + "]: version is blank."; - log.error( emsg ); - throw new ArchivaException( emsg ); - } - - DependencyGraph graph = fetchGraph( groupId, artifactId, modelVersion ); - - if ( graph == null ) - { - throw new ArchivaException( "Graph is unexpectedly null." ); - } - - TreeListVisitor treeListVisitor = new TreeListVisitor(); - DependencyGraphWalker walker = new WalkDepthFirstSearch(); - walker.visit( graph, treeListVisitor ); - - return treeListVisitor.getList(); - } - - class TreeListVisitor - extends BaseVisitor - { - private List list; - - private int walkDepth; - - private int outputDepth; - - private Stack entryStack = new Stack(); - - private TreeEntry currentEntry; - - public TreeListVisitor() - { - this.list = new ArrayList(); - } - - public List getList() - { - return this.list; - } - - public void discoverGraph( DependencyGraph graph ) - { - super.discoverGraph( graph ); - this.list.clear(); - this.entryStack.clear(); - walkDepth = 0; - outputDepth = -1; - } - - public void discoverNode( DependencyGraphNode node ) - { - super.discoverNode( node ); - currentEntry = new TreeEntry(); - - while ( walkDepth > outputDepth ) - { - currentEntry.appendPre( "
    " ); - outputDepth++; - } - currentEntry.appendPre( "
  • " ); - currentEntry.setArtifact( node.getArtifact() ); - currentEntry.appendPost( "
  • " ); - this.list.add( currentEntry ); - this.entryStack.push( currentEntry ); - } - - public void finishNode( DependencyGraphNode node ) - { - super.finishNode( node ); - - while ( walkDepth < outputDepth ) - { - currentEntry.appendPost( "
" ); - outputDepth--; - } - - this.entryStack.pop(); - } - - public void discoverEdge( DependencyGraphEdge edge ) - { - super.discoverEdge( edge ); - walkDepth++; - } - - public void finishEdge( DependencyGraphEdge edge ) - { - super.finishEdge( edge ); - walkDepth--; - } - } - - private DependencyGraph fetchGraph( String groupId, String artifactId, String modelVersion ) - throws ArchivaException - { - // TODO Cache the results to disk, in XML format, in the same place as the artifact is located. - - VersionedReference projectRef = new VersionedReference(); - projectRef.setGroupId( groupId ); - projectRef.setArtifactId( artifactId ); - projectRef.setVersion( modelVersion ); - - try - { - DependencyGraph depGraph = graphFactory.getGraph( projectRef ); - - return depGraph; - } - catch ( GraphTaskException e ) - { - String emsg = "Unable to generate graph for [" + Keys.toKey( projectRef ) + "] : " + e.getMessage(); - log.warn( emsg, e ); - throw new ArchivaException( emsg, e ); - } - } - - public void initialize() - throws InitializationException - { - this.graphFactory.setGraphBuilder( graphBuilder ); - this.graphFactory.setDesiredScope( DependencyScope.TEST ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DependencyTreeTag.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DependencyTreeTag.java deleted file mode 100644 index 05393904d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DependencyTreeTag.java +++ /dev/null @@ -1,225 +0,0 @@ -package org.apache.maven.archiva.web.tags; - -/* - * 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.collections.CollectionUtils; -import org.apache.commons.collections.IteratorUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.common.ArchivaException; -import org.apache.maven.archiva.web.tags.DependencyTree.TreeEntry; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; - -import java.io.IOException; -import java.io.PrintWriter; -import java.util.Iterator; -import java.util.List; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.IterationTag; -import javax.servlet.jsp.tagext.TagSupport; -import javax.servlet.jsp.tagext.TryCatchFinally; - -/** - * DependencyTreeTag - just here to output the dependency tree to the browser. - * It was easier to do it this way, vs accessing the dependency graph via a JSP. - * - *
- *   
- *     ${node.groupId}:${node.artifactId}:${node.version} (${node.scope})
- *   
- * 
- * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DependencyTreeTag - extends TagSupport - implements IterationTag, TryCatchFinally -{ - private String groupId; - - private String artifactId; - - private String version; - - private String nodevar; - - private Iterator treeIterator; - - private List tree; - - private TreeEntry currentTreeEntry; - - private String modelVersion; - - public int doAfterBody() - throws JspException - { - if ( currentTreeEntry != null ) - { - out( currentTreeEntry.getPost() ); - } - - if ( treeIterator.hasNext() ) - { - currentTreeEntry = (TreeEntry) treeIterator.next(); - out( currentTreeEntry.getPre() ); - exposeVariables(); - return EVAL_BODY_AGAIN; - } - - out( "\n" ); - - return SKIP_BODY; - } - - public void doCatch( Throwable t ) - throws Throwable - { - throw t; - } - - public void doFinally() - { - unExposeVariables(); - } - - public int doStartTag() - throws JspException - { - DependencyTree deptree; - try - { - deptree = (DependencyTree) PlexusTagUtil.lookup( pageContext, DependencyTree.class.getName() ); - } - catch ( ComponentLookupException e ) - { - throw new JspException( "Unable to lookup DependencyTree: " + e.getMessage(), e ); - } - - if ( deptree == null ) - { - throw new JspException( "Unable to process dependency tree. Component not found." ); - } - - if ( StringUtils.isBlank( nodevar ) ) - { - nodevar = "node"; - } - - out( "
" ); - try - { - this.tree = deptree.gatherTreeList( groupId, artifactId, modelVersion, nodevar, pageContext ); - - if ( CollectionUtils.isEmpty( this.tree ) ) - { - return SKIP_BODY; - } - - treeIterator = tree.iterator(); - - currentTreeEntry = (TreeEntry) treeIterator.next(); - out( currentTreeEntry.getPre() ); - exposeVariables(); - } - catch ( ArchivaException e ) - { - treeIterator = IteratorUtils.EMPTY_LIST_ITERATOR; - - out("
");
-            e.printStackTrace( new PrintWriter( pageContext.getOut() ) );
-            out("
"); - } - - return EVAL_BODY_INCLUDE; - } - - public void release() - { - groupId = ""; - artifactId = ""; - version = ""; - nodevar = ""; - tree = null; - treeIterator = null; - super.release(); - } - - public void setArtifactId( String artifactId ) - { - this.artifactId = artifactId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public void setNodevar( String nodevar ) - { - this.nodevar = nodevar; - } - - public void setVersion( String version ) - { - this.version = version; - } - - public void setModelVersion( String modelVersion ) - { - this.modelVersion = modelVersion; - } - - private void exposeVariables() - throws JspException - { - if ( currentTreeEntry == null ) - { - pageContext.removeAttribute( nodevar, PageContext.PAGE_SCOPE ); - } - else - { - pageContext.setAttribute( nodevar, currentTreeEntry.getArtifact() ); - } - } - - private void out( String msg ) - throws JspException - { - try - { - pageContext.getOut().print( msg ); - } - catch ( IOException e ) - { - throw new JspException( "Unable to output to jsp page context." ); - } - } - - private void unExposeVariables() - { - pageContext.removeAttribute( nodevar, PageContext.PAGE_SCOPE ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java deleted file mode 100644 index 7f6fe606f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java +++ /dev/null @@ -1,300 +0,0 @@ -package org.apache.maven.archiva.web.tags; - -/* - * 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.webwork.WebWorkException; -import com.opensymphony.webwork.components.Component; -import com.opensymphony.xwork.util.OgnlValueStack; - -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.database.ArchivaDAO; -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.constraints.ArtifactsRelatedConstraint; -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.repository.RepositoryNotFoundException; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; - -import java.io.IOException; -import java.io.Writer; -import java.text.DecimalFormat; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.jsp.PageContext; - -/** - * DownloadArtifact - * - * @author Joakim Erdfelt - * @version $Id$ - * @plexus.component role="com.opensymphony.webwork.components.Component" role-hint="download-artifact" - * instantiation-strategy="per-lookup" - */ -public class DownloadArtifact - extends Component -{ - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - private HttpServletRequest req; - - @SuppressWarnings("unused") - private HttpServletResponse res; - - private String groupId; - - private String artifactId; - - private String version; - - private boolean mini = false; - - private DecimalFormat decimalFormat; - - public DownloadArtifact( OgnlValueStack stack, PageContext pageContext ) - { - super( stack ); - decimalFormat = new DecimalFormat( "#,#00" ); - this.req = (HttpServletRequest) pageContext.getRequest(); - this.res = (HttpServletResponse) pageContext.getResponse(); - try - { - dao = (ArchivaDAO) PlexusTagUtil.lookup( pageContext, ArchivaDAO.ROLE, "jdo" ); - repositoryFactory = (RepositoryContentFactory) PlexusTagUtil.lookup( pageContext, - RepositoryContentFactory.class ); - } - catch ( ComponentLookupException e ) - { - throw new RuntimeException( e.getMessage(), e ); - } - } - - public boolean end( Writer writer, String body ) - { - StringBuffer sb = new StringBuffer(); - - try - { - Constraint constraint = new ArtifactsRelatedConstraint( groupId, artifactId, version ); - List relatedArtifacts = dao.getArtifactDAO().queryArtifacts( constraint ); - - if ( relatedArtifacts != null ) - { - String repoId = ( (ArchivaArtifact) relatedArtifacts.get( 0 ) ).getModel().getRepositoryId(); - ManagedRepositoryContent repo = repositoryFactory.getManagedRepositoryContent( repoId ); - - String prefix = req.getContextPath() + "/repository/" + repoId; - - if ( mini ) - { - appendMini( sb, prefix, repo, relatedArtifacts ); - } - else - { - appendNormal( sb, prefix, repo, relatedArtifacts ); - } - } - } - catch ( ObjectNotFoundException e ) - { - appendError( sb, e ); - } - catch ( ArchivaDatabaseException e ) - { - appendError( sb, e ); - } - catch ( RepositoryNotFoundException e ) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } - catch ( RepositoryException e ) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - try - { - writer.write( sb.toString() ); - } - catch ( IOException e ) - { - throw new WebWorkException( "IOError: " + e.getMessage(), e ); - } - - return super.end( writer, body ); - } - - private void appendError( StringBuffer sb, Exception e ) - { - /* do nothing */ - } - - private void appendMini( StringBuffer sb, String prefix, ManagedRepositoryContent repo, - List relatedArtifacts ) - { - // TODO: write 1 line download link for main artifact. - } - - private void appendNormal( StringBuffer sb, String prefix, ManagedRepositoryContent repo, - List relatedArtifacts ) - { - /* - *
- *
- *
- *
- *
- *
- * <-- main content goes here --> - *
- *
- *
- *
- *
- *
- */ - - sb.append( "
" ); - sb.append( "
" ); - sb.append( "
" ); - - // Heading - sb.append( "

" ); - if ( relatedArtifacts.size() > 1 ) - { - sb.append( "Downloads" ); - } - else - { - sb.append( "Download" ); - } - sb.append( "

" ); - - // Body - sb.append( "

" ); - - sb.append( "" ); - for ( ArchivaArtifact artifact : relatedArtifacts ) - { - sb.append( "\n" ); - - sb.append( "" ); - - sb.append( "" ); - - sb.append( "" ); - - sb.append( "" ); - } - sb.append( "
" ); - appendImageLink( sb, prefix, repo, artifact ); - sb.append( "" ); - appendLink( sb, prefix, repo, artifact ); - sb.append( "" ); - appendFilesize( sb, artifact ); - sb.append( "
" ); - sb.append( "

" ); - - sb.append( "
" ); // close "downloadbox.bd.c" - sb.append( "
" ); // close "downloadbox.bd" - - sb.append( "
" ); - sb.append( "
" ); // close "download" - } - - private void appendImageLink( StringBuffer sb, String prefix, ManagedRepositoryContent repo, - ArchivaArtifact artifact ) - { - String type = artifact.getType(); - String linkText = ""; - appendLink( sb, prefix, repo, artifact, linkText ); - } - - private static void appendLink( StringBuffer sb, String prefix, ManagedRepositoryContent repo, - ArchivaArtifact artifact, String linkText ) - { - StringBuffer url = new StringBuffer(); - - String path = repo.toPath( artifact ); - - url.append( prefix ); - url.append( "/" ).append( path ); - - String filename = path.substring( path.lastIndexOf( "/" ) + 1 ); - - sb.append( "" ); - - sb.append( linkText ); - - sb.append( "" ); - } - - private void appendLink( StringBuffer sb, String prefix, ManagedRepositoryContent repo, - ArchivaArtifact artifact ) - { - String type = artifact.getType(); - String linkText = StringUtils.capitalize( type ); - - appendLink( sb, prefix, repo, artifact, linkText ); - } - - private void appendFilesize( StringBuffer sb, ArchivaArtifact artifact ) - { - sb.append( decimalFormat.format( artifact.getModel().getSize() ) ); - } - - public void setArtifactId( String artifactId ) - { - this.artifactId = artifactId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public void setMini( boolean mini ) - { - this.mini = mini; - } - - public void setVersion( String version ) - { - this.version = version; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifactTag.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifactTag.java deleted file mode 100644 index 21aaa982f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifactTag.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.apache.maven.archiva.web.tags; - -/* - * 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.webwork.views.jsp.TagUtils; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -/** - * DownloadArtifactTag - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DownloadArtifactTag - extends TagSupport -{ - private String groupId_; // stores EL-based groupId property - - private String groupId; // stores the evaluated groupId object. - - private String artifactId_; // stores EL-based artifactId property - - private String artifactId; // stores the evaluated artifactId object. - - private String version_; // stores EL-based version property - - private String version; // stores the evaluated version object. - - private String mini_; // stores EL-based mini property - - private boolean mini; // stores the evaluated mini object. - - public int doEndTag() - throws JspException - { - evaluateExpressions(); - - DownloadArtifact download = new DownloadArtifact( TagUtils.getStack( pageContext ), pageContext ); - download.setGroupId( groupId ); - download.setArtifactId( artifactId ); - download.setVersion( version ); - download.setMini( mini ); - - download.end( pageContext.getOut(), "" ); - - return super.doEndTag(); - } - - private void evaluateExpressions() - throws JspException - { - ExpressionTool exprTool = new ExpressionTool( pageContext, this, "download" ); - - // Handle required properties. - groupId = exprTool.requiredString( "groupId", groupId_ ); - artifactId = exprTool.requiredString( "artifactId", artifactId_ ); - version = exprTool.requiredString( "version", version_ ); - - // Handle optional properties - mini = exprTool.optionalBoolean( "mini", mini_, false ); - } - - public void setArtifactId( String artifactId ) - { - this.artifactId_ = artifactId; - } - - public void setGroupId( String groupId ) - { - this.groupId_ = groupId; - } - - public void setVersion( String version ) - { - this.version_ = version; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/ExpressionTool.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/ExpressionTool.java deleted file mode 100644 index b59c5636f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/ExpressionTool.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.apache.maven.archiva.web.tags; - -/* - * 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.taglibs.standard.tag.common.core.NullAttributeException; -import org.apache.taglibs.standard.tag.el.core.ExpressionUtil; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.Tag; - -/** - * ExpressionTool - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ExpressionTool -{ - private PageContext pageContext; - - private Tag tag; - - private String tagName; - - public ExpressionTool( PageContext pageContext, Tag tag, String tagName ) - { - this.pageContext = pageContext; - this.tag = tag; - this.tagName = tagName; - } - - public boolean optionalBoolean( String propertyName, String expression, boolean defaultValue ) - throws JspException - { - try - { - Boolean ret = (Boolean) ExpressionUtil.evalNotNull( this.tagName, propertyName, expression, Boolean.class, - this.tag, this.pageContext ); - - if ( ret == null ) - { - return defaultValue; - } - - return ret.booleanValue(); - } - catch ( NullAttributeException e ) - { - return defaultValue; - } - } - - public String optionalString( String propertyName, String expression, String defaultValue ) - throws JspException - { - try - { - String ret = (String) ExpressionUtil.evalNotNull( this.tagName, propertyName, expression, String.class, - this.tag, this.pageContext ); - - if ( ret == null ) - { - return defaultValue; - } - - return ret; - } - catch ( NullAttributeException e ) - { - return defaultValue; - } - } - - public String requiredString( String propertyName, String expression ) - throws JspException - { - try - { - String ret = (String) ExpressionUtil.evalNotNull( this.tagName, propertyName, expression, String.class, - this.tag, this.pageContext ); - return ret; - } - catch ( NullAttributeException e ) - { - String emsg = "Required " + this.tagName + " property [" + propertyName + "] is null!"; - - log( emsg, e ); - throw new JspException( emsg ); - } - } - - private void log( String msg, Throwable t ) - { - pageContext.getServletContext().log( msg, t ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/GroupIdLink.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/GroupIdLink.java deleted file mode 100644 index 37871480c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/GroupIdLink.java +++ /dev/null @@ -1,148 +0,0 @@ -package org.apache.maven.archiva.web.tags; - -/* - * 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.webwork.WebWorkException; -import com.opensymphony.webwork.components.Component; -import com.opensymphony.xwork.util.OgnlValueStack; - -import java.io.IOException; -import java.io.Writer; -import java.util.StringTokenizer; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * GroupIdLink - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class GroupIdLink - extends Component -{ - private static final String ACTION = "browseGroup"; - - private static final String NAMESPACE = "/"; - - private static final boolean includeContext = true; - - private static final boolean encode = true; - - private static final String method = null; - - private HttpServletRequest req; - - private HttpServletResponse res; - - private String groupId; - - private boolean includeTop = false; - - public GroupIdLink( OgnlValueStack stack, HttpServletRequest req, HttpServletResponse res ) - { - super( stack ); - this.req = req; - this.res = res; - } - - public boolean end( Writer writer, String body ) - { - StringBuffer sb = new StringBuffer(); - - sb.append( "" ); - - if ( includeTop ) - { - sb.append( "[top] / " ); // TODO: i18n - } - - StringTokenizer tok = new StringTokenizer( groupId, "." ); - String cumulativeGroup = null; - - while ( tok.hasMoreTokens() ) - { - String token = tok.nextToken(); - - if ( cumulativeGroup == null ) - { - cumulativeGroup = token; - } - else - { - cumulativeGroup += "." + token; - } - sb.append( "" ).append( token ).append( " / " ); - } - - sb.append( "" ); - - try - { - writer.write( sb.toString() ); - } - catch ( IOException e ) - { - throw new WebWorkException( "IOError: " + e.getMessage(), e ); - } - - return super.end( writer, body ); - } - - private String determineBrowseActionUrl() - { - return determineActionURL( "browse", NAMESPACE, method, req, res, parameters, req.getScheme(), includeContext, - encode, true ); - } - - private String determineBrowseGroupActionUrl( String gid ) - { - parameters.put( "groupId", gid ); - - return determineActionURL( ACTION, NAMESPACE, method, req, res, parameters, req.getScheme(), includeContext, - encode, true ); - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public boolean isIncludeTop() - { - return includeTop; - } - - public void setIncludeTop( boolean includeTop ) - { - this.includeTop = includeTop; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/GroupIdLinkTag.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/GroupIdLinkTag.java deleted file mode 100644 index ec42b8bbe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/GroupIdLinkTag.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.apache.maven.archiva.web.tags; - -/* - * 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.webwork.views.jsp.TagUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -/** - * GroupIdLink - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class GroupIdLinkTag - extends TagSupport -{ - private String var_; // stores EL-based property - - private String var; // stores the evaluated object. - - private boolean includeTop = false; - - public void release() - { - var_ = null; - var = null; - includeTop = false; - - super.release(); - } - - public int doEndTag() - throws JspException - { - evaluateExpressions(); - - GroupIdLink gidlink = new GroupIdLink( TagUtils.getStack( pageContext ), (HttpServletRequest) pageContext - .getRequest(), (HttpServletResponse) pageContext.getResponse() ); - - gidlink.setGroupId( var ); - gidlink.setIncludeTop( includeTop ); - - gidlink.end( pageContext.getOut(), "" ); - - return super.doEndTag(); - } - - private void evaluateExpressions() - throws JspException - { - ExpressionTool exprTool = new ExpressionTool( pageContext, this, "groupIdLink" ); - - var = exprTool.optionalString( "var", var_, "" ); - } - - public void setVar( String value ) - { - this.var_ = value; - } - - public void setIncludeTop( boolean includeTop ) - { - this.includeTop = includeTop; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/PlexusTagUtil.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/PlexusTagUtil.java deleted file mode 100644 index b6ef516b9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/PlexusTagUtil.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.apache.maven.archiva.web.tags; - -/* - * 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.PlexusConstants; -import org.codehaus.plexus.PlexusContainer; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; - -import javax.servlet.ServletContext; -import javax.servlet.jsp.PageContext; - -/** - * PlexusTagUtil - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class PlexusTagUtil -{ - public static Object lookup( PageContext pageContext, Class clazz ) - throws ComponentLookupException - { - return getContainer( pageContext ).lookup( clazz ); - } - - public static Object lookup( PageContext pageContext, String role ) - throws ComponentLookupException - { - return getContainer( pageContext ).lookup( role ); - } - - public static Object lookup( PageContext pageContext, Class clazz, String hint ) - throws ComponentLookupException - { - return getContainer( pageContext ).lookup( clazz, hint ); - } - - public static Object lookup( PageContext pageContext, String role, String hint ) - throws ComponentLookupException - { - return getContainer( pageContext ).lookup( role, hint ); - } - - public static PlexusContainer getContainer( PageContext pageContext ) - throws ComponentLookupException - { - ServletContext servletContext = pageContext.getServletContext(); - - PlexusContainer xworkContainer = (PlexusContainer) servletContext.getAttribute( "webwork.plexus.container" ); - - if ( xworkContainer != null ) - { - servletContext.setAttribute( PlexusConstants.PLEXUS_KEY, xworkContainer ); - - return xworkContainer; - } - - PlexusContainer container = (PlexusContainer) servletContext.getAttribute( PlexusConstants.PLEXUS_KEY ); - if ( container == null ) - { - throw new ComponentLookupException( "PlexusContainer is null." ); - } - return container; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/ContextUtils.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/ContextUtils.java deleted file mode 100644 index 3cdb25caf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/ContextUtils.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.apache.maven.archiva.web.util; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.lang.StringUtils; - -import java.util.HashMap; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.PageContext; - -/** - * ContextUtils - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ContextUtils -{ - private static final Map defaultSchemePortMap; - - static - { - defaultSchemePortMap = new HashMap(); - defaultSchemePortMap.put( "http", new Integer( 80 ) ); - defaultSchemePortMap.put( "https", new Integer( 443 ) ); - } - - /** - * Using the page context, get the base url. - * - * @param pageContext the page context to use - * @return the base url with module name. - */ - public static String getBaseURL( PageContext pageContext ) - { - return getBaseURL( pageContext, null ); - } - - /** - * Using the page context, get the base url and append an optional resource name to the end of the provided url. - * - * @param pageContext the page context to use - * @param resource the resource name (or null if no resource name specified) - * @return the base url with resource name. - */ - public static String getBaseURL( PageContext pageContext, String resource ) - { - HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); - return getBaseURL( request, resource ); - } - - /** - * Using the http servlet request, get the base url and append an optional resource name to the end of the url. - * - * @param request the request to use - * @param resource the resource name (or null if not resource name should be appended) - * @return the base url with resource name. - */ - public static String getBaseURL( HttpServletRequest request, String resource ) - { - StringBuffer baseUrl = new StringBuffer(); - - baseUrl.append( request.getScheme() ).append( "://" ); - baseUrl.append( getServerName( request ) ); - baseUrl.append( request.getContextPath() ); - - if ( StringUtils.isNotBlank( resource ) ) - { - if ( !baseUrl.toString().endsWith( "/" ) ) - { - baseUrl.append( "/" ); - } - - baseUrl.append( resource ); - } - - return baseUrl.toString(); - } - - private static String getServerName( HttpServletRequest request ) - { - String name = request.getHeader( "X-Forwarded-Host" ); - if ( name == null ) - { - name = request.getServerName(); - int portnum = request.getServerPort(); - - // Only add port if non-standard. - Integer defaultPortnum = (Integer) defaultSchemePortMap.get( request.getScheme() ); - if ( ( defaultPortnum == null ) || ( defaultPortnum.intValue() != portnum ) ) - { - name = name + ":" + String.valueOf( portnum ); - } - return name; - } - return name; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/VersionMerger.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/VersionMerger.java deleted file mode 100644 index 07e4a702c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/VersionMerger.java +++ /dev/null @@ -1,212 +0,0 @@ -package org.apache.maven.archiva.web.util; - -/* - * 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.indexer.record.StandardArtifactIndexRecord; -//import org.apache.maven.artifact.versioning.DefaultArtifactVersion; -//import org.apache.maven.model.Dependency; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -public class VersionMerger -{ - - public static List /**/ wrap( List /**/ artifacts ) - { - List dependencies = new ArrayList(); - -// for ( Iterator i = artifacts.iterator(); i.hasNext(); ) -// { -// Dependency dependency = (Dependency) i.next(); -// -// dependencies.add( new DependencyWrapper( dependency ) ); -// } - - return dependencies; - } - - public static Collection /**/ artifacts ) - { - Map dependees = new LinkedHashMap(); - -// for ( Iterator i = artifacts.iterator(); i.hasNext(); ) -// { -// StandardArtifactIndexRecord record = (StandardArtifactIndexRecord) i.next(); -// -// String key = record.getGroupId() + ":" + record.getArtifactId(); -// if ( dependees.containsKey( key ) ) -// { -// DependencyWrapper wrapper = (DependencyWrapper) dependees.get( key ); -// wrapper.addVersion( record.getVersion() ); -// } -// else -// { -// DependencyWrapper wrapper = new DependencyWrapper( record ); -// -// dependees.put( key, wrapper ); -// } -// } - - return dependees.values(); - } - -// public static class DependencyWrapper -// { -// private final String groupId; -// -// private final String artifactId; -// -// /** -// * Versions added. We ignore duplicates since you might add those with varying classifiers. -// */ -// private Set versions = new HashSet(); -// -// private String version; -// -// private String scope; -// -// private String classifier; -// -// public DependencyWrapper( StandardArtifactIndexRecord record ) -// { -// this.groupId = record.getGroupId(); -// -// this.artifactId = record.getArtifactId(); -// -// addVersion( record.getVersion() ); -// } -// -// public DependencyWrapper( Dependency dependency ) -// { -// this.groupId = dependency.getGroupId(); -// -// this.artifactId = dependency.getArtifactId(); -// -// this.scope = dependency.getScope(); -// -// this.classifier = dependency.getClassifier(); -// -// addVersion( dependency.getVersion() ); -// } -// -// public String getScope() -// { -// return scope; -// } -// -// public String getClassifier() -// { -// return classifier; -// } -// -// public void addVersion( String version ) -// { -// // We use DefaultArtifactVersion to get the correct sorting order later, however it does not have -// // hashCode properly implemented, so we add it here. -// // TODO: add these methods to the actual DefaultArtifactVersion and use that. -// versions.add( new DefaultArtifactVersion( version ) -// { -// public int hashCode() -// { -// int result; -// result = getBuildNumber(); -// result = 31 * result + getMajorVersion(); -// result = 31 * result + getMinorVersion(); -// result = 31 * result + getIncrementalVersion(); -// result = 31 * result + ( getQualifier() != null ? getQualifier().hashCode() : 0 ); -// return result; -// } -// -// public boolean equals( Object o ) -// { -// if ( this == o ) -// { -// return true; -// } -// if ( o == null || getClass() != o.getClass() ) -// { -// return false; -// } -// -// DefaultArtifactVersion that = (DefaultArtifactVersion) o; -// -// if ( getBuildNumber() != that.getBuildNumber() ) -// { -// return false; -// } -// if ( getIncrementalVersion() != that.getIncrementalVersion() ) -// { -// return false; -// } -// if ( getMajorVersion() != that.getMajorVersion() ) -// { -// return false; -// } -// if ( getMinorVersion() != that.getMinorVersion() ) -// { -// return false; -// } -// if ( getQualifier() != null ? !getQualifier().equals( that.getQualifier() ) -// : that.getQualifier() != null ) -// { -// return false; -// } -// -// return true; -// } -// } ); -// -// if ( versions.size() == 1 ) -// { -// this.version = version; -// } -// else -// { -// this.version = null; -// } -// } -// -// public String getGroupId() -// { -// return groupId; -// } -// -// public String getArtifactId() -// { -// return artifactId; -// } -// -// public List getVersions() -// { -// List versions = new ArrayList( this.versions ); -// Collections.sort( versions ); -// return versions; -// } -// -// public String getVersion() -// { -// return version; -// } -// } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/CronExpressionValidator.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/CronExpressionValidator.java deleted file mode 100644 index 86464e59d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/CronExpressionValidator.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.apache.maven.archiva.web.validator; - -/* - * 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.xwork.validator.ValidationException; -import com.opensymphony.xwork.validator.ValidatorContext; -import com.opensymphony.xwork.validator.validators.FieldValidatorSupport; - -/** - * Reused from Continuum crontab validator - */ -public class CronExpressionValidator - extends FieldValidatorSupport -{ - public void validate( Object obj ) - throws ValidationException - { - String cron = (String) getFieldValue( "cron", obj ); - - org.codehaus.plexus.scheduler.CronExpressionValidator cronExpressionValidator = - new org.codehaus.plexus.scheduler.CronExpressionValidator(); - - ValidatorContext ctxt = getValidatorContext(); - if ( !cronExpressionValidator.validate( String.valueOf( cron ) ) ) - { - ctxt.addActionError( "Invalid cron expression value(s)" ); - return; - } - } -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/IntervalValidator.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/IntervalValidator.java deleted file mode 100644 index 628caa8a0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/IntervalValidator.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.apache.maven.archiva.web.validator; - -/* - * 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.xwork.validator.ValidationException; -import com.opensymphony.xwork.validator.ValidatorContext; -import com.opensymphony.xwork.validator.validators.ValidatorSupport; - -/** - * @author Maria Odea Ching - */ -public class IntervalValidator - extends ValidatorSupport -{ - - public void validate( Object obj ) - throws ValidationException - { - String snapshotsPolicy = (String) getFieldValue( "snapshotsPolicy", obj ); - String releasesPolicy = (String) getFieldValue( "releasesPolicy", obj ); - Integer snapshotsInterval = (Integer) getFieldValue( "snapshotsInterval", obj ); - Integer releasesInterval = (Integer) getFieldValue( "releasesInterval", obj ); - - ValidatorContext ctxt = getValidatorContext(); - - if ( !snapshotsPolicy.equals( "interval" ) ) - { - if ( snapshotsInterval.intValue() != 0 ) - { - ctxt.addActionError( "Snapshots Interval must be set to zero." ); - } - } - - if ( !releasesPolicy.equals( "interval" ) ) - { - if ( releasesInterval.intValue() != 0 ) - { - ctxt.addActionError( "Releases Interval must be set to zero." ); - } - } - - if ( ctxt.hasActionErrors() ) - { - return; - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/SyncedRepositoryValidator.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/SyncedRepositoryValidator.java deleted file mode 100644 index d97a9e2c4..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/validator/SyncedRepositoryValidator.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.apache.maven.archiva.web.validator; - -/* - * 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.xwork.validator.ValidationException; -import com.opensymphony.xwork.validator.ValidatorContext; -import com.opensymphony.xwork.validator.validators.ValidatorSupport; - -/** - * Validator for synced repository form. The values to be validated depends on the - * selected sync method to be used. - * - * @author Maria Odea Ching - */ -public class SyncedRepositoryValidator - extends ValidatorSupport -{ - - public void validate( Object obj ) - throws ValidationException - { - - String method = (String) getFieldValue( "method", obj ); - ValidatorContext ctxt = getValidatorContext(); - - if ( method.equals( "rsync" ) ) - { - String rsyncHost = (String) getFieldValue( "rsyncHost", obj ); - if ( rsyncHost == null || rsyncHost.equals( "" ) ) - { - ctxt.addActionError( "Rsync host is required." ); - } - - String rsyncDirectory = (String) getFieldValue( "rsyncDirectory", obj ); - if ( rsyncDirectory == null || rsyncDirectory.equals( "" ) ) - { - ctxt.addActionError( "Rsync directory is required." ); - } - - String rsyncMethod = (String) getFieldValue( "rsyncMethod", obj ); - if ( rsyncMethod == null || rsyncMethod.equals( "" ) ) - { - ctxt.addActionError( "Rsync method is required." ); - } - else - { - if ( !rsyncMethod.equals( "anonymous" ) && !rsyncMethod.equals( "ssh" ) ) - { - ctxt.addActionError( "Invalid rsync method" ); - } - } - - String username = (String) getFieldValue( "username", obj ); - if ( username == null || username.equals( "" ) ) - { - ctxt.addActionError( "Username is required." ); - } - - } - else if ( method.equals( "svn" ) ) - { - String svnUrl = (String) getFieldValue( "svnUrl", obj ); - if ( svnUrl == null || svnUrl.equals( "" ) ) - { - ctxt.addActionError( "SVN url is required." ); - } - - String username = (String) getFieldValue( "username", obj ); - if ( username == null || username.equals( "" ) ) - { - ctxt.addActionError( "Username is required." ); - } - } - else if ( method.equals( "cvs" ) ) - { - String cvsRoot = (String) getFieldValue( "cvsRoot", obj ); - if ( cvsRoot == null || cvsRoot.equals( "" ) ) - { - ctxt.addActionError( "CVS root is required." ); - } - } - else if ( method.equals( "file" ) ) - { - String directory = (String) getFieldValue( "directory", obj ); - if ( directory == null || directory.equals( "" ) ) - { - ctxt.addActionError( "Directory is required." ); - } - } - - if ( ctxt.hasActionErrors() ) - { - return; - } - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml deleted file mode 100644 index 22ad7d1ac..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml +++ /dev/null @@ -1,419 +0,0 @@ - - - - - - - org.codehaus.plexus.registry.Registry - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - commons-configuration - - - - - - - - - - - - - - - - - - - - - - - org.codehaus.plexus.mailsender.MailSender - org.codehaus.plexus.mailsender.javamail.JndiJavamailMailSender - - java:comp/env/mail/Session - - - - - org.codehaus.plexus.jdo.JdoFactory - archiva - org.codehaus.plexus.jdo.DataSourceConfigurableJdoFactory - - - java:comp/env/jdbc/archiva - java:comp/env/jdbc/archivaShutdown - - - org.jpox.PersistenceManagerFactoryImpl - - - org.jpox.autoCreateSchema - true - - - org.jpox.autoCreateColumns - true - - - org.jpox.validateTables - false - - - org.jpox.validateConstraints - false - - - org.jpox.validateColumns - false - - - org.jpox.autoStartMechanism - None - - - org.jpox.transactionIsolation - READ_COMMITTED - - - org.jpox.poid.transactionIsolation - READ_COMMITTED - - - org.jpox.rdbms.dateTimezone - JDK_DEFAULT_TIMEZONE - - - - - - - - org.codehaus.plexus.jdo.JdoFactory - users - org.codehaus.plexus.jdo.DataSourceConfigurableJdoFactory - - - java:comp/env/jdbc/users - java:comp/env/jdbc/usersShutdown - - - org.jpox.PersistenceManagerFactoryImpl - - - org.jpox.autoCreateSchema - true - - - org.jpox.validateTables - false - - - org.jpox.validateConstraints - false - - - org.jpox.validateColumns - false - - - org.jpox.autoStartMechanism - None - - - org.jpox.transactionIsolation - READ_COMMITTED - - - org.jpox.poid.transactionIsolation - READ_COMMITTED - - - org.jpox.rdbms.dateTimezone - JDK_DEFAULT_TIMEZONE - - - - - - - - - - - org.codehaus.plexus.logging.LoggerManager - org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager - basic - - - - - org.codehaus.plexus.redback.system.check.EnvironmentCheck - locked-admin-check - org.codehaus.plexus.redback.xwork.checks.security.LockedAdminEnvironmentCheck - LockedAdminEnvironmentCheck: checks if accounts marked as system administrator are locked - and unlocks them on startup. - - - - org.codehaus.plexus.redback.users.UserManager - cached - userManager - - - org.codehaus.plexus.redback.rbac.RBACManager - cached - rbacManager - - - - - - - - - - - - - - - - - - - - - - - - - - - plexus - - - plexus - Plexus Lifecycle Handler - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/taglib.tld b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/taglib.tld deleted file mode 100644 index af5e7e972..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/taglib.tld +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - 2.2.3 - 1.2 - ArchivaTaglib - - http://archiva.apache.org - - Archiva Taglib - - - - - groupIdLink - org.apache.maven.archiva.web.tags.GroupIdLinkTag - empty - - - - var - true - true - - - - - - includeTop - false - true - - - - - - - - - downloadArtifact - org.apache.maven.archiva.web.tags.DownloadArtifactTag - empty - - - - groupId - true - true - - - - - - artifactId - true - true - - - - - - version - true - true - - - - - - mini - false - true - - - - - - - - - copy-paste-snippet - org.apache.maven.archiva.web.tags.CopyPasteSnippetTag - empty - - - - object - true - true - - - - - - wrapper - false - true - - - - - - - - dependency-tree - org.apache.maven.archiva.web.tags.DependencyTreeTag - JSP - - - - groupId - true - true - - - - - - artifactId - true - true - - - - - - version - true - true - - - - - - modelVersion - false - true - - - - - - nodevar - false - true - - - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/archiva-mime-types.txt b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/archiva-mime-types.txt deleted file mode 100644 index 43e6cb24f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/archiva-mime-types.txt +++ /dev/null @@ -1,127 +0,0 @@ -# This file controls what Internet media types are sent to the client for -# given file extension(s). Sending the correct media type to the client -# is important so they know how to handle the content of the file. -# Extra types can either be added here or by using an AddType directive -# in your config files. For more information about Internet media types, -# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type -# registry is at . - -# MIME type Extensions - -application/andrew-inset ez -application/atom+xml atom -application/java-archive jar -application/mac-binhex40 hqx -application/mac-compactpro cpt -application/mathml+xml mathml -application/msword doc -application/octet-stream bin dms lha lzh exe class so dll dmg -application/oda oda -application/ogg ogg -application/pdf pdf -application/pgp-encrypted pgp -application/postscript ai eps ps -application/rdf+xml rdf -application/smil smi smil -application/srgs gram -application/srgs+xml grxml -application/vnd.mif mif -application/vnd.mozilla.xul+xml xul -application/vnd.ms-excel xls -application/vnd.ms-powerpoint ppt -application/vnd.rn-realmedia rm -application/vnd.wap.wbxml wbxml -application/vnd.wap.wmlc wmlc -application/vnd.wap.wmlscriptc wmlsc -application/voicexml+xml vxml -application/x-bcpio bcpio -application/x-cdlink vcd -application/x-chess-pgn pgn -application/x-cpio cpio -application/x-csh csh -application/x-director dcr dir dxr -application/x-dvi dvi -application/x-futuresplash spl -application/x-gtar gtar -application/x-hdf hdf -application/x-java-jnlp-file jnlp -application/x-javascript js -application/x-koan skp skd skt skm -application/x-latex latex -application/x-netcdf nc cdf -application/x-sh sh -application/x-shar shar -application/x-shockwave-flash swf -application/x-stuffit sit -application/x-sv4cpio sv4cpio -application/x-sv4crc sv4crc -application/x-tar tar -application/x-tcl tcl -application/x-tex tex -application/x-texinfo texinfo texi -application/x-troff t tr roff -application/x-troff-man man -application/x-troff-me me -application/x-troff-ms ms -application/x-ustar ustar -application/x-wais-source src -application/xhtml+xml xhtml xht -application/xml xml xsl pom -application/xml-dtd dtd -application/xslt+xml xslt -application/zip zip -audio/basic au snd -audio/midi mid midi kar -audio/mpeg mpga mp2 mp3 -audio/x-aiff aif aiff aifc -audio/x-mpegurl m3u -audio/x-pn-realaudio ram ra -audio/x-wav wav -chemical/x-pdb pdb -chemical/x-xyz xyz -image/bmp bmp -image/cgm cgm -image/gif gif -image/ief ief -image/jp2 jp2 -image/jpeg jpeg jpg jpe -image/pict pict pic pct -image/png png -image/svg+xml svg -image/tiff tiff tif -image/vnd.djvu djvu djv -image/vnd.wap.wbmp wbmp -image/x-cmu-raster ras -image/x-icon ico -image/x-macpaint pntg pnt mac -image/x-portable-anymap pnm -image/x-portable-bitmap pbm -image/x-portable-graymap pgm -image/x-portable-pixmap ppm -image/x-quicktime qtif qti -image/x-rgb rgb -image/x-xbitmap xbm -image/x-xpixmap xpm -image/x-xwindowdump xwd -model/iges igs iges -model/mesh msh mesh silo -model/vrml wrl vrml -text/calendar ics ifb -text/css css -text/html html htm -text/plain asc txt sha1 md5 -text/richtext rtx -text/rtf rtf -text/sgml sgml sgm -text/tab-separated-values tsv -text/vnd.wap.wml wml -text/vnd.wap.wmlscript wmls -text/x-setext etx -video/mp4 mp4 -video/mpeg mpeg mpg mpe -video/quicktime qt mov -video/vnd.mpegurl mxu m4u -video/x-dv dv dif -video/x-msvideo avi -video/x-sgi-movie movie -x-conference/x-cooltalk ice diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/freemarker.properties b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/freemarker.properties deleted file mode 100644 index e2c1805e7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/freemarker.properties +++ /dev/null @@ -1,20 +0,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. -# -# 1 hour -template_update_delay=3600000 \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j.xml deleted file mode 100644 index 19bb54331..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/redback/custom.properties b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/redback/custom.properties deleted file mode 100644 index 134092cb2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/redback/custom.properties +++ /dev/null @@ -1,4 +0,0 @@ -# text resources within redback can be customized by overriding them here - -#password.reset.success=An email has been sent. -#password.reset.failure=No email was not sent, perhaps the user did not exist as entered. \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/security.properties b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/security.properties deleted file mode 100644 index 2074ef020..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/security.properties +++ /dev/null @@ -1,27 +0,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. -# - -# -------------------------------------------------------------------- -# Email Settings - -# The subject line for the email message. -email.validation.subject=Welcome to Archiva - -# Feedback page -email.feedback.path=http://archiva.apache.org/mail-lists.html diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-checksumSearch-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-checksumSearch-validation.xml deleted file mode 100644 index 712e2910a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-checksumSearch-validation.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - You must select a file, or enter the checksum. If the file was given and you receive this message, - there may have been an error generating the checksum. - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-filteredSearch-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-filteredSearch-validation.xml deleted file mode 100644 index 5f9c89750..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-filteredSearch-validation.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - Invalid entry - - - 1 - Row count must be larger than ${min}. - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-quickSearch-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-quickSearch-validation.xml deleted file mode 100644 index 705f0be19..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/SearchAction-quickSearch-validation.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - You must enter some search terms. - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/UploadAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/UploadAction-validation.xml deleted file mode 100644 index b56cf3757..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/UploadAction-validation.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - You must enter a groupId. - - - - - You must enter an artifactId. - - - - - You must enter a version. - - - - - You must enter a packaging. - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAction-validation.xml deleted file mode 100644 index 3253d2e18..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAction-validation.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - You must enter the index directory. - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAppearance-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAppearance-validation.xml deleted file mode 100644 index 64c011f1f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAppearance-validation.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAppearance.properties b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAppearance.properties deleted file mode 100644 index 2084ccd4a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureAppearance.properties +++ /dev/null @@ -1,21 +0,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. -# - -appearance.organisation.url = You must define an organisation url." -appearance.organisation.logourl = You must define an organisation logo url." \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureProxiedRepositoryAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureProxiedRepositoryAction-validation.xml deleted file mode 100644 index 74f61f404..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureProxiedRepositoryAction-validation.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - You must enter the repository identifier. - - - - - - You must enter the repository name. - - - - - - You must enter the repository URL. - - - - - - The value must be numeric - - - - - - The value must be numeric - - - - - - - - - - - Repository type is required. - - - layout in {"legacy", "default"} - Invalid repository type. - - - - - snapshotsPolicy in { "disabled", "daily", "hourly", "never", "interval" } - Invalid snapshot policy. - - - - - releasesPolicy in { "disabled", "daily", "hourly", "never", "interval" } - Invalid releases policy. - - - - - - A managed repository must be selected. - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureRepositoryAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureRepositoryAction-validation.xml deleted file mode 100644 index 7d38693c3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureRepositoryAction-validation.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - You must enter the repository identifier. - - - - - You must enter the url name. - - - - - You must enter the repository name. - - - - - You must enter the repository directory. - - - - - layout in {"legacy", "default"} - Invalid repository type. - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureSyncedRepositoryAction-addSelectedSyncedRepository-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureSyncedRepositoryAction-addSelectedSyncedRepository-validation.xml deleted file mode 100644 index d31c27c23..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureSyncedRepositoryAction-addSelectedSyncedRepository-validation.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - You must enter the repository identifier. - - - - - You must enter the repository name. - - - - - Select repository type. - - - layout in {"legacy", "default"} - Invalid repository type. - - - - - A managed repository must be selected. - - - - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureSyncedRepositoryAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureSyncedRepositoryAction-validation.xml deleted file mode 100644 index 483ebdddf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/ConfigureSyncedRepositoryAction-validation.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - You must enter the synchronization method. - - - method in { "rsync", "cvs", "svn", "file" } - Invalid method. - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/appearance/EditOrganisationInfoAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/appearance/EditOrganisationInfoAction-validation.xml deleted file mode 100644 index 38b3bcfa8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/appearance/EditOrganisationInfoAction-validation.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - You must enter a name - - - - - You must enter a URL - - - - - You must enter a URL - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml deleted file mode 100644 index 5c6e25ce3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - true - You must select a source repository Id. - - - - - true - You must select a target repository Id. - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/database/DatabaseAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/database/DatabaseAction-validation.xml deleted file mode 100644 index 5743b6a43..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/database/DatabaseAction-validation.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - You must enter a cron expression. - - - Invalid cron expression value(s). - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction-validation.xml deleted file mode 100644 index 1725a33ec..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction-validation.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - You must enter a legacy path. - - - - - You must enter a groupId. - - - - - You must enter an artifactId. - - - - - You must enter a version. - - - - - You must enter a type. - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction-saveNetworkProxy-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction-saveNetworkProxy-validation.xml deleted file mode 100644 index 5e39f8d7e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction-saveNetworkProxy-validation.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - true - You must enter an identifier. - - - 4 - 45 - true - You must enter an identifier of 4 or more than 4 characters. - - - - - true - You must enter a protocol. - - - - - true - You must enter a host. - - - - - You must enter an port. - - - 1 - - Port needs to be larger than ${min} - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction-validation.xml deleted file mode 100644 index 23f4cb495..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction-validation.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - You must enter a repository identifier. - - - - - You must enter a directory. - - - - - You must enter a repository name. - - - - - 1 - 100 - Repository Purge By Retention Count needs to be between ${min} and ${max}. - - - - - 0 - Repository Purge By Days Older Than needs to be larger than ${min}. - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryAction-validation.xml deleted file mode 100644 index 7902bc532..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryAction-validation.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - You must enter a repository identifier. - - - - - You must enter a url. - - - - - You must enter a repository name. - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction-validation.xml deleted file mode 100644 index 4ce434a43..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction-validation.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - You must enter a repository identifier. - - - - - You must enter a directory. - - - - - You must enter a repository name. - - - - - 1 - 100 - Repository Purge By Retention Count needs to be between ${min} and ${max}. - - - - - 0 - Repository Purge By Days Older Than needs to be larger than ${min}. - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryAction-validation.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryAction-validation.xml deleted file mode 100644 index 7902bc532..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryAction-validation.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - You must enter a repository identifier. - - - - - You must enter a url. - - - - - You must enter a repository name. - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/validators.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/validators.xml deleted file mode 100644 index c05423ec7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/validators.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/webwork.properties b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/webwork.properties deleted file mode 100644 index 1ad77fc06..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/webwork.properties +++ /dev/null @@ -1,31 +0,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. -# - -# define our own action mapper here -webwork.mapper.class = org.apache.maven.archiva.web.mapper.RepositoryActionMapper -webwork.objectFactory = org.codehaus.plexus.spring.WebWorkPlexusInSpringObjectFactory -webwork.url.includeParams = none - -#webwork.devMode = true -webwork.multipart.parser=jakarta - -# TODO: package up a theme and share with Continuum. Should contain everything from xhtml, and set templateDir to WEB-INF/themes - -# Localization -webwork.custom.i18n.resources=org.codehaus.plexus.redback.xwork.default,org.apache.maven.archiva.redback.custom diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml deleted file mode 100644 index b9580cfa9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml +++ /dev/null @@ -1,523 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - externalResult - - - - - - input,back,cancel,browse - - - input,back,cancel,browse - - - - - - - - - - - input,back,cancel,browse - - - input,back,cancel,browse - - - - - - - - - - - - - - - - - index - index - - Account Locked - index - - index - - login - /security - - - login - /security - - - login - /security - - - login - /security - - index - - login - /security - - - login - /security - - - addadmin - /security - - - password - /security - - - - /WEB-INF/jsp/generalError.jsp - /WEB-INF/jsp/accessToNoRepos.jsp - - - - - - - - - browse - - - - /WEB-INF/jsp/quickSearch.jsp - - - - /WEB-INF/jsp/advancedSearch.jsp - - - - /WEB-INF/jsp/advancedSearch.jsp - /WEB-INF/jsp/results.jsp - /WEB-INF/jsp/quickSearch.jsp - - - - /WEB-INF/jsp/quickSearch.jsp - /WEB-INF/jsp/results.jsp - /WEB-INF/jsp/quickSearch.jsp - - - - /WEB-INF/jsp/findArtifact.jsp - - - - /WEB-INF/jsp/upload.jsp - /WEB-INF/jsp/upload.jsp - /WEB-INF/jsp/upload.jsp - - - - - - /WEB-INF/jsp/findArtifact.jsp - /WEB-INF/jsp/results.jsp - /WEB-INF/jsp/findArtifact.jsp - - /browse/${databaseResults.get(0).getGroupId()}/${databaseResults.get(0).getArtifactId()}/${databaseResults.get(0).getVersion()} - - - - - /WEB-INF/jsp/browse.jsp - - - - /WEB-INF/jsp/browse.jsp - - - - /WEB-INF/jsp/browse.jsp - - - - /WEB-INF/jsp/generalError.jsp - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/artifact/dependencyTree.jsp - - - - - - - - /WEB-INF/jsp/components/companyLogo.jsp - - - - - - - - /WEB-INF/jsp/admin/repositories.jsp - - - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - /WEB-INF/jsp/admin/repositoryGroups.jsp - repositoryGroups - - - - - /WEB-INF/jsp/admin/deleteRepositoryGroup.jsp - - - - - /WEB-INF/jsp/admin/deleteRepositoryGroup.jsp - /WEB-INF/jsp/admin/deleteRepositoryGroup.jsp - repositoryGroups - - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - /WEB-INF/jsp/admin/repositoryGroups.jsp - repositoryGroups - - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - /WEB-INF/jsp/admin/repositoryGroups.jsp - repositoryGroups - - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - /WEB-INF/jsp/admin/repositoryGroups.jsp - repositoryGroups - - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - /WEB-INF/jsp/admin/repositoryGroups.jsp - repositoryGroups - - - - - - - /WEB-INF/jsp/admin/repositories.jsp - deleteRepository - - - - repositories - - - - /WEB-INF/jsp/admin/addRepository.jsp - /WEB-INF/jsp/admin/addRepository.jsp - /WEB-INF/jsp/admin/confirmAddRepository.jsp - repositories - - - - - /WEB-INF/jsp/admin/editRepository.jsp - /WEB-INF/jsp/admin/editRepository.jsp - repositories - /WEB-INF/jsp/admin/confirmAddRepository.jsp - - - - - /WEB-INF/jsp/admin/deleteRepository.jsp - - - - - /WEB-INF/jsp/admin/deleteRepository.jsp - /WEB-INF/jsp/admin/deleteRepository.jsp - repositories - - - - - /WEB-INF/jsp/admin/addRemoteRepository.jsp - /WEB-INF/jsp/admin/addRemoteRepository.jsp - repositories - - - - - /WEB-INF/jsp/admin/editRemoteRepository.jsp - /WEB-INF/jsp/admin/editRemoteRepository.jsp - repositories - - - - - /WEB-INF/jsp/admin/deleteRemoteRepository.jsp - - - - - /WEB-INF/jsp/admin/deleteRemoteRepository.jsp - /WEB-INF/jsp/admin/deleteRemoteRepository.jsp - repositories - - - - - - - /WEB-INF/jsp/admin/proxyConnectors.jsp - - - - /WEB-INF/jsp/admin/addProxyConnector.jsp - proxyConnectors - - - - - /WEB-INF/jsp/admin/editProxyConnector.jsp - proxyConnectors - - - - - /WEB-INF/jsp/admin/editProxyConnector.jsp - proxyConnectors - - - - - /WEB-INF/jsp/admin/editProxyConnector.jsp - proxyConnectors - - - - - /WEB-INF/jsp/admin/deleteProxyConnector.jsp - proxyConnectors - - - - - /WEB-INF/jsp/admin/enableProxyConnector.jsp - proxyConnectors - - - - - /WEB-INF/jsp/admin/disableProxyConnector.jsp - proxyConnectors - - - - - - - - /WEB-INF/jsp/admin/networkProxies.jsp - - - - /WEB-INF/jsp/admin/editNetworkProxy.jsp - networkProxies - - - - - /WEB-INF/jsp/admin/editNetworkProxy.jsp - networkProxies - - - - - /WEB-INF/jsp/admin/editNetworkProxy.jsp - networkProxies - - - - - /WEB-INF/jsp/admin/deleteNetworkProxy.jsp - networkProxies - - - - - - - /WEB-INF/jsp/admin/repositoryScanning.jsp - - repositoryScanning - - - - - - - /WEB-INF/jsp/admin/database.jsp - - database - - - - - database - - - - - - /WEB-INF/jsp/admin/appearance.jsp - - - - /WEB-INF/jsp/admin/editAppearance.jsp - - - - /WEB-INF/jsp/admin/editAppearance.jsp - - configureAppearance - /admin - - - - - - - /WEB-INF/jsp/admin/legacyArtifactPath.jsp - - legacyArtifactPath - - - - - /WEB-INF/jsp/admin/addLegacyArtifactPath.jsp - /WEB-INF/jsp/admin/addLegacyArtifactPath.jsp - legacyArtifactPath - - - - - /WEB-INF/jsp/admin/legacyArtifactPath.jsp - /WEB-INF/jsp/admin/legacyArtifactPath.jsp - legacyArtifactPath - - - - - - - - /WEB-INF/jsp/reports/pickReport.jsp - - - - - /WEB-INF/jasperreports/report.jasper - reports - HTML - - /WEB-INF/jsp/reports/pickReport.jsp - /WEB-INF/jsp/reports/blankReport.jsp - /WEB-INF/jsp/reports/basicReport.jsp - - - - /WEB-INF/jsp/reports/pickReport.jsp - /WEB-INF/jsp/reports/blankReport.jsp - /WEB-INF/jsp/reports/statisticsReport.jsp - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml deleted file mode 100644 index 93bd4a30b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/decorators.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/decorators.xml deleted file mode 100644 index 638f2c53a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/decorators.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - /repository/* - /components/* - - - - /* - - - - /*/dependencyTree - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/accessToNoRepos.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/accessToNoRepos.jsp deleted file mode 100644 index 5ed04736f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/accessToNoRepos.jsp +++ /dev/null @@ -1,46 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - You have access to no repositories - - - - - -
- -
- You have access to no repositories. - Ask your system administrator for access. -
- -
- -
-
-
- - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addLegacyArtifactPath.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addLegacyArtifactPath.jsp deleted file mode 100644 index 6c647d426..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addLegacyArtifactPath.jsp +++ /dev/null @@ -1,100 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Add Legacy Artifact Path - - - - - -

Admin: Add Legacy Artifact Path

- -
- -

- Enter the legacy path to map to a particular artifact reference, then adjust the fields as necessary. -

- - - - - - - - - - - - - - - - - -
- - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addProxyConnector.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addProxyConnector.jsp deleted file mode 100644 index 314f9bc1b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addProxyConnector.jsp +++ /dev/null @@ -1,45 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Add Proxy Connector - - - - - -

Admin: Add Proxy Connector

- -
- - - - - - <%@ include file="/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf" %> - - - -
- - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRemoteRepository.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRemoteRepository.jsp deleted file mode 100644 index d1455abf8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRemoteRepository.jsp +++ /dev/null @@ -1,48 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Add Remote Repository - - - - - -

Admin: Add Remote Repository

- -
- - - - - <%@ include file="/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf" %> - - - - - -
- - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRepository.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRepository.jsp deleted file mode 100644 index d31e092de..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRepository.jsp +++ /dev/null @@ -1,48 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Add Managed Repository - - - - - -

Admin: Add Managed Repository

- -
- - - - - <%@ include file="/WEB-INF/jsp/admin/include/repositoryForm.jspf" %> - - - - - -
- - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/appearance.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/appearance.jsp deleted file mode 100644 index d2b24e83a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/appearance.jsp +++ /dev/null @@ -1,68 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Configure Appearance - - - - -

Appearance

- -
- Edit -
-

Organization Details

- -

- The logo in the top right of the screen is controlled by the following settings. - Change your appearence -

- -

Organization Information

- - - - - - - - - - - - - - - - - -
Name${organisationName}
URL - ${organisationUrl} -
Logo URL - ${organisationLogo} -
  - -
- - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp deleted file mode 100644 index 270b90591..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp +++ /dev/null @@ -1,135 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Admin: Add Managed Repository - - - - - -

Admin: Add Managed Repository

- -
-

- WARNING: Repository location already exists. -

-
- -

- Are you sure you want to ${action == 'addRepository' ? 'add' : 'update'} the following managed repository? -

- -
- - - - - - - - - - - - - - - - - - - - <%--td>${repository.layout} - - - - - - - - - - - - - - - - - - - - - - - - - - -
ID:${repository.id}
Name:${repository.name}
Directory:${repository.location}
Index Directory:${repository.indexDir}
Type: - - - Maven 2.x Repository - - - Maven 1.x Repository - - -
Cron:${repository.refreshCronExpression}
Repository Purge By Days Older Than:${repository.daysOlder}
Repository Purge By Retention Count:${repository.retentionCount}
Releases Included: -
Snapshots Included: -
Scannable: -
Delete Released Snapshots: -
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - -
-
- - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp deleted file mode 100644 index 6359c4e12..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/database.jsp +++ /dev/null @@ -1,178 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork"%> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - -Administration - Database - - - - - -

Administration - Database

- -
- - - - - - - -
- -

Database - Unprocessed Artifacts Scanning

- - - - - - - -
- -
-
- - - - - -

Database - Unprocessed Artifacts Scanning

- - - - <%-- No Consumers. Eeek! --%> - There are no consumers for unprocessed artifacts. - - - <%-- Display the consumers. --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Enabled?IDDescription
- checked /> - - - enabled - - - ${consumer.id} - ${consumer.description}
- -
-
- -
-
- -

Database - Artifact Cleanup Scanning

- - - - <%-- No Consumers. Eeek! --%> - There are no consumers for artifact cleanup. - - - <%-- Display the consumers. --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Enabled?IDDescription
- checked /> - - - enabled - - - ${consumer.id} - ${consumer.description}
- -
-
- -
-
- - -
-
- - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteNetworkProxy.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteNetworkProxy.jsp deleted file mode 100644 index c4feaa87a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteNetworkProxy.jsp +++ /dev/null @@ -1,53 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Delete Network Proxy - - - - - -

Admin: Delete Network Proxy

- - - -
- -

Delete Network Proxy

- -
- WARNING: This operation can not be undone. -
- -

- Are you sure you want to delete network proxy ${proxyid} ? -

- - - - - -
- - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteProxyConnector.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteProxyConnector.jsp deleted file mode 100644 index de6937eca..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteProxyConnector.jsp +++ /dev/null @@ -1,54 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Delete Proxy Connector - - - - - -

Admin: Delete Proxy Connector

- - - -
- -

Delete Proxy Connector

- -
- WARNING: This operation can not be undone. -
- -

- Are you sure you want to delete proxy connector [ ${source} , ${target} ] ? -

- - - - - - -
- - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRemoteRepository.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRemoteRepository.jsp deleted file mode 100644 index 183da4d23..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRemoteRepository.jsp +++ /dev/null @@ -1,73 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Delete Remote Repository - - - - - -

Admin: Delete Remote Repository

- - - -
- -
-

- WARNING: This operation can not be undone. -

-
- -

- Are you sure you want to delete the following remote repository? -

- -
- - - - - - - - - - - - - -
ID:${repository.id}
Name:${repository.name}
URL:${repository.url}
-
- - - -
- - -
-
-
- - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepository.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepository.jsp deleted file mode 100644 index 7394e1690..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepository.jsp +++ /dev/null @@ -1,74 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Delete Managed Repository - - - - - -

Admin: Delete Managed Repository

- - - -
- -
-

- WARNING: This operation can not be undone. -

-
- -

- Are you sure you want to delete the following managed repository? -

- -
- - - - - - - - - - - - - -
ID:${repository.id}
Name:${repository.name}
Directory:${repository.location}
-
- - - -
- - - -
-
-
- - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepositoryGroup.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepositoryGroup.jsp deleted file mode 100644 index fa1892686..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepositoryGroup.jsp +++ /dev/null @@ -1,65 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Delete Repository Group - - - - - -

Admin: Delete Repository Group

- - - -
- -
-

- WARNING: This operation can not be undone. -

-
- -

- Are you sure you want to delete the following repository group? -

- -
- - - - - -
ID:${repositoryGroup.id}
-
- - - -
- - -
-
-
- - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/disableProxyConnector.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/disableProxyConnector.jsp deleted file mode 100644 index 0906be58a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/disableProxyConnector.jsp +++ /dev/null @@ -1,50 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Disable Proxy Connector - - - - - -

Admin: Disable Proxy Connector

- - - -
- -

Disable Proxy Connector

- -

- Are you sure you want to disable proxy connector [ ${source} , ${target} ] ? -

- - - - - - -
- - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editAppearance.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editAppearance.jsp deleted file mode 100644 index 5f5316a2a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editAppearance.jsp +++ /dev/null @@ -1,46 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - Configure Appearance - - - - -

Appearance

- -

Organization Details

- -

- Enter the details of your organization below. -

- - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp deleted file mode 100644 index bb09274e7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp +++ /dev/null @@ -1,73 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - - - - - - - - - - Admin: ${addedit} Network Proxy - - - - - -

Admin: ${addedit} Network Proxy

- -
- -

${addedit} network proxy: ${networkProxyName}

- - - - - - - - - - - - - - - - - <%@ include file="/WEB-INF/jsp/admin/include/networkProxyForm.jspf" %> - - - - - -
- - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp deleted file mode 100644 index e13584546..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp +++ /dev/null @@ -1,46 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Admin : Edit Proxy Connector - - - - - -

Admin : Edit Proxy Connector

- -
- - - - - - <%@ include file="/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf" %> - - - -
- - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRemoteRepository.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRemoteRepository.jsp deleted file mode 100644 index 3f6686c57..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRemoteRepository.jsp +++ /dev/null @@ -1,50 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Edit Remote Repository - - - - - -

Admin: Edit Remote Repository

- - - -
- - - - - <%@ include file="/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf" %> - - - - - -
- - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp deleted file mode 100644 index a2a899e35..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp +++ /dev/null @@ -1,51 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Edit Managed Repository - - - - - -

Admin: Edit Managed Repository

- - - -
- - - - - - <%@ include file="/WEB-INF/jsp/admin/include/repositoryForm.jspf" %> - - - - - -
- - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/enableProxyConnector.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/enableProxyConnector.jsp deleted file mode 100644 index 56750080f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/enableProxyConnector.jsp +++ /dev/null @@ -1,50 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Admin: Enable Proxy Connector - - - - - -

Admin: Enable Proxy Connector

- - - -
- -

Enable Proxy Connector

- -

- Are you sure you want to enable proxy connector [ ${source} , ${target} ] ? -

- - - - - - -
- - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/errorMessages.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/errorMessages.jsp deleted file mode 100644 index f4793128d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/errorMessages.jsp +++ /dev/null @@ -1,29 +0,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. - --%> - -

- - Errors: - -

  • - -
  • - - -

    \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/networkProxyForm.jspf b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/networkProxyForm.jspf deleted file mode 100644 index 935c4b176..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/networkProxyForm.jspf +++ /dev/null @@ -1,26 +0,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. - --%> -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf deleted file mode 100644 index 4a6b29101..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf +++ /dev/null @@ -1,259 +0,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. - --%> -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - -<%-- This hidden 'pattern' field is used by remove (white|black)list scripts --%> - - - - - - - - - - - - - - - - - - - -
    - ${policy.value.name}: - - - - - - -
    - - - - - - - - - - : - - - - - - - - - - - - No properties have been set. - - - - - - - - - - -
    - ${property.key} - - - - - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - No black list patterns have been set. - - - - - - - - - -
    - - "${pattern}" - - - -
    -
    -
    - - - - - - - - - - - - - - - - - - - No white list patterns have been set. - - - - - - - - - -
    - - "${pattern}" - - - -
    -
    -
    - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf deleted file mode 100644 index b59fa8f50..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf +++ /dev/null @@ -1,28 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf deleted file mode 100644 index 7cde90476..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf +++ /dev/null @@ -1,36 +0,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. - --%> -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/legacyArtifactPath.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/legacyArtifactPath.jsp deleted file mode 100644 index 6c64cabf5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/legacyArtifactPath.jsp +++ /dev/null @@ -1,113 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - - Administration - Legacy support - - - - - -

    Administration - Legacy Artifact Path Resolution

    - -
    - - - - -
    -
    - - - - " alt="" width="16" height="16"/> - Add - - -
    -

    Path Mappings

    - - - - <%-- No paths. --%> -

    There are no legacy artifact paths configured yet.

    -
    - - <%-- Display the paths. --%> - - - - - - - - - - - -
    - -
    - <%-- TODO: make some icons --%> - - - - - - " alt="" width="16" height="16"/> - Delete - - -
    - - - - - - - - - - -
    Path - ${legacyArtifactPath.path} -
    Artifact - ${legacyArtifactPath.artifact} -
    - -
    -
    - -
    -
    - - - -
    - -
    - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/networkProxies.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/networkProxies.jsp deleted file mode 100644 index a7aeea1c7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/networkProxies.jsp +++ /dev/null @@ -1,128 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork"%> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> -<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org"%> - - - -Administration - Network Proxies - - - - - -

    Administration - Network Proxies

    - -
    - - - -
    -
    - - - - " /> - Add Network Proxy -
    -

    Network Proxies

    - - - - <%-- No Local Repositories. --%> - There are no network proxies configured yet. - - - <%-- Display the repositories. --%> - - - - - - - - - - - -
    - -
    - - - - - - - - - " /> - Edit Network Proxy - - " /> - Delete Network Proxy -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Identifier${proxy.id}
    Protocol${proxy.protocol}
    Host${proxy.host}
    Port${proxy.port}
    Username${proxy.username}
    Password••••••••
    - -
    -
    - -
    -
    -
    - -
    - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp deleted file mode 100644 index 43a0b5da2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp +++ /dev/null @@ -1,249 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - - Administration - Proxy Connectors - - - - - -

    Administration - Proxy Connectors

    - - - - - - - - - -
    - - - - -
    - - - - - - "/> - Add - - - - - "/> - Add (Disabled. No remote repositories) - - -
    - -

    Repository Proxy Connectors

    - - - - No Repository Proxy Connectors Defined. - - - -
    - - - -
    -
    - "/> -

    ${repository.key}

    -

    ${repoMap[repository.key].name}

    -
    - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

    Proxy Connector

    - -
    - "/> -

    ${connector.targetRepoId}

    -

    ${repoMap[connector.targetRepoId].name}

    -

    ${repoMap[connector.targetRepoId].url}

    -
    - - Expand - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    <%-- connector --%> - -
    -
    <%-- proxyConfig --%> -
    -
    <%-- admin --%> -
    -
    - -
    - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp deleted file mode 100644 index 8f1e91178..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp +++ /dev/null @@ -1,347 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - - Administration - Repositories - - - - - -

    Administration - Repositories

    - -
    - - - - -
    -
    - - - - " alt="" width="16" height="16"/> - Add - - -
    -

    Managed Repositories

    - - - - <%-- No Managed Repositories. --%> - There are no managed repositories configured yet. - - -<%-- Display the repositories. --%> - - - - - - - - - - - -
    - -
    - <%-- TODO: make some icons --%> - - - - - - - - - " alt="" width="16" height="16"/> - Edit - - - " alt="" width="16" height="16"/> - Delete - - - - - - -
    - -
    - " alt="" width="32" height="32"/> -
    - -

    ${repository.name}

    - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- TODO: can probably just use layout appended to a key prefix in i18n to simplify this --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Identifier - ${repository.id} -
    Name - ${repository.name} -
    Directory${repository.location}
    Index Directory${repository.indexDir}
    WebDAV URL${baseUrl}/${repository.id}/
    Type - - - Maven 2.x Repository - - - Maven 1.x Repository - - -
    Groups - - ${group}, - -
    Releases Included
    Snapshots Included
    Delete Released Snapshots
    Repository Purge By Days Older Than${repository.daysOlder}
    Repository Purge By Retention Count${repository.retentionCount}
    Scanned
    Scanning Cron${repository.refreshCronExpression}
    - Actions - - - - - -
    - - - - - - -
    -
    Stats - - - - No Statistics Available. - - - - - - - - - - - - - - - - - -
    Last Scanned${stats.whenGathered}
    Duration${stats.duration} ms
    Total File Count${stats.totalFileCount} -
    New Files Found${stats.newFileCount} -
    -
    -
    -
    POM Snippet - -
    - -
    -
    - -
    -
    - -
    - - - - " alt="" width="16" height="16"/> - Add - - -
    -

    Remote Repositories

    - - - - <%-- No Remote Repositories. --%> - There are no remote repositories configured yet. - - - <%-- Display the repositories. --%> - - - - - - - - - - -
    - -
    - - - - - - " alt="" width="16" height="16"/> - Edit - - - - - - " alt="" width="16" height="16"/> - Delete - - -
    - -
    - " alt="" width="32" height="32"/> -
    - -

    ${repository.name}

    - - - - - - - - - - - - - - - - - <%-- TODO: can probably just use layout appended to a key prefix in i18n to simplify this --%> - - -
    Identifier - ${repository.id} -
    Name - ${repository.name} -
    URL${repository.url}
    Type - - - Maven 2.x Repository - - - Maven 1.x Repository - - -
    - -
    -
    -
    -
    - -
    - -
    - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryGroups.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryGroups.jsp deleted file mode 100644 index 15981a30e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryGroups.jsp +++ /dev/null @@ -1,161 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - - Administration - Repository Groups - - - - - -

    Administration - Repository Groups

    - - - - - - - -
    - - - - -
    - - - Identifier*: - - - - -
    - -

    Repository Groups

    - - - - No Repository Groups Defined. - - - -
    - - - -
    -
    - -
    - - - - - - -
    - - "/> -

    ${repositoryGroup.key}

    -

    ${baseUrl}/${repositoryGroup.key}/

    -
    - - -
    - - - - - -
    -
    - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

    Repository

    - -
    - "/> -

    ${repository}

    -

    ${managedRepositories[repository].name}

    -

    ${baseUrl}/${managedRepositories[repository].id}

    -
    -
    <%-- repository --%> -
    - -
    <%-- repository group --%> -
    -
    <%-- admin --%> - -
    -
    -
    <%-- content area --%> - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryScanning.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryScanning.jsp deleted file mode 100644 index 4450bee1e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryScanning.jsp +++ /dev/null @@ -1,259 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork"%> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org"%> - - - -Administration - Repository Scanning - - - - - -

    Administration - Repository Scanning

    - -
    - - - - - - - - - - - -
    -

    Repository Scanning - File Types

    - - - - <%-- No File Types. Eeek! --%> - There are no file types configured. - - - <%-- Display the filetypes. --%> - - - - - - - - - - -
    - -
    <%-- Does this even make sense for file types? --%>
    - -

    ${filetypeId}

    - - - - - - - - - - - - - - - - - - - - - - - -
    - ${escapedPattern} - - - - -
    - - - - - -
    - -
    -
    - -
    -
    - -

    Repository Scanning - Consumers of Known Content

    - - - - <%-- No Good Consumers. Eeek! --%> - There are no consumers of known content available. - - - <%-- Display the consumers. --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Enabled?IDDescription
    - checked /> - - - enabled - - - ${consumer.id} - ${consumer.description}
    - -
    -
    - -
    -
    - - -

    Repository Scanning - Consumers of Invalid Content

    - - - - <%-- No Consumers. Eeek! --%> - There are no consumers of invalid content available. - - - <%-- Display the consumers. --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Enabled?IDDescription
    - checked /> - - - enabled - - - ${consumer.id} - ${consumer.description}
    - -
    -
    - -
    -
    -
    - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/advancedSearch.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/advancedSearch.jsp deleted file mode 100644 index 3a87d1f5e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/advancedSearch.jsp +++ /dev/null @@ -1,67 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - Advanced Search - - - - -

    ${infoMessage}

    -
    - - - -

    Advanced Search

    - - -
    - - - - - - -
    - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/alert.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/alert.jsp deleted file mode 100644 index 897c82a4c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/alert.jsp +++ /dev/null @@ -1,45 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Security Alert Page - - - - - -
    - -
    - -
    -
    -
    - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/artifact/dependencyTree.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/artifact/dependencyTree.jsp deleted file mode 100644 index 1af5188d6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/artifact/dependencyTree.jsp +++ /dev/null @@ -1,28 +0,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. - --%> - -<%@ taglib prefix="page" uri="http://www.opensymphony.com/sitemesh/page" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp deleted file mode 100644 index a9efdca3b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp +++ /dev/null @@ -1,106 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> -<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> - - - - Browse Repository - - - - - -

    Browse Repository

    - -
    - -

    - - - ${artifactId} - -

    -
    - - -
    -

    Groups

    - -
    -
    - - -
    -

    Artifacts

    - -
    -
    - - -
    -

    Versions

    - -
    -
    - -
    - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browseArtifact.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browseArtifact.jsp deleted file mode 100644 index 65fee203f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browseArtifact.jsp +++ /dev/null @@ -1,59 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - - Browse Repository - - - - - -

    Browse Repository

    - -
    -
    -

    - - ${artifactId} -

    - -

    Versions

    - -
    -
    - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browseGroup.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browseGroup.jsp deleted file mode 100644 index ac8c69c40..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browseGroup.jsp +++ /dev/null @@ -1,91 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - - Browse Repository - - - - - -

    Browse Repository

    - -
    -

    - -

    - -
    -

    Groups

    - -
    - - -
    -

    Versions

    - -
    -
    - - -
    -

    Artifacts

    - -
    -
    - - -
    - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/components/companyLogo.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/components/companyLogo.jsp deleted file mode 100644 index ce3bbe85f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/components/companyLogo.jsp +++ /dev/null @@ -1,34 +0,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. - --%> - -<%@ taglib uri="/webwork" prefix="ww" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/artifactDecorator.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/artifactDecorator.jsp deleted file mode 100644 index 256e46f6e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/artifactDecorator.jsp +++ /dev/null @@ -1,149 +0,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. - --%> - -<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %> -<%@ taglib prefix="page" uri="http://www.opensymphony.com/sitemesh/page" %> -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - - - - Browse Repository - - - - - - - - - - Maven Plugin - - - - POM - - <%-- These types aren't usually set in the POM yet, so we fudge them for the well known ones --%> - - - Maven Archetype - - - - Maven Skin - - <%-- Must be last so that the above get picked up if possible --%> - - - JAR - - - - - - -${packageName} - -

    - - - ${model.artifactId} - - - ${model.name} - - -

    - -
    -
    - - - - - - - - - Info - - - - - - - - Dependencies - - - - - - - - Dependency Tree - - - - - - - - Used By - - - - - - - - Mailing Lists - <%-- POSTPONED to 1.0-alpha-2 - - - - - - - - - Reports - - --%> - - -
    - -
    - -
    - - -
    - - - - -
    diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp deleted file mode 100644 index bb5174510..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp +++ /dev/null @@ -1,205 +0,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. - --%> - -<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %> -<%@ taglib uri="/webwork" prefix="ww" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> -<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> -<%@ page import="org.apache.maven.archiva.web.startup.ArchivaVersion" %> -<%@ page import="java.util.Calendar" %> - - - - Apache Archiva \ - <decorator:title default="Apache Archiva"/> - - - " type="text/css" media="all"/> - " type="text/css" media="all"/> - " type="text/css" media="all"/> - " type="text/css" media="all"/> - " type="text/css" media="print"/> - "/> - - - - - -" class="composite"> - - - - -
    - - -
    - -
    -
    - -
    -
    - -
    -
    -
    - -<% - int inceptionYear = 2005; - int currentYear = Calendar.getInstance().get( Calendar.YEAR ); - String copyrightRange = String.valueOf( inceptionYear ); - if ( inceptionYear != currentYear ) - { - copyrightRange = copyrightRange + "-" + String.valueOf( currentYear ); - } -%> - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/findArtifact.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/findArtifact.jsp deleted file mode 100644 index c325c2286..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/findArtifact.jsp +++ /dev/null @@ -1,106 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Find Artifact - - - - - -

    Find Artifact

    - -
    - -
    - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/generalError.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/generalError.jsp deleted file mode 100644 index 49a6c1abf..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/generalError.jsp +++ /dev/null @@ -1,36 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Error Occurred - - - - - -

    Error Occurred

    - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactDependencies.jspf b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactDependencies.jspf deleted file mode 100644 index cbafc9829..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactDependencies.jspf +++ /dev/null @@ -1,40 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> - -<%-- TODO: paginate [MRM-491] --%> - -

    - - -

    - -

    - -

    -
    - - No results - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf deleted file mode 100644 index 309b8420f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf +++ /dev/null @@ -1,243 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - -

    - - - - - - - - - ${model.artifactId} / - ${version} - - <%-- TODO: new versions? - (Newer version available: - 2.0.3) - --%> -

    - - -
    ${model.description}
    -
    - - - - - - - - - - - - - - - - - - - - - - - <%-- TODO: derivatives - - - - - --%> - - - - - - - <%-- TODO: deployment timestamp - - - - - --%> - <%-- TODO: origin - - - - - --%> -
    Repository${repositoryId}
    Group ID${model.groupId}
    Artifact ID${model.artifactId}
    Version${model.version}
    Packaging${model.packaging}
    Derivatives - Source - | - Javadoc -
    Parent - ${model.parentProject.groupId} ${model.parentProject.artifactId} ${model.parentProject.version} - - - - - - - - (View) -
    Deployment Date - 15 Jan 2006, 20:38:00 +1000 -
    Origin - Apache Repository -
    - - -

    POM Snippet

    - - -
    -    <plugin>
    -      <groupId>${model.groupId}</groupId>
    -      <artifactId>${model.artifactId}</artifactId>
    -      <version>${version}</version>
    -    </plugin>
    -
    -
    - -
    -    <dependency>
    -      <groupId>${model.groupId}</groupId>
    -      <artifactId>${model.artifactId}</artifactId>
    -      <version>${version}</version>
    -      <type>${model.packaging}</type>
    -    </dependency>
    -
    -
    -
    -
    - - - -

    Other Details

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    URL - ${model.url} -
    Organisation - - - ${model.organization.name} - - - ${model.organization.name} - - -
    License - - - ${license.name} - - - ${license.name} - - -
    Issue Tracker - - - ${model.issueManagement.system} - - - ${model.issueManagement.system} - - -
    Continuous Integration - - - ${model.ciManagement.system} - - - ${model.ciManagement.system} - - -
    -
    - - -

    SCM

    - - - - - - - - - - - - - - - - - - - -
    Connection - ${model.scm.connection} -
    Dev. Connection - ${model.scm.developerConnection} -
    Viewer - ${model.scm.url} -
    -
    - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf deleted file mode 100644 index e983a292d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf +++ /dev/null @@ -1,38 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> - - -

    - ${report.groupId} : ${report.artifactId} : ${report.version} : ${report.classifier} : ${report.type} -

    -
      - -
    • - ${result.reason} -
    • -
      -
    -
    - - No reports for this artifact. - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/dependencyTree.jspf b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/dependencyTree.jspf deleted file mode 100644 index 0d63005aa..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/dependencyTree.jspf +++ /dev/null @@ -1,31 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - - <%-- - - --%> - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/mailingLists.jspf b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/mailingLists.jspf deleted file mode 100644 index 949af7580..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/mailingLists.jspf +++ /dev/null @@ -1,84 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> - - -

    - ${mailingList.name} -

    - <%-- TODO: description -

    - Description blah blah blah -

    - --%> - -
    - - No mailing lists - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/projectDependees.jspf b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/projectDependees.jspf deleted file mode 100644 index 4287a26c9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/projectDependees.jspf +++ /dev/null @@ -1,39 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> - -<%-- TODO: paginate [MRM-491] --%> - -

    - - -

    - -

    - -

    -
    - - No results - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/uploadForm.jspf b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/uploadForm.jspf deleted file mode 100644 index e44d0b162..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/uploadForm.jspf +++ /dev/null @@ -1,36 +0,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. - --%> - -<%-- http://www.opensymphony.com/webwork/wikidocs/File%20Upload%20Interceptor.html --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - - - - - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/quickSearch.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/quickSearch.jsp deleted file mode 100644 index 45a435e75..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/quickSearch.jsp +++ /dev/null @@ -1,66 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - Quick Search - - - - -

    ${infoMessage}

    -
    - - - -

    Search

    - -
    - - -

    - Enter your search terms. A variety of data will be searched for your keywords.
    - To search for Java classes, packages or methods, use the keyword bytecode: - before the term. For example: - bytecode:MyClass, or: - bytecode:myMethod -

    -
    - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp deleted file mode 100644 index f6f16364f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp +++ /dev/null @@ -1,65 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - - Reports - - - - -

    Reports

    - -
    - - - - - Repository: ${repository.key} - - -

    - - - - - - - - ${report.artifactId} / - ${report.version} -

    - -
    ${report.message}
    -
    -
    - - - << - Page: ${page} - - >> - -
    - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/blankReport.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/blankReport.jsp deleted file mode 100644 index 14cf9a385..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/blankReport.jsp +++ /dev/null @@ -1,37 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Reports - - - - -

    Reports

    - -
    - - - -
    - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp deleted file mode 100644 index 62c12bb38..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp +++ /dev/null @@ -1,59 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> - - - - Reports - - - - -

    Reports

    - -
    - -

    Repository Statistics

    - - - - - - - - - - - -

    Repository Health

    - - - - - - - - -
    - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/statisticsReport.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/statisticsReport.jsp deleted file mode 100644 index dd70758c2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/statisticsReport.jsp +++ /dev/null @@ -1,213 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - - - - Reports - - - - -

    Statistics Report

    - - - - - - -
    - - <%-- TODO: fix problem in date format! --%> - - <%-- Pagination - start --%> -

    - - <%-- Set Prev & Next icons --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- Google-style pagination --%> - - - - - 0 - 10 - - - ${(limits.countOfPages -1) - 10} - ${limits.countOfPages - 1} - - - ${page - 5} - ${page + 5} - - - - - 0 - ${limits.countOfPages - 1} - - - - - - - - - - - - - - - - ${i + 1} - - - ${i + 1} - - - - - - - - - - - - - - -

    - <%-- Pagination - end --%> - - - - -

    Latest Statistics Comparison Report

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    RepositoryTotal File CountTotal SizeArtifact CountGroup CountProject CountPluginsArchetypesJarsWarsDeploymentsDownloads
    ${stats.repositoryId}${stats.fileCount}${stats.totalSize}${stats.artifactCount}${stats.groupCount}${stats.projectCount}${stats.pluginCount}${stats.archetypeCount}${stats.jarCount}${stats.warCount}${stats.deploymentCount}${stats.downloadCount}
    -
    - - -

    Statistics for Repository '${selectedRepo}'

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Date of ScanTotal File CountTotal SizeArtifact CountGroup CountProject CountPluginsArchetypesJarsWarsDeploymentsDownloads
    ${stats.dateOfScan}${stats.fileCount}${stats.totalSize}${stats.artifactCount}${stats.groupCount}${stats.projectCount}${stats.pluginCount}${stats.archetypeCount}${stats.jarCount}${stats.warCount}${stats.deploymentCount}${stats.downloadCount}
    - -
    -
    - -
    - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp deleted file mode 100644 index 9df361cd1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp +++ /dev/null @@ -1,316 +0,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. - --%> - -<%@ taglib uri="/webwork" prefix="ww" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> - - - - Search Results - - - - - - -

    Advanced Search

    -
    - -

    Search

    -
    - - - - - - -
    - - -

    Results

    - -
    - - - <%-- search was made from the indices --%> - - ${fn:length(results.hits) + (currentPage * results.limits.pageSize)} - - -

    Hits: ${(hitsNum - results.limits.pageSize) + 1} to ${hitsNum} of ${results.totalHits}

    -
    - -

    Hits: 1 to ${hitsNum} of ${results.totalHits}

    -
    -
    - - -

    No results

    -
    - - - <%-- Pagination start --%> -

    - <%-- Prev & Next icons --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- Google-style pagination --%> - - - - - 0 - 10 - - - ${(totalPages -1) - 10} - ${totalPages - 1} - - - ${currentPage - 5} - ${currentPage + 5} - - - - - 0 - ${totalPages - 1} - - - - - - - - - - - - - - - - ${i + 1} - - - ${i + 1} - - - - - - - - - - - - - - - - - - - - - - - ${i + 1} - - - ${i + 1} - - - - - - - - - - - - - - - -

    - <%-- Pagination end --%> - - - - -

    - -

    -

    - -

    -
    - -

    - - ${record.urlFilename} -

    -
    -
    -
    -
    -
    -
    - - <%-- search was made from the database (find artifact)--%> - -

    Hits: ${fn:length(databaseResults)}

    - - - -

    No results

    -
    - - - - -

    - -

    -

    - -

    -
    - -

    - - ${artifactModel.repositoryId} -

    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp deleted file mode 100644 index 8960e1cba..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp +++ /dev/null @@ -1,166 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> -<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> - - - - Browse Repository - - - - - - - - - - Maven Plugin - - - - POM - - <%-- These types aren't usually set in the POM yet, so we fudge them for the well known ones --%> - - - Maven Archetype - - - - Maven Skin - - <%-- Must be last so that the above get picked up if possible --%> - - - JAR - - - - - - -${packageName} - -

    - - - ${model.artifactId} - - - ${model.name} - - -

    - -
    -
    - - - - - - - - - Info - - - - - - - - Dependencies - - - - - - - - Dependency Tree - - - - - - - - Used By - - - - - - - - Mailing Lists - <%-- POSTPONED to 1.0-alpha-2 - - - - - - - - - Reports - - --%> - - -
    - -
    - -
    - - <%-- TODO: perhaps using ajax? --%> - <%-- TODO: panels? this is ugly as is --%> -
    - - - <%@ include file="/WEB-INF/jsp/include/artifactDependencies.jspf" %> - - - <%@ include file="/WEB-INF/jsp/include/dependencyTree.jspf" %> - - - <%@ include file="/WEB-INF/jsp/include/projectDependees.jspf" %> - - - <%@ include file="/WEB-INF/jsp/include/mailingLists.jspf" %> - - - <%@ include file="/WEB-INF/jsp/include/artifactReports.jspf" %> - - - <%@ include file="/WEB-INF/jsp/include/artifactInfo.jspf" %> - - -
    -
    - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/upload.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/upload.jsp deleted file mode 100644 index c22bccc97..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/upload.jsp +++ /dev/null @@ -1,46 +0,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. - --%> - -<%-- http://www.opensymphony.com/webwork/wikidocs/File%20Upload%20Interceptor.html --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Upload Artifact - - - - -

    Upload Artifact

    - -
    - - - - - - <%@ include file="/WEB-INF/jsp/include/uploadForm.jspf" %> - - -
    - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/currentWWUrl.tag b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/currentWWUrl.tag deleted file mode 100644 index d3e738b43..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/currentWWUrl.tag +++ /dev/null @@ -1,52 +0,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. - --%> - -<%@ taglib uri="/webwork" prefix="ww" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ attribute name="action" %> -<%@ attribute name="namespace" %> -<%@ attribute name="url" %> - - - - - - - - - - - - - - - - - ${text} - - - - - - - ${text} - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/displayUpdatePolicy.tag b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/displayUpdatePolicy.tag deleted file mode 100644 index 702d74d76..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/displayUpdatePolicy.tag +++ /dev/null @@ -1,41 +0,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. - --%> - -<%-- TODO: this could perhaps just be a i18n call --%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ attribute name="policy" required="true" %> -<%@ attribute name="interval" %> - - - - Disabled - - - Updated every request - - - Updated hourly - - - Updated daily - - - Updated every ${interval} minutes - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag deleted file mode 100644 index b2289e52e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag +++ /dev/null @@ -1,80 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> - -<%@ attribute name="groupId" required="true" %> -<%@ attribute name="artifactId" %> -<%@ attribute name="version" %> -<%@ attribute name="classifier" %> -<%@ attribute name="scope" %> -<%@ attribute name="versions" type="java.util.List" %> -<%@ attribute name="repositoryId" %> - - - ${repositoryId} - : - - - - - - - - - - ${artifactId} - - | Version(s): - - - - - - - - - - - - ${version} - - - - - - - - - - - ${v} - , - - - - - | Scope: ${scope} - - - | Classifier: ${classifier} - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactTitle.tag b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactTitle.tag deleted file mode 100644 index f11c0ee02..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactTitle.tag +++ /dev/null @@ -1,46 +0,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. - --%> - -<%@ taglib prefix="ww" uri="/webwork" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ attribute name="groupId" required="true" %> -<%@ attribute name="artifactId" %> -<%@ attribute name="version" %> - - - - - - - - - - - - - - - - - - - - <%-- TODO: showing the name and description would be nice, but that would require loading the POMs --%> - ${artifactId} - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index e9127bda2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - Apache Archiva - - - webwork-cleanup - com.opensymphony.webwork.dispatcher.ActionContextCleanUp - - - - sitemesh - com.opensymphony.module.sitemesh.filter.PageFilter - - - - webwork - com.opensymphony.webwork.dispatcher.FilterDispatcher - - - - - webwork-cleanup - /* - - - - sitemesh - /* - - - - webwork - /* - - - - org.springframework.web.context.ContextLoaderListener - - - - org.apache.maven.archiva.web.startup.ArchivaStartup - - - - contextClass - org.codehaus.plexus.spring.PlexusWebApplicationContext - - - - contextConfigLocation - - classpath*:META-INF/plexus/components.xml - classpath*:META-INF/spring-context.xml - /WEB-INF/classes/META-INF/plexus/application.xml - /WEB-INF/classes/META-INF/plexus/components.xml - /WEB-INF/applicationContext.xml - - - - - RepositoryServlet - org.apache.maven.archiva.webdav.RepositoryServlet - - 1 - - - - RssFeedServlet - org.apache.maven.archiva.web.rss.RssFeedServlet - - - - RssFeedServlet - /feeds/* - - - - RepositoryServlet - /repository/* - - - - jdbc/users - javax.sql.DataSource - Container - Shareable - - - jdbc/archiva - javax.sql.DataSource - Container - Shareable - - - mail/Session - javax.mail.Session - Container - Shareable - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-base.css b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-base.css deleted file mode 100644 index ca951f8d0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-base.css +++ /dev/null @@ -1,201 +0,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. - */ - -body { - margin: 0px; - padding: 0px; -} - -img { - border: none; -} - -table { - padding: 0px; - width: 100%; - margin-left: -2px; - margin-right: -2px; -} - -acronym { - cursor: help; - border-bottom: 1px dotted #feb; -} - -table.bodyTable th, table.bodyTable td { - padding: 2px 4px 2px 4px; - vertical-align: top; -} - -div.clear { - clear: both; - visibility: hidden; -} - -div.clear hr { - display: none; -} - -#bannerLeft, #bannerRight { - font-size: xx-large; - font-weight: bold; -} - -#bannerLeft img, #bannerRight img { - margin: 0px; -} - -.xleft, #bannerLeft img { - float: left; -} - -.xright, #bannerRight img { - float: right; -} - -#banner { - padding: 0px; -} - -#banner img { - border: none; -} - -#breadcrumbs { - padding: 3px 10px 3px 10px; -} - -#leftColumn { - width: 170px; - float: left; - overflow: auto; -} - -#bodyColumn { - margin-right: 1.5em; - margin-left: 197px; -} - -#legend { - padding: 8px 0 8px 0; -} - -#navcolumn { - padding: 8px 4px 0 8px; -} - -#navcolumn h5 { - margin: 0; - padding: 0; - font-size: small; -} - -#navcolumn ul { - margin: 0; - padding: 0; - font-size: small; -} - -#navcolumn li { - list-style-type: none; - background-image: none; - background-repeat: no-repeat; - background-position: 0 0.4em; - padding-left: 16px; - list-style-position: outside; - line-height: 1.2em; - font-size: smaller; -} - -#navcolumn li.expanded { - background-image: url( ../images/expanded.gif ); -} - -#navcolumn li.collapsed { - background-image: url( ../images/collapsed.gif ); -} - -#poweredBy { - text-align: center; -} - -#navcolumn img { - margin-top: 10px; - margin-bottom: 3px; -} - -#poweredBy img { - display: block; - margin: 20px 0 20px 17px; - border: 1px solid black; - width: 90px; - height: 30px; -} - -#search img { - margin: 0px; - display: block; -} - -#search #q, #search #btnG { - border: 1px solid #999; - margin-bottom: 10px; -} - -#search form { - margin: 0px; -} - -#lastPublished { - font-size: x-small; -} - -.navSection { - margin-bottom: 2px; - padding: 8px; -} - -.navSectionHead { - font-weight: bold; - font-size: x-small; -} - -.section { - padding: 4px; -} - -#footer { - padding: 3px 10px 3px 10px; - font-size: x-small; -} - -#breadcrumbs { - font-size: x-small; - margin: 0pt; -} - -.source { - padding: 12px; - margin: 1em 7px 1em 7px; -} - -.source pre { - margin: 0px; - padding: 0px; -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-theme.css b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-theme.css deleted file mode 100644 index 46856bafd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-theme.css +++ /dev/null @@ -1,331 +0,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. - */ - -body { - padding: 0 0 10px 0; -} - -body, td, th, select, input, li { - font-family: Verdana, Helvetica, Arial, sans-serif; - font-size: 11pt; -} - -select, input { - font-size: 0.9em; - border: 1px solid #AAAAAA; -} - -select { - padding-left: 3px; - height: auto; - width: auto; -} - -input { - padding: 2px; -} - -label .required { - color: red; - font-weight: bold; -} - -th { - text-align: right; - padding-right: 1em; - font-size: x-small; - vertical-align: top; -} - -.infoTable th { - width: 15em; -} - -#contentBox h1 { - background-image: url( ../images/arrow.gif ); - background-repeat: no-repeat; - background-position: left bottom; - border-bottom: 1px solid #DFDEDE; - padding: 0 0 1px 23px; - margin-bottom: 0.5em; - color: #333; - voice-family: inherit; - font-size: medium !important; -} - -#contentBox h2 { - border-bottom: 1px solid #DFDEDE; - padding: 0 0 1px 0; - margin-bottom: 0.5em; - color: #333; - voice-family: inherit; - font-size: small !important; -} - -#contentBox h3 { - border-bottom: 1px solid #DFDEDE; - padding: 0 0 1px 0; - margin-bottom: 0.5em; - color: #333; - voice-family: inherit; - font-size: small !important; - margin-left: 2em; -} - -table { - width: auto; -} - -code { - font-family: Courier, monospace; - font-size: 13px; -} - -#legend li.externalLink { - background: url( ../images/external.png ) left top no-repeat; - padding-left: 18px; -} - -a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover { - background: url( ../images/external.png ) right center no-repeat; - padding-right: 18px; -} - -#legend li.newWindow { - background: url( ../images/newwindow.png ) left top no-repeat; - padding-left: 18px; -} - -a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover { - background: url( ../images/newwindow.png ) right center no-repeat; - padding-right: 18px; -} - -p { - line-height: 1.3em; - font-size: small; -} - -#breadcrumbs { - border-top: 1px solid #fff; - border-bottom: 1px solid #999; - background-color: #F3B455; - padding: 2px 8px; -} - -#navcolumn h5 { - color: gray; - font-weight: bold; - font-size: 11px; - padding: 10px 0 1px 19px; -} - -.source { - border: 1px solid #999; -} - -dl { - padding: 4px 4px 4px 6px; - border: 1px solid #aaa; - background-color: #ffc; -} - -dt { - color: #900; -} - -#organizationLogo img, #projectLogo img, #projectLogo span { - margin: 8px; -} - -#banner { - border-bottom: 1px solid #fff; - padding: 8px; -} - -#breadcrumbs a:link { - text-decoration: none; -} - -#breadcrumbs a:visited { - text-decoration: none; - color: #333 -} - -#breadcrumbs a:hover { - text-decoration: none; - color: white -} - -.errormark, .warningmark, .donemark, .infomark { - background: url( ../images/icon_error_sml.gif ) no-repeat; -} - -.warningmark { - background-image: url( ../images/icon_warning_sml.gif ); -} - -.donemark { - background-image: url( ../images/icon_success_sml.gif ); -} - -.infomark { - background-image: url( ../images/icon_info_sml.gif ); -} - -.booleanIcon { - padding-left: 20px; - height: 20px; -} - -pre.pom { - font-size: 0.9em; - border: 1px solid #ddddff; - background-color: #f8f8ff; - padding: 5px; -} - -pre.pom code { - font-size: 0.9em; -} - -#leftColumn { - padding: 4px 4px 4px 4px; - overflow: hidden; -} - -#navcolumn { - padding: 6px 0 0 2px; -} - -#navcolumn li { - font-size: 9px; - text-indent: 19px; - line-height: 24px; - height: 25px; - width: 161px; - background-image: url( ../images/super.gif ); - background-position: 0 0; - background-repeat: no-repeat; - display: block; - padding-left: 0; -} - -#navcolumn li li { - padding-left: 16px; - background: none; - display: block; -} - -#navcolumn li li a:hover { - color: black !important; - background: none; - display: block; -} - -#navcolumn li li a:active { - color: red !important; - background: none; - display: block; -} - -#navcolumn li.collapsed { - background-image: url( ../images/super.gif ); -} - -#navcolumn li.expanded { - background-image: url( ../images/super.gif ); - height: inherit; -} - -#navcolumn li a:link { - color: #666; - display: block; -} - -#navcolumn li a:hover { - color: #fff !important; - background: url( ../images/super_hl.gif ) 0 -25px no-repeat; - display: block; -} - -#navcolumn li a:active { - color: #fff !important; - background: url( ../images/super_hl.gif ) 0 -50px no-repeat; - display: block; -} - -#navcolumn li a:visited { - color: #666; - display: block; -} - -#navcolumn li ul li { - color: #333 !important; - text-indent: 30px !important; - line-height: 20px !important; - height: 20px !important; - background-image: url( ../images/supersub.gif ) !important; - font-size: 9px; - width: 161px; - background-repeat: no-repeat; - display: block; - padding-left: 0; -} - -#navcolumn li ul li a:hover { - color: #fff !important; - background: url( ../images/super_hl_sub.gif ) 0 -20px no-repeat; - background-position: right; - width: 161px; - display: block; -} - -#footer { - background: url( ../images/footerborder.gif ) 0 5px repeat-x; - padding: 14px 4px 12px 4px; - margin-top: 2em; -} - -a:link, a:visited { - color: #333; -} - -#navcolumn a { - text-decoration: none; -} - -a:active, a:hover { - color: #f30; -} - -blockquote { - border-left: 1px solid #DFDEDE; - padding-left: 1em; -} - -.missing { - background-color: red; - color: white; - font-weight: bold; - padding: 4px; - margin-left: 20px; - margin-right: 20px; - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/print.css b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/print.css deleted file mode 100644 index 7f9db33dc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/print.css +++ /dev/null @@ -1,27 +0,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. - */ - -#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn { - display: none !important; -} - -#bodyColumn, body.docs div.docs { - margin: 0 !important; - border: none !important -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css deleted file mode 100644 index 114580c0f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css +++ /dev/null @@ -1,419 +0,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. - */ -.sidebar3 { - width: 10em; - float: right; - text-align: center; -} - -#sidebarb { - font-size: small; - text-align: center; - padding: 10px 10px 10px 10px; - border: 1px #DFDEDE solid; - width: 10em; -} - -#sidebar { - float: right; - font-size: small; - margin: 10px; - padding: 10px; - border: 1px #DFDEDE solid; - width: 10em; -} - -.download { - float: right; - font-size: small; - font-weight: bold; - margin: 15px auto 0px auto; - height: auto; - width: 150px; - min-width: 120px; - display: block; -} - -.download .hd .c, -.download .ft .c { - font-size: 1px; /* ensure minimum height */ - height: 10px; -} - -.download .ft .c { - height: 10px; -} - -.download .hd { - background: transparent url(../images/download.tl.gif) no-repeat 0px 0px; -} - -.download .hd .c { - background: transparent url(../images/download.tr.gif) no-repeat right 0px; -} - -.download .bd { - background: transparent url(../images/download.ml.gif) repeat-y 0px 0px; -} - -.download .bd .c { - background: transparent url(../images/download.mr.gif) repeat-y right 0px; -} - -.download .bd .c .s { - margin: 0px 8px 0px 4px; - background: #000 url(../images/download.ms.jpg) repeat-x 0px 0px; - padding: 1em; -} - -.download .ft { - background: transparent url(../images/download.bl.gif) no-repeat 0px 0px; -} - -.download .ft .c { - background: transparent url(../images/download.br.gif) no-repeat right 0px; -} - -.download .bd h2 { - margin: 0px; - text-align: center; - border-bottom-width: 0px !important; -} - -.download .bd p { - margin: 0px; - border: 0px; - text-align: left; - padding-left: 0px; -} - -.download a { - text-decoration: none; -} - -.download p.body { - font-weight: bold; -} - -.download table { - margin-left: 2px; - width: 140px; -} - -.download .icon { - width: 16px; -} - -.download .type { - font-size: 0.9em; - text-align: center; -} - -.download .size { - font-weight: normal; - font-size: 0.8em; - text-align: right; -} - -#contentArea { - /* margin-right: 15em; */ - padding: 1em; -} - -#tabs b { - border: 1px #DFDEDE solid; - padding-left: 1em; - padding-right: 1em; -} - -#tabs a { - border: 1px #DFDEDE solid; - padding-left: 1em; - padding-right: 1em; - text-decoration: none; -} - -#tabArea { - border-top: 1px solid #DFDEDE; - padding: 1em; -} - -#searchTypes { - text-align: right; - font-size: xx-small; -} - -.statusFailed { - color: red; - font-weight: bold; -} - -/* WebWork validation failures */ -.errorMessage { - color: red; - font-weight: bold; -} - -.actionMessage { - font-size: 1.0em; - font-weight: bold; - color: blue; -} - -.errorBullet { - list-style-image: url( "../images/icon_error_sml.gif" ); -} - -.warningBullet { - list-style-image: url( "../images/icon_warning_sml.gif" ); -} - -.infoBullet { - list-style-image: url( "../images/icon_info_sml.gif" ); -} - -.artifact-link { - font-size: x-small; - padding-left: 5em; -} - -.artifact-title { - -} - -ul.dependencyTree { - margin-left: 50px; -} - -ul.dependencyTree span.artifact-link { - padding-left: 0px; -} - -.eXtremeTable tr.filter { - padding: 1px; -} - -.eXtremeTable .tableRegion,.eXtremeTable .statusBar { - width: 100%; -} - -.eXtremeTable .tableRegion .tableHeader { - background-color: #F3B455; -} - -.eXtremeTable .tableRegion .tableHeaderSort { - background-color: #FFBF5F; -} - -.eXtremeTable .compactToolbar td { - white-space: nowrap; -} - -.tools { - border-color: gray !important; -} - -.tools .toolHeading { - padding: 0px 3px 0px 3px; - margin: 0px !important; - font-size: 11px !important; - background-color: #F3B455 !important; -} - -div.repository h3 { - border-bottom: 0px !important; - padding-left: 15px !important; -} - -div.repository { - border-bottom: 1px solid #DFDEDE; -} - -div.proxyConfig, -div.repoGroup { - border: 1px dashed #DFDEDE; - margin-bottom: 15px; - padding: 5px; -} - -div.proxyConfig div.managedRepo, -div.proxyConfig div.remoteRepo, -div.repoGroup div.managedRepo { - border: 1px dotted gray; - padding: 5px; - background-color: white; -} - -div.proxyConfig div.remoteRepo { - margin: 5px; -} - -div.proxyConfig div.managedRepo img, -div.proxyConfig div.remoteRepo img, -div.repoGroup div.managedRepo img { - float: left; - border: 0px; -} - -div.proxyConfig div.managedRepo p, -div.proxyConfig div.remoteRepo p { - margin: 0px; - margin-left: 40px; - padding: 0px; -} - -div.repoGroup div.managedRepo p { - margin: 8px; - margin-left: 40px; - padding: 0px; -} - -div.proxyConfig div.managedRepo p.id, -div.proxyConfig div.remoteRepo p.id, -div.repoGroup div.managedRepo p.id { - font-family: monospace; -} - -div.proxyConfig div.connector, -div.repoGroup div.connector { - border: 1px solid #aaaaff; - margin-top: 10px; - margin-left: 40px !important; -} - -div.proxyConfig a.expand { - font-size: 7pt; - color: gray; -} - -div.proxyConfig div.controls, -div.repoGroup div.controls { - float: right; -} - -div.proxyConfig div.connector h4, -div.repoGroup div.connector h4 { - padding: 3px; - font-size: 8pt; - margin: 0px; -} - -div.proxyConfig div.connector table.settings { - border: 0px; - background-color: transparent; - font-size: 8pt; - margin-left: 10px; -} - -div.proxyConfig div.connector table.settings th, -div.proxyConfig div.connector table.settings td { - font-size: 8pt; -} - -div.proxyConfig div.connector table.settings table.policies { - border: 1px dotted gray; -} - -div.proxyConfig div.connector table p { - margin: 0px; - padding: 0px; -} - -div.repoGroup div.repos { - text-align: right; - padding: 4px 0px 0px 0px; -} - -div.admin div.dark, -div.admin div.lite { - border: 1px solid #aaaaaa; - font-size: 11pt; - margin-left: 15px; - margin-right: 15px; - margin-bottom: 5px; - padding: 5px; -} - -div.admin div.lite { - background-color: white; -} - -div.admin div.dark { - background-color: #eeeeee; -} - -div.admin div.controls { - float: right; - font-size: 8pt !important; -} - -div.admin div.filetype table { - margin-left: 25px; - border: 1px solid gray; -} - -div.filetype table td.controls { - width: 5%; -} - -div.filetype table td.odd, -div.admin table.consumers td.odd { - background-color: #dddddd; -} - -div.filetype table td.even, -div.admin table.consumers td.even { - background-color: white; -} - -div.admin table.consumers { - margin-left: 15px; - border: 1px solid gray; -} - -div.admin table.consumers th { - font-size: 1.0em; - background-color: #cccccc; - text-align: left; -} - -div.admin table.consumers td strong { - font-size: 0.8em; -} - -div.warningbox { - margin: 20px 40px 20px 40px; - border: 1px solid #CC0000; - background-color: #FFCCCC; - color: #000000; - font-size: 15pt; - padding: 20px; -} - -div.infobox { - margin: 20px 40px 20px 40px; - border: 1px solid #0000CC; - background-color: #EEEEFF; - font-size: 9pt; - padding: 20px; -} - -div.buttons { - text-align: center; -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/favicon.ico b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/favicon.ico deleted file mode 100644 index 06714d34afa666e558fb7acad09cfc02891cf5a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3638 zcmeHJdsvOx9)6c1skFhAk&zK1A|h~4`V8xjSHs!a2~90J_-vIU>`Mif z3o9W!Uk8m=54}!{VUbc))V9KYu>{91HbARygR)VF#PoU$St`M`2T!r)a1}NrE7AN+ zhlfwp5Q{|!->X36zDh(NsKV-`DjdF0kJ=_JLcgd$>eWVA%`b(HV)jg<$DnWt9G6H? z-JnHfofhRatthK*g{VS<^)zl%i=O7xLQa0Mq7{p2><=ims}5Ds+|}4{Liy5p{O%)y4A=cV~x2y86b|7j));Ca@b#+XL=InTx#lktkg@$9JR$4E_0g`b}vG7Fj! zL;U98;DETeIAF#@$Ye6)A&O zbfjEqRF`%4<^a z?h1TD`lZwB@l?%efd(13Rq&6KBWk|_n@=lwZkG|a+bk532B|SHObpj3DX&%I*T^t& zoeZZgH)6rga$b*?Bq$Jluo7#D=S?Z@;z|vyXwH~p)v&OzfTg7+G_885)oRioJ-Yck zg1LVwO3O9q6D;EOY3wQ)&RuK5nX65tVfC0pd*F0#1!^h~GIL93&S==}&aq){e5 zB~XwKnfjK(Vs0rc>6|2_rvlouAV37``63j_)UXW{pE*>c%^0;( ziVFoQjEKA}`7xd6x+7JHIZA7yJFce~ z>iD(kDc)^pB|TPi`=m4LM(g9W)YP{GJt!vT{w2INa&HQ0CEY91Rtd$)no4Vm755gf zp|#pl%pcKRwxj>Rj$+e?)?P^WZUCLZz{TQUb@&3E*?GEe?sOKD=&q&Ed7P%qy%Bur zt>GV6j=6N7xOW1l=bRpYPX9{;oz+s({K$O@ETi~F?WY*i|FDwcyoT=Gf1P+X`p2Ia zdFsWM|2`h~Zm`!y#@>0)wnv9Se(S&36)r>Bn29iX?PWY<5Mx0m7;^vz5&&@fog`OoBko}0TwuyfBb9>28w@X3=$a$`-Em-+sTc_a*%uYa&> zA(>x{Wh|ucuFwyb%`U&eHE*Ba@8jzmX}bebSCg;zf^XjDFfO&@Z{1$RseDHA()*10 zZ@gZ*hDV>{e;jyp3poa-#N4ULr1Igo3!TnyIOAJ$(FS$-TRK30j%h87C_%<4R!(Tk-hNpX1vx zu4rFB)w0iR=t{l*{-tEzEAbA_4%OfKcW`#7(jWCt)4$?}SZeV9$lSW<-O=_7wo!dN diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archetype.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archetype.gif deleted file mode 100755 index fc84feff59773f806174bcebf6efd7a232f155cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2149 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 AL;wH) diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva-world.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva-world.png deleted file mode 100644 index 8afb6cc93071dfdc63ed93acdbd6a26b71d1f72c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1936 zcmV;B2XFX^P)&;}`v6h#$?WOE$7uHmk6^5(P@xC95nfP)eblmZ5ao z4()XAmv`QC{4g-3ODQdh&&TsVm*4rHbDsAcp|#dLqopz#EX%^}bRwmErX05AI$BB* z2u?B^jS@}7iN+ITvL;GfXf1Hs?YLb|>bzds8XIsq9Lvfpo~D3hDaL{m4BrVLtrS%< zOo>C{44$KS{5|ZhG7=^2q&#bhW+kJdm08n4V_h8^+uQL~Rz5pGU~-b1em{m8q3O<_ z@P*z*Xti|0#(m7Sf1BZmWaz$0M{5f^HgCds!V*0Z;C3Lu$emHv=^Iqf_9N`Y2s43j zd$I2If!hbJDhLmQl|$C`ptDIx+=H$kAbefS#7)k8d zy{sxL8U{_L+FW%1z$bqM-9D+b@Ok?2&LhvHFn(ZiA zg1PRS3kn&A!JeL8t`6O1A{2TYV0>zdWPFz9Xdl+p75LOwu&vpLp1FyTHq_W@baWKk zmhWTh{06e^(7YPa06I3F-Q_&7gmjHbxNX8B}T# zBN4*f^h1o*d(i*>2>{m6TNwNIA)FQHkB(yh%&*X98V%sv3f`_o3qNX~?%u*5Ui%Bd zP>5QuH?P24G)5|wpmypMqM`-S{v~p?yYfX>Z9qFq5uOIb^RHvA`x=&aD@NxL)bv%1 zs`aqp2-fPos9YKuzq=%W+vTF(SHr-Fe|`yOBN040g00w#aQjdl-$IwS6@o-*Gh*wH z(M<>Ql6$++wcEk78WkHu&E3iSIV&;b(v1qBt+9!L;gNZOnP`MnGKQ_94J$PR7z-m> zUx4b(3&)B|Q9VCLm32V%#{8Hv(OM#t!6gBj>+88Q5kzbKP=P3=4uPdIh*j&+V&OkZ z)jx;!teICtE3_HMcK2Uc4g1j2fiZgxF*|_euHgy&tze$wVl2xdkxJ)1mC|T4jWV-X zb$b>K($4vxiWU+b59YfdCdNcR47>{QNn~OIQRGm(-$1C$qB(L_?oj|6DrYUL_(RjX zevOcJWKjuX_wUf&O<3h^XiJITuw(`fm*MZ z@fb)6GWY@F5!z*|fka6MI+sNZpFq9!B8;6x1kR$JRcO1r;5&A2oH}p5TiO8XtG%2_ zD;&wV& zRa%BW;X?Sjk;%ywD;V8vGJ)%rf0)!+t@h|0I;=VJ(q(f z=~M#Cw|&I`n6W2+dt^yZo;^#?#?A*v@ezPE_4W9wd|VuvUU_jqm$xBmw1A?w_J-dx_i+@Y_Eh=kWf$?A_k8H~_$n5kIHS_p^V;F4`I!R|fG3ld%BG(@11y zoZr9p2J2c{_|BKVh!FF~e9>F+wcEp->^slFUAtJ@wC0naS7ei+5Py9A7_AKreDA9- zEhzp(0D!BvZu5_GeKgnAv$uB#CGPoiEXZHsmNH8zPQQPFQ|HdHtGkOMhYv0KHdyju zG8c{U_L;McO-!(*V*?$nZB##a>BvkNZ7)X4q6IODWRm|5T<83yOPHp~%ZCrq+1|ET z`lkatwClsee0XhuA-|srw?S*Ai{kKQ%IenPa=Hm8vP{P_1n1HWPMg$JRk5?Xi+#O4 z3$EbL3{aR|D#ewXL)@L5A`*=<7o8)K&Qe-ZLREPg-pWcguU*UP8sBnLt_!dCaw(n>;SzbV4*?R>-lI;06?a)6cbaD784^@a5!r-Ez%jugo1{IG7A#z zZ}8=q(poYk%IQZas#A}xUEN#v>wY<}I_9lcQ}-U7S7*Ss&@&qjJ0=huQlDY#nmRDC zDJU*Sbq)S?+5o)rU79{LBr1yR?JV;Y5)#N48_(;_ronjyJiW@-=Zh*0t_hNTSnvr&=G-xA_G5G0389yltba71Bws)Z_Jkw^$!2EK6tC?wf(NH9Io;MeI1H1z0z0tPT*f<=P}q`~?B4GWnW1)k&p zB{G(DYrq=`u&{Y}AYml%kcIETqXG27gt`b@0W}HWC;sOX<{yagR|w3~&l~v`FmNE; z9iL9gjROFPHD!TIJ!ErHC?E-mIc;#~jrP#~Pyxce6WSs_fi&ZL)E0tBF7Vd;-j{=o zjScP(E}R^%tcs{X&ztInqDVj);6{|kp-=V+77(;-(#x*HA*jh66;F}K;HgQk!LP9! zZc@muTVk*E>)fH$%&188=HFbT%~-ptjN015qeb$c<9QiP50Q5Bg@6SO=dIJ?6Ak=3 zTvME-OvKE?^bJm;rjhy%tNX!{o~BXT^^g6~Fk}_{s2uH_yf%Ip8@H@`?(UNi^HPna zLtCP|)bXxA&0Q;tXOFJ0?Ew7=w1@vc5_{%j<7=u@r81lgh2^7braP9QrEt5y4vXYo ztpB{`=VMQfiTKQod@nO&ayA5-H3Tjt!0S*_MjDB727LUFh$%C;LYPv7FIRo8`k8Uc z(|CJ&fOkOlr2!!myOFk$=|o4*#dKj|VQEqIMD0vNQ8%uFrNvOwO2^#M>7u%^S>A4H z>B@$=yZ-X`puqU6dd%_A0A&_T(}XL-1Ih)_jgXAb`Sn2ULOIfs>v6ek`x#p^vZ&O9 z(%lCQWKogEs;6%xFIXjQ-&`EO-1^}_|vMZDWOx5kVm9pVv&`Fmqp-3 z@wqxyGN zLy4?@zrW$K1-&79=R<8q3y;r+t}I2R?&3w0qwCC>-O3bqm1B|hUzeY5y{)UQ676a3 z{Ez#O+RZ$DuPusmskPPr*0SG?ny_EFpb--WsSg9Pf*v6A3OIv1;Bw$F;PgeB%^;-) zSlP4&&nrd_%QW~x3rme!T;Yb%-K;KW*4h~-Nj7;5$Ga{flHVK1AHWWKTlQO$eac5I zS5C@tp~7O#zK)KK38p6ba5HfU{W%|5d5e-7haW?ri`(G$y%paZ9WGss;*I1}aLe{k zV^w;&vG!XDb22{aPKi_VZe{j$sB+w&JwAxjc=`RHe^&nUk8SIwlGD4S=|yeZd6q+S zpRHZFn}w#A)E?u`<=;-XM&i>Fn0}UT3{SKq|W*%-`o5J8kHAa3xk})>?LZF4foiyrtCU1g3~je_?o6h=&9N zUPfJNh^uHjj7f5nsQvK6aF1{S?5U)Yq`zsj@r=ndI<9hy8V@n+($6Xbq#*?d5|O1T zlhkQt$rZV3bSgrnA`3Wr4tn*XXMJN)t0}x`>biP95|5{uR-Owl3(yOpGoeD!KVz)q zPZu}YJ58I0tv5S-b%O>8$J^B(t1xV)Ib)jST~QXf)|#!|kK<3nUA#MPB2+4!vSdr> zHXAoCGQ7fuZ{>4xJ@j_Pd^+zZnwovDn!0b9;FVyHsXD1plmsDD zq08y1zm3>i@W>}|zI3aa>^4WvpR=#?VB9(_{aIewaPm5QblfEYyZ<5048tqtcd=I~AWEY8&@wWTJWJy{JDMaxl`u2qqjhcq z|Bz-Bz+Z}p*bd6y9L(Q~MR*n-P!j@fSOIJi0EJB0VH|8M8Egc4uJ{oGwI_(a3R3nO z8q1`Q;wb)j+!KykoKz!0>`-N*q5n=0gfnjVXs2jnXOiv)<-7|$GDs2 z8_XL-qXFiw^dB8KdSsj8n`nZ@g1q_=-B^AEeldUovEDX?IwpSXJGli}i((DRQCvIS z00kyBd!*ao(auqDQphmeP%t_gL;`vO%Xgs}OO^`F#wYk281#TdoY7n5F=f6Y%Hp{3 z#KF}illW6DJZJwi~B7aOkaniO_udOB}&h%_Lsm+JY-&JVjGIo z7imNNfLRM(4PC2Ux~fxLw;%a6eX~Aan4VRBT=<^3pFi`=B1~tCs)~BSBanl0oOt$6^YwWDH_EF?X^5f7xqpA=TT>_Zgr2j zch2G|?|h^9H)-Fpqxz%tr={OFfzsV4GZ_{7UOb5e$Uwe75xFqoUqd!=QO0>;ra%#A zR3UPRaw$qBJZd3Tuv4Bi)FsK^?7yijL>kz5vEL)JM&u8=2Ht~)Bacw0WTROr(VgPb zdSnl)cQCeZ586lK4!4H<1^t09|LUKUPK}k8pw#bl(khCdL`4WCaGb?b* zJbmd+wbu%!PGn$Z8bg1l$0FsVSHK`jGmw>&9{NV2Y&knSdt@4Il9}qkh@Tjfl$2PR z>Xt%8Nl8;i&CZ0Pk*w5FEv`I7yY(GTBSpifB(=)6T(Ida#egAdK_YQ~nh$U?m6&p4vr#{{WsI-rU_-#4Q z!QY;lNrJVJS(mAhBPsEojY?pN_)6>}A~4=KOQ9@pml03Er@83#e8x%opa`KWr6~>R z&+l?=58bm+?VNuMjh;DthmVU~ZG!oY;{0QtjujVXUUo30DqU+0VQ;*R%?}&LUgapM zM0=rQlF(h>{E!HQSa`UrIWayeJ-_bQ1O71A#0aU|NE!BUxeT@41MlGX79bKG9{=MsN*A;*!-p|AcYu3E}MHI$6NQ*WdYj;@vDq%3ST-{SxEhAEu$9OE$~4%&s1((T+ifx zPajDgiw~vWr%d=V^_Y2?Tqs<)9>qJ=Jup_S{yX>`pFOYs0g)&wL4>+Zu@pW?FHOEW#-awhoaZV^0U3qB0*Ll7yx8V*Sr9KYG573WVH> z2rYzRD3yLeed~ergM}gOfFO$XUAW0JKnSPuEYj~9;3nB&Wa%r9F z!a^9}T4+Jl;C27>JRShBH>AZyRNb>LbS*V8H5Pp<+q5vnQNa>)A-{vod|OYm*u_g} z@s9A#%r6WT4>Dq(#0iw;+)HPfOdlB7rvA>#VzJKp(yCBEO^nWA=@v*F1%@XljCuU~ z_1&WV;`H>lSC%RIx9+KaF}3^FW?QvRm(z8p$`j$-}p$0ZpeUA^GMvXT?YfH^ZUz<_^mR`hQbdn*zQ!c&A~ksG0%@?TYn^Z1m8nR z0Ok3I1AeAJCE}`%*9|HOcDD!l>tC6-gc0Or*sX$Jo!*I{+c5TwBc}rhxC}xK^`FcL zga3hp1FJc3agcm&VUB-|;8q&7+9OVC7a{R?elRzz=>^ujB8@r>)?a}=D759Y;aPO+ zAW!^4f~3$O8vVOWTz%DUBi`;&vIAuqQ-jtOBC2SxvtNn|&lmwa*8b}F7A%DSAU%YQ zI*X3QbcaW_aM}I=KEDE+1>-TANd8?K0s!*L;uH|2s#Rx4~d`Qk-zPqbV5Exoc!3WkxTa(mcMZ z{O(su39i__lN5bBQk2MCCY8&n=J*k892em;M`1KZAVD+CFR z6??(ipQ|-f!yRCojVhJ%m;Mab^997JSQx4)QLzprLBh60XTDpX$iZVqeeEussHrID z6PAfb7$i*ikyMA$jqSDXSL5$iYy$pKo5Fq4ns9yy89ej)cE~1+}W4;6e zAsV!ftmg1+Y(^bo8XB5e{;Uk5a1?67qWjlivFGzubrIJdvwkjoEP74hkM}FT@v&$e z7Vy#0(HKu?7dlcnTm9J!cj*3)cO7Y;z2P`2F1yWvMynuF4 ze|-&<%k184Bz%1MYHDhAe!6YWmh(L9!-Brzu0Z68a=rOft^he38^+H@yoiVhWrojn zeK0<$jmaR|jj~d8MEspBIH7m(D+5VMNzNAEUu}svapnh}f^ZUBI1y%got}+`uk}-c z{W17l10I~YA_PJY-+v?WbP}$vJ5_VW^hiFL37eTwk_1m?golSi=ZQUeegO?#YUvuM z|2E~XH@&VB3JOU3yCe%mjEoAz6?iUekZlD~9$|wCZ;))4t_V5%xFCF=c3>)^qoNSN zAt3Or=@2wNjF%6k1_B-tuou)cHNSD%tdi5Xy*)V)@Q}(ws=Q5U_jA&;K>m{1pl$4k zxt;*9`nV+9A^eSA^j+{32zwOu7@mD5GC5lOJ_Uh%o3*Bbk3M|6^o&*GYx-D(OB7(6 z>J8VM?@@ilp%JYM_j)f*NZAz6xEsQs)ChA}LLLw@jS0@i#lO)wMx? zwAJcVO7DSzjxOHq<>kdC%jf&2CWBo*`ZF|aC^QtrKgv*<;({^ukat_L{^=sh7$sd1 zB`rkdA4vRVixch#+mMqpxE5O{-G^%o)YQa-gM;qZ+hFVK>(iAQf1q=ktE!?gv9b3y zJH5)Pt0l5HZMIKOBWr4y>+d((T%ztS*3z{9WQQ`*(vnI@Nc>l>)n+>sKR-X`t*)pk$q5#nu#Pw`PfXd3Lp#TJ>hXq~g97I8snhn2e_~EO&ZwMfaZ+ zO2&x({7F0KlFR27OCaEh395XH^9g!IWhKKHG$drcez$KryCu40+}8=Pp57oBX>04M zbDm@wip%v@vY%5YbEVRt`(ufOkQ=o%ewvz^O=N~( zP$`68rtmyHJsIrug{a?{fIuj!t4pNivfmb#OJ@$ycC)mkdA@AFiqFlBy*-*DV`7>@ zRjr3~b8~})h9>3bCrC(0aDTfQp6T>*oBWByw4Xz@ijgJ4>L$|eTjdgBRT0Zmy+`G;@;l8Rn^pRV{4bM3=IuioQ{xz?cKpBlflR@;SmuD3{E$@67-ri zz!d*2;`7VdA5*x*v^1%L!ou>4bOA5U$vmMr2pHs%F|D=oiLo)#y`h-GF&a$xzZq;& z>W4i65ab*jU(nFd@;iGOC1yzC$5GrtlO(N{4r>e+SMtu{nNe-*&X$jJD6#Ord3NhzO6j*nwx8B|zECMqV@3ObS%)*$SiUV$E+ zk6508p&?T8fww!K*T*ZWAZR2~kd6+`6iQW7wo`EP^47U%bLf9aNZld8WbF@-Hn>1t ztqj`lq@<(-KeReJIY9vQT6MwRAJ0d1b%(Hjl*>o*MS@077b;CBu<*{$&zWsj*~Qkh zbQ9s=;7k@O)TS-i)$`Z{1PDLhj)WKzbBmD#JnsO&`D`(UwsPU;cV*>1OrK7VTS^`f z)75_Kw!3OJS!e9KfB%k_A?U-K!DfyO`f|uorVnaG%*SN#V%u567FP%_2J^P{E|-YOtAA|x6Y7Z>jz<@uGQE?Bt(u*k?IWAzqK zAhb%%jd%eH28I}Vot9}@zKzYzub?(7Vqrne>v}$-!$?Zn*FmIr+guu;e_6Azi;Fn; zbg*4e8vb^^N)(57;iae?d^W`c?M}lsb1R2~8q>v){sZjog{h=g` zjL3=t_n7AEB`I_oi6}yEN=;R1Y1sS%0>!qYFGxwSqbtMnfbY7Ml7jy5&igZP80AYg zsB!#dnJ4fu3e{&5FUxrM_&EIGVoj`Y1_xHiZj;{(Y4_?XuBeE7U|_)hu%V1XQ})Sp zJk{{|-@*Dyy}88ja5S!1U44D|!GuS#=D+Kppdbk*SrCGai1PhZR8&a^<7p~qTAiL8 zv4nikKv`KCu~;agh>wpzV|IN#o8Z$n#D9_7-L6vKeBWPOeiDL&P^nziC`mG_D=FhV zlIMrBNi$%?p1Fz6t#3JyP_i@8J3fveEiFAVG9qkfNK&d?-eR@%+d)uJP{+uK^w&MY z9S+A&Oh-pY?ma{?_5H&`*72_U#UGko-mNQ6{GV^PaxM*)bCQl#Bp&?qgc_NlpHF*n zz-!t*F|@WI|GsqK_xTf*M|$TX4{QKhCiyb5(=RpO-ckw!S^XEbMvr^wPrGY zew~Nb8ftd99gf#6lClCA+?J7AB?T>c3TT=lKRrXyr+@z(OX3^8IvxJ)EzR@&S<3)w z$wsWEAPKAmISJ@et(r_Wkh1phU5zLP4exS*IqP$%)W{(j$voL^w0#%gaKy_s{szII zC~0ZYl)r(x200a#RFieP>qU+8Ng;;A1Y;iw6J~QuZt#=Zh@EU`Nai`+oetg!MOR{=qMZrH``>_ zZpQ<750D*Gi{(Hzh#Bt1iNUoT6m?hW{ydz>DmRr2lA}`0C8uwdt;(hKzmVYSveomt z=L_V0Db0&Am{S6J>a;_6`syvl63CilLSjBV7? zE}Nq4mzTC2UzNrmJ=353Q6(MrJK!o)8%s-R5^`Ad`o;PA#Pv<}G%_+W;jOS0G;&VC zs&2g@rQaCRb zX;y1Z)$|D#xp>C-zGsWob#zIN3AO()FU(PJp(u85vqUI69(ou+dI}u!Cc-msETL zRcfq6gf2y<-bn**i3DcRq~`BmxxU?nB-Gp*dZEc$r0ChVtu45U<2;ke=&;a`YkILI zKzEWK0UiM%W1oHpq{4Cmtm=JS*p)=6UYUO3=F1`7}S{7 zT21(z)&_}e?~XV0gzD>sLaLx)4;H3Kr8y&{^zL>Ar#X{GM@J`pUz6{9YR{^njcp&- zphl=f|IyJ=QWBM-b~31Cqd{dv_o8Ef`GbU{LeA5Z*U*J8>vvtB*oiPxadptOO4IpS z`3Bllw$N1TYt+N-?d>R2_w?{c9s1_hRvsgyt`t23Lv?RbSeK)&^789b9n3O5-xmcH5o;ZqAU%9fSBq@{U9Wo>M{r_Hx4|?-pGK5-|{uP z;hI>of;Ft&APPLArX)vj0GMC@LO?+9fF!wuSEEWZpra#nBHd~t-v)0oo2P#sT4lGc zA>hb^|6$pEC} zs$r_o7*G)bEsLgoo8{+Gf62(73Pn)#eSNX#Lz83Y9~WbrApB)`JpD_~@ynMlIBaH! z50@KsvMt8Lu?cDVzFOpS$+tcA>ky#Kq=Pexk=Rk98yyb~Y-tEpYCH#18Fk@PWGLE} zKu>QdK^j0_s#yQ$o2|JyRm2MQ^K|cYZt7Jy0E7bx?QT8&K|e?6zz`0vey(}70dkaOjv(8Qgy*ydGADAm^xg9U zz}?wW98F_>RTUzcWOPq5jY@cPGZ)D2PS7&P?wP>Ec!5L{`VVz$t|Du~yni49F%*_0 zxC8ukA+`wj8`m@MYQ&Z^R#NDK?~?KPa_u^32!I>6z!3m3+@QlTl)yI%*$R~Ff6(y` zIbLb5^&}b@AX_a~fie7n26EkZ;VAnc+D=5e-XDHMb;CeH5|fgOHVL}9mA6jbf>skt zYi&2VsXcK&;N6uMzaF^HEH8y3@|%UU!hL4J(~Gm22Wo;xDXt{992^`34>nJDUTKzI zFb~Zs3dMl9%%;1Cz|_&R-dq4ONl5eDk*y-E`~Wp&C)jmNmPX3iGkNk<=kRykbV}Lc zdRI++(I?RF96-~0Q(HE{oyU$m55q&TY#QwNvclYpCRu&e(qkTO5yKXV~=y5F02pb7_V|F&vLu(%)mMd2Rou;W=H5i=7kIT`RSiwS!W;<9-Z=a*GZPafCwg#j@aa~kBT8LN zgR9NXeURAzSxahKT2?u)i~W5_kac)^c`1-hV?3TIgn>pTpdMpatz3}XByz$HI*dgpW)6ejlbLO|UsOK2dgXKH^Izw_{|jbdum%7=A0wUs diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/collapsed.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/collapsed.gif deleted file mode 100644 index 6e710840640c1bfd9dd76ce7fef56f1004092508..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53 ycmZ?wbhEHbWM^P!XkdT>#h)yUTnvm1Iv_qshJlI4r7uBZ*YkPFU8d4p4Aua}2?(?R diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/dl.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/dl.gif deleted file mode 100755 index 710e7b848e343f9fe07a6d53e36216a16f54de2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmV-~0ek*ONk%w1VU_?S0K^>t_qJ00^5Fme{r9+5_`quT!*Te(X8!o^|NHg)=EV5B zUj6LS`qi8K?)T=>Fn z_qkgC|Nj6000000A^8LW0012TEC2ui0G0qG000I5U?+~GxJXq2tZeJPa4gSsZQpiL zNlWSfqYGn#D;kf;q;kTz0D+XpKuN7yueia3@+2K1*syqPjU2k2fPu_zyJv>LGr)P< z?{1FVhalkpfLH_wB?11uR0wf8FkdZYBBLaSsn3*dCjU5e|pqLFJDxs!{1!J?8g z5}oHb?(8)mogUfzEoD(tvE*HyE6Wi5TNd z5pv2Z?-)M7p)s(8@1^qni5Tf(wxavT+krR6n93qXXFs-cnr zl41|}7J~_SW=Y6MmaHIICs(~e%Oa9SEKF@oHMO)R5}b}GI+j$MU}9qk#7)_tlz;49 z^vcU9wG^GE~P97tgK8{)}UA- zy`I^k29Aml^V>Gj4V%6FA5kUM0F(Q3IveUBNM6>dq)|bIyOW7fTwomuDcA&3 zbEZ(DIKPrfDh?1!&Zk&6v0_lUAJX5pnbfWK*OB)aNm+$JT`f}%q6CLud9p99ta)XI zJNU}yT~+SMH+G-Db*tyl)BewP|9!Ooa82MyU*Mgd+OneyqsO+l>(6orr+x}}n)gn& zG1WD$%l9^4Jj>j8Zhy}?<|{ul&nOUW$*i+zL<|N xqc-Y#b3CwT81Zkva0>6iZM|JX7ts8%kG5AHAO7({t8+ZlSl?3j$9o-T{s+qUzM%jB diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-java-source.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-java-source.png deleted file mode 100644 index 9660957eb94f60ac89b6a24ab7d2c50dbf25e039..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 969 zcmWksZEO@}5MC&P)U+XfrJ)*$8kLw}P57gc1hoxqTAGG7Ato9d&`P2Ph-eHkh7cQQ zD+!4HSW+8ABn4ATk9rntt3t2W-Yv9uz20%{_1e4ZZSQM$Z+CA$-re_o$L)`q$ul!Q zW}fHiYH8kAQNF#LVVH`B`q~3dty+&q%bXm!e&5G18!xmpwbj`pKP+W6NCmTkddU@x zMCUnGWbA3)^%N$ zWrUE82?wya3c#_VD279j$OENtf1yB;>>B)C)(9cA>(@y_DWSjt_sd_Q-dl61|7!}s za^Q@m5{ae3Le`oD=db&K?O3>n6rD^2d6zeiEvx71Bqq)#(13d>4alZ_!@=2@h%wF- zK{u&t5ZfZj0z_BUf4JnozGY9OU?4j9-y)s4d~0f%61#)t5>at3UeHX!i*RKm#By9V ztFPn?%d(^rE+}9iGCm!j2-NHB>S{ zQtT1WVlW}kE(saQk`*NDy!^(E3GBvWZ#z;`?`A*1DFhhUbdMZ+SIq@pA08V?~?mtnxzRD5v) zu`DafwnKfoK(Z3J!)CE)eSd8#5(bRvx!=6gfs|$1NL3>95J`x0DP`GjWo5Fm2E`KT zbp?tVI4VNSYuiLOZ1&~@qDra(Cimw|J``I8sRR>|ysT46qk;;zrxT&Lz&a9AunDB* zOrb<^ekGGs93YmQPqA)d#h_^5l%hjM1Ra4YAsgu?vIob*(Rlu*)=r1zFOw&BhS`5VC%8^_r745$DUY^4a}w9bz^Ti(XhX6OJr-s=ISSVN*_LOT0;%B zZ@0ZNGZq-CJYBQxRHE;b3mXsim+$PX`f|tdGSy)f?g)`>bGN? x+IL3>UZ3>u8Abe?&z;13aBFYp$T>8B^n>ckW1~ObZE=og8tR&B|9GeU^#Ah~zS95z diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-pom.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-pom.png deleted file mode 100644 index d0e4c12bf701ce436233f4ffa7d627f0beba015a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 946 zcmV;j15NyiP)+bZax3$K`y6Aua z%yI$qvSaDYr{SYm=;h_;>hb@X9Q5}2z-s}*Yys%$?DO{d_>d6%l@+10v&L=#ourxC zc>&#f0qcVU>g@6S{Qci7Bk^^Fbw{{G~*eej3~{Nlpq<>&vNCHn5&)zH7|@AmP+ ziSh64ny|9?`uz8;UHbd}-+Te=)2-_2>-P8h>+bUZq%+yOjgFm^Kv#Rt$-Dac{Q3L+ z|Fu~EtVYn((bRSU^XS!pmXY3_Q~mz_{{R2#&#C{`qWA9O^z`@r{r=^D0p{Y}=B#Az z@ALYvV*d5%^SgEIvTgt2z2W2N+^ux=%$eui&gkp!+~MT@{{Q{an*YXs>g?~Drn<+< z(f#e&>FMuHb9V3M+;@?W`uzMOJ!a+V@!{m|^z7t`r>XzJbol!Ha*mJa>g@de{_61e z{{Q~SZvp7+@ayR1_4obz{QmFp_VD!isH&~@`2F?Nq}<4-{N~C2{r=|Z>H6Nc=*5}; zsXh4k{Pp_#_2toQewqKGE#rOx_Q8JV=IiO_>G$~j_xJqa#-{qhd@)LJ=GD3V{Qma( z_U`QLvV~6S?DO4z2Eu|fk&B1Y+2r{8{>IG7|E4&hnv?(k{{8&_-qyviyw235X!GCC ztzZG&+uW;hDB;Srr2qf`&`Cr= zR4C75U?3C7F*9NnkJM68kqEFT-l$Pv7lSOJ#Vl#6a+I$^Z<%;*9Et=ZBQx_McLfV8 z@xnqBvkW5`Vwu%9Pzcz}55=cTo1_-oKbtuX5@^T4)EMaXhL6(q~_|Cmp2$$LXm@;9qe3I+tgST32siP1S@MjiUf~!2nz_HOAImq07{-A UlI;uh-T(jq07*qoM6N<$g11{k*Z=?k diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.bl.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.bl.gif deleted file mode 100644 index c59ba00625d1d780296edeb67b43a9b2af222fd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmZ?wbhEHb+{eJh@R*BX=FFM1X3m&1Yudb7Q`gV$IJT_(^On#vXU@EO_3G!(pZ_s{ z;!hSvE(U%E9R?r(nZdx4ATYyo^>tmS`m|^g3B)xUIkO*kt3DwEYiml~f6^aNOHar7P7h*v_2bxBm9~ UAA9P~zyJNep|PpCT9CmS09~G5zyJUM diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.br.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.br.gif deleted file mode 100644 index d80f62ee803cca59c365386fb34c909633454f09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmZ?wbhEHbP;kap}`Lo?pxuKZ!PN5#j9d&%3_1)z0Fq~5vT*5JdHOB?;yGJx zRrB84^P9h|S8dv}&Sm^7x4q+b&hfdv&Eo#AbL;=|vpj1$vM4LVN6Yra($AWj3=Gx) DxKk|} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.mr.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.mr.gif deleted file mode 100644 index ded125be9ecd16b046cdc27c52fb21c2e0e08cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62 zcmZ?wbhEHb>1|0?<0Le2j@%Pj>te*WZA!CBo M=_gkfFfdpH0J7f}TmS$7 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.tl.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.tl.gif deleted file mode 100644 index b4a8e97d3fc499efeb8ad674860a3b264854a6ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmZ?wbhEHb+{eJh@R*BX=FFM1X3m&1Yudb7Q`gV$IJT_(^On#vXU@EO_3G!(pZ_s{ z;!hSvE(U%E9R?r(nZdx45OA{d9HYhSv%CK%X!NCI&eO2aY!?t{RXkskd%t4c`BQNIHFki;O04I HK?Z98qcb{v diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/expanded.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/expanded.gif deleted file mode 100644 index 0fef3d89e0df1f8bc49a0cd827f2607c7d7fd2f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52 xcmZ?wbhEHbWM^P!XkdT>#h)yUTnvm1Iv_qshJlH@g}+fUi&t{amUB!D)&R0C2fzRT diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/external.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/external.png deleted file mode 100644 index 3f999fc88b360074e41f38c3b4bc06ccb3bb7cf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^+(699!3-oX?^2ToQY`6?zK#qG>ra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%@dWsUxR#cd{{R1fCIbVIy!atN z8e~{WkY6y6%iy53@(Yk3;OXKRQgJIOfsI*BO@UFsfhWLBc>*(#PB?Jn2*(o!76E4F z2oaVU3``tH+Kgs0GI5+@Tg}d)z%jd%F@?{8!SRZ5b1yT80-FZIMn)zc2Ca66y`pzY R*nwsJMCn#OVEqF*oew~oaAu*+mN;-=y?VHT3tIe$XQqrDo-uB_a z!$aaK`z6))OKGn34?nwc^SuifkIL#EmDgV_qjg-#8v*0u4q4%1moUw{LZ54UeCgzNF^jX`uv-XK+9g@yFrG9?@ z!9&5&Tgk*j(b!GF&{N4I-Owl3GNQ;Kslp@APSw&&&ux9d>WxL~{EYoKm2KHvv3+ax zZUYB?Ae*8JnchZheXeEaa>@87?_fB*jV>(`erUx0B6j@wa!KnN)QWMO1rn9HC8 zQU}Tt3>@bftT|;oHYhlHH8T8tc{qL2LBC1&wnQeg^-S05<#H=J%;q~&KX!$OXH$lP zifQJ#9>L8|xhAVRHT-xPa*}7JK>(A*!AmL!CQC~j>707p+C5b#ib-SZ5@wfn#-0y8 zor_pb3M^%mkXhlduwjw4dk@RWhYZ<*tSUAV9x3eYyi#^d39lH{872xT#>g14FgCZb z+Lvv}DClhGVU*`8y(Qe}(9I>Lw<6->0~Q`zX3oMH2272dBARI`0wDzxS_G8b_H+a` TZ#n2*^y*Bf^Krq04Gh)*dSnrT diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_info_sml.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_info_sml.gif deleted file mode 100644 index c6cb9ad7ce438a798426703e86a7ffc197d51dbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmZ?wbhEHb!Rj)7jHhhdgsOUdoQoueZi?7 z>>gViTe&E#V48n=mrru5S3;v}WQB8hiDz7$TU2Fg8RZkU)J)l4H+4sO@7jjxJ4?G(<~7c1nYFul=C0P+d#d`@bj{yi z-npcE!T#Qb2PP~z)H;3B%r(bntUlH>Y2~CvyV|C%UbyM>vTf&9?!2&e&!siHFV0_c zVB`KP8}?n^dg$7Yqc`@PxOMQ%-NWbZ9Xfk=)1K2OFF!hV;r{6>kIr6ua^~ve%eS9j zy7lbD`I|4_et!J??bq+WzI^-n`RfmdkOIfh!pgqYwSCK`t~@$#!^!1aj_y2mzyI{@?vuB79>2N$==JkApPs$`_~ygc*YCf)diVLp z{pXKfy#M&+`?nvze*gIk#Q*;N0|qHLXbBUFKUo+V7>XElKuSSz!oa?}p{S|3rL`#` zEj=M8CWV#D$GthOu#hRgfH^NPHz`Z6or!6tudIJkhF|)EqL_SUmH;#E=*;vU)ut4d z*}1MJ+3|6yK5|W*0YQlwY}}E_93D;*P3)($(!#iHyj&dYc$?gAB*f@)n?~7Mn)5Ze zB*b!gs&gB@F*e|Da`5(ac688Lp~TGAEh5PBlHo`4aV}w%hy?;49h(#+>`NXTD0aLHUh^4-IaSR_}CU{9yu9PC)l<~L1Nko32)a+5&TTv{OQH>ECg6toYktNorHPV dSzT1+Wt~O1Io;%41o^$(T?D-5&UIw41^{6*mtFt> diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_next_page_disabled.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_next_page_disabled.gif deleted file mode 100644 index 99c292f6218f1f9cc52db66eff0a2cfe50877d5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80 zcmZ?wbhEHb*ihh8CoU}`S8316&QovS dB$wyP$t~h6E8ptGALl&P+g`wP&H_gUYXH0To!$Td diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_prev_page_disabled.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_prev_page_disabled.gif deleted file mode 100644 index 79c241b37e84a745a000bee27b5b8bb6ae832d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73 zcmZ?wbhEHb diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_success_sml.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_success_sml.gif deleted file mode 100644 index 52e85a430af9da4dfb217d71b4d6f3a1d4a4b571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 990 zcmZ?wbhEHbBjy;4ci{C-1K14rU#4Xoa9{m6qopA9n0cn|!>ecYkij zwyX=!4*mH3EoqLqSGiVbyFqxD(bS8XSDu{6U1jZO70Ic@{~t&7=B^ zBD)NOoAkU&Gy^LQJ5PtV?u{&65}4ZUmfYbweP{LTy^YnAGv=AGa7*6wj}%~b0?7r5!@qH7P%p1*$L z@#{ODxoUwG+WsY)zWExj-aqxpQS(e!bx&6L`u)?tfB$~}{{8*?cVO&*V`-G2NeC$Z zWMO1r=w{FXnGVVm3>>=|#5rX=HY{-DP?VFNPL-%m%>B+*~5-k^-+4*MLFr;tQ0}^rlS-^!^Q`Mx1hrB$jwn&hk~Xk=#Nl+_9Nu|Y$D G!5RQ;-6)O# diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_warning_sml.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_warning_sml.gif deleted file mode 100644 index 873bbb52cb9768103c27fbb9a9bac16ac615fce5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmZ?wbhEHbB!Sy%bj7w z8LP{2I!WYbmF&-Ixi?j6tD|K1XR2M#l>Aw*aXL%wXS3nYW}{zi=4WzsU5r%E6qx+# za{AThd85YVOsT`KDUrWsBtGknIa3>Sy(4;AS@f^Dxt>-=XPXm#FD(1Lr2hBv=9?3X zZS^!XrNw@)>eiN((2|w-y>{aB1+99DGMA?}+UTggT+(Z*rf8+5x~aWVOGcurtl;&U zIa)H3I&#vwvQjJBn`YHj9iKlB7`)(M#!e{yWMO1rC}Yq8NrU2qfqia6SyOXMYa1sM zM_a34eqyRfcQbQJY;^IYGTuzaxglKLqNQEA}OiQec+sQ#rUUjLqg_MpsPmY43 zsgmVV8EHK$eV-B~6*UcAW2+w%1e4o&9#aAczLGF}PmMg|6J0Ey4q A)Bpeg diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-down.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-down.png deleted file mode 100644 index 7ced90cd251aa0056eff0762c1a6372ba9980d79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLlHK)@j7&Flsg^7eFb45_%)(;v;%;J|a_R^P{e?qS>c zT?EYLE0(0c{gY7Lw1~A%XO6vM(1M*0g_j5vZf>d)>o$n9o~P0**A{xgDa7FN(zoYh bnRpn^+OoPc@A;AgG?u~B)z4*}Q$iB}OZ!!; diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-left.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-left.png deleted file mode 100644 index 9e37b41284490f8e1fe7c8fc49b6ccea00e6aad6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLlVJLn>}fId9IypuoZG&~xO!{mr%} zzgfEG0ZU>g$}8|IxW2fsYE|Bhs|T|hrlgBCxK*?D9Gd3X`LWN>LZ9{CywyxR3|CZH VZ7;lW1iF}k!PC{xWt~$(699IHQ7!-g diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-right.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-right.png deleted file mode 100644 index 00a443dbe512f343ef3c515b977fc858f2e10c86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLlv;~`X`IF z7)1S;-tQ>zmorttSRjGzDoe{Me}U#1It#YU{NNNVdxLp?&A}IucMR5lyCaamaBnfI V`(|CnZ9wxFJYD@<);T3K0RYhHQ*HnN diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/box.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/box.png deleted file mode 100644 index 4d62e48ec9db42cd212595fc26a5bf270e31117d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLlqTPWy@0^|Jj~!;g{jE_GCMUd+*dXow{~MJ@UMWimJ<=3Ef<5n&vJO>>pS$ t=maVAI|r&hd+B-VtEI!vg!9S=7)o}tO_-;^9}TpC!PC{xWt~$(699>HK)@j7&Flsg^73?X45_#^rQcJCL4b#)z2m=qVab=`lFvmYpNmUxXz4%DF}bf}d|cDunVH>FGrOY- z+D{EEKZPcINzVS9ob?$uHn=&y~n$8D`1 z2l;<(sQc1T_xQ+>|Ns9p5DgT6vM@3*7&7R9bb$QCz*ci$MuCTpRKNR-^bncK1eb^v zqDfrti^MpzbSB1VUt0b}aql73M;xvKD|}WtK1fk5iV!?;_@hVR1O_f%UNKGv4?_+f zX(=fl4i6boi78XK>s@7pr?3jKN=S;#aFP{YATA>-vrJN4*4aRuZH4n{cJUaejfxA_gcK(+xq`Oplq9?fU9B0wZdiD&sMF8xgvG$ZOwdF25SHo{3V^UUYY#HgTdI?_`o#% z*+4@Yr3$?m{{R1f<9g(4pfb*qAirQB7YrDJ{VRlkfO-F_yT!0FAu@)cfU$A8|w;gM3p5q0xK-GY=ksO<{5B^qIqf@MB!J7B~ z{1GGdO(JJlY>(S>+p)MWkN!DNTij+{X0d=z+l>R4+9k^sW?20dnqBs4=k)^%lBaqF zJcuija{4fLRmMk&bN6)3w@+ShdqbR}&bdxX2)52S7_dP^L~n(_ en*UX0I~Y=|e<^0m*@goHiNVv=&t;ucLK6V|@{~3J diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/on-symbol.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/on-symbol.png deleted file mode 100644 index 4bcccd5a0bea1b5e934f2dcec97029de5367aa39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iOP{ z1u+$H`JPz-00D7HL_t(I%Z<~$OI%S91@PZKLNJ6aB#)r2B*fBwi6LNJELOKyivAyJig^et-*vylg1z86k%)M_u&YU^7W5Vjj z5Q%!&m6U%zvW82&*|ctQ)h~$0MxesoE&4L7^PnY+wIId#m{o)hlM`~q_9%Os$iItf2LTl|2K~FRncke{&ro$ z9EQJ8H=az(tQ(K97{~J}6b29Qd0I#Gi!B^gK}u^Iu`2i(>pjKyLgt%A{BEnnZ+IV< zSFx%=E7ySCkK}H|9pq%SEzre}2`P_o7UV7#u;B#DIk_kwQ#a(fHigFne8|bgf3LA9 n^fKVCV7_HL$llHAmUM6f)7fL{URfie00000NkvXXu0mjf$Dr7# diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/rss-feed.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/rss-feed.png deleted file mode 100644 index 6652d3e57122747cd8efd84bfaa335552031c9de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmV+*1K<3KP)kSg<7Msw^-nF(yVsj7t_q zQW;~33nbN0TIjS>O#jThdH3GKV%i#nlbn2a^Sk#uU+xirsqxC#w(aF}29pSg7!V`v z77zohpH1y?v+Oa(sr!UFWcx9}&Z`VY+@BjpCEST6}Bf&hO#R|p>St#;Pb^55> z`Q(NBtTcL~@>6t;j1rdT3HNT|=l;N0eIhKTt+l&;K8hlnI3VsRvt{IMHcHp(w5nHd zH!dUEcno%FAlDHmMnP;WXtPfG`wzG~RR|s_mdGD`kK#L5uzf?1!9ESBSCP5XFRC;f zkIZa4w~^a>nB4HYNTC~o!(BTIw}0G(T^eYGJVr#Yk&x@(NB0Nc(Rt)N@iQa%o8ORr zIZBwF1QQXxbb?SmunGG#5WHf<(0)0NFg<-lgCi7P`;?BiE@Qe9+|`fJxk)gV_?6Rm zikp|9v>lj8(8XIczWtDFaso}4k)8o^Z+wm|4bZxJ5?xzFI=YFUAH$`AkSQT3hII#` z4RrQ8?$--sUyq`-KOrt+4xPcRuF|~r1ptMiBWQ^5nW6!V2%F)>``#pX=oFGG;(z`a zZ9G7>?!@eVo#t=fqgjd+IW1l@tH2gm9-#S_KD*&S1uad2- z(Yk#dfVl5DLZ+yK5rc{qBwd2m3IKj-2A>96fBgc0O`axXid&cgz-;X$I0Z#z_Os#p zrR~xyMlf9op|FGO?;E((6G9#{a1iy%>f}$D@*q*ULbh;^wOdtkJGacs)OcmAe}847 zkZ(TnNj5ZOiq90^T2J078kCM5C6*RvkIKe6mv$xR;(U}45cNv%?UXhAPf=AHYRe1t eV|y-6UwQ}$m0mqBbbp2xW7TuJ&zS0$bu?+ca%K2>T guKw7c^^-+{Vf|X37q@5M1bLUi)78&qol`;+0Ag8wng9R* diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-lock.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-lock.png deleted file mode 100644 index be4d4da0362732f356cc89da3479999cec666ab6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl9%d# zR;^lf<;s=Yw{Jgw{CLBL4XFB03@7@NkufZDj_Dnnsk0)|XR?%__ Q2U^46>FVdQ&MBb@02fMkQvd(} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/up.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/up.gif deleted file mode 100644 index 61942d6d1c232805f932d3894fa3efb41dbc31f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmZ?wbhEHbxA_gcI@yYfX-VUD6>PlTrkbJWT=7sA|g@8>OlZzIIWU=08SOCy~C diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/user.png b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/user.png deleted file mode 100644 index 7f4c6d7394380376b7a74dfd76a4afb41da2824f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl?_b&5v3m9Fef!>=T0eQ~)^}$%?0@v=|IaTw zwy%BvFVdQ&MBb@0FvOTNB{r; diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/jar.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/jar.gif deleted file mode 100755 index 63dcb611a348bfaeaec3d6aa638507f7be54989c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1964 zcmcgr`BzhS7Jn}Z5LN@C1rs(|M8_piR49xSgbs+O7M;^pTgC!fMw#Q3qEf83hQ$g( zr-1a7P}C^P;8rjwQY#q3mSB+8pb}yT34}oQ^(F7U@6h=p=JUfn=bn4dx##ow+)v8B zzsAO8?S=M2RtN$BjL+%&M9U8bC9_LrFh8-RHr8_{reD7l3Wb+%4d9~>7Zw%_R!nWg zR4Nsi8E|yfC>0{0Q!eVTH#`K#ajR8fK`>yqKCmv}7;3Rt^m;vlAPy800x%;7K*-W) zG@>amw+wI`jJ#RF5k05vuHKAc7+&5uh~YSf10fLJd_2|AF^RMm;sCIOV0ElDVPXZa zBlbltsJcB2SUGR{5Q7ElpIG1wNl?4JqG=GtRyP4Y-Z`rPhy%a=aAHiXK~Yqx0~Q-@ zv|Y!1Rh0!P|Og@KJUL|1FL=a#+H-*P2PmirI!OXuz$mDV9*U zv}BR0taiIyYeH8Hz=~i!0!hDUc}`{)4{hZ$R`GjNLh5w_{o}W=C-cikpq5MGb~3rVSQUYjj{J z=0L%7iA`_C@r75N@=g@P9T=`Rqlg_1*!R;5?0U`txiDYEHw_R1Fiv3rqcN>AMJ+beV8xO9 zOoIg|HNb)ZqZV->78~Md>k&c!7la_B|J~X8NBtuc5E(!)nU>nl?kyp&-IBp?zu9-0 z5}MYK`ry_;h2OimV*Z21p&x^juF&>z!V=x7zxqXI`Eb7{(2or_?CW6CXjvaaCl2Np zeRzXXjMLIg|M)5K*BWRnE;^~mgSz#2UE0~=kLr`xo!TE=qTmy}*E1sNA*zqa?#X3P zT7jyRKq<2k_TG_`$X{lC+D(1f_IZ7BG#n-Pd8^ywb8}Z-ezq&==-)^4>MA=!_mcd* zr|x`k*I#*<<(|-8li}mk5)ggpv!f$V&K`a)Vmir0212p#W*?{7=td6_k zOxVpQl~Dy185esl22s}C^W5Pc5fzzEm-gnnN`DRol+gw&w1ci|I#>E_(MJkq$*k~JARZs}j{9lR1+S=LleaLMEb zI|pX8_d2J4Ax$izonhaC1N<@}m_&w%(UXv$Pn28w7*uijhZDU&Mt;joBzpNG8!KT_ zFvH_Q`b5bmf!$v-h`y9erVI6gF41%638cuyGfyfbI@7s~8UmTl*da(gMoQfo8O$KU zlrh+4)Ah36>*syqT3DmaaZIm0WDY4cBr}Uigy}kli)UdWd?P7e3OS_^hBNA;(yNDV z2D!2sL{dx|$Kzr-r?NGxjlDzDO5%U+&%dumdEojI%L(LAfCx3CGFqDTbpz5t7mwA zJQvCx%;Rwbj_8U8PHxO>Y20viN&7tTVuGF@_$bfNMTmWDc(LZG$LZgLTrL!E+j*Xu zfBHS`igC1fcx9VU*y)G75gM8O%W(X=?PqSwcWvwNN_{0ApGw*EOOr_6a;>vJx{v*S z$g#iOkKmL4GqQ79{GxjqqPGHla=`l+6TTcfdFNE2Bq%74yJiogh#$Fg`MqXIPSEwo zlCe*{U40+0eH1RYzG3g4y>$25z3D4Kna+`4G$ejddz`|C8V}q!YJJm~V!=Zy9I&+-x#j4J(?r7EeV(q6#rk`B{=~A diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/mavenplugin.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/mavenplugin.gif deleted file mode 100755 index 4e335e3f2360f6bc39b9dc4b7a868714767e262a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2336 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 FngH~|K)3(^ diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/other.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/other.gif deleted file mode 100755 index 9b01e3e2c7d360e498e9d9ada79d6fdd973b5987..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2160 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 Tj?RV*w~WfF6HVw;0Py)64Wl`m diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super.gif deleted file mode 100644 index c8ee24344c2c70ae295bcf67d04860ce27091117..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1212 zcmZ?wbhEHbT*x5F@SOn!?%%uj|Nnn5bCehjfsqvgia%Kx85sUE=zzQp$`cG6cNqS2 z%4h^M9Bk$g)`~f?Vd3F+0cEc_9vhV$n>d&=?wr`T_;|m9bC-FJ}Z4;fFn={1ou2!0?y}dmaJvl9+oqSIx*!cN*VeM!(-&-$|7cULg&RKPN%d6|o z(X-|L{xa}eBpLkb-r3#T-`|%JWMg5lc3v_gjcXKBjKUt^AXlSw^;N7m+u!hO(Z;o}VatbFg9pL=* zOk0&r>&k5|25Xnq@3#v~d6}=+UeWOU!2NjwOmoxal$?2aBoaPK9+gO6^YNHW`J0c& V720(^olucJ(7+<9BE-R94FFh;)q4N{ diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl.gif deleted file mode 100644 index d90b8f0f8735504b57cd9208091f3a86cdbe3093..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1212 zcmdUsi8tE^9Ke6X5!a*#<UZkOuk$HjD7xs&*y!<_x{e+EuswZMON_$0PM1Y z;F0%|P;7|eEQe}6%TCIk1BJ3%SMBPwI0CL3M zXe!9JRkLLPYTz)BHm8)_`*3`?+j0#QGB`Q}^$`rV!`wKmEyK^gkRE$H-wX%)K)nw~ z`=FA+I$y2+M=|hJE$mRsMKH_%F9-QwVXe~AKoC6Q_|f{~6GRsX_~evi(^ioFI@8uPhRn;|RI;ccX(v9XQ;o6H~D5Noi;xGw_qAI`*u;tUsw`}dzU3^>y-J9A?f>_&HC*fg+!LW zt2|uXC#sH+N~MM3GY0oIO54O^c=B4Wje&(vvC>)8PsznbE}ZwZ9m>eThG=q2>KCxM2d9C*ZCZxo#4qUj6 z%YEcitwG`FwHKXfw!ZWP*JMNbSa> zM%`UuC;A^0giU;jW*TgX#bY=_GFo-;*G*2WO%F6#N^Ao4!Q_Cda~AD&2KhQE+Ukk% zaOFFDa)G}fWvlY_H{qVSJzrHLN^@kdizv?L7&x6XcG*ET*wYMg zy2swSI0L71L6UjdG**)3WtxbBU{9uhudW%|Y9;q-aO?{8dQ|O7-i=4nmHco&Zw)~ZaF!AOL(7fz z^2{GoxrY6@1kZ|sDE(UP{_6~BHA7yAxSS-$ZPX^L;;xj}us7oJFqj<9E7mNQquDf9 z=TO(SadESO^K{O^p+_g)v7+y0z!sBlN^`X4U2^z?KJiKK21_uQs_Ei%dvm+U0~5$? zl{8$?aQTAa|GpzMn2@8pHAu17I~A$P(UY$_*y~_t=JgTx%dd7?F}c!v)}$oD8fS@) r(JYBRXX9yPXcjIrA25rqmknAz-jWSjksRg2b`~6hmWka-G~)g*ocv2a diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl_sub.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl_sub.gif deleted file mode 100755 index 0b35f7a261dc4e8824360a9e6b7047b5f012fde7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 985 zcmdUs`%jV!9EaaRO{EoDD=Sy8S`Do=Yt=lnvp}t+vg6LFENe5ew(he$Q>ta$Nv<2V=; zo*uE+ssiUYxLt5%FT85U@gLxsa%!@{>w-QL^t^#D!xmx{L z^WtTb>Q!e~N1MUa&DX#E@b>-3Pn|uz{aWL|(4fVt>>II3bzlCL)SD;178=JUF|KOd z>2bG;eK;Tl{Ln`hQ^N^d5OY}HAlBuRqIQZHBwpma$W%(8y0Q9oA)3e!r#01d3dw)u z{Yhf0#pv9bNFqRAtCzGh2>AE{(mh_B!wR^Dq1E!HDnqpQk1QZ ze)+*DX%*ugZ?>94T(PG^J~g5juE{WUT+CX!n8qkVs}#ni;rSispo36!v`Lc5(zW zBq?_IT9{&o#(znUU7Q;q?jGi?3~oUDS4ny!h>?%%N4cnF(kck%T=3<^VS_mAB@X)8S; Xsk4=xX&twfXRgko7IFP%Bk}(L(L2(p diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/supersub.gif b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/supersub.gif deleted file mode 100755 index 3f28dbce5ffba1ccd9d4f28bc07cf3046894f70f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmV;<05ShZNk%w1VW9vN0FeR!|NsBr-roQJ{{R30A^8LW00062EC2ui0HFXB0007? zl#i*v?GK}zwAzcacB*^f1mZ}R=82~2%C_#ia^Gw)psMf_wg-wpZr|Sjfd^ zXQ&7!*haVrdDK|;7-_jP>4kO4sndlBQrS65K?NErN~+qh1ZuOn8asq_8Uk~Ro2$E< I>remyJ5b?Zz5oCK diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/index.jsp b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/index.jsp deleted file mode 100644 index 77a2bd6a9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/index.jsp +++ /dev/null @@ -1,20 +0,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. - --%> - -<%response.sendRedirect( request.getContextPath() + "/index.action" );%> \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/builder.js b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/builder.js deleted file mode 100644 index b7466ad83..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/builder.js +++ /dev/null @@ -1,160 +0,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. - */ - -// script.aculo.us builder.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006 - -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// -// See scriptaculous.js for full license. - -var Builder = { - NODEMAP: { - AREA: 'map', - CAPTION: 'table', - COL: 'table', - COLGROUP: 'table', - LEGEND: 'fieldset', - OPTGROUP: 'select', - OPTION: 'select', - PARAM: 'object', - TBODY: 'table', - TD: 'table', - TFOOT: 'table', - TH: 'table', - THEAD: 'table', - TR: 'table' - }, -// note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken, -// due to a Firefox bug - node: function( elementName ) - { - elementName = elementName.toUpperCase(); - - // try innerHTML approach - var parentTag = this.NODEMAP[elementName] || 'div'; - var parentElement = document.createElement(parentTag); - try - { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707 - parentElement.innerHTML = "<" + elementName + ">"; - } - catch( e ) - { - } - var element = parentElement.firstChild || null; - - // see if browser added wrapping tags - if ( element && (element.tagName != elementName) ) - element = element.getElementsByTagName(elementName)[0]; - - // fallback to createElement approach - if ( !element ) element = document.createElement(elementName); - - // abort if nothing could be created - if ( !element ) return; - - // attributes (or text) - if ( arguments[1] ) - if ( this._isStringOrNumber(arguments[1]) || (arguments[1] instanceof Array) ) - { - this._children(element, arguments[1]); - } - else - { - var attrs = this._attributes(arguments[1]); - if ( attrs.length ) - { - try - { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707 - parentElement.innerHTML = "<" + elementName + " " + attrs + ">"; - } - catch( e ) - { - } - element = parentElement.firstChild || null; - // workaround firefox 1.0.X bug - if ( !element ) - { - element = document.createElement(elementName); - for ( attr in arguments[1] ) - element[attr == 'class' ? 'className' : attr] = arguments[1][attr]; - } - if ( element.tagName != elementName ) - element = parentElement.getElementsByTagName(elementName)[0]; - } - } - - // text, or array of children - if ( arguments[2] ) - this._children(element, arguments[2]); - - return element; - }, - _text: function( text ) - { - return document.createTextNode(text); - }, - _attributes: function( attributes ) - { - var attrs = []; - for ( attribute in attributes ) - attrs.push((attribute == 'className' ? 'class' : attribute) + '="' + - attributes[attribute].toString().escapeHTML() + '"'); - return attrs.join(" "); - }, - _children: function( element, children ) - { - if ( typeof children == 'object' ) - { // array can hold nodes and text - children.flatten().each(function( e ) - { - if ( typeof e == 'object' ) - element.appendChild(e) - else - if ( Builder._isStringOrNumber(e) ) - element.appendChild(Builder._text(e)); - }); - } - else - if ( Builder._isStringOrNumber(children) ) - element.appendChild(Builder._text(children)); - }, - _isStringOrNumber: function( param ) - { - return(typeof param == 'string' || typeof param == 'number'); - }, - dump: function( scope ) - { - if ( typeof scope != 'object' && typeof scope != 'function' ) scope = window; //global scope - - var tags = ("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY " + - "BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET " + - "FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX " + - "KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P " + - "PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD " + - "TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/); - - tags.each(function( tag ) - { - scope[tag] = function() - { - return Builder.node.apply(Builder, [tag].concat($A(arguments))); - } - }); - } -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/controls.js b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/controls.js deleted file mode 100644 index 8920d9375..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/controls.js +++ /dev/null @@ -1,969 +0,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. - */ - -// script.aculo.us controls.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006 - -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// (c) 2005 Ivan Krstic (http://blogs.law.harvard.edu/ivan) -// (c) 2005 Jon Tirsen (http://www.tirsen.com) -// Contributors: -// Richard Livsey -// Rahul Bhargava -// Rob Wills -// -// See scriptaculous.js for full license. - -// Autocompleter.Base handles all the autocompletion functionality -// that's independent of the data source for autocompletion. This -// includes drawing the autocompletion menu, observing keyboard -// and mouse events, and similar. -// -// Specific autocompleters need to provide, at the very least, -// a getUpdatedChoices function that will be invoked every time -// the text inside the monitored textbox changes. This method -// should get the text for which to provide autocompletion by -// invoking this.getToken(), NOT by directly accessing -// this.element.value. This is to allow incremental tokenized -// autocompletion. Specific auto-completion logic (AJAX, etc) -// belongs in getUpdatedChoices. -// -// Tokenized incremental autocompletion is enabled automatically -// when an autocompleter is instantiated with the 'tokens' option -// in the options parameter, e.g.: -// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' }); -// will incrementally autocomplete with a comma as the token. -// Additionally, ',' in the above example can be replaced with -// a token array, e.g. { tokens: [',', '\n'] } which -// enables autocompletion on multiple tokens. This is most -// useful when one of the tokens is \n (a newline), as it -// allows smart autocompletion after linebreaks. - -if ( typeof Effect == 'undefined' ) - throw("controls.js requires including script.aculo.us' effects.js library"); - -var Autocompleter = {} -Autocompleter.Base = function() -{ -}; -Autocompleter.Base.prototype = { - baseInitialize: function( element, update, options ) - { - this.element = $(element); - this.update = $(update); - this.hasFocus = false; - this.changed = false; - this.active = false; - this.index = 0; - this.entryCount = 0; - - if ( this.setOptions ) - this.setOptions(options); - else - this.options = options || {}; - - this.options.paramName = this.options.paramName || this.element.name; - this.options.tokens = this.options.tokens || []; - this.options.frequency = this.options.frequency || 0.4; - this.options.minChars = this.options.minChars || 1; - this.options.onShow = this.options.onShow || function( element, update ) - { - if ( !update.style.position || update.style.position == 'absolute' ) - { - update.style.position = 'absolute'; - Position.clone(element, update, { - setHeight: false, - offsetTop: element.offsetHeight - }); - } - Effect.Appear(update, {duration:0.15}); - }; - this.options.onHide = this.options.onHide || function( element, update ) - { - new Effect.Fade(update, {duration:0.15}) - }; - - if ( typeof(this.options.tokens) == 'string' ) - this.options.tokens = new Array(this.options.tokens); - - this.observer = null; - - this.element.setAttribute('autocomplete', 'off'); - - Element.hide(this.update); - - Event.observe(this.element, "blur", this.onBlur.bindAsEventListener(this)); - Event.observe(this.element, "keypress", this.onKeyPress.bindAsEventListener(this)); - }, - - show: function() - { - if ( Element.getStyle(this.update, 'display') == 'none' ) this.options.onShow(this.element, this.update); - if ( !this.iefix && (navigator.appVersion.indexOf('MSIE') > 0) && (navigator.userAgent.indexOf('Opera') < 0) && - (Element.getStyle(this.update, 'position') == 'absolute') ) - { - new Insertion.After(this.update, ''); - this.iefix = $(this.update.id + '_iefix'); - } - if ( this.iefix ) setTimeout(this.fixIEOverlapping.bind(this), 50); - }, - - fixIEOverlapping: function() - { - Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)}); - this.iefix.style.zIndex = 1; - this.update.style.zIndex = 2; - Element.show(this.iefix); - }, - - hide: function() - { - this.stopIndicator(); - if ( Element.getStyle(this.update, 'display') != 'none' ) this.options.onHide(this.element, this.update); - if ( this.iefix ) Element.hide(this.iefix); - }, - - startIndicator: function() - { - if ( this.options.indicator ) Element.show(this.options.indicator); - }, - - stopIndicator: function() - { - if ( this.options.indicator ) Element.hide(this.options.indicator); - }, - - onKeyPress: function( event ) - { - if ( this.active ) - switch ( event.keyCode ) - { - case Event.KEY_TAB: - case Event.KEY_RETURN: - this.selectEntry(); - Event.stop(event); - case Event.KEY_ESC: - this.hide(); - this.active = false; - Event.stop(event); - return; - case Event.KEY_LEFT: - case Event.KEY_RIGHT: - return; - case Event.KEY_UP: - this.markPrevious(); - this.render(); - if ( navigator.appVersion.indexOf('AppleWebKit') > 0 ) Event.stop(event); - return; - case Event.KEY_DOWN: - this.markNext(); - this.render(); - if ( navigator.appVersion.indexOf('AppleWebKit') > 0 ) Event.stop(event); - return; - } - else - if ( event.keyCode == Event.KEY_TAB || event.keyCode == Event.KEY_RETURN || - (navigator.appVersion.indexOf('AppleWebKit') > 0 && event.keyCode == 0) ) return; - - this.changed = true; - this.hasFocus = true; - - if ( this.observer ) clearTimeout(this.observer); - this.observer = setTimeout(this.onObserverEvent.bind(this), this.options.frequency * 1000); - }, - - activate: function() - { - this.changed = false; - this.hasFocus = true; - this.getUpdatedChoices(); - }, - - onHover: function( event ) - { - var element = Event.findElement(event, 'LI'); - if ( this.index != element.autocompleteIndex ) - { - this.index = element.autocompleteIndex; - this.render(); - } - Event.stop(event); - }, - - onClick: function( event ) - { - var element = Event.findElement(event, 'LI'); - this.index = element.autocompleteIndex; - this.selectEntry(); - this.hide(); - }, - - onBlur: function( event ) - { - // needed to make click events working - setTimeout(this.hide.bind(this), 250); - this.hasFocus = false; - this.active = false; - }, - - render: function() - { - if ( this.entryCount > 0 ) - { - for ( var i = 0; i < this.entryCount; i++ ) - this.index == i ? Element.addClassName(this.getEntry(i), "selected") - : Element.removeClassName(this.getEntry(i), "selected"); - - if ( this.hasFocus ) - { - this.show(); - this.active = true; - } - } - else - { - this.active = false; - this.hide(); - } - }, - - markPrevious: function() - { - if ( this.index > 0 ) this.index-- - else this.index = this.entryCount - 1; - this.getEntry(this.index).scrollIntoView(true); - }, - - markNext: function() - { - if ( this.index < this.entryCount - 1 ) this.index++ - else this.index = 0; - this.getEntry(this.index).scrollIntoView(false); - }, - - getEntry: function( index ) - { - return this.update.firstChild.childNodes[index]; - }, - - getCurrentEntry: function() - { - return this.getEntry(this.index); - }, - - selectEntry: function() - { - this.active = false; - this.updateElement(this.getCurrentEntry()); - }, - - updateElement: function( selectedElement ) - { - if ( this.options.updateElement ) - { - this.options.updateElement(selectedElement); - return; - } - var value = ''; - if ( this.options.select ) - { - var nodes = document.getElementsByClassName(this.options.select, selectedElement) || []; - if ( nodes.length > 0 ) value = Element.collectTextNodes(nodes[0], this.options.select); - } - else - value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal'); - - var lastTokenPos = this.findLastToken(); - if ( lastTokenPos != -1 ) - { - var newValue = this.element.value.substr(0, lastTokenPos + 1); - var whitespace = this.element.value.substr(lastTokenPos + 1).match(/^\s+/); - if ( whitespace ) - newValue += whitespace[0]; - this.element.value = newValue + value; - } - else - { - this.element.value = value; - } - this.element.focus(); - - if ( this.options.afterUpdateElement ) - this.options.afterUpdateElement(this.element, selectedElement); - }, - - updateChoices: function( choices ) - { - if ( !this.changed && this.hasFocus ) - { - this.update.innerHTML = choices; - Element.cleanWhitespace(this.update); - Element.cleanWhitespace(this.update.firstChild); - - if ( this.update.firstChild && this.update.firstChild.childNodes ) - { - this.entryCount = this.update.firstChild.childNodes.length; - for ( var i = 0; i < this.entryCount; i++ ) - { - var entry = this.getEntry(i); - entry.autocompleteIndex = i; - this.addObservers(entry); - } - } - else - { - this.entryCount = 0; - } - - this.stopIndicator(); - this.index = 0; - - if ( this.entryCount == 1 && this.options.autoSelect ) - { - this.selectEntry(); - this.hide(); - } - else - { - this.render(); - } - } - }, - - addObservers: function( element ) - { - Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this)); - Event.observe(element, "click", this.onClick.bindAsEventListener(this)); - }, - - onObserverEvent: function() - { - this.changed = false; - if ( this.getToken().length >= this.options.minChars ) - { - this.startIndicator(); - this.getUpdatedChoices(); - } - else - { - this.active = false; - this.hide(); - } - }, - - getToken: function() - { - var tokenPos = this.findLastToken(); - if ( tokenPos != -1 ) - var ret = this.element.value.substr(tokenPos + 1).replace(/^\s+/, '').replace(/\s+$/, ''); - else - var ret = this.element.value; - - return /\n/.test(ret) ? '' : ret; - }, - - findLastToken: function() - { - var lastTokenPos = -1; - - for ( var i = 0; i < this.options.tokens.length; i++ ) - { - var thisTokenPos = this.element.value.lastIndexOf(this.options.tokens[i]); - if ( thisTokenPos > lastTokenPos ) - lastTokenPos = thisTokenPos; - } - return lastTokenPos; - } -} - -Ajax.Autocompleter = Class.create(); -Object.extend(Object.extend(Ajax.Autocompleter.prototype, Autocompleter.Base.prototype), { - initialize: function( element, update, url, options ) - { - this.baseInitialize(element, update, options); - this.options.asynchronous = true; - this.options.onComplete = this.onComplete.bind(this); - this.options.defaultParams = this.options.parameters || null; - this.url = url; - }, - - getUpdatedChoices: function() - { - entry = encodeURIComponent(this.options.paramName) + '=' + encodeURIComponent(this.getToken()); - - this.options.parameters = this.options.callback ? this.options.callback(this.element, entry) : entry; - - if ( this.options.defaultParams ) - this.options.parameters += '&' + this.options.defaultParams; - - new Ajax.Request(this.url, this.options); - }, - - onComplete: function( request ) - { - this.updateChoices(request.responseText); - } - -}); - -// The local array autocompleter. Used when you'd prefer to -// inject an array of autocompletion options into the page, rather -// than sending out Ajax queries, which can be quite slow sometimes. -// -// The constructor takes four parameters. The first two are, as usual, -// the id of the monitored textbox, and id of the autocompletion menu. -// The third is the array you want to autocomplete from, and the fourth -// is the options block. -// -// Extra local autocompletion options: -// - choices - How many autocompletion choices to offer -// -// - partialSearch - If false, the autocompleter will match entered -// text only at the beginning of strings in the -// autocomplete array. Defaults to true, which will -// match text at the beginning of any *word* in the -// strings in the autocomplete array. If you want to -// search anywhere in the string, additionally set -// the option fullSearch to true (default: off). -// -// - fullSsearch - Search anywhere in autocomplete array strings. -// -// - partialChars - How many characters to enter before triggering -// a partial match (unlike minChars, which defines -// how many characters are required to do any match -// at all). Defaults to 2. -// -// - ignoreCase - Whether to ignore case when autocompleting. -// Defaults to true. -// -// It's possible to pass in a custom function as the 'selector' -// option, if you prefer to write your own autocompletion logic. -// In that case, the other options above will not apply unless -// you support them. - -Autocompleter.Local = Class.create(); -Autocompleter.Local.prototype = Object.extend(new Autocompleter.Base(), { - initialize: function( element, update, array, options ) - { - this.baseInitialize(element, update, options); - this.options.array = array; - }, - - getUpdatedChoices: function() - { - this.updateChoices(this.options.selector(this)); - }, - - setOptions: function( options ) - { - this.options = Object.extend({ - choices: 10, - partialSearch: true, - partialChars: 2, - ignoreCase: true, - fullSearch: false, - selector: function( instance ) - { - var ret = []; - // Beginning matches - var partial = []; - // Inside matches - var entry = instance.getToken(); - var count = 0; - - for ( var i = 0; i < instance.options.array.length && ret.length < instance.options.choices; i++ ) - { - - var elem = instance.options.array[i]; - var foundPos = instance.options.ignoreCase ? elem.toLowerCase().indexOf(entry.toLowerCase()) - : elem.indexOf(entry); - - while ( foundPos != -1 ) - { - if ( foundPos == 0 && elem.length != entry.length ) - { - ret.push("
  • " + elem.substr(0, entry.length) + "" + - elem.substr(entry.length) + "
  • "); - break; - } - else if ( entry.length >= instance.options.partialChars && instance.options.partialSearch && - foundPos != -1 ) - { - if ( instance.options.fullSearch || /\s/.test(elem.substr(foundPos - 1, 1)) ) - { - partial.push("
  • " + elem.substr(0, foundPos) + "" + - elem.substr(foundPos, entry.length) + "" + - elem.substr(foundPos + entry.length) + "
  • "); - break; - } - } - - foundPos = - instance.options.ignoreCase ? elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) - : elem.indexOf(entry, foundPos + 1); - - } - } - if ( partial.length ) - ret = ret.concat(partial.slice(0, instance.options.choices - ret.length)) - return "
      " + ret.join('') + "
    "; - } - }, options || {}); - } -}); - -// AJAX in-place editor -// -// see documentation on http://wiki.script.aculo.us/scriptaculous/show/Ajax.InPlaceEditor - -// Use this if you notice weird scrolling problems on some browsers, -// the DOM might be a bit confused when this gets called so do this -// waits 1 ms (with setTimeout) until it does the activation -Field.scrollFreeActivate = function( field ) -{ - setTimeout(function() - { - Field.activate(field); - }, 1); -} - -Ajax.InPlaceEditor = Class.create(); -Ajax.InPlaceEditor.defaultHighlightColor = "#FFFF99"; -Ajax.InPlaceEditor.prototype = { - initialize: function( element, url, options ) - { - this.url = url; - this.element = $(element); - - this.options = Object.extend({ - okButton: true, - okText: "ok", - cancelLink: true, - cancelText: "cancel", - savingText: "Saving...", - clickToEditText: "Click to edit", - okText: "ok", - rows: 1, - onComplete: function( transport, element ) - { - new Effect.Highlight(element, {startcolor: this.options.highlightcolor}); - }, - onFailure: function( transport ) - { - alert("Error communicating with the server: " + transport.responseText.stripTags()); - }, - callback: function( form ) - { - return Form.serialize(form); - }, - handleLineBreaks: true, - loadingText: 'Loading...', - savingClassName: 'inplaceeditor-saving', - loadingClassName: 'inplaceeditor-loading', - formClassName: 'inplaceeditor-form', - highlightcolor: Ajax.InPlaceEditor.defaultHighlightColor, - highlightendcolor: "#FFFFFF", - externalControl: null, - submitOnBlur: false, - ajaxOptions: {}, - evalScripts: false - }, options || {}); - - if ( !this.options.formId && this.element.id ) - { - this.options.formId = this.element.id + "-inplaceeditor"; - if ( $(this.options.formId) ) - { - // there's already a form with that name, don't specify an id - this.options.formId = null; - } - } - - if ( this.options.externalControl ) - { - this.options.externalControl = $(this.options.externalControl); - } - - this.originalBackground = Element.getStyle(this.element, 'background-color'); - if ( !this.originalBackground ) - { - this.originalBackground = "transparent"; - } - - this.element.title = this.options.clickToEditText; - - this.onclickListener = this.enterEditMode.bindAsEventListener(this); - this.mouseoverListener = this.enterHover.bindAsEventListener(this); - this.mouseoutListener = this.leaveHover.bindAsEventListener(this); - Event.observe(this.element, 'click', this.onclickListener); - Event.observe(this.element, 'mouseover', this.mouseoverListener); - Event.observe(this.element, 'mouseout', this.mouseoutListener); - if ( this.options.externalControl ) - { - Event.observe(this.options.externalControl, 'click', this.onclickListener); - Event.observe(this.options.externalControl, 'mouseover', this.mouseoverListener); - Event.observe(this.options.externalControl, 'mouseout', this.mouseoutListener); - } - }, - enterEditMode: function( evt ) - { - if ( this.saving ) return; - if ( this.editing ) return; - this.editing = true; - this.onEnterEditMode(); - if ( this.options.externalControl ) - { - Element.hide(this.options.externalControl); - } - Element.hide(this.element); - this.createForm(); - this.element.parentNode.insertBefore(this.form, this.element); - if ( !this.options.loadTextURL ) Field.scrollFreeActivate(this.editField); - // stop the event to avoid a page refresh in Safari - if ( evt ) - { - Event.stop(evt); - } - return false; - }, - createForm: function() - { - this.form = document.createElement("form"); - this.form.id = this.options.formId; - Element.addClassName(this.form, this.options.formClassName) - this.form.onsubmit = this.onSubmit.bind(this); - - this.createEditField(); - - if ( this.options.textarea ) - { - var br = document.createElement("br"); - this.form.appendChild(br); - } - - if ( this.options.okButton ) - { - okButton = document.createElement("input"); - okButton.type = "submit"; - okButton.value = this.options.okText; - okButton.className = 'editor_ok_button'; - this.form.appendChild(okButton); - } - - if ( this.options.cancelLink ) - { - cancelLink = document.createElement("a"); - cancelLink.href = "#"; - cancelLink.appendChild(document.createTextNode(this.options.cancelText)); - cancelLink.onclick = this.onclickCancel.bind(this); - cancelLink.className = 'editor_cancel'; - this.form.appendChild(cancelLink); - } - }, - hasHTMLLineBreaks: function( string ) - { - if ( !this.options.handleLineBreaks ) return false; - return string.match(/
    /i); - }, - convertHTMLLineBreaks: function( string ) - { - return string.replace(/
    /gi, "\n").replace(//gi, "\n").replace(/<\/p>/gi, "\n").replace(/

    /gi, ""); - }, - createEditField: function() - { - var text; - if ( this.options.loadTextURL ) - { - text = this.options.loadingText; - } - else - { - text = this.getText(); - } - - var obj = this; - - if ( this.options.rows == 1 && !this.hasHTMLLineBreaks(text) ) - { - this.options.textarea = false; - var textField = document.createElement("input"); - textField.obj = this; - textField.type = "text"; - textField.name = "value"; - textField.value = text; - textField.style.backgroundColor = this.options.highlightcolor; - textField.className = 'editor_field'; - var size = this.options.size || this.options.cols || 0; - if ( size != 0 ) textField.size = size; - if ( this.options.submitOnBlur ) - textField.onblur = this.onSubmit.bind(this); - this.editField = textField; - } - else - { - this.options.textarea = true; - var textArea = document.createElement("textarea"); - textArea.obj = this; - textArea.name = "value"; - textArea.value = this.convertHTMLLineBreaks(text); - textArea.rows = this.options.rows; - textArea.cols = this.options.cols || 40; - textArea.className = 'editor_field'; - if ( this.options.submitOnBlur ) - textArea.onblur = this.onSubmit.bind(this); - this.editField = textArea; - } - - if ( this.options.loadTextURL ) - { - this.loadExternalText(); - } - this.form.appendChild(this.editField); - }, - getText: function() - { - return this.element.innerHTML; - }, - loadExternalText: function() - { - Element.addClassName(this.form, this.options.loadingClassName); - this.editField.disabled = true; - new Ajax.Request(this.options.loadTextURL, Object.extend({ - asynchronous: true, - onComplete: this.onLoadedExternalText.bind(this) - }, this.options.ajaxOptions)); - }, - onLoadedExternalText: function( transport ) - { - Element.removeClassName(this.form, this.options.loadingClassName); - this.editField.disabled = false; - this.editField.value = transport.responseText.stripTags(); - Field.scrollFreeActivate(this.editField); - }, - onclickCancel: function() - { - this.onComplete(); - this.leaveEditMode(); - return false; - }, - onFailure: function( transport ) - { - this.options.onFailure(transport); - if ( this.oldInnerHTML ) - { - this.element.innerHTML = this.oldInnerHTML; - this.oldInnerHTML = null; - } - return false; - }, - onSubmit: function() - { - // onLoading resets these so we need to save them away for the Ajax call - var form = this.form; - var value = this.editField.value; - - // do this first, sometimes the ajax call returns before we get a chance to switch on Saving... - // which means this will actually switch on Saving... *after* we've left edit mode causing Saving... - // to be displayed indefinitely - this.onLoading(); - - if ( this.options.evalScripts ) - { - new Ajax.Request(this.url, Object.extend({ - parameters: this.options.callback(form, value), - onComplete: this.onComplete.bind(this), - onFailure: this.onFailure.bind(this), - asynchronous:true, - evalScripts:true - }, this.options.ajaxOptions)); - } - else - { - new Ajax.Updater({ success: this.element, - // don't update on failure (this could be an option) - failure: null }, this.url, Object.extend({ - parameters: this.options.callback(form, value), - onComplete: this.onComplete.bind(this), - onFailure: this.onFailure.bind(this) - }, this.options.ajaxOptions)); - } - // stop the event to avoid a page refresh in Safari - if ( arguments.length > 1 ) - { - Event.stop(arguments[0]); - } - return false; - }, - onLoading: function() - { - this.saving = true; - this.removeForm(); - this.leaveHover(); - this.showSaving(); - }, - showSaving: function() - { - this.oldInnerHTML = this.element.innerHTML; - this.element.innerHTML = this.options.savingText; - Element.addClassName(this.element, this.options.savingClassName); - this.element.style.backgroundColor = this.originalBackground; - Element.show(this.element); - }, - removeForm: function() - { - if ( this.form ) - { - if ( this.form.parentNode ) Element.remove(this.form); - this.form = null; - } - }, - enterHover: function() - { - if ( this.saving ) return; - this.element.style.backgroundColor = this.options.highlightcolor; - if ( this.effect ) - { - this.effect.cancel(); - } - Element.addClassName(this.element, this.options.hoverClassName) - }, - leaveHover: function() - { - if ( this.options.backgroundColor ) - { - this.element.style.backgroundColor = this.oldBackground; - } - Element.removeClassName(this.element, this.options.hoverClassName) - if ( this.saving ) return; - this.effect = new Effect.Highlight(this.element, { - startcolor: this.options.highlightcolor, - endcolor: this.options.highlightendcolor, - restorecolor: this.originalBackground - }); - }, - leaveEditMode: function() - { - Element.removeClassName(this.element, this.options.savingClassName); - this.removeForm(); - this.leaveHover(); - this.element.style.backgroundColor = this.originalBackground; - Element.show(this.element); - if ( this.options.externalControl ) - { - Element.show(this.options.externalControl); - } - this.editing = false; - this.saving = false; - this.oldInnerHTML = null; - this.onLeaveEditMode(); - }, - onComplete: function( transport ) - { - this.leaveEditMode(); - this.options.onComplete.bind(this)(transport, this.element); - }, - onEnterEditMode: function() - { - }, - onLeaveEditMode: function() - { - }, - dispose: function() - { - if ( this.oldInnerHTML ) - { - this.element.innerHTML = this.oldInnerHTML; - } - this.leaveEditMode(); - Event.stopObserving(this.element, 'click', this.onclickListener); - Event.stopObserving(this.element, 'mouseover', this.mouseoverListener); - Event.stopObserving(this.element, 'mouseout', this.mouseoutListener); - if ( this.options.externalControl ) - { - Event.stopObserving(this.options.externalControl, 'click', this.onclickListener); - Event.stopObserving(this.options.externalControl, 'mouseover', this.mouseoverListener); - Event.stopObserving(this.options.externalControl, 'mouseout', this.mouseoutListener); - } - } -}; - -Ajax.InPlaceCollectionEditor = Class.create(); -Object.extend(Ajax.InPlaceCollectionEditor.prototype, Ajax.InPlaceEditor.prototype); -Object.extend(Ajax.InPlaceCollectionEditor.prototype, { - createEditField: function() - { - if ( !this.cached_selectTag ) - { - var selectTag = document.createElement("select"); - var collection = this.options.collection || []; - var optionTag; - collection.each(function( e, i ) - { - optionTag = document.createElement("option"); - optionTag.value = (e instanceof Array) ? e[0] : e; - if ( (typeof this.options.value == 'undefined') && - ((e instanceof Array) ? this.element.innerHTML == e[1] : e == - optionTag.value) ) optionTag.selected = - true; - if ( this.options.value == optionTag.value ) optionTag.selected = true; - optionTag.appendChild(document.createTextNode((e instanceof Array) ? e[1] : e)); - selectTag.appendChild(optionTag); - }.bind(this)); - this.cached_selectTag = selectTag; - } - - this.editField = this.cached_selectTag; - if ( this.options.loadTextURL ) this.loadExternalText(); - this.form.appendChild(this.editField); - this.options.callback = function( form, value ) - { - return "value=" + encodeURIComponent(value); - } - } -}); - -// Delayed observer, like Form.Element.Observer, -// but waits for delay after last key input -// Ideal for live-search fields - -Form.Element.DelayedObserver = Class.create(); -Form.Element.DelayedObserver.prototype = { - initialize: function( element, delay, callback ) - { - this.delay = delay || 0.5; - this.element = $(element); - this.callback = callback; - this.timer = null; - this.lastValue = $F(this.element); - Event.observe(this.element, 'keyup', this.delayedListener.bindAsEventListener(this)); - }, - delayedListener: function( event ) - { - if ( this.lastValue == $F(this.element) ) return; - if ( this.timer ) clearTimeout(this.timer); - this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000); - this.lastValue = $F(this.element); - }, - onTimerEvent: function() - { - this.timer = null; - this.callback(this.element, $F(this.element)); - } -}; diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/dragdrop.js b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/dragdrop.js deleted file mode 100644 index 2f8c0522b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/dragdrop.js +++ /dev/null @@ -1,1178 +0,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. - */ - -// script.aculo.us dragdrop.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006 - -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// (c) 2005 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz) -// -// See scriptaculous.js for full license. - -/*--------------------------------------------------------------------------*/ - -if ( typeof Effect == 'undefined' ) - throw("dragdrop.js requires including script.aculo.us' effects.js library"); - -var Droppables = { - drops: [], - - remove: function( element ) - { - this.drops = this.drops.reject(function( d ) - { - return d.element == $(element) - }); - }, - - add: function( element ) - { - element = $(element); - var options = Object.extend({ - greedy: true, - hoverclass: null, - tree: false - }, arguments[1] || {}); - - // cache containers - if ( options.containment ) - { - options._containers = []; - var containment = options.containment; - if ( (typeof containment == 'object') && (containment.constructor == Array) ) - { - containment.each(function( c ) - { - options._containers.push($(c)) - }); - } - else - { - options._containers.push($(containment)); - } - } - - if ( options.accept ) options.accept = [options.accept].flatten(); - - Element.makePositioned(element); - // fix IE - options.element = element; - - this.drops.push(options); - }, - - findDeepestChild: function( drops ) - { - deepest = drops[0]; - - for ( i = 1; i < drops.length; ++i ) - if ( Element.isParent(drops[i].element, deepest.element) ) - deepest = drops[i]; - - return deepest; - }, - - isContained: function( element, drop ) - { - var containmentNode; - if ( drop.tree ) - { - containmentNode = element.treeNode; - } - else - { - containmentNode = element.parentNode; - } - return drop._containers.detect(function( c ) - { - return containmentNode == c - }); - }, - - isAffected: function( point, element, drop ) - { - return ( - (drop.element != element) && ((!drop._containers) || this.isContained(element, drop)) && - ((!drop.accept) || (Element.classNames(element).detect(function( v ) - { - return drop.accept.include(v) - }) )) && Position.within(drop.element, point[0], point[1]) ); - }, - - deactivate: function( drop ) - { - if ( drop.hoverclass ) - Element.removeClassName(drop.element, drop.hoverclass); - this.last_active = null; - }, - - activate: function( drop ) - { - if ( drop.hoverclass ) - Element.addClassName(drop.element, drop.hoverclass); - this.last_active = drop; - }, - - show: function( point, element ) - { - if ( !this.drops.length ) return; - var affected = []; - - if ( this.last_active ) this.deactivate(this.last_active); - this.drops.each(function( drop ) - { - if ( Droppables.isAffected(point, element, drop) ) - affected.push(drop); - }); - - if ( affected.length > 0 ) - { - drop = Droppables.findDeepestChild(affected); - Position.within(drop.element, point[0], point[1]); - if ( drop.onHover ) - drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element)); - - Droppables.activate(drop); - } - }, - - fire: function( event, element ) - { - if ( !this.last_active ) return; - Position.prepare(); - - if ( this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active) ) - if ( this.last_active.onDrop ) - this.last_active.onDrop(element, this.last_active.element, event); - }, - - reset: function() - { - if ( this.last_active ) - this.deactivate(this.last_active); - } -} - -var Draggables = { - drags: [], - observers: [], - - register: function( draggable ) - { - if ( this.drags.length == 0 ) - { - this.eventMouseUp = this.endDrag.bindAsEventListener(this); - this.eventMouseMove = this.updateDrag.bindAsEventListener(this); - this.eventKeypress = this.keyPress.bindAsEventListener(this); - - Event.observe(document, "mouseup", this.eventMouseUp); - Event.observe(document, "mousemove", this.eventMouseMove); - Event.observe(document, "keypress", this.eventKeypress); - } - this.drags.push(draggable); - }, - - unregister: function( draggable ) - { - this.drags = this.drags.reject(function( d ) - { - return d == draggable - }); - if ( this.drags.length == 0 ) - { - Event.stopObserving(document, "mouseup", this.eventMouseUp); - Event.stopObserving(document, "mousemove", this.eventMouseMove); - Event.stopObserving(document, "keypress", this.eventKeypress); - } - }, - - activate: function( draggable ) - { - if ( draggable.options.delay ) - { - this._timeout = setTimeout(function() - { - Draggables._timeout = null; - window.focus(); - Draggables.activeDraggable = draggable; - }.bind(this), draggable.options.delay); - } - else - { - window.focus(); - // allows keypress events if window isn't currently focused, fails for Safari - this.activeDraggable = draggable; - } - }, - - deactivate: function() - { - this.activeDraggable = null; - }, - - updateDrag: function( event ) - { - if ( !this.activeDraggable ) return; - var pointer = [Event.pointerX(event), Event.pointerY(event)]; - // Mozilla-based browsers fire successive mousemove events with - // the same coordinates, prevent needless redrawing (moz bug?) - if ( this._lastPointer && (this._lastPointer.inspect() == pointer.inspect()) ) return; - this._lastPointer = pointer; - - this.activeDraggable.updateDrag(event, pointer); - }, - - endDrag: function( event ) - { - if ( this._timeout ) - { - clearTimeout(this._timeout); - this._timeout = null; - } - if ( !this.activeDraggable ) return; - this._lastPointer = null; - this.activeDraggable.endDrag(event); - this.activeDraggable = null; - }, - - keyPress: function( event ) - { - if ( this.activeDraggable ) - this.activeDraggable.keyPress(event); - }, - - addObserver: function( observer ) - { - this.observers.push(observer); - this._cacheObserverCallbacks(); - }, - - removeObserver: function( element ) - { // element instead of observer fixes mem leaks - this.observers = this.observers.reject(function( o ) - { - return o.element == element - }); - this._cacheObserverCallbacks(); - }, - - notify: function( eventName, draggable, event ) - { // 'onStart', 'onEnd', 'onDrag' - if ( this[eventName + 'Count'] > 0 ) - this.observers.each(function( o ) - { - if ( o[eventName] ) o[eventName](eventName, draggable, event); - }); - if ( draggable.options[eventName] ) draggable.options[eventName](draggable, event); - }, - - _cacheObserverCallbacks: function() - { - ['onStart','onEnd','onDrag'].each(function( eventName ) - { - Draggables[eventName + 'Count'] = Draggables.observers.select(function( o ) - { - return o[eventName]; - }).length; - }); - } -} - -/*--------------------------------------------------------------------------*/ - -var Draggable = Class.create(); -Draggable._dragging = {}; - -Draggable.prototype = { - initialize: function( element ) - { - var defaults = { - handle: false, - reverteffect: function( element, top_offset, left_offset ) - { - var dur = Math.sqrt(Math.abs(top_offset ^ 2) + Math.abs(left_offset ^ 2)) * 0.02; - new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur, - queue: {scope:'_draggable', position:'end'} - }); - }, - endeffect: function( element ) - { - var toOpacity = typeof element._opacity == 'number' ? element._opacity : 1.0; - new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, - queue: {scope:'_draggable', position:'end'}, - afterFinish: function() - { - Draggable._dragging[element] = false - } - }); - }, - zindex: 1000, - revert: false, - scroll: false, - scrollSensitivity: 20, - scrollSpeed: 15, - snap: false, // false, or xy or [x,y] or function(x,y){ return [x,y] } - delay: 0 - }; - - if ( arguments[1] && typeof arguments[1].endeffect == 'undefined' ) - Object.extend(defaults, { - starteffect: function( element ) - { - element._opacity = Element.getOpacity(element); - Draggable._dragging[element] = true; - new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); - } - }); - - var options = Object.extend(defaults, arguments[1] || {}); - - this.element = $(element); - - if ( options.handle && (typeof options.handle == 'string') ) - { - var h = Element.childrenWithClassName(this.element, options.handle, true); - if ( h.length > 0 ) this.handle = h[0]; - } - if ( !this.handle ) this.handle = $(options.handle); - if ( !this.handle ) this.handle = this.element; - - if ( options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML ) - { - options.scroll = $(options.scroll); - this._isScrollChild = Element.childOf(this.element, options.scroll); - } - - Element.makePositioned(this.element); - // fix IE - - this.delta = this.currentDelta(); - this.options = options; - this.dragging = false; - - this.eventMouseDown = this.initDrag.bindAsEventListener(this); - Event.observe(this.handle, "mousedown", this.eventMouseDown); - - Draggables.register(this); - }, - - destroy: function() - { - Event.stopObserving(this.handle, "mousedown", this.eventMouseDown); - Draggables.unregister(this); - }, - - currentDelta: function() - { - return([ - parseInt(Element.getStyle(this.element, 'left') || '0'), - parseInt(Element.getStyle(this.element, 'top') || '0')]); - }, - - initDrag: function( event ) - { - if ( typeof Draggable._dragging[this.element] != 'undefined' && Draggable._dragging[this.element] ) return; - if ( Event.isLeftClick(event) ) - { - // abort on form elements, fixes a Firefox issue - var src = Event.element(event); - if ( src.tagName && ( - src.tagName == 'INPUT' || src.tagName == 'SELECT' || src.tagName == 'OPTION' || - src.tagName == 'BUTTON' || src.tagName == 'TEXTAREA') ) return; - - var pointer = [Event.pointerX(event), Event.pointerY(event)]; - var pos = Position.cumulativeOffset(this.element); - this.offset = [0,1].map(function( i ) - { - return (pointer[i] - pos[i]) - }); - - Draggables.activate(this); - Event.stop(event); - } - }, - - startDrag: function( event ) - { - this.dragging = true; - - if ( this.options.zindex ) - { - this.originalZ = parseInt(Element.getStyle(this.element, 'z-index') || 0); - this.element.style.zIndex = this.options.zindex; - } - - if ( this.options.ghosting ) - { - this._clone = this.element.cloneNode(true); - Position.absolutize(this.element); - this.element.parentNode.insertBefore(this._clone, this.element); - } - - if ( this.options.scroll ) - { - if ( this.options.scroll == window ) - { - var where = this._getWindowScroll(this.options.scroll); - this.originalScrollLeft = where.left; - this.originalScrollTop = where.top; - } - else - { - this.originalScrollLeft = this.options.scroll.scrollLeft; - this.originalScrollTop = this.options.scroll.scrollTop; - } - } - - Draggables.notify('onStart', this, event); - - if ( this.options.starteffect ) this.options.starteffect(this.element); - }, - - updateDrag: function( event, pointer ) - { - if ( !this.dragging ) this.startDrag(event); - Position.prepare(); - Droppables.show(pointer, this.element); - Draggables.notify('onDrag', this, event); - - this.draw(pointer); - if ( this.options.change ) this.options.change(this); - - if ( this.options.scroll ) - { - this.stopScrolling(); - - var p; - if ( this.options.scroll == window ) - { - with ( this._getWindowScroll(this.options.scroll) ) - { - p = [ left, top, left + width, top + height ]; - } - } - else - { - p = Position.page(this.options.scroll); - p[0] += this.options.scroll.scrollLeft; - p[1] += this.options.scroll.scrollTop; - - p[0] += (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0); - p[1] += (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0); - - p.push(p[0] + this.options.scroll.offsetWidth); - p.push(p[1] + this.options.scroll.offsetHeight); - } - var speed = [0,0]; - if ( pointer[0] < (p[0] + this.options.scrollSensitivity) ) speed[0] = pointer[0] - (p[0] + - this.options.scrollSensitivity); - if ( pointer[1] < (p[1] + this.options.scrollSensitivity) ) speed[1] = pointer[1] - (p[1] + - this.options.scrollSensitivity); - if ( pointer[0] > (p[2] - this.options.scrollSensitivity) ) speed[0] = pointer[0] - (p[2] - - this.options.scrollSensitivity); - if ( pointer[1] > (p[3] - this.options.scrollSensitivity) ) speed[1] = pointer[1] - (p[3] - - this.options.scrollSensitivity); - this.startScrolling(speed); - } - - // fix AppleWebKit rendering - if ( navigator.appVersion.indexOf('AppleWebKit') > 0 ) window.scrollBy(0, 0); - - Event.stop(event); - }, - - finishDrag: function( event, success ) - { - this.dragging = false; - - if ( this.options.ghosting ) - { - Position.relativize(this.element); - Element.remove(this._clone); - this._clone = null; - } - - if ( success ) Droppables.fire(event, this.element); - Draggables.notify('onEnd', this, event); - - var revert = this.options.revert; - if ( revert && typeof revert == 'function' ) revert = revert(this.element); - - var d = this.currentDelta(); - if ( revert && this.options.reverteffect ) - { - this.options.reverteffect(this.element, d[1] - this.delta[1], d[0] - this.delta[0]); - } - else - { - this.delta = d; - } - - if ( this.options.zindex ) - this.element.style.zIndex = this.originalZ; - - if ( this.options.endeffect ) - this.options.endeffect(this.element); - - Draggables.deactivate(this); - Droppables.reset(); - }, - - keyPress: function( event ) - { - if ( event.keyCode != Event.KEY_ESC ) return; - this.finishDrag(event, false); - Event.stop(event); - }, - - endDrag: function( event ) - { - if ( !this.dragging ) return; - this.stopScrolling(); - this.finishDrag(event, true); - Event.stop(event); - }, - - draw: function( point ) - { - var pos = Position.cumulativeOffset(this.element); - if ( this.options.ghosting ) - { - var r = Position.realOffset(this.element); - window.status = r.inspect(); - pos[0] += r[0] - Position.deltaX; - pos[1] += r[1] - Position.deltaY; - } - - var d = this.currentDelta(); - pos[0] -= d[0]; - pos[1] -= d[1]; - - if ( this.options.scroll && (this.options.scroll != window && this._isScrollChild) ) - { - pos[0] -= this.options.scroll.scrollLeft - this.originalScrollLeft; - pos[1] -= this.options.scroll.scrollTop - this.originalScrollTop; - } - - var p = [0,1].map(function( i ) - { - return (point[i] - pos[i] - this.offset[i]) - }.bind(this)); - - if ( this.options.snap ) - { - if ( typeof this.options.snap == 'function' ) - { - p = this.options.snap(p[0], p[1], this); - } - else - { - if ( this.options.snap instanceof Array ) - { - p = p.map(function( v, i ) - { - return Math.round(v / this.options.snap[i]) * this.options.snap[i] - }.bind(this)) - } - else - { - p = p.map(function( v ) - { - return Math.round(v / this.options.snap) * this.options.snap - }.bind(this)) - } - } - } - - var style = this.element.style; - if ( (!this.options.constraint) || (this.options.constraint == 'horizontal') ) - style.left = p[0] + "px"; - if ( (!this.options.constraint) || (this.options.constraint == 'vertical') ) - style.top = p[1] + "px"; - - if ( style.visibility == "hidden" ) style.visibility = ""; // fix gecko rendering - }, - - stopScrolling: function() - { - if ( this.scrollInterval ) - { - clearInterval(this.scrollInterval); - this.scrollInterval = null; - Draggables._lastScrollPointer = null; - } - }, - - startScrolling: function( speed ) - { - if ( !(speed[0] || speed[1]) ) return; - this.scrollSpeed = [speed[0] * this.options.scrollSpeed,speed[1] * this.options.scrollSpeed]; - this.lastScrolled = new Date(); - this.scrollInterval = setInterval(this.scroll.bind(this), 10); - }, - - scroll: function() - { - var current = new Date(); - var delta = current - this.lastScrolled; - this.lastScrolled = current; - if ( this.options.scroll == window ) - { - with ( this._getWindowScroll(this.options.scroll) ) - { - if ( this.scrollSpeed[0] || this.scrollSpeed[1] ) - { - var d = delta / 1000; - this.options.scroll.scrollTo(left + d * this.scrollSpeed[0], top + d * this.scrollSpeed[1]); - } - } - } - else - { - this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000; - this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000; - } - - Position.prepare(); - Droppables.show(Draggables._lastPointer, this.element); - Draggables.notify('onDrag', this); - if ( this._isScrollChild ) - { - Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer); - Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000; - Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000; - if ( Draggables._lastScrollPointer[0] < 0 ) - Draggables._lastScrollPointer[0] = 0; - if ( Draggables._lastScrollPointer[1] < 0 ) - Draggables._lastScrollPointer[1] = 0; - this.draw(Draggables._lastScrollPointer); - } - - if ( this.options.change ) this.options.change(this); - }, - - _getWindowScroll: function( w ) - { - var T, L, W, H; - with ( w.document ) - { - if ( w.document.documentElement && documentElement.scrollTop ) - { - T = documentElement.scrollTop; - L = documentElement.scrollLeft; - } - else if ( w.document.body ) - { - T = body.scrollTop; - L = body.scrollLeft; - } - if ( w.innerWidth ) - { - W = w.innerWidth; - H = w.innerHeight; - } - else if ( w.document.documentElement && documentElement.clientWidth ) - { - W = documentElement.clientWidth; - H = documentElement.clientHeight; - } - else - { - W = body.offsetWidth; - H = body.offsetHeight - } - } - return { top: T, left: L, width: W, height: H }; - } -} - -/*--------------------------------------------------------------------------*/ - -var SortableObserver = Class.create(); -SortableObserver.prototype = { - initialize: function( element, observer ) - { - this.element = $(element); - this.observer = observer; - this.lastValue = Sortable.serialize(this.element); - }, - - onStart: function() - { - this.lastValue = Sortable.serialize(this.element); - }, - - onEnd: function() - { - Sortable.unmark(); - if ( this.lastValue != Sortable.serialize(this.element) ) - this.observer(this.element) - } -} - -var Sortable = { - SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/, - - sortables: {}, - - _findRootElement: function( element ) - { - while ( element.tagName != "BODY" ) - { - if ( element.id && Sortable.sortables[element.id] ) return element; - element = element.parentNode; - } - }, - - options: function( element ) - { - element = Sortable._findRootElement($(element)); - if ( !element ) return; - return Sortable.sortables[element.id]; - }, - - destroy: function( element ) - { - var s = Sortable.options(element); - - if ( s ) - { - Draggables.removeObserver(s.element); - s.droppables.each(function( d ) - { - Droppables.remove(d) - }); - s.draggables.invoke('destroy'); - - delete Sortable.sortables[s.element.id]; - } - }, - - create: function( element ) - { - element = $(element); - var options = Object.extend({ - element: element, - tag: 'li', // assumes li children, override with tag: 'tagname' - dropOnEmpty: false, - tree: false, - treeTag: 'ul', - overlap: 'vertical', // one of 'vertical', 'horizontal' - constraint: 'vertical', // one of 'vertical', 'horizontal', false - containment: element, // also takes array of elements (or id's); or false - handle: false, // or a CSS class - only: false, - delay: 0, - hoverclass: null, - ghosting: false, - scroll: false, - scrollSensitivity: 20, - scrollSpeed: 15, - format: this.SERIALIZE_RULE, - onChange: Prototype.emptyFunction, - onUpdate: Prototype.emptyFunction - }, arguments[1] || {}); - - // clear any old sortable with same element - this.destroy(element); - - // build options for the draggables - var options_for_draggable = { - revert: true, - scroll: options.scroll, - scrollSpeed: options.scrollSpeed, - scrollSensitivity: options.scrollSensitivity, - delay: options.delay, - ghosting: options.ghosting, - constraint: options.constraint, - handle: options.handle }; - - if ( options.starteffect ) - options_for_draggable.starteffect = options.starteffect; - - if ( options.reverteffect ) - options_for_draggable.reverteffect = options.reverteffect; - else - if ( options.ghosting ) options_for_draggable.reverteffect = function( element ) - { - element.style.top = 0; - element.style.left = 0; - }; - - if ( options.endeffect ) - options_for_draggable.endeffect = options.endeffect; - - if ( options.zindex ) - options_for_draggable.zindex = options.zindex; - - // build options for the droppables - var options_for_droppable = { - overlap: options.overlap, - containment: options.containment, - tree: options.tree, - hoverclass: options.hoverclass, - onHover: Sortable.onHover - //greedy: !options.dropOnEmpty - } - - var options_for_tree = { - onHover: Sortable.onEmptyHover, - overlap: options.overlap, - containment: options.containment, - hoverclass: options.hoverclass - } - - // fix for gecko engine - Element.cleanWhitespace(element); - - options.draggables = []; - options.droppables = []; - - // drop on empty handling - if ( options.dropOnEmpty || options.tree ) - { - Droppables.add(element, options_for_tree); - options.droppables.push(element); - } - - (this.findElements(element, options) || []).each(function( e ) - { - // handles are per-draggable - var handle = options.handle ? Element.childrenWithClassName(e, options.handle)[0] : e; - options.draggables.push(new Draggable(e, Object.extend(options_for_draggable, { handle: handle }))); - Droppables.add(e, options_for_droppable); - if ( options.tree ) e.treeNode = element; - options.droppables.push(e); - }); - - if ( options.tree ) - { - (Sortable.findTreeElements(element, options) || []).each(function( e ) - { - Droppables.add(e, options_for_tree); - e.treeNode = element; - options.droppables.push(e); - }); - } - - // keep reference - this.sortables[element.id] = options; - - // for onupdate - Draggables.addObserver(new SortableObserver(element, options.onUpdate)); - - }, - -// return all suitable-for-sortable elements in a guaranteed order - findElements: function( element, options ) - { - return Element.findChildren(element, options.only, options.tree ? true : false, options.tag); - }, - - findTreeElements: function( element, options ) - { - return Element.findChildren(element, options.only, options.tree ? true : false, options.treeTag); - }, - - onHover: function( element, dropon, overlap ) - { - if ( Element.isParent(dropon, element) ) return; - - if ( overlap > .33 && overlap < .66 && Sortable.options(dropon).tree ) - { - return; - } - else if ( overlap > 0.5 ) - { - Sortable.mark(dropon, 'before'); - if ( dropon.previousSibling != element ) - { - var oldParentNode = element.parentNode; - element.style.visibility = "hidden"; - // fix gecko rendering - dropon.parentNode.insertBefore(element, dropon); - if ( dropon.parentNode != oldParentNode ) - Sortable.options(oldParentNode).onChange(element); - Sortable.options(dropon.parentNode).onChange(element); - } - } - else - { - Sortable.mark(dropon, 'after'); - var nextElement = dropon.nextSibling || null; - if ( nextElement != element ) - { - var oldParentNode = element.parentNode; - element.style.visibility = "hidden"; - // fix gecko rendering - dropon.parentNode.insertBefore(element, nextElement); - if ( dropon.parentNode != oldParentNode ) - Sortable.options(oldParentNode).onChange(element); - Sortable.options(dropon.parentNode).onChange(element); - } - } - }, - - onEmptyHover: function( element, dropon, overlap ) - { - var oldParentNode = element.parentNode; - var droponOptions = Sortable.options(dropon); - - if ( !Element.isParent(dropon, element) ) - { - var index; - - var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only}); - var child = null; - - if ( children ) - { - var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap); - - for ( index = 0; index < children.length; index += 1 ) - { - if ( offset - Element.offsetSize(children[index], droponOptions.overlap) >= 0 ) - { - offset -= Element.offsetSize(children[index], droponOptions.overlap); - } - else if ( offset - (Element.offsetSize(children[index], droponOptions.overlap) / 2) >= 0 ) - { - child = index + 1 < children.length ? children[index + 1] : null; - break; - } - else - { - child = children[index]; - break; - } - } - } - - dropon.insertBefore(element, child); - - Sortable.options(oldParentNode).onChange(element); - droponOptions.onChange(element); - } - }, - - unmark: function() - { - if ( Sortable._marker ) Element.hide(Sortable._marker); - }, - - mark: function( dropon, position ) - { - // mark on ghosting only - var sortable = Sortable.options(dropon.parentNode); - if ( sortable && !sortable.ghosting ) return; - - if ( !Sortable._marker ) - { - Sortable._marker = $('dropmarker') || document.createElement('DIV'); - Element.hide(Sortable._marker); - Element.addClassName(Sortable._marker, 'dropmarker'); - Sortable._marker.style.position = 'absolute'; - document.getElementsByTagName("body").item(0).appendChild(Sortable._marker); - } - var offsets = Position.cumulativeOffset(dropon); - Sortable._marker.style.left = offsets[0] + 'px'; - Sortable._marker.style.top = offsets[1] + 'px'; - - if ( position == 'after' ) - if ( sortable.overlap == 'horizontal' ) - Sortable._marker.style.left = (offsets[0] + dropon.clientWidth) + 'px'; - else - Sortable._marker.style.top = (offsets[1] + dropon.clientHeight) + 'px'; - - Element.show(Sortable._marker); - }, - - _tree: function( element, options, parent ) - { - var children = Sortable.findElements(element, options) || []; - - for ( var i = 0; i < children.length; ++i ) - { - var match = children[i].id.match(options.format); - - if ( !match ) continue; - - var child = { - id: encodeURIComponent(match ? match[1] : null), - element: element, - parent: parent, - children: new Array, - position: parent.children.length, - container: Sortable._findChildrenElement(children[i], options.treeTag.toUpperCase()) - } - - /* Get the element containing the children and recurse over it */ - if ( child.container ) - this._tree(child.container, options, child) - - parent.children.push(child); - } - - return parent; - }, - -/* Finds the first element of the given tag type within a parent element. -Used for finding the first LI[ST] within a L[IST]I[TEM].*/ - _findChildrenElement: function ( element, containerTag ) - { - if ( element && element.hasChildNodes ) - for ( var i = 0; i < element.childNodes.length; ++i ) - if ( element.childNodes[i].tagName == containerTag ) - return element.childNodes[i]; - - return null; - }, - - tree: function( element ) - { - element = $(element); - var sortableOptions = this.options(element); - var options = Object.extend({ - tag: sortableOptions.tag, - treeTag: sortableOptions.treeTag, - only: sortableOptions.only, - name: element.id, - format: sortableOptions.format - }, arguments[1] || {}); - - var root = { - id: null, - parent: null, - children: new Array, - container: element, - position: 0 - } - - return Sortable._tree(element, options, root); - }, - -/* Construct a [i] index for a particular node */ - _constructIndex: function( node ) - { - var index = ''; - do { - if ( node.id ) index = '[' + node.position + ']' + index; - } - while ( (node = node.parent) != null ); - return index; - }, - - sequence: function( element ) - { - element = $(element); - var options = Object.extend(this.options(element), arguments[1] || {}); - - return $(this.findElements(element, options) || []).map(function( item ) - { - return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; - }); - }, - - setSequence: function( element, new_sequence ) - { - element = $(element); - var options = Object.extend(this.options(element), arguments[2] || {}); - - var nodeMap = {}; - this.findElements(element, options).each(function( n ) - { - if ( n.id.match(options.format) ) - nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode]; - n.parentNode.removeChild(n); - }); - - new_sequence.each(function( ident ) - { - var n = nodeMap[ident]; - if ( n ) - { - n[1].appendChild(n[0]); - delete nodeMap[ident]; - } - }); - }, - - serialize: function( element ) - { - element = $(element); - var options = Object.extend(Sortable.options(element), arguments[1] || {}); - var name = encodeURIComponent((arguments[1] && arguments[1].name) ? arguments[1].name : element.id); - - if ( options.tree ) - { - return Sortable.tree(element, arguments[1]).children.map(function ( item ) - { - return [name + Sortable._constructIndex(item) + "[id]=" + - encodeURIComponent(item.id)].concat(item.children.map(arguments.callee)); - }).flatten().join('&'); - } - else - { - return Sortable.sequence(element, arguments[1]).map(function( item ) - { - return name + "[]=" + encodeURIComponent(item); - }).join('&'); - } - } -} - -/* Returns true if child is contained within element */ -Element.isParent = function( child, element ) -{ - if ( !child.parentNode || child == element ) return false; - - if ( child.parentNode == element ) return true; - - return Element.isParent(child.parentNode, element); -} - -Element.findChildren = function( element, only, recursive, tagName ) -{ - if ( !element.hasChildNodes() ) return null; - tagName = tagName.toUpperCase(); - if ( only ) only = [only].flatten(); - var elements = []; - $A(element.childNodes).each(function( e ) - { - if ( e.tagName && e.tagName.toUpperCase() == tagName && (!only || (Element.classNames(e).detect(function( v ) - { - return only.include(v) - }))) ) - elements.push(e); - if ( recursive ) - { - var grandchildren = Element.findChildren(e, only, recursive, tagName); - if ( grandchildren ) elements.push(grandchildren); - } - }); - - return (elements.length > 0 ? elements.flatten() : []); -} - -Element.offsetSize = function ( element, type ) -{ - if ( type == 'vertical' || type == 'height' ) - return element.offsetHeight; - else - return element.offsetWidth; -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/effects.js b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/effects.js deleted file mode 100644 index 4b7ffa132..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/effects.js +++ /dev/null @@ -1,1156 +0,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. - */ - -// script.aculo.us effects.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006 - -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// Contributors: -// Justin Palmer (http://encytemedia.com/) -// Mark Pilgrim (http://diveintomark.org/) -// Martin Bialasinki -// -// See scriptaculous.js for full license. - -// converts rgb() and #xxx to #xxxxxx format, -// returns self (or first argument) if not convertable -String.prototype.parseColor = function() -{ - var color = '#'; - if ( this.slice(0, 4) == 'rgb(' ) - { - var cols = this.slice(4, this.length - 1).split(','); - var i = 0; - do { - color += parseInt(cols[i]).toColorPart() - } - while ( ++i < 3 ); - } - else - { - if ( this.slice(0, 1) == '#' ) - { - if ( this.length == 4 ) for ( var i = 1; i < 4; i++ ) color += - (this.charAt(i) + this.charAt(i)).toLowerCase(); - if ( this.length == 7 ) color = this.toLowerCase(); - } - } - return(color.length == 7 ? color : (arguments[0] || this)); -} - -/*--------------------------------------------------------------------------*/ - -Element.collectTextNodes = function( element ) -{ - return $A($(element).childNodes).collect(function( node ) - { - return (node.nodeType == 3 ? node.nodeValue : (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); - }).flatten().join(''); -} - -Element.collectTextNodesIgnoreClass = function( element, className ) -{ - return $A($(element).childNodes).collect(function( node ) - { - return (node.nodeType == 3 ? node.nodeValue : ((node.hasChildNodes() && !Element.hasClassName(node, className)) - ? Element.collectTextNodesIgnoreClass(node, className) : '')); - }).flatten().join(''); -} - -Element.setContentZoom = function( element, percent ) -{ - element = $(element); - Element.setStyle(element, {fontSize: (percent / 100) + 'em'}); - if ( navigator.appVersion.indexOf('AppleWebKit') > 0 ) window.scrollBy(0, 0); -} - -Element.getOpacity = function( element ) -{ - var opacity; - if ( opacity = Element.getStyle(element, 'opacity') ) - return parseFloat(opacity); - if ( opacity = (Element.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/) ) - if ( opacity[1] ) return parseFloat(opacity[1]) / 100; - return 1.0; -} - -Element.setOpacity = function( element, value ) -{ - element = $(element); - if ( value == 1 ) - { - Element.setStyle(element, { opacity: - (/Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? 0.999999 - : 1.0 }); - if ( /MSIE/.test(navigator.userAgent) && !window.opera ) - Element.setStyle(element, {filter: Element.getStyle(element, 'filter').replace(/alpha\([^\)]*\)/gi, '')}); - } - else - { - if ( value < 0.00001 ) value = 0; - Element.setStyle(element, {opacity: value}); - if ( /MSIE/.test(navigator.userAgent) && !window.opera ) - Element.setStyle(element, { filter: Element.getStyle(element, 'filter').replace(/alpha\([^\)]*\)/gi, '') + - 'alpha(opacity=' + value * 100 + ')' }); - } -} - -Element.getInlineOpacity = function( element ) -{ - return $(element).style.opacity || ''; -} - -Element.childrenWithClassName = function( element, className, findFirst ) -{ - var classNameRegExp = new RegExp("(^|\\s)" + className + "(\\s|$)"); - var results = $A($(element).getElementsByTagName('*'))[findFirst ? 'detect' : 'select'](function( c ) - { - return (c.className && c.className.match(classNameRegExp)); - }); - if ( !results ) results = []; - return results; -} - -Element.forceRerendering = function( element ) -{ - try - { - element = $(element); - var n = document.createTextNode(' '); - element.appendChild(n); - element.removeChild(n); - } - catch( e ) - { - } -}; - -/*--------------------------------------------------------------------------*/ - -Array.prototype.call = function() -{ - var args = arguments; - this.each(function( f ) - { - f.apply(this, args) - }); -} - -/*--------------------------------------------------------------------------*/ - -var Effect = { - _elementDoesNotExistError: { - name: 'ElementDoesNotExistError', - message: 'The specified DOM element does not exist, but is required for this effect to operate' - }, - tagifyText: function( element ) - { - if ( typeof Builder == 'undefined' ) - throw("Effect.tagifyText requires including script.aculo.us' builder.js library"); - - var tagifyStyle = 'position:relative'; - if ( /MSIE/.test(navigator.userAgent) && !window.opera ) tagifyStyle += ';zoom:1'; - element = $(element); - $A(element.childNodes).each(function( child ) - { - if ( child.nodeType == 3 ) - { - child.nodeValue.toArray().each(function( character ) - { - element.insertBefore(Builder.node('span', {style: tagifyStyle}, character == ' ' - ? String.fromCharCode(160) : character), child); - }); - Element.remove(child); - } - }); - }, - multiple: function( element, effect ) - { - var elements; - if ( ((typeof element == 'object') || (typeof element == 'function')) && (element.length) ) - elements = element; - else - elements = $(element).childNodes; - - var options = Object.extend({ - speed: 0.1, - delay: 0.0 - }, arguments[2] || {}); - var masterDelay = options.delay; - - $A(elements).each(function( element, index ) - { - new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); - }); - }, - PAIRS: { - 'slide': ['SlideDown','SlideUp'], - 'blind': ['BlindDown','BlindUp'], - 'appear': ['Appear','Fade'] - }, - toggle: function( element, effect ) - { - element = $(element); - effect = (effect || 'appear').toLowerCase(); - var options = Object.extend({ - queue: { position:'end', scope:(element.id || 'global'), limit: 1 } - }, arguments[2] || {}); - Effect[element.visible() ? Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); - } -}; - -var Effect2 = Effect; -// deprecated - -/* ------------- transitions ------------- */ - -Effect.Transitions = {} - -Effect.Transitions.linear = Prototype.K; - -Effect.Transitions.sinoidal = function( pos ) -{ - return (-Math.cos(pos * Math.PI) / 2) + 0.5; -} -Effect.Transitions.reverse = function( pos ) -{ - return 1 - pos; -} -Effect.Transitions.flicker = function( pos ) -{ - return ((-Math.cos(pos * Math.PI) / 4) + 0.75) + Math.random() / 4; -} -Effect.Transitions.wobble = function( pos ) -{ - return (-Math.cos(pos * Math.PI * (9 * pos)) / 2) + 0.5; -} -Effect.Transitions.pulse = function( pos ) -{ - return (Math.floor(pos * 10) % 2 == 0 ? (pos * 10 - Math.floor(pos * 10)) : 1 - (pos * 10 - Math.floor(pos * 10))); -} -Effect.Transitions.none = function( pos ) -{ - return 0; -} -Effect.Transitions.full = function( pos ) -{ - return 1; -} - -/* ------------- core effects ------------- */ - -Effect.ScopedQueue = Class.create(); -Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), { - initialize: function() - { - this.effects = []; - this.interval = null; - }, - _each: function( iterator ) - { - this.effects._each(iterator); - }, - add: function( effect ) - { - var timestamp = new Date().getTime(); - - var position = (typeof effect.options.queue == 'string') ? effect.options.queue : effect.options.queue.position; - - switch ( position ) - { - case 'front': - // move unstarted effects after this effect - this.effects.findAll(function( e ) - { - return e.state == 'idle' - }).each(function( e ) - { - e.startOn += effect.finishOn; - e.finishOn += effect.finishOn; - }); - break; - case 'end': - // start effect after last queued effect has finished - timestamp = this.effects.pluck('finishOn').max() || timestamp; - break; - } - - effect.startOn += timestamp; - effect.finishOn += timestamp; - - if ( !effect.options.queue.limit || (this.effects.length < effect.options.queue.limit) ) - this.effects.push(effect); - - if ( !this.interval ) - this.interval = setInterval(this.loop.bind(this), 40); - }, - remove: function( effect ) - { - this.effects = this.effects.reject(function( e ) - { - return e == effect - }); - if ( this.effects.length == 0 ) - { - clearInterval(this.interval); - this.interval = null; - } - }, - loop: function() - { - var timePos = new Date().getTime(); - this.effects.invoke('loop', timePos); - } -}); - -Effect.Queues = { - instances: $H(), - get: function( queueName ) - { - if ( typeof queueName != 'string' ) return queueName; - - if ( !this.instances[queueName] ) - this.instances[queueName] = new Effect.ScopedQueue(); - - return this.instances[queueName]; - } -} -Effect.Queue = Effect.Queues.get('global'); - -Effect.DefaultOptions = { - transition: Effect.Transitions.sinoidal, - duration: 1.0, // seconds - fps: 25.0, // max. 25fps due to Effect.Queue implementation - sync: false, // true for combining - from: 0.0, - to: 1.0, - delay: 0.0, - queue: 'parallel' -} - -Effect.Base = function() -{ -}; -Effect.Base.prototype = { - position: null, - start: function( options ) - { - this.options = Object.extend(Object.extend({}, Effect.DefaultOptions), options || {}); - this.currentFrame = 0; - this.state = 'idle'; - this.startOn = this.options.delay * 1000; - this.finishOn = this.startOn + (this.options.duration * 1000); - this.event('beforeStart'); - if ( !this.options.sync ) - Effect.Queues.get(typeof this.options.queue == 'string' ? 'global' : this.options.queue.scope).add(this); - }, - loop: function( timePos ) - { - if ( timePos >= this.startOn ) - { - if ( timePos >= this.finishOn ) - { - this.render(1.0); - this.cancel(); - this.event('beforeFinish'); - if ( this.finish ) this.finish(); - this.event('afterFinish'); - return; - } - var pos = (timePos - this.startOn) / (this.finishOn - this.startOn); - var frame = Math.round(pos * this.options.fps * this.options.duration); - if ( frame > this.currentFrame ) - { - this.render(pos); - this.currentFrame = frame; - } - } - }, - render: function( pos ) - { - if ( this.state == 'idle' ) - { - this.state = 'running'; - this.event('beforeSetup'); - if ( this.setup ) this.setup(); - this.event('afterSetup'); - } - if ( this.state == 'running' ) - { - if ( this.options.transition ) pos = this.options.transition(pos); - pos *= (this.options.to - this.options.from); - pos += this.options.from; - this.position = pos; - this.event('beforeUpdate'); - if ( this.update ) this.update(pos); - this.event('afterUpdate'); - } - }, - cancel: function() - { - if ( !this.options.sync ) - Effect.Queues.get(typeof this.options.queue == 'string' ? 'global' : this.options.queue.scope).remove(this); - this.state = 'finished'; - }, - event: function( eventName ) - { - if ( this.options[eventName + 'Internal'] ) this.options[eventName + 'Internal'](this); - if ( this.options[eventName] ) this.options[eventName](this); - }, - inspect: function() - { - return '#'; - } -} - -Effect.Parallel = Class.create(); -Object.extend(Object.extend(Effect.Parallel.prototype, Effect.Base.prototype), { - initialize: function( effects ) - { - this.effects = effects || []; - this.start(arguments[1]); - }, - update: function( position ) - { - this.effects.invoke('render', position); - }, - finish: function( position ) - { - this.effects.each(function( effect ) - { - effect.render(1.0); - effect.cancel(); - effect.event('beforeFinish'); - if ( effect.finish ) effect.finish(position); - effect.event('afterFinish'); - }); - } -}); - -Effect.Opacity = Class.create(); -Object.extend(Object.extend(Effect.Opacity.prototype, Effect.Base.prototype), { - initialize: function( element ) - { - this.element = $(element); - if ( !this.element ) throw(Effect._elementDoesNotExistError); - // make this work on IE on elements without 'layout' - if ( /MSIE/.test(navigator.userAgent) && !window.opera && (!this.element.currentStyle.hasLayout) ) - this.element.setStyle({zoom: 1}); - var options = Object.extend({ - from: this.element.getOpacity() || 0.0, - to: 1.0 - }, arguments[1] || {}); - this.start(options); - }, - update: function( position ) - { - this.element.setOpacity(position); - } -}); - -Effect.Move = Class.create(); -Object.extend(Object.extend(Effect.Move.prototype, Effect.Base.prototype), { - initialize: function( element ) - { - this.element = $(element); - if ( !this.element ) throw(Effect._elementDoesNotExistError); - var options = Object.extend({ - x: 0, - y: 0, - mode: 'relative' - }, arguments[1] || {}); - this.start(options); - }, - setup: function() - { - // Bug in Opera: Opera returns the "real" position of a static element or - // relative element that does not have top/left explicitly set. - // ==> Always set top and left for position relative elements in your stylesheets - // (to 0 if you do not need them) - this.element.makePositioned(); - this.originalLeft = parseFloat(this.element.getStyle('left') || '0'); - this.originalTop = parseFloat(this.element.getStyle('top') || '0'); - if ( this.options.mode == 'absolute' ) - { - // absolute movement, so we need to calc deltaX and deltaY - this.options.x = this.options.x - this.originalLeft; - this.options.y = this.options.y - this.originalTop; - } - }, - update: function( position ) - { - this.element.setStyle({ - left: Math.round(this.options.x * position + this.originalLeft) + 'px', - top: Math.round(this.options.y * position + this.originalTop) + 'px' - }); - } -}); - -// for backwards compatibility -Effect.MoveBy = function( element, toTop, toLeft ) -{ - return new Effect.Move(element, Object.extend({ x: toLeft, y: toTop }, arguments[3] || {})); -}; - -Effect.Scale = Class.create(); -Object.extend(Object.extend(Effect.Scale.prototype, Effect.Base.prototype), { - initialize: function( element, percent ) - { - this.element = $(element); - if ( !this.element ) throw(Effect._elementDoesNotExistError); - var options = Object.extend({ - scaleX: true, - scaleY: true, - scaleContent: true, - scaleFromCenter: false, - scaleMode: 'box', // 'box' or 'contents' or {} with provided values - scaleFrom: 100.0, - scaleTo: percent - }, arguments[2] || {}); - this.start(options); - }, - setup: function() - { - this.restoreAfterFinish = this.options.restoreAfterFinish || false; - this.elementPositioning = this.element.getStyle('position'); - - this.originalStyle = {}; - ['top','left','width','height','fontSize'].each(function( k ) - { - this.originalStyle[k] = this.element.style[k]; - }.bind(this)); - - this.originalTop = this.element.offsetTop; - this.originalLeft = this.element.offsetLeft; - - var fontSize = this.element.getStyle('font-size') || '100%'; - ['em','px','%','pt'].each(function( fontSizeType ) - { - if ( fontSize.indexOf(fontSizeType) > 0 ) - { - this.fontSize = parseFloat(fontSize); - this.fontSizeType = fontSizeType; - } - }.bind(this)); - - this.factor = (this.options.scaleTo - this.options.scaleFrom) / 100; - - this.dims = null; - if ( this.options.scaleMode == 'box' ) - this.dims = [this.element.offsetHeight, this.element.offsetWidth]; - if ( /^content/.test(this.options.scaleMode) ) - this.dims = [this.element.scrollHeight, this.element.scrollWidth]; - if ( !this.dims ) - this.dims = [this.options.scaleMode.originalHeight, - this.options.scaleMode.originalWidth]; - }, - update: function( position ) - { - var currentScale = (this.options.scaleFrom / 100.0) + (this.factor * position); - if ( this.options.scaleContent && this.fontSize ) - this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType }); - this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); - }, - finish: function( position ) - { - if ( this.restoreAfterFinish ) this.element.setStyle(this.originalStyle); - }, - setDimensions: function( height, width ) - { - var d = {}; - if ( this.options.scaleX ) d.width = Math.round(width) + 'px'; - if ( this.options.scaleY ) d.height = Math.round(height) + 'px'; - if ( this.options.scaleFromCenter ) - { - var topd = (height - this.dims[0]) / 2; - var leftd = (width - this.dims[1]) / 2; - if ( this.elementPositioning == 'absolute' ) - { - if ( this.options.scaleY ) d.top = this.originalTop - topd + 'px'; - if ( this.options.scaleX ) d.left = this.originalLeft - leftd + 'px'; - } - else - { - if ( this.options.scaleY ) d.top = -topd + 'px'; - if ( this.options.scaleX ) d.left = -leftd + 'px'; - } - } - this.element.setStyle(d); - } -}); - -Effect.Highlight = Class.create(); -Object.extend(Object.extend(Effect.Highlight.prototype, Effect.Base.prototype), { - initialize: function( element ) - { - this.element = $(element); - if ( !this.element ) throw(Effect._elementDoesNotExistError); - var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || {}); - this.start(options); - }, - setup: function() - { - // Prevent executing on elements not in the layout flow - if ( this.element.getStyle('display') == 'none' ) - { - this.cancel(); - return; - } - // Disable background image during the effect - this.oldStyle = { - backgroundImage: this.element.getStyle('background-image') }; - this.element.setStyle({backgroundImage: 'none'}); - if ( !this.options.endcolor ) - this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff'); - if ( !this.options.restorecolor ) - this.options.restorecolor = this.element.getStyle('background-color'); - // init color calculations - this._base = $R(0, 2).map(function( i ) - { - return parseInt(this.options.startcolor.slice(i * 2 + 1, i * 2 + 3), 16) - }.bind(this)); - this._delta = $R(0, 2).map(function( i ) - { - return parseInt(this.options.endcolor.slice(i * 2 + 1, i * 2 + 3), 16) - this._base[i] - }.bind(this)); - }, - update: function( position ) - { - this.element.setStyle({backgroundColor: $R(0, 2).inject('#', function( m, v, i ) - { - return m + (Math.round(this._base[i] + (this._delta[i] * position)).toColorPart()); - }.bind(this)) }); - }, - finish: function() - { - this.element.setStyle(Object.extend(this.oldStyle, { - backgroundColor: this.options.restorecolor - })); - } -}); - -Effect.ScrollTo = Class.create(); -Object.extend(Object.extend(Effect.ScrollTo.prototype, Effect.Base.prototype), { - initialize: function( element ) - { - this.element = $(element); - this.start(arguments[1] || {}); - }, - setup: function() - { - Position.prepare(); - var offsets = Position.cumulativeOffset(this.element); - if ( this.options.offset ) offsets[1] += this.options.offset; - var max = window.innerHeight ? window.height - window.innerHeight : document.body.scrollHeight - - (document.documentElement.clientHeight - ? document.documentElement.clientHeight - : document.body.clientHeight); - this.scrollStart = Position.deltaY; - this.delta = (offsets[1] > max ? max : offsets[1]) - this.scrollStart; - }, - update: function( position ) - { - Position.prepare(); - window.scrollTo(Position.deltaX, this.scrollStart + (position * this.delta)); - } -}); - -/* ------------- combination effects ------------- */ - -Effect.Fade = function( element ) -{ - element = $(element); - var oldOpacity = element.getInlineOpacity(); - var options = Object.extend({ - from: element.getOpacity() || 1.0, - to: 0.0, - afterFinishInternal: function( effect ) - { - if ( effect.options.to != 0 ) return; - effect.element.hide(); - effect.element.setStyle({opacity: oldOpacity}); - }}, arguments[1] || {}); - return new Effect.Opacity(element, options); -} - -Effect.Appear = function( element ) -{ - element = $(element); - var options = Object.extend({ - from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0), - to: 1.0, - // force Safari to render floated elements properly - afterFinishInternal: function( effect ) - { - effect.element.forceRerendering(); - }, - beforeSetup: function( effect ) - { - effect.element.setOpacity(effect.options.from); - effect.element.show(); - }}, arguments[1] || {}); - return new Effect.Opacity(element, options); -} - -Effect.Puff = function( element ) -{ - element = $(element); - var oldStyle = { - opacity: element.getInlineOpacity(), - position: element.getStyle('position'), - top: element.style.top, - left: element.style.left, - width: element.style.width, - height: element.style.height - }; - return new Effect.Parallel([ new Effect.Scale(element, 200, { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), - new Effect.Opacity(element, { sync: true, to: 0.0 }) ], Object.extend({ duration: 1.0, - beforeSetupInternal: function( effect ) - { - Position.absolutize(effect.effects[0].element) - }, - afterFinishInternal: function( effect ) - { - effect.effects[0].element.hide(); - effect.effects[0].element.setStyle(oldStyle); - } - }, arguments[1] || {})); -} - -Effect.BlindUp = function( element ) -{ - element = $(element); - element.makeClipping(); - return new Effect.Scale(element, 0, Object.extend({ scaleContent: false, - scaleX: false, - restoreAfterFinish: true, - afterFinishInternal: function( effect ) - { - effect.element.hide(); - effect.element.undoClipping(); - } - }, arguments[1] || {})); -} - -Effect.BlindDown = function( element ) -{ - element = $(element); - var elementDimensions = element.getDimensions(); - return new Effect.Scale(element, 100, Object.extend({ - scaleContent: false, - scaleX: false, - scaleFrom: 0, - scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, - restoreAfterFinish: true, - afterSetup: function( effect ) - { - effect.element.makeClipping(); - effect.element.setStyle({height: '0px'}); - effect.element.show(); - }, - afterFinishInternal: function( effect ) - { - effect.element.undoClipping(); - } - }, arguments[1] || {})); -} - -Effect.SwitchOff = function( element ) -{ - element = $(element); - var oldOpacity = element.getInlineOpacity(); - return new Effect.Appear(element, Object.extend({ - duration: 0.4, - from: 0, - transition: Effect.Transitions.flicker, - afterFinishInternal: function( effect ) - { - new Effect.Scale(effect.element, 1, { - duration: 0.3, scaleFromCenter: true, - scaleX: false, scaleContent: false, restoreAfterFinish: true, - beforeSetup: function( effect ) - { - effect.element.makePositioned(); - effect.element.makeClipping(); - }, - afterFinishInternal: function( effect ) - { - effect.element.hide(); - effect.element.undoClipping(); - effect.element.undoPositioned(); - effect.element.setStyle({opacity: oldOpacity}); - } - }) - } - }, arguments[1] || {})); -} - -Effect.DropOut = function( element ) -{ - element = $(element); - var oldStyle = { - top: element.getStyle('top'), - left: element.getStyle('left'), - opacity: element.getInlineOpacity() }; - return new Effect.Parallel([ new Effect.Move(element, {x: 0, y: 100, sync: true }), - new Effect.Opacity(element, { sync: true, to: 0.0 }) ], Object.extend({ duration: 0.5, - beforeSetup: function( effect ) - { - effect.effects[0].element.makePositioned(); - }, - afterFinishInternal: function( effect ) - { - effect.effects[0].element.hide(); - effect.effects[0].element.undoPositioned(); - effect.effects[0].element.setStyle(oldStyle); - } - }, arguments[1] || {})); -} - -Effect.Shake = function( element ) -{ - element = $(element); - var oldStyle = { - top: element.getStyle('top'), - left: element.getStyle('left') }; - return new Effect.Move(element, { x: 20, y: 0, duration: 0.05, afterFinishInternal: function( effect ) - { - new Effect.Move(effect.element, { x: -40, y: 0, duration: 0.1, afterFinishInternal: function( effect ) - { - new Effect.Move(effect.element, { x: 40, y: 0, duration: 0.1, afterFinishInternal: function( effect ) - { - new Effect.Move(effect.element, { x: -40, y: 0, duration: 0.1, afterFinishInternal: function( effect ) - { - new Effect.Move(effect.element, { x: 40, y: 0, duration: 0.1, afterFinishInternal: function( - effect ) - { - new Effect.Move(effect.element, { x: -20, y: 0, duration: 0.05, afterFinishInternal: function( - effect ) - { - effect.element.undoPositioned(); - effect.element.setStyle(oldStyle); - }}) - }}) - }}) - }}) - }}) - }}); -} - -Effect.SlideDown = function( element ) -{ - element = $(element); - element.cleanWhitespace(); - // SlideDown need to have the content of the element wrapped in a container element with fixed height! - var oldInnerBottom = $(element.firstChild).getStyle('bottom'); - var elementDimensions = element.getDimensions(); - return new Effect.Scale(element, 100, Object.extend({ - scaleContent: false, - scaleX: false, - scaleFrom: window.opera ? 0 : 1, - scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, - restoreAfterFinish: true, - afterSetup: function( effect ) - { - effect.element.makePositioned(); - effect.element.firstChild.makePositioned(); - if ( window.opera ) effect.element.setStyle({top: ''}); - effect.element.makeClipping(); - effect.element.setStyle({height: '0px'}); - effect.element.show(); - }, - afterUpdateInternal: function( effect ) - { - effect.element.firstChild.setStyle({bottom: - (effect.dims[0] - effect.element.clientHeight) + 'px' }); - }, - afterFinishInternal: function( effect ) - { - effect.element.undoClipping(); - // IE will crash if child is undoPositioned first - if ( /MSIE/.test(navigator.userAgent) && !window.opera ) - { - effect.element.undoPositioned(); - effect.element.firstChild.undoPositioned(); - } - else - { - effect.element.firstChild.undoPositioned(); - effect.element.undoPositioned(); - } - effect.element.firstChild.setStyle({bottom: oldInnerBottom}); - } - }, arguments[1] || {})); -} - -Effect.SlideUp = function( element ) -{ - element = $(element); - element.cleanWhitespace(); - var oldInnerBottom = $(element.firstChild).getStyle('bottom'); - return new Effect.Scale(element, window.opera ? 0 : 1, Object.extend({ scaleContent: false, - scaleX: false, - scaleMode: 'box', - scaleFrom: 100, - restoreAfterFinish: true, - beforeStartInternal: function( effect ) - { - effect.element.makePositioned(); - effect.element.firstChild.makePositioned(); - if ( window.opera ) effect.element.setStyle({top: ''}); - effect.element.makeClipping(); - effect.element.show(); - }, - afterUpdateInternal: function( effect ) - { - effect.element.firstChild.setStyle({bottom: - (effect.dims[0] - effect.element.clientHeight) + 'px' }); - }, - afterFinishInternal: function( effect ) - { - effect.element.hide(); - effect.element.undoClipping(); - effect.element.firstChild.undoPositioned(); - effect.element.undoPositioned(); - effect.element.setStyle({bottom: oldInnerBottom}); - } - }, arguments[1] || {})); -} - -// Bug in opera makes the TD containing this element expand for a instance after finish -Effect.Squish = function( element ) -{ - return new Effect.Scale(element, window.opera ? 1 : 0, { restoreAfterFinish: true, - beforeSetup: function( effect ) - { - effect.element.makeClipping(effect.element); - }, - afterFinishInternal: function( effect ) - { - effect.element.hide(effect.element); - effect.element.undoClipping(effect.element); - } - }); -} - -Effect.Grow = function( element ) -{ - element = $(element); - var options = Object.extend({ - direction: 'center', - moveTransition: Effect.Transitions.sinoidal, - scaleTransition: Effect.Transitions.sinoidal, - opacityTransition: Effect.Transitions.full - }, arguments[1] || {}); - var oldStyle = { - top: element.style.top, - left: element.style.left, - height: element.style.height, - width: element.style.width, - opacity: element.getInlineOpacity() }; - - var dims = element.getDimensions(); - var initialMoveX, initialMoveY; - var moveX, moveY; - - switch ( options.direction ) - { - case 'top-left': - initialMoveX = initialMoveY = moveX = moveY = 0; - break; - case 'top-right': - initialMoveX = dims.width; - initialMoveY = moveY = 0; - moveX = -dims.width; - break; - case 'bottom-left': - initialMoveX = moveX = 0; - initialMoveY = dims.height; - moveY = -dims.height; - break; - case 'bottom-right': - initialMoveX = dims.width; - initialMoveY = dims.height; - moveX = -dims.width; - moveY = -dims.height; - break; - case 'center': - initialMoveX = dims.width / 2; - initialMoveY = dims.height / 2; - moveX = -dims.width / 2; - moveY = -dims.height / 2; - break; - } - - return new Effect.Move(element, { - x: initialMoveX, - y: initialMoveY, - duration: 0.01, - beforeSetup: function( effect ) - { - effect.element.hide(); - effect.element.makeClipping(); - effect.element.makePositioned(); - }, - afterFinishInternal: function( effect ) - { - new Effect.Parallel([ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), - new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), - new Effect.Scale(effect.element, 100, { - scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, - sync: true, scaleFrom: window.opera ? 1 - : 0, transition: options.scaleTransition, restoreAfterFinish: true}) - ], Object.extend({ - beforeSetup: function( effect ) - { - effect.effects[0].element.setStyle({height: '0px'}); - effect.effects[0].element.show(); - }, - afterFinishInternal: function( effect ) - { - effect.effects[0].element.undoClipping(); - effect.effects[0].element.undoPositioned(); - effect.effects[0].element.setStyle(oldStyle); - } - }, options)) - } - }); -} - -Effect.Shrink = function( element ) -{ - element = $(element); - var options = Object.extend({ - direction: 'center', - moveTransition: Effect.Transitions.sinoidal, - scaleTransition: Effect.Transitions.sinoidal, - opacityTransition: Effect.Transitions.none - }, arguments[1] || {}); - var oldStyle = { - top: element.style.top, - left: element.style.left, - height: element.style.height, - width: element.style.width, - opacity: element.getInlineOpacity() }; - - var dims = element.getDimensions(); - var moveX, moveY; - - switch ( options.direction ) - { - case 'top-left': - moveX = moveY = 0; - break; - case 'top-right': - moveX = dims.width; - moveY = 0; - break; - case 'bottom-left': - moveX = 0; - moveY = dims.height; - break; - case 'bottom-right': - moveX = dims.width; - moveY = dims.height; - break; - case 'center': - moveX = dims.width / 2; - moveY = dims.height / 2; - break; - } - - return new Effect.Parallel([ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), - new Effect.Scale(element, window.opera ? 1 - : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), - new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) - ], Object.extend({ - beforeStartInternal: function( effect ) - { - effect.effects[0].element.makePositioned(); - effect.effects[0].element.makeClipping(); - }, - afterFinishInternal: function( effect ) - { - effect.effects[0].element.hide(); - effect.effects[0].element.undoClipping(); - effect.effects[0].element.undoPositioned(); - effect.effects[0].element.setStyle(oldStyle); - } - }, options)); -} - -Effect.Pulsate = function( element ) -{ - element = $(element); - var options = arguments[1] || {}; - var oldOpacity = element.getInlineOpacity(); - var transition = options.transition || Effect.Transitions.sinoidal; - var reverser = function( pos ) - { - return transition(1 - Effect.Transitions.pulse(pos)) - }; - reverser.bind(transition); - return new Effect.Opacity(element, Object.extend(Object.extend({ duration: 3.0, from: 0, - afterFinishInternal: function( effect ) - { - effect.element.setStyle({opacity: oldOpacity}); - } - }, options), {transition: reverser})); -} - -Effect.Fold = function( element ) -{ - element = $(element); - var oldStyle = { - top: element.style.top, - left: element.style.left, - width: element.style.width, - height: element.style.height }; - Element.makeClipping(element); - return new Effect.Scale(element, 5, Object.extend({ - scaleContent: false, - scaleX: false, - afterFinishInternal: function( effect ) - { - new Effect.Scale(element, 1, { - scaleContent: false, - scaleY: false, - afterFinishInternal: function( effect ) - { - effect.element.hide(); - effect.element.undoClipping(); - effect.element.setStyle(oldStyle); - } }); - }}, arguments[1] || {})); -}; - -['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setContentZoom', - 'collectTextNodes','collectTextNodesIgnoreClass','childrenWithClassName'].each(function( f ) -{ - Element.Methods[f] = Element[f]; -}); - -Element.Methods.visualEffect = function( element, effect, options ) -{ - s = effect.gsub(/_/, '-').camelize(); - effect_class = s.charAt(0).toUpperCase() + s.substring(1); - new Effect[effect_class](element, options); - return $(element); -}; - -Element.addMethods(); \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/prototype.js b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/prototype.js deleted file mode 100644 index 3131da7ff..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/prototype.js +++ /dev/null @@ -1,2696 +0,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. - */ - -/* Prototype JavaScript framework, version 1.5.0_rc1 - * (c) 2005 Sam Stephenson - * - * Prototype is freely distributable under the terms of an MIT-style license. - * For details, see the Prototype web site: http://prototype.conio.net/ - * -/*--------------------------------------------------------------------------*/ - -var Prototype = { - Version: '1.5.0_rc1', - ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)', - - emptyFunction: function() - { - }, - K: function( x ) - { - return x - } -} - -var Class = { - create: function() - { - return function() - { - this.initialize.apply(this, arguments); - } - } -} - -var Abstract = new Object(); - -Object.extend = function( destination, source ) -{ - for ( var property in source ) - { - destination[property] = source[property]; - } - return destination; -} - -Object.extend(Object, { - inspect: function( object ) - { - try - { - if ( object == undefined ) return 'undefined'; - if ( object == null ) return 'null'; - return object.inspect ? object.inspect() : object.toString(); - } - catch ( e ) - { - if ( e instanceof RangeError ) return '...'; - throw e; - } - }, - - keys: function( object ) - { - var keys = []; - for ( var property in object ) - keys.push(property); - return keys; - }, - - values: function( object ) - { - var values = []; - for ( var property in object ) - values.push(object[property]); - return values; - }, - - clone: function( object ) - { - return Object.extend({}, object); - } -}); - -Function.prototype.bind = function() -{ - var __method = this, args = $A(arguments), object = args.shift(); - return function() - { - return __method.apply(object, args.concat($A(arguments))); - } -} - -Function.prototype.bindAsEventListener = function( object ) -{ - var __method = this, args = $A(arguments), object = args.shift(); - return function( event ) - { - return __method.apply(object, [( event || window.event)].concat(args).concat($A(arguments))); - } -} - -Object.extend(Number.prototype, { - toColorPart: function() - { - var digits = this.toString(16); - if ( this < 16 ) return '0' + digits; - return digits; - }, - - succ: function() - { - return this + 1; - }, - - times: function( iterator ) - { - $R(0, this, true).each(iterator); - return this; - } -}); - -var Try = { - these: function() - { - var returnValue; - - for ( var i = 0; i < arguments.length; i++ ) - { - var lambda = arguments[i]; - try - { - returnValue = lambda(); - break; - } - catch ( e ) - { - } - } - - return returnValue; - } -} - -/*--------------------------------------------------------------------------*/ - -var PeriodicalExecuter = Class.create(); -PeriodicalExecuter.prototype = { - initialize: function( callback, frequency ) - { - this.callback = callback; - this.frequency = frequency; - this.currentlyExecuting = false; - - this.registerCallback(); - }, - - registerCallback: function() - { - this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - stop: function() - { - if ( !this.timer ) return; - clearInterval(this.timer); - this.timer = null; - }, - - onTimerEvent: function() - { - if ( !this.currentlyExecuting ) - { - try - { - this.currentlyExecuting = true; - this.callback(this); - } - finally - { - this.currentlyExecuting = false; - } - } - } -} -Object.extend(String.prototype, { - gsub: function( pattern, replacement ) - { - var result = '', source = this, match; - replacement = arguments.callee.prepareReplacement(replacement); - - while ( source.length > 0 ) - { - if ( match = source.match(pattern) ) - { - result += source.slice(0, match.index); - result += (replacement(match) || '').toString(); - source = source.slice(match.index + match[0].length); - } - else - { - result += source,source = ''; - } - } - return result; - }, - - sub: function( pattern, replacement, count ) - { - replacement = this.gsub.prepareReplacement(replacement); - count = count === undefined ? 1 : count; - - return this.gsub(pattern, function( match ) - { - if ( --count < 0 ) return match[0]; - return replacement(match); - }); - }, - - scan: function( pattern, iterator ) - { - this.gsub(pattern, iterator); - return this; - }, - - truncate: function( length, truncation ) - { - length = length || 30; - truncation = truncation === undefined ? '...' : truncation; - return this.length > length ? this.slice(0, length - truncation.length) + truncation : this; - }, - - strip: function() - { - return this.replace(/^\s+/, '').replace(/\s+$/, ''); - }, - - stripTags: function() - { - return this.replace(/<\/?[^>]+>/gi, ''); - }, - - stripScripts: function() - { - return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); - }, - - extractScripts: function() - { - var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); - var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); - return (this.match(matchAll) || []).map(function( scriptTag ) - { - return (scriptTag.match(matchOne) || ['', ''])[1]; - }); - }, - - evalScripts: function() - { - return this.extractScripts().map(function( script ) - { - return eval(script) - }); - }, - - escapeHTML: function() - { - var div = document.createElement('div'); - var text = document.createTextNode(this); - div.appendChild(text); - return div.innerHTML; - }, - - unescapeHTML: function() - { - var div = document.createElement('div'); - div.innerHTML = this.stripTags(); - return div.childNodes[0] ? div.childNodes[0].nodeValue : ''; - }, - - toQueryParams: function() - { - var pairs = this.match(/^\??(.*)$/)[1].split('&'); - return pairs.inject({}, function( params, pairString ) - { - var pair = pairString.split('='); - var value = pair[1] ? decodeURIComponent(pair[1]) : undefined; - params[decodeURIComponent(pair[0])] = value; - return params; - }); - }, - - toArray: function() - { - return this.split(''); - }, - - camelize: function() - { - var oStringList = this.split('-'); - if ( oStringList.length == 1 ) return oStringList[0]; - - var camelizedString = this.indexOf('-') == 0 ? oStringList[0].charAt(0).toUpperCase() + - oStringList[0].substring(1) : oStringList[0]; - - for ( var i = 1, len = oStringList.length; i < len; i++ ) - { - var s = oStringList[i]; - camelizedString += s.charAt(0).toUpperCase() + s.substring(1); - } - - return camelizedString; - }, - - inspect: function( useDoubleQuotes ) - { - var escapedString = this.replace(/\\/g, '\\\\'); - if ( useDoubleQuotes ) - return '"' + escapedString.replace(/"/g, '\\"') + '"'; - else - return "'" + escapedString.replace(/'/g, '\\\'') + "'"; - } -}); - -String.prototype.gsub.prepareReplacement = function( replacement ) -{ - if ( typeof replacement == 'function' ) return replacement; - var template = new Template(replacement); - return function( match ) - { - return template.evaluate(match) - }; -} - -String.prototype.parseQuery = String.prototype.toQueryParams; - -var Template = Class.create(); -Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; -Template.prototype = { - initialize: function( template, pattern ) - { - this.template = template.toString(); - this.pattern = pattern || Template.Pattern; - }, - - evaluate: function( object ) - { - return this.template.gsub(this.pattern, function( match ) - { - var before = match[1]; - if ( before == '\\' ) return match[2]; - return before + (object[match[3]] || '').toString(); - }); - } -} - -var $break = new Object(); -var $continue = new Object(); - -var Enumerable = { - each: function( iterator ) - { - var index = 0; - try - { - this._each(function( value ) - { - try - { - iterator(value, index++); - } - catch ( e ) - { - if ( e != $continue ) throw e; - } - }); - } - catch ( e ) - { - if ( e != $break ) throw e; - } - }, - - all: function( iterator ) - { - var result = true; - this.each(function( value, index ) - { - result = result && !!(iterator || Prototype.K)(value, index); - if ( !result ) throw $break; - }); - return result; - }, - - any: function( iterator ) - { - var result = false; - this.each(function( value, index ) - { - if ( result = !!(iterator || Prototype.K)(value, index) ) - throw $break; - }); - return result; - }, - - collect: function( iterator ) - { - var results = []; - this.each(function( value, index ) - { - results.push(iterator(value, index)); - }); - return results; - }, - - detect: function ( iterator ) - { - var result; - this.each(function( value, index ) - { - if ( iterator(value, index) ) - { - result = value; - throw $break; - } - }); - return result; - }, - - findAll: function( iterator ) - { - var results = []; - this.each(function( value, index ) - { - if ( iterator(value, index) ) - results.push(value); - }); - return results; - }, - - grep: function( pattern, iterator ) - { - var results = []; - this.each(function( value, index ) - { - var stringValue = value.toString(); - if ( stringValue.match(pattern) ) - results.push((iterator || Prototype.K)(value, index)); - }) - return results; - }, - - include: function( object ) - { - var found = false; - this.each(function( value ) - { - if ( value == object ) - { - found = true; - throw $break; - } - }); - return found; - }, - - inject: function( memo, iterator ) - { - this.each(function( value, index ) - { - memo = iterator(memo, value, index); - }); - return memo; - }, - - invoke: function( method ) - { - var args = $A(arguments).slice(1); - return this.collect(function( value ) - { - return value[method].apply(value, args); - }); - }, - - max: function( iterator ) - { - var result; - this.each(function( value, index ) - { - value = (iterator || Prototype.K)(value, index); - if ( result == undefined || value >= result ) - result = value; - }); - return result; - }, - - min: function( iterator ) - { - var result; - this.each(function( value, index ) - { - value = (iterator || Prototype.K)(value, index); - if ( result == undefined || value < result ) - result = value; - }); - return result; - }, - - partition: function( iterator ) - { - var trues = [], falses = []; - this.each(function( value, index ) - { - ((iterator || Prototype.K)(value, index) ? trues : falses).push(value); - }); - return [trues, falses]; - }, - - pluck: function( property ) - { - var results = []; - this.each(function( value, index ) - { - results.push(value[property]); - }); - return results; - }, - - reject: function( iterator ) - { - var results = []; - this.each(function( value, index ) - { - if ( !iterator(value, index) ) - results.push(value); - }); - return results; - }, - - sortBy: function( iterator ) - { - return this.collect(function( value, index ) - { - return {value: value, criteria: iterator(value, index)}; - }).sort(function( left, right ) - { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }).pluck('value'); - }, - - toArray: function() - { - return this.collect(Prototype.K); - }, - - zip: function() - { - var iterator = Prototype.K, args = $A(arguments); - if ( typeof args.last() == 'function' ) - iterator = args.pop(); - - var collections = [this].concat(args).map($A); - return this.map(function( value, index ) - { - return iterator(collections.pluck(index)); - }); - }, - - inspect: function() - { - return '#'; - } -} - -Object.extend(Enumerable, { - map: Enumerable.collect, - find: Enumerable.detect, - select: Enumerable.findAll, - member: Enumerable.include, - entries: Enumerable.toArray -}); -var $A = Array.from = function( iterable ) -{ - if ( !iterable ) return []; - if ( iterable.toArray ) - { - return iterable.toArray(); - } - else - { - var results = []; - for ( var i = 0; i < iterable.length; i++ ) - results.push(iterable[i]); - return results; - } -} - -Object.extend(Array.prototype, Enumerable); - -if ( !Array.prototype._reverse ) - Array.prototype._reverse = Array.prototype.reverse; - -Object.extend(Array.prototype, { - _each: function( iterator ) - { - for ( var i = 0; i < this.length; i++ ) - iterator(this[i]); - }, - - clear: function() - { - this.length = 0; - return this; - }, - - first: function() - { - return this[0]; - }, - - last: function() - { - return this[this.length - 1]; - }, - - compact: function() - { - return this.select(function( value ) - { - return value != undefined || value != null; - }); - }, - - flatten: function() - { - return this.inject([], function( array, value ) - { - return array.concat(value && value.constructor == Array ? value.flatten() : [value]); - }); - }, - - without: function() - { - var values = $A(arguments); - return this.select(function( value ) - { - return !values.include(value); - }); - }, - - indexOf: function( object ) - { - for ( var i = 0; i < this.length; i++ ) - if ( this[i] == object ) return i; - return -1; - }, - - reverse: function( inline ) - { - return (inline !== false ? this : this.toArray())._reverse(); - }, - - reduce: function() - { - return this.length > 1 ? this : this[0]; - }, - - uniq: function() - { - return this.inject([], function( array, value ) - { - return array.include(value) ? array : array.concat([value]); - }); - }, - - inspect: function() - { - return '[' + this.map(Object.inspect).join(', ') + ']'; - } -}); -var Hash = { - _each: function( iterator ) - { - for ( var key in this ) - { - var value = this[key]; - if ( typeof value == 'function' ) continue; - - var pair = [key, value]; - pair.key = key; - pair.value = value; - iterator(pair); - } - }, - - keys: function() - { - return this.pluck('key'); - }, - - values: function() - { - return this.pluck('value'); - }, - - merge: function( hash ) - { - return $H(hash).inject($H(this), function( mergedHash, pair ) - { - mergedHash[pair.key] = pair.value; - return mergedHash; - }); - }, - - toQueryString: function() - { - return this.map(function( pair ) - { - return pair.map(encodeURIComponent).join('='); - }).join('&'); - }, - - inspect: function() - { - return '#'; - } -} - -function $H( object ) -{ - var hash = Object.extend({}, object || {}); - Object.extend(hash, Enumerable); - Object.extend(hash, Hash); - return hash; -} -ObjectRange = Class.create(); -Object.extend(ObjectRange.prototype, Enumerable); -Object.extend(ObjectRange.prototype, { - initialize: function( start, end, exclusive ) - { - this.start = start; - this.end = end; - this.exclusive = exclusive; - }, - - _each: function( iterator ) - { - var value = this.start; - while ( this.include(value) ) - { - iterator(value); - value = value.succ(); - } - }, - - include: function( value ) - { - if ( value < this.start ) - return false; - if ( this.exclusive ) - return value < this.end; - return value <= this.end; - } -}); - -var $R = function( start, end, exclusive ) -{ - return new ObjectRange(start, end, exclusive); -} - -var Ajax = { - getTransport: function() - { - return Try.these(function() - { - return new XMLHttpRequest() - }, function() - { - return new ActiveXObject('Msxml2.XMLHTTP') - }, function() - { - return new ActiveXObject('Microsoft.XMLHTTP') - }) || false; - }, - - activeRequestCount: 0 -} - -Ajax.Responders = { - responders: [], - - _each: function( iterator ) - { - this.responders._each(iterator); - }, - - register: function( responderToAdd ) - { - if ( !this.include(responderToAdd) ) - this.responders.push(responderToAdd); - }, - - unregister: function( responderToRemove ) - { - this.responders = this.responders.without(responderToRemove); - }, - - dispatch: function( callback, request, transport, json ) - { - this.each(function( responder ) - { - if ( responder[callback] && typeof responder[callback] == 'function' ) - { - try - { - responder[callback].apply(responder, [request, transport, json]); - } - catch ( e ) - { - } - } - }); - } -}; - -Object.extend(Ajax.Responders, Enumerable); - -Ajax.Responders.register({ - onCreate: function() - { - Ajax.activeRequestCount++; - }, - - onComplete: function() - { - Ajax.activeRequestCount--; - } -}); - -Ajax.Base = function() -{ -}; -Ajax.Base.prototype = { - setOptions: function( options ) - { - this.options = { - method: 'post', - asynchronous: true, - contentType: 'application/x-www-form-urlencoded', - parameters: '' - } - Object.extend(this.options, options || {}); - }, - - responseIsSuccess: function() - { - return this.transport.status == undefined || this.transport.status == 0 || - (this.transport.status >= 200 && this.transport.status < 300); - }, - - responseIsFailure: function() - { - return !this.responseIsSuccess(); - } -} - -Ajax.Request = Class.create(); -Ajax.Request.Events = ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; - -Ajax.Request.prototype = Object.extend(new Ajax.Base(), { - initialize: function( url, options ) - { - this.transport = Ajax.getTransport(); - this.setOptions(options); - this.request(url); - }, - - request: function( url ) - { - var parameters = this.options.parameters || ''; - if ( parameters.length > 0 ) parameters += '&_='; - - /* Simulate other verbs over post */ - if ( this.options.method != 'get' && this.options.method != 'post' ) - { - parameters += (parameters.length > 0 ? '&' : '') + '_method=' + this.options.method; - this.options.method = 'post'; - } - - try - { - this.url = url; - if ( this.options.method == 'get' && parameters.length > 0 ) - this.url += (this.url.match(/\?/) ? '&' : '?') + parameters; - - Ajax.Responders.dispatch('onCreate', this, this.transport); - - this.transport.open(this.options.method, this.url, this.options.asynchronous); - - if ( this.options.asynchronous ) - setTimeout(function() - { - this.respondToReadyState(1) - }.bind(this), 10); - - this.transport.onreadystatechange = this.onStateChange.bind(this); - this.setRequestHeaders(); - - var body = this.options.postBody ? this.options.postBody : parameters; - this.transport.send(this.options.method == 'post' ? body : null); - - /* Force Firefox to handle ready state 4 for synchronous requests */ - if ( !this.options.asynchronous && this.transport.overrideMimeType ) - this.onStateChange(); - - } - catch ( e ) - { - this.dispatchException(e); - } - }, - - setRequestHeaders: function() - { - var requestHeaders = ['X-Requested-With', 'XMLHttpRequest', - 'X-Prototype-Version', Prototype.Version, - 'Accept', 'text/javascript, text/html, application/xml, text/xml, */*']; - - if ( this.options.method == 'post' ) - { - requestHeaders.push('Content-type', this.options.contentType); - - /* Force "Connection: close" for Mozilla browsers to work around - * a bug where XMLHttpReqeuest sends an incorrect Content-length - * header. See Mozilla Bugzilla #246651. - */ - if ( this.transport.overrideMimeType ) - requestHeaders.push('Connection', 'close'); - } - - if ( this.options.requestHeaders ) - requestHeaders.push.apply(requestHeaders, this.options.requestHeaders); - - for ( var i = 0; i < requestHeaders.length; i += 2 ) - this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i + 1]); - }, - - onStateChange: function() - { - var readyState = this.transport.readyState; - if ( readyState != 1 ) - this.respondToReadyState(this.transport.readyState); - }, - - header: function( name ) - { - try - { - return this.transport.getResponseHeader(name); - } - catch ( e ) - { - } - }, - - evalJSON: function() - { - try - { - return eval('(' + this.header('X-JSON') + ')'); - } - catch ( e ) - { - } - }, - - evalResponse: function() - { - try - { - return eval(this.transport.responseText); - } - catch ( e ) - { - this.dispatchException(e); - } - }, - - respondToReadyState: function( readyState ) - { - var event = Ajax.Request.Events[readyState]; - var transport = this.transport, json = this.evalJSON(); - - if ( event == 'Complete' ) - { - try - { - (this.options['on' + this.transport.status] || - this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')] || - Prototype.emptyFunction)(transport, json); - } - catch ( e ) - { - this.dispatchException(e); - } - - if ( (this.header('Content-type') || '').match(/^text\/javascript/i) ) - this.evalResponse(); - } - - try - { - (this.options['on' + event] || Prototype.emptyFunction)(transport, json); - Ajax.Responders.dispatch('on' + event, this, transport, json); - } - catch ( e ) - { - this.dispatchException(e); - } - - /* Avoid memory leak in MSIE: clean up the oncomplete event handler */ - if ( event == 'Complete' ) - this.transport.onreadystatechange = Prototype.emptyFunction; - }, - - dispatchException: function( exception ) - { - (this.options.onException || Prototype.emptyFunction)(this, exception); - Ajax.Responders.dispatch('onException', this, exception); - } -}); - -Ajax.Updater = Class.create(); - -Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), { - initialize: function( container, url, options ) - { - this.containers = { - success: container.success ? $(container.success) : $(container), - failure: container.failure ? $(container.failure) : (container.success ? null : $(container)) - } - - this.transport = Ajax.getTransport(); - this.setOptions(options); - - var onComplete = this.options.onComplete || Prototype.emptyFunction; - this.options.onComplete = (function( transport, object ) - { - this.updateContent(); - onComplete(transport, object); - }).bind(this); - - this.request(url); - }, - - updateContent: function() - { - var receiver = this.responseIsSuccess() ? this.containers.success : this.containers.failure; - var response = this.transport.responseText; - - if ( !this.options.evalScripts ) - response = response.stripScripts(); - - if ( receiver ) - { - if ( this.options.insertion ) - { - new this.options.insertion(receiver, response); - } - else - { - Element.update(receiver, response); - } - } - - if ( this.responseIsSuccess() ) - { - if ( this.onComplete ) - setTimeout(this.onComplete.bind(this), 10); - } - } -}); - -Ajax.PeriodicalUpdater = Class.create(); -Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), { - initialize: function( container, url, options ) - { - this.setOptions(options); - this.onComplete = this.options.onComplete; - - this.frequency = (this.options.frequency || 2); - this.decay = (this.options.decay || 1); - - this.updater = {}; - this.container = container; - this.url = url; - - this.start(); - }, - - start: function() - { - this.options.onComplete = this.updateComplete.bind(this); - this.onTimerEvent(); - }, - - stop: function() - { - this.updater.options.onComplete = undefined; - clearTimeout(this.timer); - (this.onComplete || Prototype.emptyFunction).apply(this, arguments); - }, - - updateComplete: function( request ) - { - if ( this.options.decay ) - { - this.decay = (request.responseText == this.lastText ? this.decay * this.options.decay : 1); - - this.lastText = request.responseText; - } - this.timer = setTimeout(this.onTimerEvent.bind(this), this.decay * this.frequency * 1000); - }, - - onTimerEvent: function() - { - this.updater = new Ajax.Updater(this.container, this.url, this.options); - } -}); -function $() -{ - var results = [], element; - for ( var i = 0; i < arguments.length; i++ ) - { - element = arguments[i]; - if ( typeof element == 'string' ) - element = document.getElementById(element); - results.push(Element.extend(element)); - } - return results.reduce(); -} - -document.getElementsByClassName = function( className, parentElement ) -{ - var children = ($(parentElement) || document.body).getElementsByTagName('*'); - return $A(children).inject([], function( elements, child ) - { - if ( child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")) ) - elements.push(Element.extend(child)); - return elements; - }); -} - -/*--------------------------------------------------------------------------*/ - -if ( !window.Element ) - var Element = new Object(); - -Element.extend = function( element ) -{ - if ( !element ) return; - if ( _nativeExtensions || element.nodeType == 3 ) return element; - - if ( !element._extended && element.tagName && element != window ) - { - var methods = Object.clone(Element.Methods), cache = Element.extend.cache; - - if ( element.tagName == 'FORM' ) - Object.extend(methods, Form.Methods); - if ( ['INPUT', 'TEXTAREA', 'SELECT'].include(element.tagName) ) - Object.extend(methods, Form.Element.Methods); - - for ( var property in methods ) - { - var value = methods[property]; - if ( typeof value == 'function' ) - element[property] = cache.findOrStore(value); - } - } - - element._extended = true; - return element; -} - -Element.extend.cache = { - findOrStore: function( value ) - { - return this[value] = this[value] || function() - { - return value.apply(null, [this].concat($A(arguments))); - } - } -} - -Element.Methods = { - visible: function( element ) - { - return $(element).style.display != 'none'; - }, - - toggle: function( element ) - { - element = $(element); - Element[Element.visible(element) ? 'hide' : 'show'](element); - return element; - }, - - hide: function( element ) - { - $(element).style.display = 'none'; - return element; - }, - - show: function( element ) - { - $(element).style.display = ''; - return element; - }, - - remove: function( element ) - { - element = $(element); - element.parentNode.removeChild(element); - return element; - }, - - update: function( element, html ) - { - $(element).innerHTML = html.stripScripts(); - setTimeout(function() - { - html.evalScripts() - }, 10); - return element; - }, - - replace: function( element, html ) - { - element = $(element); - if ( element.outerHTML ) - { - element.outerHTML = html.stripScripts(); - } - else - { - var range = element.ownerDocument.createRange(); - range.selectNodeContents(element); - element.parentNode.replaceChild(range.createContextualFragment(html.stripScripts()), element); - } - setTimeout(function() - { - html.evalScripts() - }, 10); - return element; - }, - - inspect: function( element ) - { - element = $(element); - var result = '<' + element.tagName.toLowerCase(); - $H({'id': 'id', 'className': 'class'}).each(function( pair ) - { - var property = pair.first(), attribute = pair.last(); - var value = (element[property] || '').toString(); - if ( value ) result += ' ' + attribute + '=' + value.inspect(true); - }); - return result + '>'; - }, - - recursivelyCollect: function( element, property ) - { - element = $(element); - var elements = []; - while ( element = element[property] ) - if ( element.nodeType == 1 ) - elements.push(Element.extend(element)); - return elements; - }, - - ancestors: function( element ) - { - return $(element).recursivelyCollect('parentNode'); - }, - - descendants: function( element ) - { - element = $(element); - return $A(element.getElementsByTagName('*')); - }, - - previousSiblings: function( element ) - { - return $(element).recursivelyCollect('previousSibling'); - }, - - nextSiblings: function( element ) - { - return $(element).recursivelyCollect('nextSibling'); - }, - - siblings: function( element ) - { - element = $(element); - return element.previousSiblings().reverse().concat(element.nextSiblings()); - }, - - match: function( element, selector ) - { - element = $(element); - if ( typeof selector == 'string' ) - selector = new Selector(selector); - return selector.match(element); - }, - - up: function( element, expression, index ) - { - return Selector.findElement($(element).ancestors(), expression, index); - }, - - down: function( element, expression, index ) - { - return Selector.findElement($(element).descendants(), expression, index); - }, - - previous: function( element, expression, index ) - { - return Selector.findElement($(element).previousSiblings(), expression, index); - }, - - next: function( element, expression, index ) - { - return Selector.findElement($(element).nextSiblings(), expression, index); - }, - - getElementsBySelector: function() - { - var args = $A(arguments), element = $(args.shift()); - return Selector.findChildElements(element, args); - }, - - getElementsByClassName: function( element, className ) - { - element = $(element); - return document.getElementsByClassName(className, element); - }, - - getHeight: function( element ) - { - element = $(element); - return element.offsetHeight; - }, - - classNames: function( element ) - { - return new Element.ClassNames(element); - }, - - hasClassName: function( element, className ) - { - if ( !(element = $(element)) ) return; - return Element.classNames(element).include(className); - }, - - addClassName: function( element, className ) - { - if ( !(element = $(element)) ) return; - Element.classNames(element).add(className); - return element; - }, - - removeClassName: function( element, className ) - { - if ( !(element = $(element)) ) return; - Element.classNames(element).remove(className); - return element; - }, - - observe: function() - { - Event.observe.apply(Event, arguments); - return $A(arguments).first(); - }, - - stopObserving: function() - { - Event.stopObserving.apply(Event, arguments); - return $A(arguments).first(); - }, - -// removes whitespace-only text node children - cleanWhitespace: function( element ) - { - element = $(element); - var node = element.firstChild; - while ( node ) - { - var nextNode = node.nextSibling; - if ( node.nodeType == 3 && !/\S/.test(node.nodeValue) ) - element.removeChild(node); - node = nextNode; - } - return element; - }, - - empty: function( element ) - { - return $(element).innerHTML.match(/^\s*$/); - }, - - childOf: function( element, ancestor ) - { - element = $(element),ancestor = $(ancestor); - while ( element = element.parentNode ) - if ( element == ancestor ) return true; - return false; - }, - - scrollTo: function( element ) - { - element = $(element); - var x = element.x ? element.x : element.offsetLeft, - y = element.y ? element.y : element.offsetTop; - window.scrollTo(x, y); - return element; - }, - - getStyle: function( element, style ) - { - element = $(element); - var value = element.style[style.camelize()]; - if ( !value ) - { - if ( document.defaultView && document.defaultView.getComputedStyle ) - { - var css = document.defaultView.getComputedStyle(element, null); - value = css ? css.getPropertyValue(style) : null; - } - else if ( element.currentStyle ) - { - value = element.currentStyle[style.camelize()]; - } - } - - if ( window.opera && ['left', 'top', 'right', 'bottom'].include(style) ) - if ( Element.getStyle(element, 'position') == 'static' ) value = 'auto'; - - return value == 'auto' ? null : value; - }, - - setStyle: function( element, style ) - { - element = $(element); - for ( var name in style ) - element.style[name.camelize()] = style[name]; - return element; - }, - - getDimensions: function( element ) - { - element = $(element); - if ( Element.getStyle(element, 'display') != 'none' ) - return {width: element.offsetWidth, height: element.offsetHeight}; - - // All *Width and *Height properties give 0 on elements with display none, - // so enable the element temporarily - var els = element.style; - var originalVisibility = els.visibility; - var originalPosition = els.position; - els.visibility = 'hidden'; - els.position = 'absolute'; - els.display = ''; - var originalWidth = element.clientWidth; - var originalHeight = element.clientHeight; - els.display = 'none'; - els.position = originalPosition; - els.visibility = originalVisibility; - return {width: originalWidth, height: originalHeight}; - }, - - makePositioned: function( element ) - { - element = $(element); - var pos = Element.getStyle(element, 'position'); - if ( pos == 'static' || !pos ) - { - element._madePositioned = true; - element.style.position = 'relative'; - // Opera returns the offset relative to the positioning context, when an - // element is position relative but top and left have not been defined - if ( window.opera ) - { - element.style.top = 0; - element.style.left = 0; - } - } - return element; - }, - - undoPositioned: function( element ) - { - element = $(element); - if ( element._madePositioned ) - { - element._madePositioned = undefined; - element.style.position = - element.style.top = element.style.left = element.style.bottom = element.style.right = ''; - } - return element; - }, - - makeClipping: function( element ) - { - element = $(element); - if ( element._overflow ) return; - element._overflow = element.style.overflow || 'auto'; - if ( (Element.getStyle(element, 'overflow') || 'visible') != 'hidden' ) - element.style.overflow = 'hidden'; - return element; - }, - - undoClipping: function( element ) - { - element = $(element); - if ( !element._overflow ) return; - element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; - element._overflow = null; - return element; - } -} - -// IE is missing .innerHTML support for TABLE-related elements -if ( document.all ) -{ - Element.Methods.update = function( element, html ) - { - element = $(element); - var tagName = element.tagName.toUpperCase(); - if ( ['THEAD','TBODY','TR','TD'].indexOf(tagName) > -1 ) - { - var div = document.createElement('div'); - switch ( tagName ) - { - case 'THEAD': - case 'TBODY': - div.innerHTML = '' + html.stripScripts() + '
    '; - depth = 2; - break; - case 'TR': - div.innerHTML = '' + html.stripScripts() + '
    '; - depth = 3; - break; - case 'TD': - div.innerHTML = '
    ' + html.stripScripts() + '
    '; - depth = 4; - } - $A(element.childNodes).each(function( node ) - { - element.removeChild(node) - }); - depth.times(function() - { - div = div.firstChild - }); - - $A(div.childNodes).each(function( node ) - { - element.appendChild(node) - }); - } - else - { - element.innerHTML = html.stripScripts(); - } - setTimeout(function() - { - html.evalScripts() - }, 10); - return element; - } -} - -Object.extend(Element, Element.Methods); - -var _nativeExtensions = false; - -if ( !window.HTMLElement && /Konqueror|Safari|KHTML/.test(navigator.userAgent) ) -{ - /* Emulate HTMLElement, HTMLFormElement, HTMLInputElement, HTMLTextAreaElement, -and HTMLSelectElement in Safari */ - ['', 'Form', 'Input', 'TextArea', 'Select'].each(function( tag ) - { - var klass = window['HTML' + tag + 'Element'] = {}; - klass.prototype = document.createElement(tag ? tag.toLowerCase() : 'div').__proto__; - }); -} - -Element.addMethods = function( methods ) -{ - Object.extend(Element.Methods, methods || {}); - - function copy( methods, destination ) - { - var cache = Element.extend.cache; - for ( var property in methods ) - { - var value = methods[property]; - destination[property] = cache.findOrStore(value); - } - } - - if ( typeof HTMLElement != 'undefined' ) - { - copy(Element.Methods, HTMLElement.prototype); - copy(Form.Methods, HTMLFormElement.prototype); - [HTMLInputElement, HTMLTextAreaElement, HTMLSelectElement].each(function( klass ) - { - copy(Form.Element.Methods, klass.prototype); - }); - _nativeExtensions = true; - } -} - -var Toggle = new Object(); -Toggle.display = Element.toggle; - -/*--------------------------------------------------------------------------*/ - -Abstract.Insertion = function( adjacency ) -{ - this.adjacency = adjacency; -} - -Abstract.Insertion.prototype = { - initialize: function( element, content ) - { - this.element = $(element); - this.content = content.stripScripts(); - - if ( this.adjacency && this.element.insertAdjacentHTML ) - { - try - { - this.element.insertAdjacentHTML(this.adjacency, this.content); - } - catch ( e ) - { - var tagName = this.element.tagName.toLowerCase(); - if ( tagName == 'tbody' || tagName == 'tr' ) - { - this.insertContent(this.contentFromAnonymousTable()); - } - else - { - throw e; - } - } - } - else - { - this.range = this.element.ownerDocument.createRange(); - if ( this.initializeRange ) this.initializeRange(); - this.insertContent([this.range.createContextualFragment(this.content)]); - } - - setTimeout(function() - { - content.evalScripts() - }, 10); - }, - - contentFromAnonymousTable: function() - { - var div = document.createElement('div'); - div.innerHTML = '' + this.content + '
    '; - return $A(div.childNodes[0].childNodes[0].childNodes); - } -} - -var Insertion = new Object(); - -Insertion.Before = Class.create(); -Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), { - initializeRange: function() - { - this.range.setStartBefore(this.element); - }, - - insertContent: function( fragments ) - { - fragments.each((function( fragment ) - { - this.element.parentNode.insertBefore(fragment, this.element); - }).bind(this)); - } -}); - -Insertion.Top = Class.create(); -Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), { - initializeRange: function() - { - this.range.selectNodeContents(this.element); - this.range.collapse(true); - }, - - insertContent: function( fragments ) - { - fragments.reverse(false).each((function( fragment ) - { - this.element.insertBefore(fragment, this.element.firstChild); - }).bind(this)); - } -}); - -Insertion.Bottom = Class.create(); -Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), { - initializeRange: function() - { - this.range.selectNodeContents(this.element); - this.range.collapse(this.element); - }, - - insertContent: function( fragments ) - { - fragments.each((function( fragment ) - { - this.element.appendChild(fragment); - }).bind(this)); - } -}); - -Insertion.After = Class.create(); -Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), { - initializeRange: function() - { - this.range.setStartAfter(this.element); - }, - - insertContent: function( fragments ) - { - fragments.each((function( fragment ) - { - this.element.parentNode.insertBefore(fragment, this.element.nextSibling); - }).bind(this)); - } -}); - -/*--------------------------------------------------------------------------*/ - -Element.ClassNames = Class.create(); -Element.ClassNames.prototype = { - initialize: function( element ) - { - this.element = $(element); - }, - - _each: function( iterator ) - { - this.element.className.split(/\s+/).select(function( name ) - { - return name.length > 0; - })._each(iterator); - }, - - set: function( className ) - { - this.element.className = className; - }, - - add: function( classNameToAdd ) - { - if ( this.include(classNameToAdd) ) return; - this.set(this.toArray().concat(classNameToAdd).join(' ')); - }, - - remove: function( classNameToRemove ) - { - if ( !this.include(classNameToRemove) ) return; - this.set(this.select(function( className ) - { - return className != classNameToRemove; - }).join(' ')); - }, - - toString: function() - { - return this.toArray().join(' '); - } -} - -Object.extend(Element.ClassNames.prototype, Enumerable); -var Selector = Class.create(); -Selector.prototype = { - initialize: function( expression ) - { - this.params = {classNames: []}; - this.expression = expression.toString().strip(); - this.parseExpression(); - this.compileMatcher(); - }, - - parseExpression: function() - { - function abort( message ) - { - throw 'Parse error in selector: ' + message; - } - - if ( this.expression == '' ) abort('empty expression'); - - var params = this.params, expr = this.expression, match, modifier, clause, rest; - while ( match = expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i) ) - { - params.attributes = params.attributes || []; - params.attributes.push({name: match[2], operator: match[3], value: match[4] || match[5] || ''}); - expr = match[1]; - } - - if ( expr == '*' ) return this.params.wildcard = true; - - while ( match = expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i) ) - { - modifier = match[1],clause = match[2],rest = match[3]; - switch ( modifier ) - { - case '#': params.id = clause; break; - case '.': params.classNames.push(clause); break; - case '': - case undefined: params.tagName = clause.toUpperCase(); break; - default: abort(expr.inspect()); - } - expr = rest; - } - - if ( expr.length > 0 ) abort(expr.inspect()); - }, - - buildMatchExpression: function() - { - var params = this.params, conditions = [], clause; - - if ( params.wildcard ) - conditions.push('true'); - if ( clause = params.id ) - conditions.push('element.id == ' + clause.inspect()); - if ( clause = params.tagName ) - conditions.push('element.tagName.toUpperCase() == ' + clause.inspect()); - if ( (clause = params.classNames).length > 0 ) - for ( var i = 0; i < clause.length; i++ ) - conditions.push('Element.hasClassName(element, ' + clause[i].inspect() + ')'); - if ( clause = params.attributes ) - { - clause.each(function( attribute ) - { - var value = 'element.getAttribute(' + attribute.name.inspect() + ')'; - var splitValueBy = function( delimiter ) - { - return value + ' && ' + value + '.split(' + delimiter.inspect() + ')'; - } - - switch ( attribute.operator ) - { - case '=': conditions.push(value + ' == ' + attribute.value.inspect()); break; - case '~=': conditions.push(splitValueBy(' ') + '.include(' + attribute.value.inspect() + - ')'); break; - case '|=': conditions.push(splitValueBy('-') + '.first().toUpperCase() == ' + - attribute.value.toUpperCase().inspect()); break; - case '!=': conditions.push(value + ' != ' + attribute.value.inspect()); break; - case '': - case undefined: conditions.push(value + ' != null'); break; - default: throw 'Unknown operator ' + attribute.operator + ' in selector'; - } - }); - } - - return conditions.join(' && '); - }, - - compileMatcher: function() - { - this.match = new Function('element', 'if (!element.tagName) return false; \ - return ' + this.buildMatchExpression()); - }, - - findElements: function( scope ) - { - var element; - - if ( element = $(this.params.id) ) - if ( this.match(element) ) - if ( !scope || Element.childOf(element, scope) ) - return [element]; - - scope = (scope || document).getElementsByTagName(this.params.tagName || '*'); - - var results = []; - for ( var i = 0; i < scope.length; i++ ) - if ( this.match(element = scope[i]) ) - results.push(Element.extend(element)); - - return results; - }, - - toString: function() - { - return this.expression; - } -} - -Object.extend(Selector, { - matchElements: function( elements, expression ) - { - var selector = new Selector(expression); - return elements.select(selector.match.bind(selector)); - }, - - findElement: function( elements, expression, index ) - { - if ( typeof expression == 'number' ) index = expression,expression = false; - return Selector.matchElements(elements, expression || '*')[index || 0]; - }, - - findChildElements: function( element, expressions ) - { - return expressions.map(function( expression ) - { - return expression.strip().split(/\s+/).inject([null], function( results, expr ) - { - var selector = new Selector(expr); - return results.inject([], function( elements, result ) - { - return elements.concat(selector.findElements(result || element)); - }); - }); - }).flatten(); - } -}); - -function $$() -{ - return Selector.findChildElements(document, $A(arguments)); -} -var Form = { - reset: function( form ) - { - $(form).reset(); - return form; - } -}; - -Form.Methods = { - serialize: function( form ) - { - var elements = Form.getElements($(form)); - var queryComponents = new Array(); - - for ( var i = 0; i < elements.length; i++ ) - { - var queryComponent = Form.Element.serialize(elements[i]); - if ( queryComponent ) - queryComponents.push(queryComponent); - } - - return queryComponents.join('&'); - }, - - getElements: function( form ) - { - form = $(form); - var elements = new Array(); - - for ( var tagName in Form.Element.Serializers ) - { - var tagElements = form.getElementsByTagName(tagName); - for ( var j = 0; j < tagElements.length; j++ ) - elements.push(tagElements[j]); - } - return elements; - }, - - getInputs: function( form, typeName, name ) - { - form = $(form); - var inputs = form.getElementsByTagName('input'); - - if ( !typeName && !name ) - return inputs; - - var matchingInputs = new Array(); - for ( var i = 0; i < inputs.length; i++ ) - { - var input = inputs[i]; - if ( (typeName && input.type != typeName) || (name && input.name != name) ) - continue; - matchingInputs.push(input); - } - - return matchingInputs; - }, - - disable: function( form ) - { - form = $(form); - var elements = Form.getElements(form); - for ( var i = 0; i < elements.length; i++ ) - { - var element = elements[i]; - element.blur(); - element.disabled = 'true'; - } - return form; - }, - - enable: function( form ) - { - form = $(form); - var elements = Form.getElements(form); - for ( var i = 0; i < elements.length; i++ ) - { - var element = elements[i]; - element.disabled = ''; - } - return form; - }, - - findFirstElement: function( form ) - { - return Form.getElements(form).find(function( element ) - { - return element.type != 'hidden' && !element.disabled && - ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); - }); - }, - - focusFirstElement: function( form ) - { - form = $(form); - Field.activate(Form.findFirstElement(form)); - return form; - } -} - -Object.extend(Form, Form.Methods); - -/*--------------------------------------------------------------------------*/ - -Form.Element = { - focus: function( element ) - { - $(element).focus(); - return element; - }, - - select: function( element ) - { - $(element).select(); - return element; - } -} - -Form.Element.Methods = { - serialize: function( element ) - { - element = $(element); - var method = element.tagName.toLowerCase(); - var parameter = Form.Element.Serializers[method](element); - - if ( parameter ) - { - var key = encodeURIComponent(parameter[0]); - if ( key.length == 0 ) return; - - if ( parameter[1].constructor != Array ) - parameter[1] = [parameter[1]]; - - return parameter[1].map(function( value ) - { - return key + '=' + encodeURIComponent(value); - }).join('&'); - } - }, - - getValue: function( element ) - { - element = $(element); - var method = element.tagName.toLowerCase(); - var parameter = Form.Element.Serializers[method](element); - - if ( parameter ) - return parameter[1]; - }, - - clear: function( element ) - { - $(element).value = ''; - return element; - }, - - present: function( element ) - { - return $(element).value != ''; - }, - - activate: function( element ) - { - element = $(element); - element.focus(); - if ( element.select ) - element.select(); - return element; - }, - - disable: function( element ) - { - element = $(element); - element.disabled = ''; - return element; - }, - - enable: function( element ) - { - element = $(element); - element.blur(); - element.disabled = 'true'; - return element; - } -} - -Object.extend(Form.Element, Form.Element.Methods); -var Field = Form.Element; - -/*--------------------------------------------------------------------------*/ - -Form.Element.Serializers = { - input: function( element ) - { - switch ( element.type.toLowerCase() ) - { - case 'checkbox': - case 'radio': - return Form.Element.Serializers.inputSelector(element); - default: - return Form.Element.Serializers.textarea(element); - } - return false; - }, - - inputSelector: function( element ) - { - if ( element.checked ) - return [element.name, element.value]; - }, - - textarea: function( element ) - { - return [element.name, element.value]; - }, - - select: function( element ) - { - return Form.Element.Serializers[element.type == 'select-one' ? 'selectOne' : 'selectMany'](element); - }, - - selectOne: function( element ) - { - var value = '', opt, index = element.selectedIndex; - if ( index >= 0 ) - { - opt = element.options[index]; - value = opt.value || opt.text; - } - return [element.name, value]; - }, - - selectMany: function( element ) - { - var value = []; - for ( var i = 0; i < element.length; i++ ) - { - var opt = element.options[i]; - if ( opt.selected ) - value.push(opt.value || opt.text); - } - return [element.name, value]; - } -} - -/*--------------------------------------------------------------------------*/ - -var $F = Form.Element.getValue; - -/*--------------------------------------------------------------------------*/ - -Abstract.TimedObserver = function() -{ -} -Abstract.TimedObserver.prototype = { - initialize: function( element, frequency, callback ) - { - this.frequency = frequency; - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - this.registerCallback(); - }, - - registerCallback: function() - { - setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - onTimerEvent: function() - { - var value = this.getValue(); - if ( this.lastValue != value ) - { - this.callback(this.element, value); - this.lastValue = value; - } - } -} - -Form.Element.Observer = Class.create(); -Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() - { - return Form.Element.getValue(this.element); - } -}); - -Form.Observer = Class.create(); -Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() - { - return Form.serialize(this.element); - } -}); - -/*--------------------------------------------------------------------------*/ - -Abstract.EventObserver = function() -{ -} -Abstract.EventObserver.prototype = { - initialize: function( element, callback ) - { - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - if ( this.element.tagName.toLowerCase() == 'form' ) - this.registerFormCallbacks(); - else - this.registerCallback(this.element); - }, - - onElementEvent: function() - { - var value = this.getValue(); - if ( this.lastValue != value ) - { - this.callback(this.element, value); - this.lastValue = value; - } - }, - - registerFormCallbacks: function() - { - var elements = Form.getElements(this.element); - for ( var i = 0; i < elements.length; i++ ) - this.registerCallback(elements[i]); - }, - - registerCallback: function( element ) - { - if ( element.type ) - { - switch ( element.type.toLowerCase() ) - { - case 'checkbox': - case 'radio': - Event.observe(element, 'click', this.onElementEvent.bind(this)); - break; - default: - Event.observe(element, 'change', this.onElementEvent.bind(this)); - break; - } - } - } -} - -Form.Element.EventObserver = Class.create(); -Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() - { - return Form.Element.getValue(this.element); - } -}); - -Form.EventObserver = Class.create(); -Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() - { - return Form.serialize(this.element); - } -}); -if ( !window.Event ) -{ - var Event = new Object(); -} - -Object.extend(Event, { - KEY_BACKSPACE: 8, - KEY_TAB: 9, - KEY_RETURN: 13, - KEY_ESC: 27, - KEY_LEFT: 37, - KEY_UP: 38, - KEY_RIGHT: 39, - KEY_DOWN: 40, - KEY_DELETE: 46, - KEY_HOME: 36, - KEY_END: 35, - KEY_PAGEUP: 33, - KEY_PAGEDOWN: 34, - - element: function( event ) - { - return event.target || event.srcElement; - }, - - isLeftClick: function( event ) - { - return (((event.which) && (event.which == 1)) || ((event.button) && (event.button == 1))); - }, - - pointerX: function( event ) - { - return event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)); - }, - - pointerY: function( event ) - { - return event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)); - }, - - stop: function( event ) - { - if ( event.preventDefault ) - { - event.preventDefault(); - event.stopPropagation(); - } - else - { - event.returnValue = false; - event.cancelBubble = true; - } - }, - -// find the first node with the given tagName, starting from the -// node the event was triggered on; traverses the DOM upwards - findElement: function( event, tagName ) - { - var element = Event.element(event); - while ( element.parentNode && (!element.tagName || (element.tagName.toUpperCase() != tagName.toUpperCase())) ) - element = element.parentNode; - return element; - }, - - observers: false, - - _observeAndCache: function( element, name, observer, useCapture ) - { - if ( !this.observers ) this.observers = []; - if ( element.addEventListener ) - { - this.observers.push([element, name, observer, useCapture]); - element.addEventListener(name, observer, useCapture); - } - else if ( element.attachEvent ) - { - this.observers.push([element, name, observer, useCapture]); - element.attachEvent('on' + name, observer); - } - }, - - unloadCache: function() - { - if ( !Event.observers ) return; - for ( var i = 0; i < Event.observers.length; i++ ) - { - Event.stopObserving.apply(this, Event.observers[i]); - Event.observers[i][0] = null; - } - Event.observers = false; - }, - - observe: function( element, name, observer, useCapture ) - { - element = $(element); - useCapture = useCapture || false; - - if ( name == 'keypress' && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) || element.attachEvent) ) - name = 'keydown'; - - Event._observeAndCache(element, name, observer, useCapture); - }, - - stopObserving: function( element, name, observer, useCapture ) - { - element = $(element); - useCapture = useCapture || false; - - if ( name == 'keypress' && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) || element.detachEvent) ) - name = 'keydown'; - - if ( element.removeEventListener ) - { - element.removeEventListener(name, observer, useCapture); - } - else if ( element.detachEvent ) - { - try - { - element.detachEvent('on' + name, observer); - } - catch ( e ) - { - } - } - } -}); - -/* prevent memory leaks in IE */ -if ( navigator.appVersion.match(/\bMSIE\b/) ) - Event.observe(window, 'unload', Event.unloadCache, false); -var Position = { -// set to true if needed, warning: firefox performance problems -// NOT neeeded for page scrolling, only if draggable contained in -// scrollable elements - includeScrollOffsets: false, - -// must be called before calling withinIncludingScrolloffset, every time the -// page is scrolled - prepare: function() - { - this.deltaX = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; - this.deltaY = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; - }, - - realOffset: function( element ) - { - var valueT = 0, valueL = 0; - do { - valueT += element.scrollTop || 0; - valueL += element.scrollLeft || 0; - element = element.parentNode; - } - while ( element ); - return [valueL, valueT]; - }, - - cumulativeOffset: function( element ) - { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - } - while ( element ); - return [valueL, valueT]; - }, - - positionedOffset: function( element ) - { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - if ( element ) - { - p = Element.getStyle(element, 'position'); - if ( p == 'relative' || p == 'absolute' ) break; - } - } - while ( element ); - return [valueL, valueT]; - }, - - offsetParent: function( element ) - { - if ( element.offsetParent ) return element.offsetParent; - if ( element == document.body ) return element; - - while ( (element = element.parentNode) && element != document.body ) - if ( Element.getStyle(element, 'position') != 'static' ) - return element; - - return document.body; - }, - -// caches x/y coordinate pair to use with overlap - within: function( element, x, y ) - { - if ( this.includeScrollOffsets ) - return this.withinIncludingScrolloffsets(element, x, y); - this.xcomp = x; - this.ycomp = y; - this.offset = this.cumulativeOffset(element); - - return (y >= this.offset[1] && y < this.offset[1] + element.offsetHeight && x >= this.offset[0] && - x < this.offset[0] + element.offsetWidth); - }, - - withinIncludingScrolloffsets: function( element, x, y ) - { - var offsetcache = this.realOffset(element); - - this.xcomp = x + offsetcache[0] - this.deltaX; - this.ycomp = y + offsetcache[1] - this.deltaY; - this.offset = this.cumulativeOffset(element); - - return (this.ycomp >= this.offset[1] && this.ycomp < this.offset[1] + element.offsetHeight && - this.xcomp >= this.offset[0] && this.xcomp < this.offset[0] + element.offsetWidth); - }, - -// within must be called directly before - overlap: function( mode, element ) - { - if ( !mode ) return 0; - if ( mode == 'vertical' ) - return ((this.offset[1] + element.offsetHeight) - this.ycomp) / element.offsetHeight; - if ( mode == 'horizontal' ) - return ((this.offset[0] + element.offsetWidth) - this.xcomp) / element.offsetWidth; - }, - - page: function( forElement ) - { - var valueT = 0, valueL = 0; - - var element = forElement; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - - // Safari fix - if ( element.offsetParent == document.body ) - if ( Element.getStyle(element, 'position') == 'absolute' ) break; - - } - while ( element = element.offsetParent ); - - element = forElement; - do { - if ( !window.opera || element.tagName == 'BODY' ) - { - valueT -= element.scrollTop || 0; - valueL -= element.scrollLeft || 0; - } - } - while ( element = element.parentNode ); - - return [valueL, valueT]; - }, - - clone: function( source, target ) - { - var options = Object.extend({ - setLeft: true, - setTop: true, - setWidth: true, - setHeight: true, - offsetTop: 0, - offsetLeft: 0 - }, arguments[2] || {}) - - // find page position of source - source = $(source); - var p = Position.page(source); - - // find coordinate system to use - target = $(target); - var delta = [0, 0]; - var parent = null; - // delta [0,0] will do fine with position: fixed elements, - // position:absolute needs offsetParent deltas - if ( Element.getStyle(target, 'position') == 'absolute' ) - { - parent = Position.offsetParent(target); - delta = Position.page(parent); - } - - // correct by body offsets (fixes Safari) - if ( parent == document.body ) - { - delta[0] -= document.body.offsetLeft; - delta[1] -= document.body.offsetTop; - } - - // set position - if ( options.setLeft ) target.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; - if ( options.setTop ) target.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; - if ( options.setWidth ) target.style.width = source.offsetWidth + 'px'; - if ( options.setHeight ) target.style.height = source.offsetHeight + 'px'; - }, - - absolutize: function( element ) - { - element = $(element); - if ( element.style.position == 'absolute' ) return; - Position.prepare(); - - var offsets = Position.positionedOffset(element); - var top = offsets[1]; - var left = offsets[0]; - var width = element.clientWidth; - var height = element.clientHeight; - - element._originalLeft = left - parseFloat(element.style.left || 0); - element._originalTop = top - parseFloat(element.style.top || 0); - element._originalWidth = element.style.width; - element._originalHeight = element.style.height; - - element.style.position = 'absolute'; - element.style.top = top + 'px'; - ; - element.style.left = left + 'px'; - ; - element.style.width = width + 'px'; - ; - element.style.height = height + 'px'; - ; - }, - - relativize: function( element ) - { - element = $(element); - if ( element.style.position == 'relative' ) return; - Position.prepare(); - - element.style.position = 'relative'; - var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); - var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); - - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.height = element._originalHeight; - element.style.width = element._originalWidth; - } -} - -// Safari returns margins on body which is incorrect if the child is absolutely -// positioned. For performance reasons, redefine Position.cumulativeOffset for -// KHTML/WebKit only. -if ( /Konqueror|Safari|KHTML/.test(navigator.userAgent) ) -{ - Position.cumulativeOffset = function( element ) - { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - if ( element.offsetParent == document.body ) - if ( Element.getStyle(element, 'position') == 'absolute' ) break; - - element = element.offsetParent; - } - while ( element ); - - return [valueL, valueT]; - } -} - -Element.addMethods(); \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/scriptaculous.js b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/scriptaculous.js deleted file mode 100644 index 60489ef74..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/scriptaculous.js +++ /dev/null @@ -1,72 +0,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. - */ - -// script.aculo.us scriptaculous.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006 - -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -var Scriptaculous = { - Version: '1.6.4', - require: function( libraryName ) - { - // inserting via DOM fails in Safari 2.0, so brute force approach - document.write(''); - }, - load: function() - { - if ( (typeof Prototype == 'undefined') || (typeof Element == 'undefined') || - (typeof Element.Methods == 'undefined') || - parseFloat(Prototype.Version.split(".")[0] + "." + Prototype.Version.split(".")[1]) < 1.5 ) - throw("script.aculo.us requires the Prototype JavaScript framework >= 1.5.0"); - - $A(document.getElementsByTagName("script")).findAll(function( s ) - { - return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/)) - }).each(function( s ) - { - var path = s.src.replace(/scriptaculous\.js(\?.*)?$/, ''); - var includes = s.src.match(/\?.*load=([a-z,]*)/); - (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each(function( include ) - { - Scriptaculous.require(path + include + '.js') - }); - }); - } -} - -Scriptaculous.load(); \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/slider.js b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/slider.js deleted file mode 100644 index 82a1cd1f0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/slider.js +++ /dev/null @@ -1,365 +0,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. - */ - -// script.aculo.us slider.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006 - -// Copyright (c) 2005 Marty Haught, Thomas Fuchs -// -// See http://script.aculo.us for more info -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -if ( !Control ) var Control = {}; -Control.Slider = Class.create(); - -// options: -// axis: 'vertical', or 'horizontal' (default) -// -// callbacks: -// onChange(value) -// onSlide(value) -Control.Slider.prototype = { - initialize: function( handle, track, options ) - { - var slider = this; - - if ( handle instanceof Array ) - { - this.handles = handle.collect(function( e ) - { - return $(e) - }); - } - else - { - this.handles = [$(handle)]; - } - - this.track = $(track); - this.options = options || {}; - - this.axis = this.options.axis || 'horizontal'; - this.increment = this.options.increment || 1; - this.step = parseInt(this.options.step || '1'); - this.range = this.options.range || $R(0, 1); - - this.value = 0; - // assure backwards compat - this.values = this.handles.map(function() - { - return 0 - }); - this.spans = this.options.spans ? this.options.spans.map(function( s ) - { - return $(s) - }) : false; - this.options.startSpan = $(this.options.startSpan || null); - this.options.endSpan = $(this.options.endSpan || null); - - this.restricted = this.options.restricted || false; - - this.maximum = this.options.maximum || this.range.end; - this.minimum = this.options.minimum || this.range.start; - - // Will be used to align the handle onto the track, if necessary - this.alignX = parseInt(this.options.alignX || '0'); - this.alignY = parseInt(this.options.alignY || '0'); - - this.trackLength = this.maximumOffset() - this.minimumOffset(); - - this.handleLength = this.isVertical() ? (this.handles[0].offsetHeight != 0 ? this.handles[0].offsetHeight - : this.handles[0].style.height.replace(/px$/, "")) : (this.handles[0].offsetWidth != 0 - ? this.handles[0].offsetWidth : this.handles[0].style.width.replace(/px$/, "")); - - this.active = false; - this.dragging = false; - this.disabled = false; - - if ( this.options.disabled ) this.setDisabled(); - - // Allowed values array - this.allowedValues = this.options.values ? this.options.values.sortBy(Prototype.K) : false; - if ( this.allowedValues ) - { - this.minimum = this.allowedValues.min(); - this.maximum = this.allowedValues.max(); - } - - this.eventMouseDown = this.startDrag.bindAsEventListener(this); - this.eventMouseUp = this.endDrag.bindAsEventListener(this); - this.eventMouseMove = this.update.bindAsEventListener(this); - - // Initialize handles in reverse (make sure first handle is active) - this.handles.each(function( h, i ) - { - i = slider.handles.length - 1 - i; - slider.setValue(parseFloat((slider.options.sliderValue instanceof Array ? slider.options.sliderValue[i] - : slider.options.sliderValue) || slider.range.start), i); - Element.makePositioned(h); - // fix IE - Event.observe(h, "mousedown", slider.eventMouseDown); - }); - - Event.observe(this.track, "mousedown", this.eventMouseDown); - Event.observe(document, "mouseup", this.eventMouseUp); - Event.observe(document, "mousemove", this.eventMouseMove); - - this.initialized = true; - }, - dispose: function() - { - var slider = this; - Event.stopObserving(this.track, "mousedown", this.eventMouseDown); - Event.stopObserving(document, "mouseup", this.eventMouseUp); - Event.stopObserving(document, "mousemove", this.eventMouseMove); - this.handles.each(function( h ) - { - Event.stopObserving(h, "mousedown", slider.eventMouseDown); - }); - }, - setDisabled: function() - { - this.disabled = true; - }, - setEnabled: function() - { - this.disabled = false; - }, - getNearestValue: function( value ) - { - if ( this.allowedValues ) - { - if ( value >= this.allowedValues.max() ) return(this.allowedValues.max()); - if ( value <= this.allowedValues.min() ) return(this.allowedValues.min()); - - var offset = Math.abs(this.allowedValues[0] - value); - var newValue = this.allowedValues[0]; - this.allowedValues.each(function( v ) - { - var currentOffset = Math.abs(v - value); - if ( currentOffset <= offset ) - { - newValue = v; - offset = currentOffset; - } - }); - return newValue; - } - if ( value > this.range.end ) return this.range.end; - if ( value < this.range.start ) return this.range.start; - return value; - }, - setValue: function( sliderValue, handleIdx ) - { - if ( !this.active ) - { - this.activeHandleIdx = handleIdx || 0; - this.activeHandle = this.handles[this.activeHandleIdx]; - this.updateStyles(); - } - handleIdx = handleIdx || this.activeHandleIdx || 0; - if ( this.initialized && this.restricted ) - { - if ( (handleIdx > 0) && (sliderValue < this.values[handleIdx - 1]) ) - sliderValue = this.values[handleIdx - 1]; - if ( (handleIdx < (this.handles.length - 1)) && (sliderValue > this.values[handleIdx + 1]) ) - sliderValue = this.values[handleIdx + 1]; - } - sliderValue = this.getNearestValue(sliderValue); - this.values[handleIdx] = sliderValue; - this.value = this.values[0]; - // assure backwards compat - - this.handles[handleIdx].style[this.isVertical() ? 'top' : 'left'] = this.translateToPx(sliderValue); - - this.drawSpans(); - if ( !this.dragging || !this.event ) this.updateFinished(); - }, - setValueBy: function( delta, handleIdx ) - { - this.setValue(this.values[handleIdx || this.activeHandleIdx || 0] + delta, handleIdx || this.activeHandleIdx || - 0); - }, - translateToPx: function( value ) - { - return Math.round(((this.trackLength - this.handleLength) / (this.range.end - this.range.start)) * - (value - this.range.start)) + "px"; - }, - translateToValue: function( offset ) - { - return ((offset / (this.trackLength - this.handleLength) * (this.range.end - this.range.start)) + - this.range.start); - }, - getRange: function( range ) - { - var v = this.values.sortBy(Prototype.K); - range = range || 0; - return $R(v[range], v[range + 1]); - }, - minimumOffset: function() - { - return(this.isVertical() ? this.alignY : this.alignX); - }, - maximumOffset: function() - { - return(this.isVertical() ? (this.track.offsetHeight != 0 ? this.track.offsetHeight - : this.track.style.height.replace(/px$/, "")) - this.alignY : (this.track.offsetWidth != 0 - ? this.track.offsetWidth : this.track.style.width.replace(/px$/, "")) - this.alignY); - }, - isVertical: function() - { - return (this.axis == 'vertical'); - }, - drawSpans: function() - { - var slider = this; - if ( this.spans ) - $R(0, this.spans.length - 1).each(function( r ) - { - slider.setSpan(slider.spans[r], slider.getRange(r)) - }); - if ( this.options.startSpan ) - this.setSpan(this.options.startSpan, $R(0, this.values.length > 1 ? this.getRange(0).min() : this.value)); - if ( this.options.endSpan ) - this.setSpan(this.options.endSpan, $R(this.values.length > 1 ? this.getRange(this.spans.length - 1).max() - : this.value, this.maximum)); - }, - setSpan: function( span, range ) - { - if ( this.isVertical() ) - { - span.style.top = this.translateToPx(range.start); - span.style.height = this.translateToPx(range.end - range.start + this.range.start); - } - else - { - span.style.left = this.translateToPx(range.start); - span.style.width = this.translateToPx(range.end - range.start + this.range.start); - } - }, - updateStyles: function() - { - this.handles.each(function( h ) - { - Element.removeClassName(h, 'selected') - }); - Element.addClassName(this.activeHandle, 'selected'); - }, - startDrag: function( event ) - { - if ( Event.isLeftClick(event) ) - { - if ( !this.disabled ) - { - this.active = true; - - var handle = Event.element(event); - var pointer = [Event.pointerX(event), Event.pointerY(event)]; - var track = handle; - if ( track == this.track ) - { - var offsets = Position.cumulativeOffset(this.track); - this.event = event; - this.setValue(this.translateToValue((this.isVertical() ? pointer[1] - offsets[1] : pointer[0] - - offsets[0]) - - (this.handleLength / 2))); - var offsets = Position.cumulativeOffset(this.activeHandle); - this.offsetX = (pointer[0] - offsets[0]); - this.offsetY = (pointer[1] - offsets[1]); - } - else - { - // find the handle (prevents issues with Safari) - while ( (this.handles.indexOf(handle) == -1) && handle.parentNode ) - handle = handle.parentNode; - - this.activeHandle = handle; - this.activeHandleIdx = this.handles.indexOf(this.activeHandle); - this.updateStyles(); - - var offsets = Position.cumulativeOffset(this.activeHandle); - this.offsetX = (pointer[0] - offsets[0]); - this.offsetY = (pointer[1] - offsets[1]); - } - } - Event.stop(event); - } - }, - update: function( event ) - { - if ( this.active ) - { - if ( !this.dragging ) this.dragging = true; - this.draw(event); - // fix AppleWebKit rendering - if ( navigator.appVersion.indexOf('AppleWebKit') > 0 ) window.scrollBy(0, 0); - Event.stop(event); - } - }, - draw: function( event ) - { - var pointer = [Event.pointerX(event), Event.pointerY(event)]; - var offsets = Position.cumulativeOffset(this.track); - pointer[0] -= this.offsetX + offsets[0]; - pointer[1] -= this.offsetY + offsets[1]; - this.event = event; - this.setValue(this.translateToValue(this.isVertical() ? pointer[1] : pointer[0])); - if ( this.initialized && this.options.onSlide ) - this.options.onSlide(this.values.length > 1 ? this.values : this.value, this); - }, - endDrag: function( event ) - { - if ( this.active && this.dragging ) - { - this.finishDrag(event, true); - Event.stop(event); - } - this.active = false; - this.dragging = false; - }, - finishDrag: function( event, success ) - { - this.active = false; - this.dragging = false; - this.updateFinished(); - }, - updateFinished: function() - { - if ( this.initialized && this.options.onChange ) - this.options.onChange(this.values.length > 1 ? this.values : this.value, this); - this.event = null; - } -} \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/unittest.js b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/unittest.js deleted file mode 100644 index cd3143305..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/scriptaculous/unittest.js +++ /dev/null @@ -1,744 +0,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. - */ - -// script.aculo.us unittest.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006 - -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// (c) 2005 Jon Tirsen (http://www.tirsen.com) -// (c) 2005 Michael Schuerig (http://www.schuerig.de/michael/) -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -// experimental, Firefox-only -Event.simulateMouse = function( element, eventName ) -{ - var options = Object.extend({ - pointerX: 0, - pointerY: 0, - buttons: 0 - }, arguments[2] || {}); - var oEvent = document.createEvent("MouseEvents"); - oEvent.initMouseEvent(eventName, true, true, document.defaultView, options.buttons, options.pointerX, options.pointerY, options.pointerX, options.pointerY, false, false, false, false, 0, $(element)); - - if ( this.mark ) Element.remove(this.mark); - this.mark = document.createElement('div'); - this.mark.appendChild(document.createTextNode(" ")); - document.body.appendChild(this.mark); - this.mark.style.position = 'absolute'; - this.mark.style.top = options.pointerY + "px"; - this.mark.style.left = options.pointerX + "px"; - this.mark.style.width = "5px"; - this.mark.style.height = "5px;"; - this.mark.style.borderTop = "1px solid red;" - this.mark.style.borderLeft = "1px solid red;" - - if ( this.step ) - alert('[' + new Date().getTime().toString() + '] ' + eventName + '/' + Test.Unit.inspect(options)); - - $(element).dispatchEvent(oEvent); -}; - -// Note: Due to a fix in Firefox 1.0.5/6 that probably fixed "too much", this doesn't work in 1.0.6 or DP2. -// You need to downgrade to 1.0.4 for now to get this working -// See https://bugzilla.mozilla.org/show_bug.cgi?id=289940 for the fix that fixed too much -Event.simulateKey = function( element, eventName ) -{ - var options = Object.extend({ - ctrlKey: false, - altKey: false, - shiftKey: false, - metaKey: false, - keyCode: 0, - charCode: 0 - }, arguments[2] || {}); - - var oEvent = document.createEvent("KeyEvents"); - oEvent.initKeyEvent(eventName, true, true, window, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.keyCode, options.charCode); - $(element).dispatchEvent(oEvent); -}; - -Event.simulateKeys = function( element, command ) -{ - for ( var i = 0; i < command.length; i++ ) - { - Event.simulateKey(element, 'keypress', {charCode:command.charCodeAt(i)}); - } -}; - -var Test = {} -Test.Unit = {}; - -// security exception workaround -Test.Unit.inspect = Object.inspect; - -Test.Unit.Logger = Class.create(); -Test.Unit.Logger.prototype = { - initialize: function( log ) - { - this.log = $(log); - if ( this.log ) - { - this._createLogTable(); - } - }, - start: function( testName ) - { - if ( !this.log ) return; - this.testName = testName; - this.lastLogLine = document.createElement('tr'); - this.statusCell = document.createElement('td'); - this.nameCell = document.createElement('td'); - this.nameCell.appendChild(document.createTextNode(testName)); - this.messageCell = document.createElement('td'); - this.lastLogLine.appendChild(this.statusCell); - this.lastLogLine.appendChild(this.nameCell); - this.lastLogLine.appendChild(this.messageCell); - this.loglines.appendChild(this.lastLogLine); - }, - finish: function( status, summary ) - { - if ( !this.log ) return; - this.lastLogLine.className = status; - this.statusCell.innerHTML = status; - this.messageCell.innerHTML = this._toHTML(summary); - }, - message: function( message ) - { - if ( !this.log ) return; - this.messageCell.innerHTML = this._toHTML(message); - }, - summary: function( summary ) - { - if ( !this.log ) return; - this.logsummary.innerHTML = this._toHTML(summary); - }, - _createLogTable: function() - { - this.log.innerHTML = '

    ' + '' + - '' + - '' + '
    StatusTestMessage
    '; - this.logsummary = $('logsummary') - this.loglines = $('loglines'); - }, - _toHTML: function( txt ) - { - return txt.escapeHTML().replace(/\n/g, "
    "); - } -} - -Test.Unit.Runner = Class.create(); -Test.Unit.Runner.prototype = { - initialize: function( testcases ) - { - this.options = Object.extend({ - testLog: 'testlog' - }, arguments[1] || {}); - this.options.resultsURL = this.parseResultsURLQueryParameter(); - if ( this.options.testLog ) - { - this.options.testLog = $(this.options.testLog) || null; - } - if ( this.options.tests ) - { - this.tests = []; - for ( var i = 0; i < this.options.tests.length; i++ ) - { - if ( /^test/.test(this.options.tests[i]) ) - { - this.tests.push(new Test.Unit.Testcase(this.options.tests[i], testcases[this.options.tests[i]], testcases["setup"], testcases["teardown"])); - } - } - } - else - { - if ( this.options.test ) - { - this.tests = - [new Test.Unit.Testcase(this.options.test, testcases[this.options.test], testcases["setup"], testcases["teardown"])]; - } - else - { - this.tests = []; - for ( var testcase in testcases ) - { - if ( /^test/.test(testcase) ) - { - this.tests.push(new Test.Unit.Testcase(this.options.context ? ' -> ' + - this.options.titles[testcase] - : testcase, testcases[testcase], testcases["setup"], testcases["teardown"])); - } - } - } - } - this.currentTest = 0; - this.logger = new Test.Unit.Logger(this.options.testLog); - setTimeout(this.runTests.bind(this), 1000); - }, - parseResultsURLQueryParameter: function() - { - return window.location.search.parseQuery()["resultsURL"]; - }, -// Returns: -// "ERROR" if there was an error, -// "FAILURE" if there was a failure, or -// "SUCCESS" if there was neither - getResult: function() - { - var hasFailure = false; - for ( var i = 0; i < this.tests.length; i++ ) - { - if ( this.tests[i].errors > 0 ) - { - return "ERROR"; - } - if ( this.tests[i].failures > 0 ) - { - hasFailure = true; - } - } - if ( hasFailure ) - { - return "FAILURE"; - } - else - { - return "SUCCESS"; - } - }, - postResults: function() - { - if ( this.options.resultsURL ) - { - new Ajax.Request(this.options.resultsURL, { method: 'get', parameters: 'result=' + - this.getResult(), asynchronous: false }); - } - }, - runTests: function() - { - var test = this.tests[this.currentTest]; - if ( !test ) - { - // finished! - this.postResults(); - this.logger.summary(this.summary()); - return; - } - if ( !test.isWaiting ) - { - this.logger.start(test.name); - } - test.run(); - if ( test.isWaiting ) - { - this.logger.message("Waiting for " + test.timeToWait + "ms"); - setTimeout(this.runTests.bind(this), test.timeToWait || 1000); - } - else - { - this.logger.finish(test.status(), test.summary()); - this.currentTest++; - // tail recursive, hopefully the browser will skip the stackframe - this.runTests(); - } - }, - summary: function() - { - var assertions = 0; - var failures = 0; - var errors = 0; - var messages = []; - for ( var i = 0; i < this.tests.length; i++ ) - { - assertions += this.tests[i].assertions; - failures += this.tests[i].failures; - errors += this.tests[i].errors; - } - return ( - (this.options.context ? this.options.context + ': ' : '') + this.tests.length + " tests, " + assertions + - " assertions, " + failures + " failures, " + errors + " errors"); - } -} - -Test.Unit.Assertions = Class.create(); -Test.Unit.Assertions.prototype = { - initialize: function() - { - this.assertions = 0; - this.failures = 0; - this.errors = 0; - this.messages = []; - }, - summary: function() - { - return ( - this.assertions + " assertions, " + this.failures + " failures, " + this.errors + " errors" + "\n" + - this.messages.join("\n")); - }, - pass: function() - { - this.assertions++; - }, - fail: function( message ) - { - this.failures++; - this.messages.push("Failure: " + message); - }, - info: function( message ) - { - this.messages.push("Info: " + message); - }, - error: function( error ) - { - this.errors++; - this.messages.push(error.name + ": " + error.message + "(" + Test.Unit.inspect(error) + ")"); - }, - status: function() - { - if ( this.failures > 0 ) return 'failed'; - if ( this.errors > 0 ) return 'error'; - return 'passed'; - }, - assert: function( expression ) - { - var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"'; - try - { - expression ? this.pass() : this.fail(message); - } - catch( e ) - { - this.error(e); - } - }, - assertEqual: function( expected, actual ) - { - var message = arguments[2] || "assertEqual"; - try - { - (expected == actual) ? this.pass() : this.fail(message + ': expected "' + Test.Unit.inspect(expected) + - '", actual "' + Test.Unit.inspect(actual) + '"'); - } - catch( e ) - { - this.error(e); - } - }, - assertEnumEqual: function( expected, actual ) - { - var message = arguments[2] || "assertEnumEqual"; - try - { - $A(expected).length == $A(actual).length && expected.zip(actual).all(function( pair ) - { - return pair[0] == pair[1] - }) ? this.pass() : this.fail(message + ': expected ' + Test.Unit.inspect(expected) + ', actual ' + - Test.Unit.inspect(actual)); - } - catch( e ) - { - this.error(e); - } - }, - assertNotEqual: function( expected, actual ) - { - var message = arguments[2] || "assertNotEqual"; - try - { - (expected != actual) ? this.pass() : this.fail(message + ': got "' + Test.Unit.inspect(actual) + '"'); - } - catch( e ) - { - this.error(e); - } - }, - assertIdentical: function( expected, actual ) - { - var message = arguments[2] || "assertIdentical"; - try - { - (expected === actual) ? this.pass() : this.fail(message + ': expected "' + Test.Unit.inspect(expected) + - '", actual "' + Test.Unit.inspect(actual) + '"'); - } - catch( e ) - { - this.error(e); - } - }, - assertNotIdentical: function( expected, actual ) - { - var message = arguments[2] || "assertNotIdentical"; - try - { - !(expected === actual) ? this.pass() : this.fail(message + ': expected "' + Test.Unit.inspect(expected) + - '", actual "' + Test.Unit.inspect(actual) + '"'); - } - catch( e ) - { - this.error(e); - } - }, - assertNull: function( obj ) - { - var message = arguments[1] || 'assertNull' - try - { - (obj == null) ? this.pass() : this.fail(message + ': got "' + Test.Unit.inspect(obj) + '"'); - } - catch( e ) - { - this.error(e); - } - }, - assertMatch: function( expected, actual ) - { - var message = arguments[2] || 'assertMatch'; - var regex = new RegExp(expected); - try - { - (regex.exec(actual)) ? this.pass() : this.fail(message + ' : regex: "' + Test.Unit.inspect(expected) + - ' did not match: ' + Test.Unit.inspect(actual) + '"'); - } - catch( e ) - { - this.error(e); - } - }, - assertHidden: function( element ) - { - var message = arguments[1] || 'assertHidden'; - this.assertEqual("none", element.style.display, message); - }, - assertNotNull: function( object ) - { - var message = arguments[1] || 'assertNotNull'; - this.assert(object != null, message); - }, - assertType: function( expected, actual ) - { - var message = arguments[2] || 'assertType'; - try - { - (actual.constructor == expected) ? this.pass() : this.fail(message + ': expected "' + - Test.Unit.inspect(expected) + '", actual "' + - (actual.constructor) + '"'); - } - catch( e ) - { - this.error(e); - } - }, - assertNotOfType: function( expected, actual ) - { - var message = arguments[2] || 'assertNotOfType'; - try - { - (actual.constructor != expected) ? this.pass() : this.fail(message + ': expected "' + - Test.Unit.inspect(expected) + '", actual "' + - (actual.constructor) + '"'); - } - catch( e ) - { - this.error(e); - } - }, - assertInstanceOf: function( expected, actual ) - { - var message = arguments[2] || 'assertInstanceOf'; - try - { - (actual instanceof expected) ? this.pass() : this.fail(message + - ": object was not an instance of the expected type"); - } - catch( e ) - { - this.error(e); - } - }, - assertNotInstanceOf: function( expected, actual ) - { - var message = arguments[2] || 'assertNotInstanceOf'; - try - { - !(actual instanceof expected) ? this.pass() : this.fail(message + - ": object was an instance of the not expected type"); - } - catch( e ) - { - this.error(e); - } - }, - assertRespondsTo: function( method, obj ) - { - var message = arguments[2] || 'assertRespondsTo'; - try - { - (obj[method] && typeof obj[method] == 'function') ? this.pass() : this.fail(message + - ": object doesn't respond to [" + - method + "]"); - } - catch( e ) - { - this.error(e); - } - }, - assertReturnsTrue: function( method, obj ) - { - var message = arguments[2] || 'assertReturnsTrue'; - try - { - var m = obj[method]; - if ( !m ) m = obj['is' + method.charAt(0).toUpperCase() + method.slice(1)]; - m() ? this.pass() : this.fail(message + ": method returned false"); - } - catch( e ) - { - this.error(e); - } - }, - assertReturnsFalse: function( method, obj ) - { - var message = arguments[2] || 'assertReturnsFalse'; - try - { - var m = obj[method]; - if ( !m ) m = obj['is' + method.charAt(0).toUpperCase() + method.slice(1)]; - !m() ? this.pass() : this.fail(message + ": method returned true"); - } - catch( e ) - { - this.error(e); - } - }, - assertRaise: function( exceptionName, method ) - { - var message = arguments[2] || 'assertRaise'; - try - { - method(); - this.fail(message + ": exception expected but none was raised"); - } - catch( e ) - { - (e.name == exceptionName) ? this.pass() : this.error(e); - } - }, - assertElementsMatch: function() - { - var expressions = $A(arguments), elements = $A(expressions.shift()); - if ( elements.length != expressions.length ) - { - this.fail('assertElementsMatch: size mismatch: ' + elements.length + ' elements, ' + expressions.length + - ' expressions'); - return false; - } - elements.zip(expressions).all(function( pair, index ) - { - var element = $(pair.first()), expression = pair.last(); - if ( element.match(expression) ) return true; - this.fail('assertElementsMatch: (in index ' + index + ') expected ' + expression.inspect() + ' but got ' + - element.inspect()); - }.bind(this)) && this.pass(); - }, - assertElementMatches: function( element, expression ) - { - this.assertElementsMatch([element], expression); - }, - benchmark: function( operation, iterations ) - { - var startAt = new Date(); - (iterations || 1).times(operation); - var timeTaken = ((new Date()) - startAt); - this.info((arguments[2] || 'Operation') + ' finished ' + iterations + ' iterations in ' + (timeTaken / 1000) + - 's'); - return timeTaken; - }, - _isVisible: function( element ) - { - element = $(element); - if ( !element.parentNode ) return true; - this.assertNotNull(element); - if ( element.style && Element.getStyle(element, 'display') == 'none' ) - return false; - - return this._isVisible(element.parentNode); - }, - assertNotVisible: function( element ) - { - this.assert(!this._isVisible(element), Test.Unit.inspect(element) + - " was not hidden and didn't have a hidden parent either. " + - ("" || arguments[1])); - }, - assertVisible: function( element ) - { - this.assert(this._isVisible(element), Test.Unit.inspect(element) + " was not visible. " + ("" || arguments[1])); - }, - benchmark: function( operation, iterations ) - { - var startAt = new Date(); - (iterations || 1).times(operation); - var timeTaken = ((new Date()) - startAt); - this.info((arguments[2] || 'Operation') + ' finished ' + iterations + ' iterations in ' + (timeTaken / 1000) + - 's'); - return timeTaken; - } -} - -Test.Unit.Testcase = Class.create(); -Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), { - initialize: function( name, test, setup, teardown ) - { - Test.Unit.Assertions.prototype.initialize.bind(this)(); - this.name = name; - - if ( typeof test == 'string' ) - { - test = test.gsub(/(\.should[^\(]+\()/, '#{0}this,'); - test = test.gsub(/(\.should[^\(]+)\(this,\)/, '#{1}(this)'); - this.test = function() - { - eval('with(this){' + test + '}'); - } - } - else - { - this.test = test || function() - { - }; - } - - this.setup = setup || function() - { - }; - this.teardown = teardown || function() - { - }; - this.isWaiting = false; - this.timeToWait = 1000; - }, - wait: function( time, nextPart ) - { - this.isWaiting = true; - this.test = nextPart; - this.timeToWait = time; - }, - run: function() - { - try - { - try - { - if ( !this.isWaiting ) this.setup.bind(this)(); - this.isWaiting = false; - this.test.bind(this)(); - } - finally - { - if ( !this.isWaiting ) - { - this.teardown.bind(this)(); - } - } - } - catch( e ) - { - this.error(e); - } - } -}); - -// *EXPERIMENTAL* BDD-style testing to please non-technical folk -// This draws many ideas from RSpec http://rspec.rubyforge.org/ - -Test.setupBDDExtensionMethods = function() -{ - var METHODMAP = { - shouldEqual: 'assertEqual', - shouldNotEqual: 'assertNotEqual', - shouldEqualEnum: 'assertEnumEqual', - shouldBeA: 'assertType', - shouldNotBeA: 'assertNotOfType', - shouldBeAn: 'assertType', - shouldNotBeAn: 'assertNotOfType', - shouldBeNull: 'assertNull', - shouldNotBeNull: 'assertNotNull', - - shouldBe: 'assertReturnsTrue', - shouldNotBe: 'assertReturnsFalse', - shouldRespondTo: 'assertRespondsTo' - }; - Test.BDDMethods = {}; - for ( m in METHODMAP ) - { - Test.BDDMethods[m] = - eval('function(){' + 'var args = $A(arguments);' + 'var scope = args.shift();' + 'scope.' + METHODMAP[m] + - '.apply(scope,(args || []).concat([this])); }'); - } - [Array.prototype, String.prototype, Number.prototype].each(function( p ) - { - Object.extend(p, Test.BDDMethods) - }); -} - -Test.context = function( name, spec, log ) -{ - Test.setupBDDExtensionMethods(); - - var compiledSpec = {}; - var titles = {}; - for ( specName in spec ) - { - switch ( specName ) - { - case "setup": - case "teardown": - compiledSpec[specName] = spec[specName]; - break; - default: - var testName = 'test' + specName.gsub(/\s+/, '-').camelize(); - var body = spec[specName].toString().split('\n').slice(1); - if ( /^\{/.test(body[0]) ) body = body.slice(1); - body.pop(); - body = body.map(function( statement ) - { - return statement.strip() - }); - compiledSpec[testName] = body.join('\n'); - titles[testName] = specName; - } - } - new Test.Unit.Runner(compiledSpec, { titles: titles, testLog: log || 'testlog', context: name }); -}; \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/rss/rss.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/rss/rss.xml deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/checkboxlist.ftl b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/checkboxlist.ftl deleted file mode 100644 index 75d8c6d82..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/checkboxlist.ftl +++ /dev/null @@ -1,39 +0,0 @@ -<@ww.iterator value="parameters.list"> - <#if parameters.listKey?exists> - <#assign itemKey = stack.findValue(parameters.listKey)/> - <#else> - <#assign itemKey = stack.findValue('top')/> - - <#if parameters.listValue?exists> - <#assign itemValue = stack.findString(parameters.listValue)/> - <#else> - <#assign itemValue = stack.findString('top')/> - - -<#if tag.contains(parameters.nameValue, itemKey)> - checked="checked"<#rt/> - -<#if itemKey?exists> - value="${itemKey?html}"<#rt/> - -<#if parameters.disabled?default(false)> - disabled="disabled"<#rt/> - -<#if parameters.tabindex?exists> - tabindex="${parameters.tabindex?html}"<#rt/> - -<#if parameters.cssClass?exists> - class="${parameters.cssClass?html}"<#rt/> - -<#if parameters.cssStyle?exists> - style="${parameters.cssStyle?html}"<#rt/> - -<#if parameters.title?exists> - title="${parameters.title?html}"<#rt/> - -<#include "/${parameters.templateDir}/simple/scripting-events.ftl" /> -/><#rt/> -
    - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/radiomap.ftl b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/radiomap.ftl deleted file mode 100644 index 89ef578d1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/radiomap.ftl +++ /dev/null @@ -1,39 +0,0 @@ -<@ww.iterator value="parameters.list"> - <#if parameters.listKey?exists> - <#assign itemKey = stack.findValue(parameters.listKey)/> - <#else> - <#assign itemKey = stack.findValue('top')/> - - <#if parameters.listValue?exists> - <#assign itemValue = stack.findString(parameters.listValue)/> - <#else> - <#assign itemValue = stack.findString('top')/> - - -<#if tag.contains(parameters.nameValue, itemKey)> - checked="checked"<#rt/> - -<#if itemKey?exists> - value="${itemKey?html}"<#rt/> - -<#if parameters.disabled?default(false)> - disabled="disabled"<#rt/> - -<#if parameters.tabindex?exists> - tabindex="${parameters.tabindex?html}"<#rt/> - -<#if parameters.cssClass?exists> - class="${parameters.cssClass?html}"<#rt/> - -<#if parameters.cssStyle?exists> - style="${parameters.cssStyle?html}"<#rt/> - -<#if parameters.title?exists> - title="${parameters.title?html}"<#rt/> - -<#include "/${parameters.templateDir}/simple/scripting-events.ftl" /> -/><#rt/> -
    - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/theme.properties b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/theme.properties deleted file mode 100644 index 0f2fddc8c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/archiva/theme.properties +++ /dev/null @@ -1,20 +0,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. -# - -parent = xhtml diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/a-close.ftl b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/a-close.ftl deleted file mode 100644 index 706f1f49f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/a-close.ftl +++ /dev/null @@ -1 +0,0 @@ -<#rt/> \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/a.ftl b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/a.ftl deleted file mode 100644 index 1b41b312f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/a.ftl +++ /dev/null @@ -1,22 +0,0 @@ - -<#if parameters.id?if_exists != ""> - id="${parameters.id?html}"<#rt/> - -<#if parameters.href?if_exists != ""> - href="${parameters.href}"<#rt/> - -<#if parameters.tabindex?exists> - tabindex="${parameters.tabindex?html}"<#rt/> - -<#if parameters.cssClass?exists> - class="${parameters.cssClass?html}"<#rt/> - -<#if parameters.cssStyle?exists> - style="${parameters.cssStyle?html}"<#rt/> - -<#if parameters.title?exists> - title="${parameters.title?html}"<#rt/> - -<#include "/${parameters.templateDir}/simple/scripting-events.ftl" /> -<#include "/${parameters.templateDir}/simple/common-attributes.ftl" /> -><#rt/> diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/actionerror.ftl b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/actionerror.ftl deleted file mode 100644 index 74c313652..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/actionerror.ftl +++ /dev/null @@ -1,7 +0,0 @@ -<#if (actionErrors?exists && actionErrors?size > 0)> -
      - <#list actionErrors as error> -
    • ${error}
    • - -
    - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/actionmessage.ftl b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/actionmessage.ftl deleted file mode 100644 index 384b75558..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/actionmessage.ftl +++ /dev/null @@ -1,7 +0,0 @@ -<#if (actionMessages?exists && actionMessages?size > 0)> -
      - <#list actionMessages as message> -
    • ${message}
    • - -
    - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/hidden.ftl b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/hidden.ftl deleted file mode 100644 index c97423fe9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/template/xhtml/hidden.ftl +++ /dev/null @@ -1,15 +0,0 @@ - - name="${parameters.name?default("")?html}"<#rt/> -<#if parameters.nameValue?exists> - value="<@ww.property value="parameters.nameValue"/>"<#rt/> - -<#if parameters.id?exists> - id="${parameters.id?html}"<#rt/> - -<#if parameters.cssClass?exists> - class="${parameters.cssClass?html}"<#rt/> - -<#if parameters.cssStyle?exists> - style="${parameters.cssStyle?html}"<#rt/> - -/> diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/sql/mysql/dev_bootstrap.sql b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/sql/mysql/dev_bootstrap.sql deleted file mode 100644 index 9da244402..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/sql/mysql/dev_bootstrap.sql +++ /dev/null @@ -1,17 +0,0 @@ --- mysql mysql --user=root --password < dev_bootstrap.sql - -create database archiva character set utf8 collate utf8_general_ci; -create database redback; - -use mysql; - -GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX - ON archiva.* - TO 'archiva'@'localhost' - IDENTIFIED BY 'sa'; - -GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX - ON redback.* - TO 'archiva'@'localhost' - IDENTIFIED BY 'sa'; - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/sql/mysql/drop_archiva_tables.sql b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/sql/mysql/drop_archiva_tables.sql deleted file mode 100644 index b30ab647e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/sql/mysql/drop_archiva_tables.sql +++ /dev/null @@ -1,34 +0,0 @@ --- mysql archiva --user=archiva --password=sa < drop_archiva_tables.sql - -DROP TABLE IF EXISTS `ARCHIVAPROJECTMODEL_BUILDEXTENSIONS` ; -DROP TABLE IF EXISTS `ARCHIVAPROJECTMODEL_DEPENDENCIES` ; -DROP TABLE IF EXISTS `ARCHIVAPROJECTMODEL_DEPENDENCYMANAGEMENT` ; -DROP TABLE IF EXISTS `ARCHIVAPROJECTMODEL_INDIVIDUALS` ; -DROP TABLE IF EXISTS `ARCHIVAPROJECTMODEL_LICENSES` ; -DROP TABLE IF EXISTS `ARCHIVAPROJECTMODEL_MAILINGLISTS` ; -DROP TABLE IF EXISTS `ARCHIVAPROJECTMODEL_PLUGINS` ; -DROP TABLE IF EXISTS `ARCHIVAPROJECTMODEL_REPORTS` ; -DROP TABLE IF EXISTS `ARCHIVAPROJECTMODEL_REPOSITORIES` ; -DROP TABLE IF EXISTS `ARCHIVA_ARTIFACT` ; -DROP TABLE IF EXISTS `INDIVIDUAL_ROLES` ; -DROP TABLE IF EXISTS `ARCHIVA_INDIVIDUAL` ; -DROP TABLE IF EXISTS `ARCHIVA_EXCLUSIONS` ; -DROP TABLE IF EXISTS `ARCHIVA_DEPENDENCY` ; -DROP TABLE IF EXISTS `DEPENDENCY_EXCLUSIONS` ; -DROP TABLE IF EXISTS `SEQUENCE_TABLE` ; -DROP TABLE IF EXISTS `ARCHIVA_LICENSES` ; -DROP TABLE IF EXISTS `ARCHIVA_PROJECT_REPOSITORIES` ; -DROP TABLE IF EXISTS `ARCHIVA_REPOSITORY_STATS` ; -DROP TABLE IF EXISTS `MAILINGLIST_OTHERARCHIVES` ; -DROP TABLE IF EXISTS `ARCHIVA_MAILING_LISTS` ; - -DROP TABLE IF EXISTS `ARCHIVA_REPOSITORIES` ; -DROP TABLE IF EXISTS `ARCHIVA_ARTIFACT_REFERENCE` ; -DROP TABLE IF EXISTS `ARCHIVA_PROJECT` ; -DROP TABLE IF EXISTS `ARCHIVA_ISSUE_MANAGEMENT` ; -DROP TABLE IF EXISTS `ARCHIVA_VERSIONED_REFERENCE` ; -DROP TABLE IF EXISTS `ARCHIVA_CIMANAGEMENT` ; -DROP TABLE IF EXISTS `ARCHIVA_SCM` ; -DROP TABLE IF EXISTS `ARCHIVA_ORGANIZATION` ; -DROP TABLE IF EXISTS `ARCHIVA_REPOSITORY_PROBLEMS` ; - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/AbstractWebworkTestCase.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/AbstractWebworkTestCase.java deleted file mode 100644 index 35f526e4f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/AbstractWebworkTestCase.java +++ /dev/null @@ -1,127 +0,0 @@ -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.xwork.ActionSupport; -import org.apache.commons.lang.StringUtils; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import java.lang.reflect.Method; -import java.util.Collection; -import java.util.List; - -/** - * AbstractWebworkTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractWebworkTestCase - extends PlexusInSpringTestCase -{ - /** - * This is a conveinence method for mimicking how the webwork interceptors - * operate on an action, before the request is processed. - * - * Call this before each major request to the action to be sure you mimic the webwork process correctly. - */ - protected void preRequest( ActionSupport action ) - { - action.clearErrorsAndMessages(); - } - - /** - * Tests the action to ensure that it has errors. - * - * NOTE: Don't forget to run {@link #preRequest(ActionSupport)} before each request to your action! - */ - protected void assertHasErrors( ActionSupport action ) - { - assertNotNull( action.getActionErrors() ); - assertTrue( "Expected an error to occur.", action.getActionErrors().size() > 0 ); - } - - /** - * Tests the action to ensure that it has messages. - * - * NOTE: Don't forget to run {@link #preRequest(ActionSupport)} before each request to your action! - */ - protected void assertHasMessages( ActionSupport action ) - { - assertNotNull( action.getActionMessages() ); - assertTrue( "Expected an message to be set.", action.getActionMessages().size() > 0 ); - } - - /** - * Tests the action to ensure that it has NO errors. - * - * NOTE: Don't forget to run {@link #preRequest(ActionSupport)} before each request to your action! - */ - protected void assertNoErrors( ActionSupport action ) - { - List errors = (List) action.getActionErrors(); - - assertNotNull( errors ); - if ( errors.size() > 0 ) - { - StringBuffer msg = new StringBuffer(); - msg.append( "Should have had no errors. but found the following errors." ); - - for ( String error : errors ) - { - msg.append( "\n " ).append( error ); - } - fail( msg.toString() ); - } - } - - protected void assertRequestStatus( ActionSupport action, String expectedStatus, String methodName ) - throws Exception - { - action.clearErrorsAndMessages(); - - Method method = action.getClass().getDeclaredMethod( methodName, (Class[]) null ); - Object actualStatus = method.invoke( action, (Object[]) null ); - assertTrue( "return should be of type String", actualStatus instanceof String ); - - if ( !StringUtils.equals( expectedStatus, (String) actualStatus ) ) - { - StringBuffer msg = new StringBuffer(); - msg.append( "Unexpected status returned from method <" ); - msg.append( methodName ).append( "> on action <" ); - String clazzname = action.getClass().getName(); - msg.append( clazzname.substring( clazzname.lastIndexOf( '.' ) ) ); - msg.append( ">: expected:<" ).append( expectedStatus ).append( "> but was:<" ); - msg.append( (String) actualStatus ).append( ">. (see attached action messages and errors below)" ); - - for ( String message : (Collection) action.getActionMessages() ) - { - msg.append( "\n [MESSAGE]: " ).append( message ); - } - - for ( String error : (Collection) action.getActionErrors() ) - { - msg.append( "\n [ERROR]: " ).append( error ); - } - - fail( msg.toString() ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/AbstractOrganizationInfoActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/AbstractOrganizationInfoActionTest.java deleted file mode 100644 index c840c2381..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/AbstractOrganizationInfoActionTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.appearance; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.web.action.AbstractWebworkTestCase; -import org.easymock.MockControl; - -/** - * @author James William Dumay - */ -public abstract class AbstractOrganizationInfoActionTest extends AbstractWebworkTestCase -{ - protected MockControl archivaConfigurationControl; - - protected ArchivaConfiguration configuration; - - protected AbstractAppearanceAction action; - - protected Configuration config; - - protected abstract AbstractAppearanceAction getAction(); - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - config = new Configuration(); - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - configuration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - - configuration.getConfiguration(); - archivaConfigurationControl.setReturnValue(config, 1, 2); - - configuration.save(config); - archivaConfigurationControl.setVoidCallable(1, 2); - - archivaConfigurationControl.replay(); - } - - protected void reloadAction() - { - action = getAction(); - action.setConfiguration( configuration ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/EditOrganizationInfoActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/EditOrganizationInfoActionTest.java deleted file mode 100644 index 66ca872c2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/EditOrganizationInfoActionTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.appearance; - -/* - * 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.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.OrganisationInformation; -import org.apache.maven.archiva.web.action.AbstractWebworkTestCase; -import org.easymock.MockControl; - -/** - * @author James William Dumay - */ -public class EditOrganizationInfoActionTest extends AbstractOrganizationInfoActionTest -{ - public void testOrganisationInfoSaves() - throws Exception - { - config.setOrganisationInfo(new OrganisationInformation()); - OrganisationInformation orginfo = config.getOrganisationInfo(); - orginfo.setLogoLocation("LOGO"); - orginfo.setName("NAME"); - orginfo.setUrl("URL"); - - configuration.save(config); - - reloadAction(); - - action.prepare(); - - assertEquals("LOGO", action.getOrganisationLogo()); - assertEquals("NAME", action.getOrganisationName()); - assertEquals("URL", action.getOrganisationUrl()); - - action.setOrganisationLogo("LOGO1"); - action.setOrganisationName("NAME1"); - action.setOrganisationUrl("URL1"); - - action.execute(); - - assertEquals("LOGO1", orginfo.getLogoLocation()); - assertEquals("NAME1", orginfo.getName()); - assertEquals("URL1", orginfo.getUrl()); - } - - @Override - protected AbstractAppearanceAction getAction() - { - return (EditOrganisationInfoAction) lookup( Action.class.getName(), "editOrganisationInfo" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/OrganizationInfoActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/OrganizationInfoActionTest.java deleted file mode 100644 index fec9e8f81..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/appearance/OrganizationInfoActionTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.appearance; - -/* - * 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.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.OrganisationInformation; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.web.action.AbstractWebworkTestCase; - -/** - * @author James William Dumay - */ -public class OrganizationInfoActionTest extends AbstractOrganizationInfoActionTest -{ - public void testOrganisationInfoLoads() - throws Exception - { - config.setOrganisationInfo(new OrganisationInformation()); - OrganisationInformation orginfo = config.getOrganisationInfo(); - orginfo.setLogoLocation("LOGO"); - orginfo.setName("NAME"); - orginfo.setUrl("URL"); - - configuration.save(config); - - reloadAction(); - - action.prepare(); - - assertEquals("URL", action.getOrganisationUrl()); - assertEquals("NAME", action.getOrganisationName()); - assertEquals("LOGO", action.getOrganisationLogo()); - } - - @Override - protected AbstractAppearanceAction getAction() - { - return (OrganisationInfoAction) lookup( Action.class.getName(), "organisationInfo" ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorActionTest.java deleted file mode 100644 index 213ce9fbb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorActionTest.java +++ /dev/null @@ -1,417 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.PropagateErrorsDownloadPolicy; -import org.apache.maven.archiva.policies.PropagateErrorsOnUpdateDownloadPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; -import org.apache.maven.archiva.web.action.AbstractWebworkTestCase; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.registry.RegistryException; -import org.easymock.MockControl; - -import java.util.List; -import java.util.Map; - -/** - * AddProxyConnectorActionTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AddProxyConnectorActionTest - extends AbstractWebworkTestCase -{ - private AddProxyConnectorAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - public void testAddBlackListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - populateProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getBlackListPatterns().size() ); - - // Try again, but now with a pattern to add. - action.setBlackListPattern( "**/*-javadoc.jar" ); - preRequest( action ); - status = action.addBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 blacklist pattern added. - assertNoErrors( action ); - assertEquals( 1, connector.getBlackListPatterns().size() ); - } - - public void testAddProperty() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - populateProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no property pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getProperties().size() ); - - // Try again, but now with a property key/value to add. - action.setPropertyKey( "eat-a" ); - action.setPropertyValue( "gramov-a-bits" ); - preRequest( action ); - status = action.addProperty(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 property added. - assertNoErrors( action ); - assertEquals( 1, connector.getProperties().size() ); - } - - public void testAddProxyConnectorCommit() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - populateProxyConnector( connector ); - // forms will use an array - connector.getProperties().put( "eat-a", new String[] { "gramov-a-bits" } ); - - // Create the input screen. - assertRequestStatus( action, Action.SUCCESS, "commit" ); - assertNoErrors( action ); - - // Test configuration. - List proxyConfigs = archivaConfiguration.getConfiguration().getProxyConnectors(); - assertNotNull( proxyConfigs ); - assertEquals( 1, proxyConfigs.size() ); - - ProxyConnectorConfiguration actualConnector = proxyConfigs.get( 0 ); - - assertNotNull( actualConnector ); - // The use of "(direct connection)" should result in a proxyId which is . - assertNull( actualConnector.getProxyId() ); - assertEquals( "corporate", actualConnector.getSourceRepoId() ); - assertEquals( "central", actualConnector.getTargetRepoId() ); - assertEquals( "gramov-a-bits", actualConnector.getProperties().get( "eat-a" ) ); - } - - public void testAddProxyConnectorInitialPage() - throws Exception - { - expectConfigurationRequests( 3 ); - archivaConfigurationControl.replay(); - - action.prepare(); - ProxyConnectorConfiguration configuration = action.getConnector(); - assertNotNull( configuration ); - assertNull( configuration.getProxyId() ); - assertNull( configuration.getSourceRepoId() ); - assertNull( configuration.getTargetRepoId() ); - assertTrue( configuration.getPolicies().isEmpty() ); - assertTrue( configuration.getProperties().isEmpty() ); - assertTrue( configuration.getBlackListPatterns().isEmpty() ); - assertTrue( configuration.getWhiteListPatterns().isEmpty() ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - } - - public void testAddWhiteListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - populateProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getWhiteListPatterns().size() ); - - // Try again, but now with a pattern to add. - action.setWhiteListPattern( "**/*.jar" ); - preRequest( action ); - status = action.addWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 whitelist pattern added. - assertNoErrors( action ); - assertEquals( 1, connector.getWhiteListPatterns().size() ); - } - - public void testRemoveBlackListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - populateProxyConnector( connector ); - - // Add some arbitrary blacklist patterns. - connector.addBlackListPattern( "**/*-javadoc.jar" ); - connector.addBlackListPattern( "**/*.war" ); - - // Perform Test w/no pattern value. - preRequest( action ); - String status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getBlackListPatterns().size() ); - - // Perform test w/invalid (non-existant) pattern value to remove. - preRequest( action ); - action.setPattern( "**/*oops*" ); - status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getBlackListPatterns().size() ); - - // Try again, but now with a valid pattern to remove. - action.setPattern( "**/*-javadoc.jar" ); - preRequest( action ); - status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 blacklist pattern left. - assertNoErrors( action ); - assertEquals( 1, connector.getBlackListPatterns().size() ); - assertEquals( "Should have left 1 blacklist pattern", "**/*.war", connector.getBlackListPatterns().get( 0 ) ); - } - - public void testRemoveProperty() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - populateProxyConnector( connector ); - - // Add some arbitrary properties. - connector.addProperty( "username", "general-tso" ); - connector.addProperty( "password", "chicken" ); - - // Perform Test w/no property key. - preRequest( action ); - String status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no properties removed. - assertHasErrors( action ); - assertEquals( 2, connector.getProperties().size() ); - - // Perform test w/invalid (non-existant) property key to remove. - preRequest( action ); - action.setPropertyKey( "slurm" ); - status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no properties removed. - assertHasErrors( action ); - assertEquals( 2, connector.getProperties().size() ); - - // Try again, but now with a valid property to remove. - preRequest( action ); - action.setPropertyKey( "password" ); - status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 property left. - assertNoErrors( action ); - assertEquals( 1, connector.getProperties().size() ); - assertEquals( "Should have left 1 property", "general-tso", connector.getProperties().get( "username" ) ); - } - - public void testRemoveWhiteListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - populateProxyConnector( connector ); - - // Add some arbitrary whitelist patterns. - connector.addWhiteListPattern( "javax/**/*" ); - connector.addWhiteListPattern( "com/sun/**/*" ); - - // Perform Test w/no pattern value. - preRequest( action ); - String status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getWhiteListPatterns().size() ); - - // Perform test w/invalid (non-existant) pattern value to remove. - preRequest( action ); - action.setPattern( "**/*oops*" ); - status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getWhiteListPatterns().size() ); - - // Try again, but now with a valid pattern to remove. - action.setPattern( "com/sun/**/*" ); - preRequest( action ); - status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 whitelist pattern left. - assertNoErrors( action ); - assertEquals( 1, connector.getWhiteListPatterns().size() ); - assertEquals( "Should have left 1 whitelist pattern", "javax/**/*", connector.getWhiteListPatterns().get( 0 ) ); - } - - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 3 ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( "corporate" ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( "central" ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - return config; - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - for ( int i = 0; i < requestConfigCount; i++ ) - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config ); - } - - archivaConfiguration.save( config ); - } - - private void populateProxyConnector( ProxyConnectorConfiguration connector ) - { - connector.setProxyId( AbstractProxyConnectorFormAction.DIRECT_CONNECTION ); - connector.setSourceRepoId( "corporate" ); - connector.setTargetRepoId( "central" ); - - // TODO: Set these options programatically via list of available policies. - Map policies = connector.getPolicies(); - policies.put( "releases", new ReleasesPolicy().getDefaultOption() ); - policies.put( "snapshots", new SnapshotsPolicy().getDefaultOption() ); - policies.put( "checksum", new ChecksumPolicy().getDefaultOption() ); - policies.put( "cache-failures", new CachedFailuresPolicy().getDefaultOption() ); - policies.put( "propagate-errors", new PropagateErrorsDownloadPolicy().getDefaultOption() ); - policies.put( "propagate-errors-on-update", new PropagateErrorsOnUpdateDownloadPolicy().getDefaultOption() ); - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - action = (AddProxyConnectorAction) lookup( Action.class.getName(), "addProxyConnectorAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorActionTest.java deleted file mode 100644 index d3d30f190..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorActionTest.java +++ /dev/null @@ -1,225 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.xwork.Action; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.web.action.AbstractWebworkTestCase; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.registry.RegistryException; -import org.easymock.MockControl; - -/** - * DeleteProxyConnectorActionTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DeleteProxyConnectorActionTest - extends AbstractWebworkTestCase -{ - private static final String TEST_TARGET_ID = "central"; - - private static final String TEST_SOURCE_ID = "corporate"; - - private DeleteProxyConnectorAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - public void testConfirmDelete() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Show the confirm the delete of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmDelete(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - } - - public void testConfirmDeleteBadSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 4 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm delete screen, but provide - // a bad source id or target id to actually delete - - preRequest( action ); - action.setSource( "bad-source" ); // id doesn't exist. - action.setTarget( "bad-target" ); // id doesn't exist. - String status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( "bad" ); // Bad doesn't exist. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( "bad" ); // Bad doesn't exist. - status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - public void testConfirmDeleteNoSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm delete screen, but don't provide - // the source id or target id to actually delete - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( null ); // No target Id. - String status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( null ); // No target Id. - status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - public void testDelete() - throws Exception - { - expectConfigurationRequests( 5 ); - archivaConfigurationControl.replay(); - - // Show the confirm the delete of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmDelete(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - - // Perform the delete. - preRequest( action ); - status = action.delete(); - assertEquals( Action.SUCCESS, status ); - assertNoErrors( action ); - assertHasMessages( action ); - - // Test the configuration. - assertEquals( 0, archivaConfiguration.getConfiguration().getProxyConnectors().size() ); - } - - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( TEST_SOURCE_ID ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( TEST_TARGET_ID ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( TEST_SOURCE_ID ); - connector.setTargetRepoId( TEST_TARGET_ID ); - - config.addProxyConnector( connector ); - - return config; - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - for ( int i = 0; i < requestConfigCount; i++ ) - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config ); - } - - archivaConfiguration.save( config ); - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - action = (DeleteProxyConnectorAction) lookup( Action.class.getName(), "deleteProxyConnectorAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorActionTest.java deleted file mode 100644 index b8b900666..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorActionTest.java +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright 2008 jdumay. - * - * 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. - * under the License. - */ - -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -import com.opensymphony.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.web.action.AbstractWebworkTestCase; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.registry.RegistryException; -import org.easymock.MockControl; - -public class DisableProxyConnectorActionTest extends AbstractWebworkTestCase -{ - private static final String TEST_TARGET_ID = "central"; - - private static final String TEST_SOURCE_ID = "corporate"; - - private DisableProxyConnectorAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - public void testConfirmDisableBadSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 4 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm disable screen, but provide - // a bad source id or target id to actually delete - - preRequest( action ); - action.setSource( "bad-source" ); // id doesn't exist. - action.setTarget( "bad-target" ); // id doesn't exist. - String status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( "bad" ); // Bad doesn't exist. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( "bad" ); // Bad doesn't exist. - status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - public void testConfirmDisableNoSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm disable screen, but don't provide - // the source id or target id to actually delete - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( null ); // No target Id. - String status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( null ); // No target Id. - status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - public void testDelete() - throws Exception - { - expectConfigurationRequests( 5 ); - archivaConfigurationControl.replay(); - - // Show the confirm the disable of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmDisable(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - - // Perform the disable. - preRequest( action ); - status = action.disable(); - assertEquals( Action.SUCCESS, status ); - assertNoErrors( action ); - assertHasMessages( action ); - - // Test the configuration. - assertEquals( 1, archivaConfiguration.getConfiguration().getProxyConnectors().size() ); - ProxyConnectorConfiguration config = (ProxyConnectorConfiguration)archivaConfiguration.getConfiguration().getProxyConnectors().get(0); - assertTrue(config.isDisabled()); - } - - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - public void testConfirmEnable() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Show the confirm the disable of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmDisable(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( TEST_SOURCE_ID ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( TEST_TARGET_ID ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( TEST_SOURCE_ID ); - connector.setTargetRepoId( TEST_TARGET_ID ); - - connector.setDisabled(false); - - config.addProxyConnector( connector ); - - return config; - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - for ( int i = 0; i < requestConfigCount; i++ ) - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config ); - } - - archivaConfiguration.save( config ); - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - action = (DisableProxyConnectorAction) lookup( Action.class.getName(), "disableProxyConnectorAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorActionTest.java deleted file mode 100644 index 31364f4b8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorActionTest.java +++ /dev/null @@ -1,447 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.PropagateErrorsDownloadPolicy; -import org.apache.maven.archiva.policies.PropagateErrorsOnUpdateDownloadPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; -import org.apache.maven.archiva.web.action.AbstractWebworkTestCase; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.registry.RegistryException; -import org.easymock.MockControl; - -import java.util.List; -import java.util.Map; - -/** - * EditProxyConnectorActionTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EditProxyConnectorActionTest - extends AbstractWebworkTestCase -{ - private static final String TEST_TARGET_ID = "central"; - - private static final String TEST_SOURCE_ID = "corporate"; - - private EditProxyConnectorAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - public void testAddBlackListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getBlackListPatterns().size() ); - - // Try again, but now with a pattern to add. - action.setBlackListPattern( "**/*-javadoc.jar" ); - preRequest( action ); - status = action.addBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 blacklist pattern added. - assertNoErrors( action ); - assertEquals( 1, connector.getBlackListPatterns().size() ); - } - - public void testAddProperty() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no property pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getProperties().size() ); - - // Try again, but now with a property key/value to add. - action.setPropertyKey( "eat-a" ); - action.setPropertyValue( "gramov-a-bits" ); - preRequest( action ); - status = action.addProperty(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 property added. - assertNoErrors( action ); - assertEquals( 1, connector.getProperties().size() ); - assertEquals( "gramov-a-bits", connector.getProperties().get( "eat-a" ) ); - } - - public void testAddWhiteListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getWhiteListPatterns().size() ); - - // Try again, but now with a pattern to add. - action.setWhiteListPattern( "**/*.jar" ); - preRequest( action ); - status = action.addWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 whitelist pattern added. - assertNoErrors( action ); - assertEquals( 1, connector.getWhiteListPatterns().size() ); - } - - public void testEditProxyConnectorCommit() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - assertInitialProxyConnector( connector ); - // forms will use an array - connector.getProperties().put( "eat-a", new String[] { "gramov-a-bits" } ); - - // Create the input screen. - assertRequestStatus( action, Action.SUCCESS, "commit" ); - assertNoErrors( action ); - - // Test configuration. - List proxyConfigs = archivaConfiguration.getConfiguration().getProxyConnectors(); - assertNotNull( proxyConfigs ); - assertEquals( 1, proxyConfigs.size() ); - - ProxyConnectorConfiguration actualConnector = proxyConfigs.get( 0 ); - - assertNotNull( actualConnector ); - // The use of "(direct connection)" should result in a proxyId which is . - assertNull( actualConnector.getProxyId() ); - assertEquals( "corporate", actualConnector.getSourceRepoId() ); - assertEquals( "central", actualConnector.getTargetRepoId() ); - - } - - public void testEditProxyConnectorInitialPage() - throws Exception - { - expectConfigurationRequests( 3 ); - archivaConfigurationControl.replay(); - - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - } - - public void testRemoveBlackListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Add some arbitrary blacklist patterns. - connector.addBlackListPattern( "**/*-javadoc.jar" ); - connector.addBlackListPattern( "**/*.war" ); - - // Perform Test w/no pattern value. - preRequest( action ); - String status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getBlackListPatterns().size() ); - - // Perform test w/invalid (non-existant) pattern value to remove. - preRequest( action ); - action.setPattern( "**/*oops*" ); - status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getBlackListPatterns().size() ); - - // Try again, but now with a valid pattern to remove. - action.setPattern( "**/*-javadoc.jar" ); - preRequest( action ); - status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 blacklist pattern left. - assertNoErrors( action ); - assertEquals( 1, connector.getBlackListPatterns().size() ); - assertEquals( "Should have left 1 blacklist pattern", "**/*.war", connector.getBlackListPatterns().get( 0 ) ); - } - - public void testRemoveProperty() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Add some arbitrary properties. - connector.addProperty( "username", "general-tso" ); - connector.addProperty( "password", "chicken" ); - - // Perform Test w/no property key. - preRequest( action ); - String status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no properties removed. - assertHasErrors( action ); - assertEquals( 2, connector.getProperties().size() ); - - // Perform test w/invalid (non-existant) property key to remove. - preRequest( action ); - action.setPropertyKey( "slurm" ); - status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no properties removed. - assertHasErrors( action ); - assertEquals( 2, connector.getProperties().size() ); - - // Try again, but now with a valid property to remove. - preRequest( action ); - action.setPropertyKey( "password" ); - status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 property left. - assertNoErrors( action ); - assertEquals( 1, connector.getProperties().size() ); - assertEquals( "Should have left 1 property", "general-tso", connector.getProperties().get( "username" ) ); - } - - public void testRemoveWhiteListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnectorConfiguration connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Add some arbitrary whitelist patterns. - connector.addWhiteListPattern( "javax/**/*" ); - connector.addWhiteListPattern( "com/sun/**/*" ); - - // Perform Test w/no pattern value. - preRequest( action ); - String status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getWhiteListPatterns().size() ); - - // Perform test w/invalid (non-existant) pattern value to remove. - preRequest( action ); - action.setPattern( "**/*oops*" ); - status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getWhiteListPatterns().size() ); - - // Try again, but now with a valid pattern to remove. - action.setPattern( "com/sun/**/*" ); - preRequest( action ); - status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 whitelist pattern left. - assertNoErrors( action ); - assertEquals( 1, connector.getWhiteListPatterns().size() ); - assertEquals( "Should have left 1 whitelist pattern", "javax/**/*", connector.getWhiteListPatterns().get( 0 ) ); - } - - public void testSecureActionBundle() - throws Exception - { - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - private void assertInitialProxyConnector( ProxyConnectorConfiguration connector ) - { - assertNotNull( connector ); - assertNotNull( connector.getBlackListPatterns() ); - assertNotNull( connector.getWhiteListPatterns() ); - assertNotNull( connector.getProperties() ); - - assertEquals( TEST_SOURCE_ID, connector.getSourceRepoId() ); - assertEquals( TEST_TARGET_ID, connector.getTargetRepoId() ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( TEST_SOURCE_ID ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( TEST_TARGET_ID ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( TEST_SOURCE_ID ); - connector.setTargetRepoId( TEST_TARGET_ID ); - - // TODO: Set these options programatically via list of available policies. - Map policies = connector.getPolicies(); - policies.put( "releases", new ReleasesPolicy().getDefaultOption() ); - policies.put( "snapshots", new SnapshotsPolicy().getDefaultOption() ); - policies.put( "checksum", new ChecksumPolicy().getDefaultOption() ); - policies.put( "cache-failures", new CachedFailuresPolicy().getDefaultOption() ); - policies.put( "propagate-errors", new PropagateErrorsDownloadPolicy().getDefaultOption() ); - policies.put( "propagate-errors-on-update", new PropagateErrorsOnUpdateDownloadPolicy().getDefaultOption() ); - - config.addProxyConnector( connector ); - - return config; - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - for ( int i = 0; i < requestConfigCount; i++ ) - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config ); - } - - archivaConfiguration.save( config ); - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - action = (EditProxyConnectorAction) lookup( Action.class.getName(), "editProxyConnectorAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - - /* Configuration will be requested at least 3 times. */ - for ( int i = 0; i < 3; i++ ) - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorActionTest.java deleted file mode 100644 index 16544fd10..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorActionTest.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright 2008 jdumay. - * - * 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. - * under the License. - */ - -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -import com.opensymphony.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.web.action.AbstractWebworkTestCase; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.registry.RegistryException; -import org.easymock.MockControl; - -public class EnableProxyConnectorActionTest extends AbstractWebworkTestCase -{ - private static final String TEST_TARGET_ID = "central"; - - private static final String TEST_SOURCE_ID = "corporate"; - - private EnableProxyConnectorAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - public void testConfirmDeleteBadSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 4 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm enable screen, but provide - // a bad source id or target id to actually enable - - preRequest( action ); - action.setSource( "bad-source" ); // id doesn't exist. - action.setTarget( "bad-target" ); // id doesn't exist. - String status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( "bad" ); // Bad doesn't exist. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( "bad" ); // Bad doesn't exist. - status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - public void testConfirmEnableNoSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm enable screen, but don't provide - // the source id or target id to actually delete - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( null ); // No target Id. - String status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( null ); // No target Id. - status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - public void testEnable() - throws Exception - { - expectConfigurationRequests( 5 ); - archivaConfigurationControl.replay(); - - // Show the confirm the enable of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmEnable(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - - // Perform the delete. - preRequest( action ); - status = action.enable(); - assertEquals( Action.SUCCESS, status ); - assertNoErrors( action ); - assertHasMessages( action ); - - // Test the configuration. - assertEquals( 1, archivaConfiguration.getConfiguration().getProxyConnectors().size() ); - ProxyConnectorConfiguration config = (ProxyConnectorConfiguration)archivaConfiguration.getConfiguration().getProxyConnectors().get(0); - assertFalse(config.isDisabled()); - } - - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - public void testConfirmEnable() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Show the confirm the enable of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmEnable(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( TEST_SOURCE_ID ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( TEST_TARGET_ID ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( TEST_SOURCE_ID ); - connector.setTargetRepoId( TEST_TARGET_ID ); - connector.setDisabled(true); - - config.addProxyConnector( connector ); - - return config; - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - for ( int i = 0; i < requestConfigCount; i++ ) - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config ); - } - - archivaConfiguration.save( config ); - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - action = (EnableProxyConnectorAction) lookup( Action.class.getName(), "enableProxyConnectorAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ProxyConnectorsActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ProxyConnectorsActionTest.java deleted file mode 100644 index fd54661ee..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ProxyConnectorsActionTest.java +++ /dev/null @@ -1,151 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.xwork.Action; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.web.action.AbstractWebworkTestCase; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.registry.RegistryException; -import org.easymock.MockControl; - -/** - * ProxyConnectorsActionTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class ProxyConnectorsActionTest - extends AbstractWebworkTestCase -{ - private static final String JAVAX = "javax"; - - private static final String CENTRAL = "central"; - - private static final String CORPORATE = "corporate"; - - private ProxyConnectorsAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - action = (ProxyConnectorsAction) lookup( Action.class.getName(), "proxyConnectorsAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } - - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 3 ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - public void testExecute() - throws Exception - { - expectConfigurationRequests( 3 ); - archivaConfigurationControl.replay(); - - action.prepare(); - - String status = action.execute(); - assertEquals( Action.SUCCESS, status ); - assertNoErrors( action ); - - assertNotNull( action.getProxyConnectorMap() ); - assertNotNull( action.getRepoMap() ); - - assertEquals( 1, action.getProxyConnectorMap().size() ); - assertEquals( 3, action.getRepoMap().size() ); - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - for ( int i = 0; i < requestConfigCount; i++ ) - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config ); - } - - archivaConfiguration.save( config ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( CORPORATE ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( CENTRAL ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( JAVAX ); - remoteRepo.setUrl( "http://download.java.net/maven/2/" ); - - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( CORPORATE ); - connector.setTargetRepoId( CENTRAL ); - - config.addProxyConnector( connector ); - - connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( CORPORATE ); - connector.setTargetRepoId( JAVAX ); - - config.addProxyConnector( connector ); - - return config; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsActionTest.java deleted file mode 100644 index 1e1d6b335..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsActionTest.java +++ /dev/null @@ -1,253 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.connectors.proxy; - -/* - * 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.xwork.Action; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.configuration.functors.ProxyConnectorConfigurationOrderComparator; -import org.apache.maven.archiva.web.action.AbstractWebworkTestCase; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.registry.RegistryException; -import org.easymock.MockControl; - -import java.util.Collections; -import java.util.List; - -/** - * SortProxyConnectorsActionTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class SortProxyConnectorsActionTest - extends AbstractWebworkTestCase -{ - private static final String JAVAX = "javax"; - - private static final String CENTRAL = "central"; - - private static final String CORPORATE = "corporate"; - - private static final String CODEHAUS = "codehaus"; - - private SortProxyConnectorsAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - public void testSortDown() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - action.setSource( CORPORATE ); - action.setTarget( CENTRAL ); - String status = action.sortDown(); - assertEquals( Action.SUCCESS, status ); - - assertOrder( new String[] { JAVAX, CENTRAL, CODEHAUS } ); - } - - public void testSortDownPastEnd() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Ask the last connector to sort down (essentially a no-op) - action.setSource( CORPORATE ); - action.setTarget( CODEHAUS ); - String status = action.sortDown(); - assertEquals( Action.SUCCESS, status ); - - // No order change. - assertOrder( new String[] { CENTRAL, JAVAX, CODEHAUS } ); - } - - public void testSortUp() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - action.setSource( CORPORATE ); - action.setTarget( CODEHAUS ); - String status = action.sortUp(); - assertEquals( Action.SUCCESS, status ); - - assertOrder( new String[] { CENTRAL, CODEHAUS, JAVAX } ); - } - - public void testSortUpPastBeginning() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Ask the first connector to sort up (essentially a no-op) - action.setSource( CORPORATE ); - action.setTarget( CENTRAL ); - String status = action.sortUp(); - assertEquals( Action.SUCCESS, status ); - - // No order change. - assertOrder( new String[] { CENTRAL, JAVAX, CODEHAUS } ); - } - - private void assertOrder( String[] targetRepoOrder ) - { - List connectors = archivaConfiguration.getConfiguration().getProxyConnectors(); - Collections.sort( connectors, ProxyConnectorConfigurationOrderComparator.getInstance() ); - - for ( ProxyConnectorConfiguration connector : connectors ) - { - assertEquals( "All connectors in list should have the same source id (in this test)", CORPORATE, connector - .getSourceRepoId() ); - } - - assertEquals( targetRepoOrder.length, connectors.size() ); - - int orderFailedAt = ( -1 ); - for ( int i = 0; i < targetRepoOrder.length; i++ ) - { - if ( !StringUtils.equals( targetRepoOrder[i], connectors.get( i ).getTargetRepoId() ) ) - { - orderFailedAt = i; - break; - } - } - - if ( orderFailedAt >= 0 ) - { - StringBuffer msg = new StringBuffer(); - - msg.append( "Failed expected order of the proxy connectors <" ); - msg.append( StringUtils.join( targetRepoOrder, ", " ) ); - msg.append( ">, actual <" ); - - boolean needsComma = false; - for ( ProxyConnectorConfiguration proxy : connectors ) - { - if ( needsComma ) - { - msg.append( ", " ); - } - msg.append( proxy.getTargetRepoId() ); - needsComma = true; - } - msg.append( "> failure at index <" ).append( orderFailedAt ).append( ">." ); - - fail( msg.toString() ); - } - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( CORPORATE ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( CENTRAL ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - config.addRemoteRepository( remoteRepo ); - - remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( JAVAX ); - remoteRepo.setUrl( "http://download.java.net/maven/2/" ); - config.addRemoteRepository( remoteRepo ); - - remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( CODEHAUS ); - remoteRepo.setUrl( "http://repository.codehaus.org/" ); - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( CORPORATE ); - connector.setTargetRepoId( CENTRAL ); - connector.setOrder( 1 ); - config.addProxyConnector( connector ); - - connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( CORPORATE ); - connector.setTargetRepoId( JAVAX ); - connector.setOrder( 2 ); - config.addProxyConnector( connector ); - - connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( CORPORATE ); - connector.setTargetRepoId( CODEHAUS ); - connector.setOrder( 3 ); - config.addProxyConnector( connector ); - - return config; - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - for ( int i = 0; i < requestConfigCount; i++ ) - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config ); - } - - archivaConfiguration.save( config ); - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - action = (SortProxyConnectorsAction) lookup( Action.class.getName(), "sortProxyConnectorsAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryArchivaDAOStub.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryArchivaDAOStub.java deleted file mode 100644 index 81c1b76bd..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryArchivaDAOStub.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import 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; - -/** - * AbstractManagedRepositoryArchivaDAOStub - * - * @author Maria Odea Ching - * @version - */ -public class AbstractManagedRepositoryArchivaDAOStub - implements ArchivaDAO -{ - /** - * @plexus.requirement role-hint="jdo" - */ - private ProjectModelDAO projectModelDAO; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArtifactDAO artifactDAO; - - /** - * @plexus.requirement role-hint="jdo" - */ - private RepositoryContentStatisticsDAO repoContentStatisticsDAO; - - public List query( SimpleConstraint constraint ) - { - return null; - } - - public Object save( Serializable obj ) - { - throw new UnsupportedOperationException( "query not implemented for stub" ); - } - - public ArtifactDAO getArtifactDAO() - { - return artifactDAO; - } - - public ProjectModelDAO getProjectModelDAO() - { - return projectModelDAO; - } - - public RepositoryProblemDAO getRepositoryProblemDAO() - { - throw new UnsupportedOperationException( "query not implemented for stub" ); - } - - public RepositoryContentStatisticsDAO getRepositoryContentStatisticsDAO() - { - return repoContentStatisticsDAO; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java deleted file mode 100644 index beaafba67..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java +++ /dev/null @@ -1,196 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Action; -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.role.RoleManager; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; - -import java.io.File; -import java.util.Collections; - -/** - * AddManagedRepositoryActionTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AddManagedRepositoryActionTest - extends PlexusInSpringTestCase -{ - private AddManagedRepositoryAction action; - - private RoleManager roleManager; - - private MockControl roleManagerControl; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - private static final String REPO_ID = "repo-ident"; - - private File location; - - @Override - protected String getPlexusConfigLocation() - { - return AbstractManagedRepositoriesAction.class.getName().replace( '.', '/' ) + "Test.xml"; - } - - protected void setUp() - throws Exception - { - super.setUp(); - - action = (AddManagedRepositoryAction) lookup( Action.class.getName(), "addManagedRepositoryAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - - roleManagerControl = MockControl.createControl( RoleManager.class ); - roleManager = (RoleManager) roleManagerControl.getMock(); - action.setRoleManager( roleManager ); - location = getTestFile( "target/test/location" ); - } - - public void testSecureActionBundle() - throws SecureActionException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - public void testAddRepositoryInitialPage() - throws Exception - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - ManagedRepositoryConfiguration configuration = action.getRepository(); - assertNotNull( configuration ); - assertNull( configuration.getId() ); - // check all booleans are false - assertFalse( configuration.isDeleteReleasedSnapshots() ); - assertFalse( configuration.isScanned() ); - assertFalse( configuration.isReleases() ); - assertFalse( configuration.isSnapshots() ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - - // check defaults - assertFalse( configuration.isDeleteReleasedSnapshots() ); - assertTrue( configuration.isScanned() ); - assertTrue( configuration.isReleases() ); - assertFalse( configuration.isSnapshots() ); - } - - public void testAddRepository() - throws Exception - { - FileUtils.deleteDirectory( location ); - - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setVoidCallable(); - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setVoidCallable(); - - roleManagerControl.replay(); - - Configuration configuration = new Configuration(); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfiguration.save( configuration ); - - archivaConfigurationControl.replay(); - - action.prepare(); - ManagedRepositoryConfiguration repository = action.getRepository(); - populateRepository( repository ); - - assertFalse( location.exists() ); - String status = action.commit(); - assertEquals( Action.SUCCESS, status ); - assertTrue( location.exists() ); - - assertEquals( Collections.singletonList( repository ), configuration.getManagedRepositories() ); - - roleManagerControl.verify(); - archivaConfigurationControl.verify(); - } - - - public void testAddRepositoryExistingLocation() - throws Exception - { - if( !location.exists() ) - { - location.mkdirs(); - } - - action.prepare(); - ManagedRepositoryConfiguration repository = action.getRepository(); - populateRepository( repository ); - - assertTrue( location.exists() ); - String status = action.commit(); - assertEquals( AddManagedRepositoryAction.CONFIRM, status ); - } - - private void populateRepository( ManagedRepositoryConfiguration repository ) - { - repository.setId( REPO_ID ); - repository.setName( "repo name" ); - repository.setLocation( location.getAbsolutePath() ); - repository.setLayout( "default" ); - repository.setRefreshCronExpression( "* 0/5 * * * ?" ); - repository.setDaysOlder( 31 ); - repository.setRetentionCount( 20 ); - repository.setReleases( true ); - repository.setSnapshots( true ); - repository.setScanned( false ); - repository.setDeleteReleasedSnapshots( true ); - } - - // TODO: test errors during add, other actions -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java deleted file mode 100644 index 8656ebe5a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java +++ /dev/null @@ -1,127 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; - -import java.util.Collections; - -/** - * AddRemoteRepositoryActionTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class AddRemoteRepositoryActionTest - extends PlexusInSpringTestCase -{ - private AddRemoteRepositoryAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - private static final String REPO_ID = "remote-repo-ident"; - - protected void setUp() - throws Exception - { - super.setUp(); - - action = (AddRemoteRepositoryAction) lookup( Action.class.getName(), "addRemoteRepositoryAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } - - public void testSecureActionBundle() - throws SecureActionException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - public void testAddRemoteRepositoryInitialPage() - throws Exception - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - RemoteRepositoryConfiguration configuration = action.getRepository(); - assertNotNull( configuration ); - assertNull( configuration.getId() ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - } - - public void testAddRemoteRepository() - throws Exception - { - Configuration configuration = new Configuration(); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfiguration.save( configuration ); - - archivaConfigurationControl.replay(); - - action.prepare(); - RemoteRepositoryConfiguration repository = action.getRepository(); - populateRepository( repository ); - - assertEquals("url ", repository.getUrl()); - - String status = action.commit(); - assertEquals( Action.SUCCESS, status ); - - assertEquals( Collections.singletonList( repository ), configuration.getRemoteRepositories() ); - - assertEquals("url", repository.getUrl()); - - archivaConfigurationControl.verify(); - } - - private void populateRepository( RemoteRepositoryConfiguration repository ) - { - repository.setId( REPO_ID ); - repository.setName( "repo name" ); - repository.setUrl( "url " ); - repository.setLayout( "default" ); - } - - // TODO: test errors during add, other actions -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArchivaDAOStub.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArchivaDAOStub.java deleted file mode 100644 index 7141af57c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArchivaDAOStub.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -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; -import org.apache.maven.archiva.model.RepositoryContentStatistics; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import junit.framework.Assert; - -/* - * 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 ArchivaDAOStub - implements ArchivaDAO -{ - private ArchivaConfiguration configuration; - - public List query( SimpleConstraint constraint ) - { - Assert.assertEquals( RepositoryContentStatistics.class, constraint.getResultClass() ); - - - List stats = new ArrayList(); - for ( String repo : configuration.getConfiguration().getManagedRepositoriesAsMap().keySet() ) - { - RepositoryContentStatistics statistics = new RepositoryContentStatistics(); - statistics.setRepositoryId( repo ); - stats.add( statistics ); - } - return stats; - } - - public Object save( Serializable obj ) - { - throw new UnsupportedOperationException( "query not implemented for stub" ); - } - - public ArtifactDAO getArtifactDAO() - { - throw new UnsupportedOperationException( "method not implemented for stub" ); - } - - public ProjectModelDAO getProjectModelDAO() - { - throw new UnsupportedOperationException( "method not implemented for stub" ); - } - - public RepositoryProblemDAO getRepositoryProblemDAO() - { - throw new UnsupportedOperationException( "method not implemented for stub" ); - } - - public RepositoryContentStatisticsDAO getRepositoryContentStatisticsDAO() - { - throw new UnsupportedOperationException( "method not implemented for stub" ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArtifactDAOStub.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArtifactDAOStub.java deleted file mode 100644 index 61e2f8bd3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArtifactDAOStub.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.ArrayList; -import java.util.List; - -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; - -/** - * ArtifactDAOStub - * - * @author Maria Odea Ching - * @version - */ -public class ArtifactDAOStub - implements ArtifactDAO -{ - - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - { - // TODO Auto-generated method stub - return null; - } - - public void deleteArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - // TODO Auto-generated method stub - - } - - public ArchivaArtifact getArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - // TODO Auto-generated method stub - return null; - } - - public List queryArtifacts( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - - List artifacts = new ArrayList(); - - ArchivaArtifactModel model = new ArchivaArtifactModel(); - model.setGroupId( "org.apache.maven.archiva" ); - model.setArtifactId( "test-artifact" ); - model.setVersion( "1.0" ); - model.setType( "jar" ); - model.setRepositoryId( "repo-ident" ); - - ArchivaArtifact artifact = new ArchivaArtifact( model ); - artifacts.add( artifact ); - - return artifacts; - } - - public ArchivaArtifact saveArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java deleted file mode 100644 index 41536c1c7..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java +++ /dev/null @@ -1,333 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.configuration.RepositoryGroupConfiguration; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.role.RoleManager; -import org.codehaus.plexus.redback.role.RoleManagerException; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * DeleteManagedRepositoryActionTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DeleteManagedRepositoryActionTest - extends PlexusInSpringTestCase -{ - private DeleteManagedRepositoryAction action; - - private RoleManager roleManager; - - private MockControl roleManagerControl; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - private static final String REPO_ID = "repo-ident"; - - private File location; - - @Override - protected String getPlexusConfigLocation() - { - return AbstractManagedRepositoriesAction.class.getName().replace( '.', '/' ) + "Test.xml"; - } - - protected void setUp() - throws Exception - { - super.setUp(); - - action = (DeleteManagedRepositoryAction) lookup( Action.class.getName(), "deleteManagedRepositoryAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - - roleManagerControl = MockControl.createControl( RoleManager.class ); - roleManager = (RoleManager) roleManagerControl.getMock(); - action.setRoleManager( roleManager ); - location = getTestFile( "target/test/location" ); - } - - public void testSecureActionBundle() - throws SecureActionException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - public void testDeleteRepositoryConfirmation() - throws Exception - { - ManagedRepositoryConfiguration originalRepository = createRepository(); - Configuration configuration = createConfigurationForEditing( originalRepository ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - ManagedRepositoryConfiguration repository = action.getRepository(); - assertNotNull( repository ); - assertRepositoryEquals( repository, createRepository() ); - - String status = action.execute(); - assertEquals( Action.SUCCESS, status ); - repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - assertEquals( Collections.singletonList( originalRepository ), configuration.getManagedRepositories() ); - } - - public void testDeleteRepositoryKeepContent() - throws Exception - { - prepareRoleManagerMock(); - - Configuration configuration = prepDeletionTest( createRepository(), 4 ); - - String status = action.deleteEntry(); - - assertEquals( Action.SUCCESS, status ); - - assertTrue( configuration.getManagedRepositories().isEmpty() ); - - assertTrue( location.exists() ); - } - - public void testDeleteRepositoryDeleteContent() - throws Exception - { - prepareRoleManagerMock(); - - Configuration configuration = prepDeletionTest( createRepository(), 4 ); - - String status = action.deleteContents(); - - assertEquals( Action.SUCCESS, status ); - - assertTrue( configuration.getManagedRepositories().isEmpty() ); - - assertFalse( location.exists() ); - } - - public void testDeleteRepositoryAndAssociatedProxyConnectors() - throws Exception - { - Configuration configuration = prepDeletionTest( createRepository(), 5 ); - configuration.addRemoteRepository( createRemoteRepository( "codehaus", "http://repository.codehaus.org" ) ); - configuration.addRemoteRepository( createRemoteRepository( "java.net", "http://dev.java.net/maven2" ) ); - configuration.addProxyConnector( createProxyConnector( REPO_ID, "codehaus" ) ); - - prepareRoleManagerMock(); - - assertEquals( 1, configuration.getProxyConnectors().size() ); - - String status = action.deleteContents(); - assertEquals( Action.SUCCESS, status ); - - assertTrue( configuration.getManagedRepositories().isEmpty() ); - assertEquals( 0, configuration.getProxyConnectors().size() ); - - assertFalse( location.exists() ); - } - - public void testDeleteRepositoryCancelled() - throws Exception - { - ManagedRepositoryConfiguration originalRepository = createRepository(); - Configuration configuration = prepDeletionTest( originalRepository, 3 ); - String status = action.execute(); - assertEquals( Action.SUCCESS, status ); - - ManagedRepositoryConfiguration repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - assertEquals( Collections.singletonList( originalRepository ), configuration.getManagedRepositories() ); - - assertTrue( location.exists() ); - } - - public void testDeleteRepositoryAndReposUnderRepoGroup() - throws Exception - { - Configuration configuration = prepDeletionTest( createRepository(), 5 ); - List repoIds = new ArrayList(); - repoIds.add( REPO_ID ); - configuration.addRepositoryGroup( createRepoGroup( repoIds, "repo.group" ) ); - - prepareRoleManagerMock(); - - assertEquals( 1, configuration.getRepositoryGroups().size() ); - - String status = action.deleteContents(); - assertEquals( Action.SUCCESS, status ); - - assertTrue( configuration.getManagedRepositories().isEmpty() ); - assertEquals( 0, ( ( RepositoryGroupConfiguration ) configuration.getRepositoryGroups().get( 0 ) ).getRepositories().size() ); - - assertFalse( location.exists() ); - } - - private Configuration prepDeletionTest( ManagedRepositoryConfiguration originalRepository, int expectCountGetConfig ) - throws RegistryException, IndeterminateConfigurationException - { - location.mkdirs(); - - Configuration configuration = createConfigurationForEditing( originalRepository ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, expectCountGetConfig ); - - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - ManagedRepositoryConfiguration repository = action.getRepository(); - assertNotNull( repository ); - assertRepositoryEquals( repository, createRepository() ); - - assertTrue( location.exists() ); - return configuration; - } - - private void assertRepositoryEquals( ManagedRepositoryConfiguration expectedRepository, - ManagedRepositoryConfiguration actualRepository ) - { - assertEquals( expectedRepository.getDaysOlder(), actualRepository.getDaysOlder() ); - assertEquals( expectedRepository.getId(), actualRepository.getId() ); - assertEquals( expectedRepository.getIndexDir(), actualRepository.getIndexDir() ); - assertEquals( expectedRepository.getLayout(), actualRepository.getLayout() ); - assertEquals( expectedRepository.getLocation(), actualRepository.getLocation() ); - assertEquals( expectedRepository.getName(), actualRepository.getName() ); - assertEquals( expectedRepository.getRefreshCronExpression(), actualRepository.getRefreshCronExpression() ); - assertEquals( expectedRepository.getRetentionCount(), actualRepository.getRetentionCount() ); - assertEquals( expectedRepository.isDeleteReleasedSnapshots(), actualRepository.isDeleteReleasedSnapshots() ); - assertEquals( expectedRepository.isScanned(), actualRepository.isScanned() ); - assertEquals( expectedRepository.isReleases(), actualRepository.isReleases() ); - assertEquals( expectedRepository.isSnapshots(), actualRepository.isSnapshots() ); - } - - private Configuration createConfigurationForEditing( ManagedRepositoryConfiguration repositoryConfiguration ) - { - Configuration configuration = new Configuration(); - configuration.addManagedRepository( repositoryConfiguration ); - return configuration; - } - - private ManagedRepositoryConfiguration createRepository() - { - ManagedRepositoryConfiguration r = new ManagedRepositoryConfiguration(); - r.setId( REPO_ID ); - r.setName( "repo name" ); - r.setLocation( location.getAbsolutePath() ); - r.setLayout( "default" ); - r.setRefreshCronExpression( "* 0/5 * * * ?" ); - r.setDaysOlder( 0 ); - r.setRetentionCount( 0 ); - r.setReleases( true ); - r.setSnapshots( true ); - r.setScanned( false ); - r.setDeleteReleasedSnapshots( false ); - return r; - } - - private RemoteRepositoryConfiguration createRemoteRepository(String id, String url) - { - RemoteRepositoryConfiguration r = new RemoteRepositoryConfiguration(); - r.setId( id ); - r.setUrl( url ); - r.setLayout( "default" ); - - return r; - } - - private ProxyConnectorConfiguration createProxyConnector( String managedRepoId, String remoteRepoId ) - { - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( managedRepoId ); - connector.setTargetRepoId( remoteRepoId ); - - return connector; - } - - private RepositoryGroupConfiguration createRepoGroup( List repoIds, String repoGroupId ) - { - RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration(); - repoGroup.setId( repoGroupId ); - repoGroup.setRepositories( repoIds ); - - return repoGroup; - } - - private void prepareRoleManagerMock() - throws RoleManagerException - { - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setReturnValue( true ); - roleManager.removeTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setReturnValue( true ); - roleManager.removeTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.replay(); - } - - protected ArchivaProjectModel createProjectModel( String groupId, String artifactId, String version ) - { - ArchivaProjectModel projectModel = new ArchivaProjectModel(); - projectModel.setGroupId( groupId ); - projectModel.setArtifactId( artifactId ); - projectModel.setVersion( version ); - - return projectModel; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java deleted file mode 100644 index 1457f5952..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java +++ /dev/null @@ -1,207 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.codehaus.plexus.registry.RegistryException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; - -import java.util.Collections; - -/** - * DeleteRemoteRepositoryActionTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class DeleteRemoteRepositoryActionTest - extends PlexusInSpringTestCase -{ - private static final String REPO_ID = "remote-repo-ident"; - - private DeleteRemoteRepositoryAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - protected void setUp() - throws Exception - { - super.setUp(); - - action = (DeleteRemoteRepositoryAction) lookup( Action.class.getName(), "deleteRemoteRepositoryAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } - - public void testDeleteRemoteRepositoryConfirmation() - throws Exception - { - RemoteRepositoryConfiguration originalRepository = createRepository(); - Configuration configuration = createConfigurationForEditing( originalRepository ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - RemoteRepositoryConfiguration repository = action.getRepository(); - assertNotNull( repository ); - assertRepositoryEquals( repository, createRepository() ); - - String status = action.confirmDelete(); - assertEquals( Action.INPUT, status ); - repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - assertEquals( Collections.singletonList( originalRepository ), configuration.getRemoteRepositories() ); - } - - public void testDeleteRemoteRepository() - throws RegistryException, IndeterminateConfigurationException - { - Configuration configuration = createConfigurationForEditing( createRepository() ); - configuration.addManagedRepository( createManagedRepository( "internal", getTestPath( "target/repo/internal" ) ) ); - configuration.addManagedRepository( createManagedRepository( "snapshots", getTestPath( "target/repo/snapshots" ) ) ); - configuration.addProxyConnector( createProxyConnector( "internal", REPO_ID) ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - RemoteRepositoryConfiguration repository = action.getRepository(); - assertNotNull( repository ); - assertRepositoryEquals( repository, createRepository() ); - - assertEquals( 1, configuration.getProxyConnectors().size() ); - - String status = action.delete(); - assertEquals( Action.SUCCESS, status ); - - assertTrue( configuration.getRemoteRepositories().isEmpty() ); - assertEquals( 0, configuration.getProxyConnectors().size() ); - } - - public void testDeleteRemoteRepositoryCancelled() - throws Exception - { - RemoteRepositoryConfiguration originalRepository = createRepository(); - Configuration configuration = createConfigurationForEditing( originalRepository ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 2 ); - - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - RemoteRepositoryConfiguration repositoryConfiguration = action.getRepository(); - assertNotNull( repositoryConfiguration ); - assertRepositoryEquals( repositoryConfiguration, createRepository() ); - - String status = action.execute(); - assertEquals( Action.SUCCESS, status ); - - RemoteRepositoryConfiguration repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - assertEquals( Collections.singletonList( originalRepository ), configuration.getRemoteRepositories() ); - } - - private Configuration createConfigurationForEditing( RemoteRepositoryConfiguration repositoryConfiguration ) - { - Configuration configuration = new Configuration(); - configuration.addRemoteRepository( repositoryConfiguration ); - return configuration; - } - - private RemoteRepositoryConfiguration createRepository() - { - RemoteRepositoryConfiguration r = new RemoteRepositoryConfiguration(); - r.setId( REPO_ID ); - populateRepository( r ); - return r; - } - - private void assertRepositoryEquals( RemoteRepositoryConfiguration expectedRepository, - RemoteRepositoryConfiguration actualRepository ) - { - assertEquals( expectedRepository.getId(), actualRepository.getId() ); - assertEquals( expectedRepository.getLayout(), actualRepository.getLayout() ); - assertEquals( expectedRepository.getUrl(), actualRepository.getUrl() ); - assertEquals( expectedRepository.getName(), actualRepository.getName() ); - } - - private ManagedRepositoryConfiguration createManagedRepository( String string, String testPath ) - { - ManagedRepositoryConfiguration r = new ManagedRepositoryConfiguration(); - r.setId( REPO_ID ); - r.setName( "repo name" ); - r.setLocation( testPath ); - r.setLayout( "default" ); - r.setRefreshCronExpression( "* 0/5 * * * ?" ); - r.setDaysOlder( 0 ); - r.setRetentionCount( 0 ); - r.setReleases( true ); - r.setSnapshots( true ); - r.setScanned( false ); - r.setDeleteReleasedSnapshots( false ); - return r; - } - - private ProxyConnectorConfiguration createProxyConnector( String managedRepoId, String remoteRepoId ) - { - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( managedRepoId ); - connector.setTargetRepoId( remoteRepoId ); - - return connector; - } - - private void populateRepository( RemoteRepositoryConfiguration repository ) - { - repository.setId( REPO_ID ); - repository.setName( "repo name" ); - repository.setUrl( "url" ); - repository.setLayout( "default" ); - } - - // TODO: what about removing proxied content if a proxy is removed? -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRepositoryGroupActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRepositoryGroupActionTest.java deleted file mode 100644 index 46efd31ae..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRepositoryGroupActionTest.java +++ /dev/null @@ -1,156 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.Collections; - -import com.opensymphony.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.RepositoryGroupConfiguration; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; - -/** - * DeleteRepositoryGroupActionTest - * - * @author - * @version - */ -public class DeleteRepositoryGroupActionTest - extends PlexusInSpringTestCase -{ - private static final String REPO_GROUP_ID = "repo-group-ident"; - - private DeleteRepositoryGroupAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - protected void setUp() - throws Exception - { - super.setUp(); - - action = (DeleteRepositoryGroupAction) lookup ( Action.class.getName(), "deleteRepositoryGroupAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } - - public void testSecureActionBundle() - throws SecureActionException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - public void testDeleteRepositoryGroupConfirmation() - throws Exception - { - RepositoryGroupConfiguration origRepoGroup = createRepositoryGroup(); - Configuration configuration = createConfigurationForEditing( origRepoGroup ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoGroupId( REPO_GROUP_ID ); - - action.prepare(); - assertEquals( REPO_GROUP_ID, action.getRepoGroupId() ); - RepositoryGroupConfiguration repoGroup = action.getRepositoryGroup(); - assertNotNull( repoGroup ); - assertEquals( repoGroup.getId(), action.getRepoGroupId() ); - assertEquals( Collections.singletonList( origRepoGroup ), configuration.getRepositoryGroups() ); - } - - public void testDeleteRepositoryGroup() - throws Exception - { - Configuration configuration = createConfigurationForEditing( createRepositoryGroup() ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 3 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoGroupId( REPO_GROUP_ID ); - - action.prepare(); - assertEquals( REPO_GROUP_ID, action.getRepoGroupId() ); - RepositoryGroupConfiguration repoGroup = action.getRepositoryGroup(); - assertNotNull( repoGroup ); - assertEquals( Collections.singletonList( repoGroup ), configuration.getRepositoryGroups() ); - - String status = action.delete(); - assertEquals( Action.SUCCESS, status ); - assertTrue( configuration.getRepositoryGroups().isEmpty() ); - } - - public void testDeleteRepositoryGroupCancelled() - throws Exception - { - RepositoryGroupConfiguration origRepoGroup = createRepositoryGroup(); - Configuration configuration = createConfigurationForEditing ( origRepoGroup ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 2 ); - - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoGroupId( REPO_GROUP_ID ); - - action.prepare(); - assertEquals( REPO_GROUP_ID, action.getRepoGroupId() ); - RepositoryGroupConfiguration repoGroup = action.getRepositoryGroup(); - assertNotNull( repoGroup ); - - String status = action.execute(); - assertEquals( Action.SUCCESS, status ); - assertEquals( Collections.singletonList( repoGroup ), configuration.getRepositoryGroups() ); - } - - private Configuration createConfigurationForEditing( RepositoryGroupConfiguration repoGroup ) - { - Configuration configuration = new Configuration(); - configuration.addRepositoryGroup( repoGroup ); - return configuration; - } - - private RepositoryGroupConfiguration createRepositoryGroup() - { - RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration(); - repoGroup.setId( REPO_GROUP_ID ); - - return repoGroup; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java deleted file mode 100644 index 5c944f8d6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java +++ /dev/null @@ -1,211 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.security.ArchivaRoleConstants; -import org.codehaus.plexus.redback.role.RoleManager; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; - -import java.io.File; -import java.io.IOException; -import java.util.Collections; - -/** - * EditManagedRepositoryActionTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EditManagedRepositoryActionTest - extends PlexusInSpringTestCase -{ - private EditManagedRepositoryAction action; - - private RoleManager roleManager; - - private MockControl roleManagerControl; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - private static final String REPO_ID = "repo-ident"; - - private File location; - - @Override - protected String getPlexusConfigLocation() - { - return AbstractManagedRepositoriesAction.class.getName().replace( '.', '/' ) + "Test.xml"; - } - - protected void setUp() - throws Exception - { - super.setUp(); - - action = (EditManagedRepositoryAction) lookup( Action.class.getName(), "editManagedRepositoryAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - - roleManagerControl = MockControl.createControl( RoleManager.class ); - roleManager = (RoleManager) roleManagerControl.getMock(); - action.setRoleManager( roleManager ); - location = getTestFile( "target/test/location" ); - } - - public void testSecureActionBundle() - throws SecureActionException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - public void testEditRepositoryInitialPage() - throws Exception - { - Configuration configuration = createConfigurationForEditing( createRepository() ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - ManagedRepositoryConfiguration repository = action.getRepository(); - assertNotNull( repository ); - assertRepositoryEquals( repository, createRepository() ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - } - - public void testEditRepository() - throws Exception - { - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setVoidCallable(); - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setVoidCallable(); - - roleManagerControl.replay(); - - Configuration configuration = createConfigurationForEditing( createRepository() ); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfiguration.save( configuration ); - - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - ManagedRepositoryConfiguration repository = action.getRepository(); - populateRepository( repository ); - repository.setName( "new repo name" ); - - String status = action.commit(); - assertEquals( Action.SUCCESS, status ); - - ManagedRepositoryConfiguration newRepository = createRepository(); - newRepository.setName( "new repo name" ); - assertRepositoryEquals( repository, newRepository ); - assertEquals( Collections.singletonList( repository ), configuration.getManagedRepositories() ); - - roleManagerControl.verify(); - archivaConfigurationControl.verify(); - } - - private void assertRepositoryEquals( ManagedRepositoryConfiguration expectedRepository, - ManagedRepositoryConfiguration actualRepository ) - { - assertEquals( expectedRepository.getDaysOlder(), actualRepository.getDaysOlder() ); - assertEquals( expectedRepository.getId(), actualRepository.getId() ); - assertEquals( expectedRepository.getIndexDir(), actualRepository.getIndexDir() ); - assertEquals( expectedRepository.getLayout(), actualRepository.getLayout() ); - assertEquals( expectedRepository.getLocation(), actualRepository.getLocation() ); - assertEquals( expectedRepository.getName(), actualRepository.getName() ); - assertEquals( expectedRepository.getRefreshCronExpression(), actualRepository.getRefreshCronExpression() ); - assertEquals( expectedRepository.getRetentionCount(), actualRepository.getRetentionCount() ); - assertEquals( expectedRepository.isDeleteReleasedSnapshots(), actualRepository.isDeleteReleasedSnapshots() ); - assertEquals( expectedRepository.isScanned(), actualRepository.isScanned() ); - assertEquals( expectedRepository.isReleases(), actualRepository.isReleases() ); - assertEquals( expectedRepository.isSnapshots(), actualRepository.isSnapshots() ); - } - - private Configuration createConfigurationForEditing( ManagedRepositoryConfiguration repositoryConfiguration ) - { - Configuration configuration = new Configuration(); - configuration.addManagedRepository( repositoryConfiguration ); - return configuration; - } - - private ManagedRepositoryConfiguration createRepository() - throws IOException - { - ManagedRepositoryConfiguration r = new ManagedRepositoryConfiguration(); - r.setId( REPO_ID ); - populateRepository( r ); - return r; - } - - private void populateRepository( ManagedRepositoryConfiguration repository ) - throws IOException - { - repository.setId( REPO_ID ); - repository.setName( "repo name" ); - repository.setLocation( location.getCanonicalPath() ); - repository.setLayout( "default" ); - repository.setRefreshCronExpression( "* 0/5 * * * ?" ); - repository.setDaysOlder( 31 ); - repository.setRetentionCount( 20 ); - repository.setReleases( true ); - repository.setSnapshots( true ); - repository.setScanned( false ); - repository.setDeleteReleasedSnapshots( true ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java deleted file mode 100644 index eb8a92920..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java +++ /dev/null @@ -1,157 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.opensymphony.xwork.Action; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; - -import java.util.Collections; - -/** - * EditRemoteRepositoryActionTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class EditRemoteRepositoryActionTest - extends PlexusInSpringTestCase -{ - private static final String REPO_ID = "remote-repo-ident"; - - private EditRemoteRepositoryAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - public void testEditRemoteRepository() - throws Exception - { - Configuration configuration = createConfigurationForEditing( createRepository() ); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - RemoteRepositoryConfiguration repository = action.getRepository(); - populateRepository( repository ); - repository.setName( "new repo name" ); - - String status = action.commit(); - assertEquals( Action.SUCCESS, status ); - - RemoteRepositoryConfiguration newRepository = createRepository(); - newRepository.setName( "new repo name" ); - assertRepositoryEquals( repository, newRepository ); - assertEquals( Collections.singletonList( repository ), configuration.getRemoteRepositories() ); - - archivaConfigurationControl.verify(); - } - - public void testEditRemoteRepositoryInitialPage() - throws Exception - { - Configuration configuration = createConfigurationForEditing( createRepository() ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - RemoteRepositoryConfiguration repository = action.getRepository(); - assertNotNull( repository ); - assertRepositoryEquals( repository, createRepository() ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - } - - public void testSecureActionBundle() - throws SecureActionException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - private void assertRepositoryEquals( RemoteRepositoryConfiguration expectedRepository, - RemoteRepositoryConfiguration actualRepository ) - { - assertEquals( expectedRepository.getId(), actualRepository.getId() ); - assertEquals( expectedRepository.getLayout(), actualRepository.getLayout() ); - assertEquals( expectedRepository.getUrl(), actualRepository.getUrl() ); - assertEquals( expectedRepository.getName(), actualRepository.getName() ); - } - - private Configuration createConfigurationForEditing( RemoteRepositoryConfiguration repositoryConfiguration ) - { - Configuration configuration = new Configuration(); - configuration.addRemoteRepository( repositoryConfiguration ); - return configuration; - } - - private RemoteRepositoryConfiguration createRepository() - { - RemoteRepositoryConfiguration r = new RemoteRepositoryConfiguration(); - r.setId( REPO_ID ); - populateRepository( r ); - return r; - } - - private void populateRepository( RemoteRepositoryConfiguration repository ) - { - repository.setId( REPO_ID ); - repository.setName( "repo name" ); - repository.setUrl( "url" ); - repository.setLayout( "default" ); - } - - protected void setUp() - throws Exception - { - super.setUp(); - - action = (EditRemoteRepositoryAction) lookup( Action.class.getName(), "editRemoteRepositoryAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ProjectModelDAOStub.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ProjectModelDAOStub.java deleted file mode 100644 index 7414ebd8c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ProjectModelDAOStub.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import 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.ProjectModelDAO; -import org.apache.maven.archiva.model.ArchivaProjectModel; - -/** - * ProjectModelDAOStub - * - * @author Maria Odea Ching - * @version - */ -public class ProjectModelDAOStub - implements ProjectModelDAO -{ - - public ArchivaProjectModel createProjectModel( String groupId, String artifactId, String version ) - { - // TODO Auto-generated method stub - return null; - } - - public void deleteProjectModel( ArchivaProjectModel model ) - throws ArchivaDatabaseException - { - // TODO Auto-generated method stub - - } - - public ArchivaProjectModel getProjectModel( String groupId, String artifactId, String version ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - ArchivaProjectModel projectModel = new ArchivaProjectModel(); - projectModel.setGroupId( groupId ); - projectModel.setArtifactId( artifactId ); - projectModel.setVersion( version ); - - return projectModel; - } - - public List queryProjectModels( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - // TODO Auto-generated method stub - return null; - } - - public ArchivaProjectModel saveProjectModel( ArchivaProjectModel model ) - throws ArchivaDatabaseException - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesActionTest.java deleted file mode 100644 index 1b372a1da..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesActionTest.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import com.meterware.servletunit.ServletRunner; -import com.meterware.servletunit.ServletUnitClient; -import com.opensymphony.xwork.Action; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * Test the repositories action returns the correct data. - */ -public class RepositoriesActionTest - extends PlexusInSpringTestCase -{ - private RepositoriesAction action; - - protected void setUp() - throws Exception - { - super.setUp(); - - // TODO: purely to quiet logging - shouldn't be needed - String appserverBase = getTestFile( "target/appserver-base" ).getAbsolutePath(); - System.setProperty( "appserver.base", appserverBase ); - action = (RepositoriesAction) lookup( Action.class.getName(), "repositoriesAction" ); - } - - public void testGetRepositories() - throws Exception - { - ServletRunner sr = new ServletRunner(); - ServletUnitClient sc = sr.newClient(); - - action.setServletRequest( sc.newInvocation( "http://localhost/admin/repositories.action" ).getRequest() ); - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - // TODO: for some reason servletunit is not populating the port of the servlet request - assertEquals( "http://localhost:0/repository", action.getBaseUrl() ); - - assertNotNull( action.getManagedRepositories() ); - assertNotNull( action.getRemoteRepositories() ); - assertNotNull( action.getRepositoryStatistics() ); - - assertEquals( 2, action.getManagedRepositories().size() ); - assertEquals( 2, action.getRemoteRepositories().size() ); - assertEquals( 2, action.getRepositoryStatistics().size() ); - } - - public void testSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryContentStatisticsDAOStub.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryContentStatisticsDAOStub.java deleted file mode 100644 index 70996905d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryContentStatisticsDAOStub.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.ArrayList; -import java.util.List; - -import junit.framework.Assert; - -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.RepositoryContentStatisticsDAO; -import org.apache.maven.archiva.database.constraints.RepositoryContentStatisticsByRepositoryConstraint; -import org.apache.maven.archiva.model.RepositoryContentStatistics; - -/** - * RepositoryContentStatisticsDAOStub - * - * @author Maria Odea Ching - * @version - */ -public class RepositoryContentStatisticsDAOStub - implements RepositoryContentStatisticsDAO -{ - - public void deleteRepositoryContentStatistics( RepositoryContentStatistics stats ) - throws ArchivaDatabaseException - { - Assert.assertEquals( "repo-ident", stats.getRepositoryId() ); - } - - public List queryRepositoryContentStatistics( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - Assert.assertTrue( constraint instanceof RepositoryContentStatisticsByRepositoryConstraint ); - - List stats = new ArrayList(); - RepositoryContentStatistics statistics = new RepositoryContentStatistics(); - statistics.setRepositoryId( "repo-ident" ); - stats.add( statistics ); - - return stats; - } - - public RepositoryContentStatistics saveRepositoryContentStatistics( RepositoryContentStatistics stats ) - { - return null; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryGroupsActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryGroupsActionTest.java deleted file mode 100644 index 5b12e8ea2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryGroupsActionTest.java +++ /dev/null @@ -1,380 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.Collections; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.RepositoryGroupConfiguration; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; - -import com.meterware.servletunit.ServletRunner; -import com.meterware.servletunit.ServletUnitClient; -import com.opensymphony.xwork.Action; - -/** - * RepositoryGroupsActionTest - * - * @author - * @version - */ -public class RepositoryGroupsActionTest - extends PlexusInSpringTestCase -{ - private static final String REPO_GROUP_ID = "repo-group-ident"; - - private static final String REPO1_ID = "managed-repo-ident-1"; - - private static final String REPO2_ID = "managed-repo-ident-2"; - - private RepositoryGroupsAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - protected void setUp() - throws Exception - { - super.setUp(); - - action = (RepositoryGroupsAction) lookup( Action.class.getName(), "repositoryGroupsAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } - - public void testSecureActionBundle() - throws SecureActionException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - public void testAddRepositoryGroup() - throws Exception - { - Configuration configuration = new Configuration(); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 2 ); - - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.prepare(); - RepositoryGroupConfiguration repositoryGroup = action.getRepositoryGroup(); - repositoryGroup.setId( REPO_GROUP_ID ); - - String status = action.addRepositoryGroup(); - assertEquals( Action.SUCCESS, status ); - - assertEquals( Collections.singletonList( repositoryGroup ), configuration.getRepositoryGroups() ); - - archivaConfigurationControl.verify(); - } - - public void testAddEmptyRepositoryGroup() - throws Exception - { - Configuration configuration = new Configuration(); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 2 ); - - archivaConfiguration.save( configuration ); - - archivaConfigurationControl.replay(); - - action.prepare(); - - String status = action.addRepositoryGroup(); - assertEquals( Action.ERROR, status ); - - assertEquals( 0, configuration.getRepositoryGroups().size() ); - } - - public void testAddDuplicateRepositoryGroup() - throws Exception - { - Configuration configuration = new Configuration(); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 3 ); - - archivaConfiguration.save( configuration ); - - archivaConfigurationControl.replay(); - - action.prepare(); - RepositoryGroupConfiguration repositoryGroup = action.getRepositoryGroup(); - repositoryGroup.setId( REPO_GROUP_ID ); - - String status = action.addRepositoryGroup(); - assertEquals( Action.SUCCESS, status ); - - assertEquals( Collections.singletonList( repositoryGroup ), configuration.getRepositoryGroups() ); - - repositoryGroup.setId( REPO_GROUP_ID ); - status = action.addRepositoryGroup(); - - assertEquals( Action.ERROR, status ); - assertEquals( Collections.singletonList( repositoryGroup ), configuration.getRepositoryGroups() ); - } - - public void testGetRepositoryGroups() - throws Exception - { - ServletRunner sr = new ServletRunner(); - ServletUnitClient sc = sr.newClient(); - - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.replay(); - - action.setServletRequest( sc.newInvocation( "http://localhost/admin/repositoryGroups.action" ).getRequest() ); - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertEquals( "http://localhost:0/repository", action.getBaseUrl() ); - - assertNotNull( action.getRepositoryGroups() ); - assertEquals( 1, action.getRepositoryGroups().size() ); - assertEquals( 2, action.getManagedRepositories().size() ); - - RepositoryGroupConfiguration repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - - assertEquals( 1, repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - java.util.List repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 1, repos.size() ); - assertEquals( REPO2_ID, repos.get( 0 ) ); - } - - public void testAddRepositoryToGroup() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 6 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertNotNull( action.getRepositoryGroups() ); - assertEquals( 1, action.getRepositoryGroups().size() ); - assertEquals( 2, action.getManagedRepositories().size() ); - - RepositoryGroupConfiguration repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 1 , repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - java.util.List repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 1, repos.size() ); - assertEquals( REPO2_ID, repos.get( 0 ) ); - - action.setRepoGroupId( REPO_GROUP_ID ); - action.setRepoId( REPO2_ID ); - - result = action.addRepositoryToGroup(); - assertEquals( Action.SUCCESS, result ); - - action.prepare(); - result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertEquals( 1, action.getRepositoryGroups().size() ); - repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 2, repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - assertEquals( REPO2_ID, repoGroup.getRepositories().get( 1 ) ); - - assertEquals( 0, action.getGroupToRepositoryMap().size() ); - assertNull( action.getGroupToRepositoryMap().get( repoGroup.getId() ) ); - } - - public void testRemoveRepositoryFromGroup() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 6 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertNotNull( action.getRepositoryGroups() ); - assertEquals( 1, action.getRepositoryGroups().size() ); - assertEquals( 2, action.getManagedRepositories().size() ); - - RepositoryGroupConfiguration repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 1 , repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - java.util.List repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 1, repos.size() ); - assertEquals( REPO2_ID, repos.get( 0 ) ); - - action.setRepoGroupId( REPO_GROUP_ID ); - action.setRepoId( REPO1_ID ); - - result = action.removeRepositoryFromGroup(); - assertEquals( Action.SUCCESS, result ); - - action.prepare(); - result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 0, repoGroup.getRepositories().size() ); - - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 2, repos.size() ); - assertEquals( REPO1_ID, repos.get( 0 ) ); - assertEquals( REPO2_ID, repos.get( 1 ) ); - } - - public void testAddDuplicateRepositoryToGroup() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 6 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertNotNull( action.getRepositoryGroups() ); - assertEquals( 1, action.getRepositoryGroups().size() ); - assertEquals( 2, action.getManagedRepositories().size() ); - - RepositoryGroupConfiguration repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 1 , repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - java.util.List repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 1, repos.size() ); - assertEquals( REPO2_ID, repos.get( 0 ) ); - - action.setRepoGroupId( REPO_GROUP_ID ); - action.setRepoId( REPO1_ID ); - - result = action.addRepositoryToGroup(); - assertEquals( Action.ERROR, result ); - } - - public void testRemoveRepositoryNotInGroup() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 6 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertNotNull( action.getRepositoryGroups() ); - assertEquals( 1, action.getRepositoryGroups().size() ); - assertEquals( 2, action.getManagedRepositories().size() ); - - RepositoryGroupConfiguration repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 1 , repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - java.util.List repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 1, repos.size() ); - assertEquals( REPO2_ID, repos.get( 0 ) ); - - action.setRepoGroupId( REPO_GROUP_ID ); - action.setRepoId( REPO2_ID ); - - result = action.removeRepositoryFromGroup(); - assertEquals( Action.ERROR, result ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo1 = new ManagedRepositoryConfiguration(); - managedRepo1.setId( REPO1_ID ); - - config.addManagedRepository( managedRepo1 ); - - ManagedRepositoryConfiguration managedRepo2 = new ManagedRepositoryConfiguration(); - managedRepo2.setId( REPO2_ID ); - - config.addManagedRepository( managedRepo2 ); - - RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration(); - repoGroup.setId( REPO_GROUP_ID ); - repoGroup.addRepository( REPO1_ID ); - - config.addRepositoryGroup( repoGroup ); - - return config; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/SortRepositoriesActionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/SortRepositoriesActionTest.java deleted file mode 100644 index 9cd360640..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/SortRepositoriesActionTest.java +++ /dev/null @@ -1,225 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.RepositoryGroupConfiguration; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle; -import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; - -import com.opensymphony.xwork.Action; - -/** - * SortRepositoriesActionTest - * - * @author - * @version - */ -public class SortRepositoriesActionTest - extends PlexusInSpringTestCase -{ - private static final String REPO_GROUP_ID = "repo-group-ident"; - - private static final String REPO1_ID = "managed-repo-ident-1"; - - private static final String REPO2_ID = "managed-repo-ident-2"; - - private static final String REPO3_ID = "managed-repo-ident-3"; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - private SortRepositoriesAction action; - - protected void setUp() - throws Exception - { - super.setUp(); - - action = (SortRepositoriesAction) lookup( Action.class.getName(), "sortRepositoriesAction" ); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - action.setArchivaConfiguration( archivaConfiguration ); - } - - public void testSecureActionBundle() - throws SecureActionException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - public void testSortDownFirstRepository() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - RepositoryGroupConfiguration repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - java.util.List repositories = repoGroup.getRepositories(); - - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - - // sort down first repo - action.setRepoGroupId( repoGroup.getId() ); - action.setTargetRepo( REPO1_ID ); - - String result = action.sortDown(); - assertEquals( Action.SUCCESS, result ); - - repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - repositories = repoGroup.getRepositories(); - assertEquals( 3, repositories.size() ); - assertEquals( REPO2_ID, repositories.get( 0 ) ); - assertEquals( REPO1_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - } - - public void testSortDownLastRepository() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - RepositoryGroupConfiguration repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - java.util.List repositories = repoGroup.getRepositories(); - - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - - // sort down last repo - action.setRepoGroupId( repoGroup.getId() ); - action.setTargetRepo( REPO3_ID ); - - String result = action.sortDown(); - assertEquals( Action.SUCCESS, result ); - - repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - repositories = repoGroup.getRepositories(); - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - } - - public void testSortUpLastRepository() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - RepositoryGroupConfiguration repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - java.util.List repositories = repoGroup.getRepositories(); - - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - - // sort up last repo - action.setRepoGroupId( repoGroup.getId() ); - action.setTargetRepo( REPO3_ID ); - - String result = action.sortUp(); - assertEquals( Action.SUCCESS, result ); - - repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - repositories = repoGroup.getRepositories(); - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO3_ID, repositories.get( 1 ) ); - assertEquals( REPO2_ID, repositories.get( 2 ) ); - } - - public void testSortUpFirstRepository() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - RepositoryGroupConfiguration repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - java.util.List repositories = repoGroup.getRepositories(); - - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - - // sort up first repo - action.setRepoGroupId( repoGroup.getId() ); - action.setTargetRepo( REPO1_ID ); - - String result = action.sortUp(); - assertEquals( Action.SUCCESS, result ); - - repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - repositories = repoGroup.getRepositories(); - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration(); - repoGroup.setId( REPO_GROUP_ID ); - repoGroup.addRepository( REPO1_ID ); - repoGroup.addRepository( REPO2_ID ); - repoGroup.addRepository( REPO3_ID ); - - config.addRepositoryGroup( repoGroup ); - - return config; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/ArtifactDAOStub.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/ArtifactDAOStub.java deleted file mode 100644 index 5a9bae67f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/ArtifactDAOStub.java +++ /dev/null @@ -1,123 +0,0 @@ -package org.apache.maven.archiva.web.rss; - -/* - * 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.Calendar; -import java.util.Date; -import java.util.List; - -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.model.ArchivaArtifact; - -/** - * Stub used for RssFeedServlet unit test. - * - * @author Maria Odea Ching - * @version - */ -public class ArtifactDAOStub - implements ArtifactDAO -{ - - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - { - // TODO Auto-generated method stub - return null; - } - - public void deleteArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - // TODO Auto-generated method stub - - } - - public ArchivaArtifact getArtifact( String groupId, String artifactId, String version, String classifier, - String type ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - // TODO Auto-generated method stub - return null; - } - - public List queryArtifacts( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - List artifacts = new ArrayList(); - - Date whenGathered = Calendar.getInstance().getTime(); - whenGathered.setTime( 123456789 ); - - ArchivaArtifact artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-one", "1.0", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-one", "1.1", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-one", "2.0", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-two", "1.0.1", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-two", "1.0.2", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-two", "1.0.3-SNAPSHOT", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-three", "2.0-SNAPSHOT", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifacts.add( artifact ); - - artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-four", "1.1-beta-2", "", "jar" ); - artifact.getModel().setRepositoryId( "test-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifacts.add( artifact ); - - return artifacts; - } - - public ArchivaArtifact saveArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/RssFeedServletTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/RssFeedServletTest.java deleted file mode 100644 index eed126ab2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/RssFeedServletTest.java +++ /dev/null @@ -1,200 +0,0 @@ -package org.apache.maven.archiva.web.rss; - -/* - * 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.IOException; - -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.codec.Encoder; -import org.apache.commons.codec.binary.Base64; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import sun.misc.BASE64Encoder; - -import com.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.HttpException; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; -import com.meterware.servletunit.ServletRunner; -import com.meterware.servletunit.ServletUnitClient; - -/** - * - * @author Maria Odea Ching - * @version - */ -public class RssFeedServletTest - extends PlexusInSpringTestCase -{ - private ServletRunner sr; - - private ServletUnitClient client; - - public void setUp() - throws Exception - { - sr = new ServletRunner( getTestFile( "src/test/webapp/WEB-INF/feedServletTest-web.xml" ) ); - client = sr.newClient(); - } - - public void testRetrieveServlet() - throws Exception - { - RssFeedServlet servlet = - (RssFeedServlet) client.newInvocation( "http://localhost/feeds/test-repo" ).getServlet(); - assertNotNull( servlet ); - } - - public void testRequestNewArtifactsInRepo() - throws Exception - { - RssFeedServlet servlet = - (RssFeedServlet) client.newInvocation( "http://localhost/feeds/test-repo" ).getServlet(); - assertNotNull( servlet ); - - WebRequest request = new GetMethodWebRequest( "http://localhost/feeds/test-repo" ); - - BASE64Encoder encoder = new BASE64Encoder(); - String userPass = "user1:password1"; - String encodedUserPass = encoder.encode( userPass.getBytes() ); - request.setHeaderField( "Authorization", "BASIC " + encodedUserPass ); - - WebResponse response = client.getResponse( request ); - assertEquals( RssFeedServlet.MIME_TYPE, response.getHeaderField( "CONTENT-TYPE" ) ); - assertNotNull( "Should have recieved a response", response ); - assertEquals( "Should have been an OK response code.", HttpServletResponse.SC_OK, response.getResponseCode() ); - } - - public void testRequestNewVersionsOfArtifact() - throws Exception - { - RssFeedServlet servlet = - (RssFeedServlet) client.newInvocation( - "http://localhost/feeds/org/apache/archiva/artifact-two" ).getServlet(); - assertNotNull( servlet ); - - WebRequest request = new GetMethodWebRequest( "http://localhost/feeds/org/apache/archiva/artifact-two" ); - - BASE64Encoder encoder = new BASE64Encoder(); - String userPass = "user1:password1"; - String encodedUserPass = encoder.encode( userPass.getBytes() ); - request.setHeaderField( "Authorization", "BASIC " + encodedUserPass ); - - WebResponse response = client.getResponse( request ); - assertEquals( RssFeedServlet.MIME_TYPE, response.getHeaderField( "CONTENT-TYPE" ) ); - assertNotNull( "Should have recieved a response", response ); - assertEquals( "Should have been an OK response code.", HttpServletResponse.SC_OK, response.getResponseCode() ); - } - - public void testInvalidRequest() - throws Exception - { - RssFeedServlet servlet = - (RssFeedServlet) client.newInvocation( - "http://localhost/feeds?invalid_param=xxx" ).getServlet(); - assertNotNull( servlet ); - - try - { - WebResponse response = client.getResponse( "http://localhost/feeds?invalid_param=xxx" ); - } - catch ( HttpException he ) - { - assertEquals( "Should have been a bad request response code.", HttpServletResponse.SC_BAD_REQUEST, he.getResponseCode() ); - } - } - - public void testInvalidAuthenticationRequest() - throws Exception - { - RssFeedServlet servlet = - (RssFeedServlet) client.newInvocation( - "http://localhost/feeds/unauthorized-repo" ).getServlet(); - assertNotNull( servlet ); - - - WebRequest request = new GetMethodWebRequest( "http://localhost/feeds/unauthorized-repo" ); - - Encoder encoder = new Base64(); - String userPass = "unauthUser:unauthPass"; - String encodedUserPass = new String( ( byte[] ) encoder.encode( userPass.getBytes() ) ); - request.setHeaderField( "Authorization", "BASIC " + encodedUserPass ); - - try - { - WebResponse response = client.getResponse( request ); - } - catch ( HttpException he ) - { - assertEquals( "Should have been a unauthorized response.", HttpServletResponse.SC_UNAUTHORIZED, he.getResponseCode() ); - } - } - - public void testUnauthorizedRequest() - throws Exception - { - RssFeedServlet servlet = - (RssFeedServlet) client.newInvocation( - "http://localhost/feeds/unauthorized-repo" ).getServlet(); - assertNotNull( servlet ); - - - WebRequest request = new GetMethodWebRequest( "http://localhost/feeds/unauthorized-repo" ); - - BASE64Encoder encoder = new BASE64Encoder(); - String userPass = "user1:password1"; - String encodedUserPass = encoder.encode( userPass.getBytes() ); - request.setHeaderField( "Authorization", "BASIC " + encodedUserPass ); - - try - { - WebResponse response = client.getResponse( request ); - } - catch ( HttpException he ) - { - assertEquals( "Should have been a unauthorized response.", HttpServletResponse.SC_UNAUTHORIZED, he.getResponseCode() ); - } - } - - @Override - protected String getPlexusConfigLocation() - { - return "org/apache/maven/archiva/web/rss/RssFeedServletTest.xml"; - } - - @Override - protected void tearDown() - throws Exception - { - if ( client != null ) - { - client.clearContents(); - } - - if ( sr != null ) - { - sr.shutDown(); - } - - super.tearDown(); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/SecuritySystemStub.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/SecuritySystemStub.java deleted file mode 100644 index 96dc95e7b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/SecuritySystemStub.java +++ /dev/null @@ -1,164 +0,0 @@ -package org.apache.maven.archiva.web.rss; - -/* - * 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; - -import org.codehaus.plexus.redback.authentication.AuthenticationDataSource; -import org.codehaus.plexus.redback.authentication.AuthenticationException; -import org.codehaus.plexus.redback.authentication.AuthenticationResult; -import org.codehaus.plexus.redback.authorization.AuthorizationException; -import org.codehaus.plexus.redback.authorization.AuthorizationResult; -import org.codehaus.plexus.redback.keys.KeyManager; -import org.codehaus.plexus.redback.policy.AccountLockedException; -import org.codehaus.plexus.redback.policy.UserSecurityPolicy; -import org.codehaus.plexus.redback.system.DefaultSecuritySession; -import org.codehaus.plexus.redback.system.SecuritySession; -import org.codehaus.plexus.redback.system.SecuritySystem; -import org.codehaus.plexus.redback.users.User; -import org.codehaus.plexus.redback.users.UserManager; -import org.codehaus.plexus.redback.users.UserNotFoundException; -import org.codehaus.plexus.redback.users.jdo.JdoUser; - -/** - * SecuritySystem stub used for testing. - * - * @author Maria Odea Ching - * @version $Id$ - */ -public class SecuritySystemStub - implements SecuritySystem -{ - Map users = new HashMap(); - - List repoIds = new ArrayList(); - - public SecuritySystemStub() - { - users.put( "user1", "password1" ); - users.put( "user2", "password2" ); - users.put( "user3", "password3" ); - - repoIds.add( "test-repo" ); - } - - public SecuritySession authenticate( AuthenticationDataSource source ) - throws AuthenticationException, UserNotFoundException, AccountLockedException - { - AuthenticationResult result = null; - SecuritySession session = null; - - if ( users.get( source.getPrincipal() ) != null ) - { - result = new AuthenticationResult( true, source.getPrincipal(), null ); - - User user = new JdoUser(); - user.setUsername( source.getPrincipal() ); - user.setPassword( users.get( source.getPrincipal() ) ); - - session = new DefaultSecuritySession( result, user ); - } - else - { - result = new AuthenticationResult( false, source.getPrincipal(), null ); - session = new DefaultSecuritySession( result ); - } - return session; - } - - public AuthorizationResult authorize( SecuritySession arg0, Object arg1 ) - throws AuthorizationException - { - return null; - } - - public AuthorizationResult authorize( SecuritySession arg0, Object arg1, Object arg2 ) - throws AuthorizationException - { - AuthorizationResult result = new AuthorizationResult( true, arg1, null); - - return result; - } - - public String getAuthenticatorId() - { - // TODO Auto-generated method stub - return null; - } - - public String getAuthorizerId() - { - // TODO Auto-generated method stub - return null; - } - - public KeyManager getKeyManager() - { - // TODO Auto-generated method stub - return null; - } - - public UserSecurityPolicy getPolicy() - { - // TODO Auto-generated method stub - return null; - } - - public String getUserManagementId() - { - // TODO Auto-generated method stub - return null; - } - - public UserManager getUserManager() - { - // TODO Auto-generated method stub - return null; - } - - public boolean isAuthenticated( AuthenticationDataSource arg0 ) - throws AuthenticationException, UserNotFoundException, AccountLockedException - { - // TODO Auto-generated method stub - return false; - } - - public boolean isAuthorized( SecuritySession arg0, Object arg1 ) - throws AuthorizationException - { - // TODO Auto-generated method stub - return false; - } - - public boolean isAuthorized( SecuritySession arg0, Object arg1, Object arg2 ) - throws AuthorizationException - { - if ( repoIds.contains( arg2 ) ) - { - return true; - } - - return false; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/UserRepositoriesStub.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/UserRepositoriesStub.java deleted file mode 100644 index 6876fa4a5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/UserRepositoriesStub.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.web.rss; - -/* - * 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; - -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; - -/** - * UserRepositories stub used for testing. - * - * @author Maria Odea Ching - * @version $Id$ - */ -public class UserRepositoriesStub - implements UserRepositories -{ - - public void createMissingRepositoryRoles( String repoId ) - throws ArchivaSecurityException - { - // TODO Auto-generated method stub - - } - - public List getObservableRepositoryIds( String principal ) - throws PrincipalNotFoundException, AccessDeniedException, ArchivaSecurityException - { - List repoIds = new ArrayList(); - repoIds.add( "test-repo" ); - - return repoIds; - } - - public boolean isAuthorizedToUploadArtifacts( String principal, String repoId ) - throws PrincipalNotFoundException, ArchivaSecurityException - { - // TODO Auto-generated method stub - return false; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/startup/BannerTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/startup/BannerTest.java deleted file mode 100644 index 125a3b621..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/startup/BannerTest.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.apache.maven.archiva.web.startup; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.IOUtils; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.zip.GZIPInputStream; - -import junit.framework.TestCase; - -/** - * BannerTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class BannerTest - extends TestCase -{ - private void assertEncodeDecode( String encoded, String decoded ) - { - assertEquals( "Encoding: ", encoded, Banner.encode( decoded ) ); - assertEquals( "Decoding: ", decoded, Banner.decode( encoded ) ); - } - - public void testEncodeDecode() - { - assertEncodeDecode( "[$10 ]", "[ ]" ); - assertEncodeDecode( "$$$5_$n$5_", "$_____\n_____" ); - assertEncodeDecode( "$${Refgjuvyr}", "${Erstwhile}" ); - } - - public void testInjectVersion() - { - assertEquals( "[ 1.0 ]", Banner.injectVersion( "[#####]", "1.0" ) ); - assertEquals( ".\\ 1.0-SNAPSHOT \\._____", Banner.injectVersion( ".\\################\\._____", - "1.0-SNAPSHOT" ) ); - assertEquals( "Archiva:\n ( 1.0-alpha-1 )", Banner - .injectVersion( "Archiva:\n (##############)", "1.0-alpha-1" ) ); - } - - public void testGetBanner() - throws IOException - { - String version = "1.0-alpha-1-SNAPSHOT"; - String banner = Banner.getBanner( version ); - assertNotNull( "Banner should not be null.", banner ); - assertTrue( "Banner contains version.", banner.indexOf( version ) > 0 ); - - /* Want to make a new banner? - * Steps to do it. - * 1) Edit the src/test/resources/banner.gz file. - * 2) Save it compressed. - * 3) Add (to this test method) ... - * System.out.println( "\"" + Banner.encode( getRawBanner() ) + "\"" ); - * 4) Run the test - * 5) Copy / Paste the encoded form into the Banner.getBanner() method. - */ - } - - public String getRawBanner() - throws IOException - { - File gzBanner = new File( "src/test/resources/banner.gz" ); - assertTrue( "File [" + gzBanner.getPath() + "] not found.", gzBanner.exists() ); - FileInputStream fis = new FileInputStream( gzBanner ); - GZIPInputStream gzis = new GZIPInputStream( fis ); - return IOUtils.toString( gzis ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/META-INF/plexus/components.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/META-INF/plexus/components.xml deleted file mode 100644 index 921c1cca1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/META-INF/plexus/components.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - org.apache.maven.archiva.webdav.util.MimeTypes - org.apache.maven.archiva.webdav.util.MimeTypes - MimeTypes - - archiva-mime-types.txt - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/artifact.jar b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/artifact.jar deleted file mode 100644 index e6f67ee94ef952e2b4b3c5d7a5494bc58978edd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13 UcmYc+D#=VsOfJ#ON-W|603;Fw!~g&Q diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/banner.gz b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/banner.gz deleted file mode 100755 index 9715c46e7b9fbe86380b38289675b731a29ead21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmV+#0p@yq4;oPC-cxeyq2vVwJGGl= zySk!lBp`YA%&w~uq3m4dN9LRV-$8)?D)&~fBQVPs1>VYbG=Aan5F0fCoE!KSCCLk@ z3y_qi=~A$4si3gup&iap^axFAR$5iEYOX*d-9a@LJu%7clWwAU;dz`SDL)1622N$a zww?MFg$6CC?qm3XQ4R73Wc4R_H!OG@f(;B2INb50kcFxR+|^*_XU|htl+}%3#itpZ zDO{iN=BYJ2Q-{nXk8^xo!CwwX>lwj>+as1*x9^CxiJX$XS*p4#(wrU_Jes|tttCr0 gmJGe<`s04f#yy+1&7Hyj%V7{a0Z?QuKC%J;07Q_5u>b%7 diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j.xml deleted file mode 100644 index a2e7ea23d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorActionTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorActionTest.xml deleted file mode 100644 index 924f07f7c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorActionTest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - org.codehaus.plexus.logging.LoggerManager - org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager - basic - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorActionTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorActionTest.xml deleted file mode 100644 index 924f07f7c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorActionTest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - org.codehaus.plexus.logging.LoggerManager - org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager - basic - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesActionTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesActionTest.xml deleted file mode 100644 index ba213da8e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesActionTest.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - org.codehaus.plexus.logging.LoggerManager - org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager - basic - - - - com.opensymphony.xwork.Action - addManagedRepositoryAction - org.apache.maven.archiva.web.action.admin.repositories.AddManagedRepositoryAction - per-lookup - - - - - com.opensymphony.xwork.Action - deleteManagedRepositoryAction - org.apache.maven.archiva.web.action.admin.repositories.DeleteManagedRepositoryAction - per-lookup - - - org.apache.maven.archiva.database.ArchivaDAO - jdo - archivaDAO - - - - - - com.opensymphony.xwork.Action - editManagedRepositoryAction - org.apache.maven.archiva.web.action.admin.repositories.EditManagedRepositoryAction - per-lookup - - - - - - org.apache.maven.archiva.database.ArchivaDAO - jdo - org.apache.maven.archiva.web.action.admin.repositories.AbstractManagedRepositoryArchivaDAOStub - - - org.apache.maven.archiva.database.ArtifactDAO - jdo - artifactDAO - - - org.apache.maven.archiva.database.ProjectModelDAO - jdo - projectModelDAO - - - org.apache.maven.archiva.database.RepositoryContentStatisticsDAO - jdo - repoContentStatisticsDAO - - - - - org.apache.maven.archiva.database.ArtifactDAO - jdo - org.apache.maven.archiva.web.action.admin.repositories.ArtifactDAOStub - - - org.apache.maven.archiva.database.ProjectModelDAO - jdo - org.apache.maven.archiva.web.action.admin.repositories.ProjectModelDAOStub - - - org.apache.maven.archiva.database.RepositoryContentStatisticsDAO - jdo - org.apache.maven.archiva.web.action.admin.repositories.RepositoryContentStatisticsDAOStub - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.xml deleted file mode 100644 index 43c1eae54..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - org.codehaus.plexus.logging.LoggerManager - org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager - basic - - - org.codehaus.plexus.redback.role.RoleManager - default - org.apache.maven.archiva.web.action.admin.repositories.RoleManagerStub - - - com.opensymphony.xwork.Action - deleteManagedRepositoryAction - org.apache.maven.archiva.web.action.admin.repositories.DeleteManagedRepositoryAction - per-lookup - - - org.apache.maven.archiva.database.ArchivaDAO - jdo - archivaDAO - - - - - org.apache.maven.archiva.database.ArchivaDAO - jdo - org.apache.maven.archiva.web.action.admin.repositories.DeleteManagedRepositoryArchivaDAOStub - - - org.apache.maven.archiva.database.ArtifactDAO - jdo - artifactDAO - - - org.apache.maven.archiva.database.ProjectModelDAO - jdo - projectModelDAO - - - org.apache.maven.archiva.database.RepositoryContentStatisticsDAO - jdo - repoContentStatisticsDAO - - - - - org.apache.maven.archiva.database.ArtifactDAO - jdo - org.apache.maven.archiva.web.action.admin.repositories.ArtifactDAOStub - - - org.apache.maven.archiva.database.ProjectModelDAO - jdo - org.apache.maven.archiva.web.action.admin.repositories.ProjectModelDAOStub - - - org.apache.maven.archiva.database.RepositoryContentStatisticsDAO - jdo - org.apache.maven.archiva.web.action.admin.repositories.RepositoryContentStatisticsDAOStub - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesActionTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesActionTest.xml deleted file mode 100644 index d6c868254..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesActionTest.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - org.codehaus.plexus.logging.LoggerManager - org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager - basic - - - com.opensymphony.xwork.Action - repositoriesAction - org.apache.maven.archiva.web.action.admin.repositories.RepositoriesAction - per-lookup - Shows the Repositories Tab for the administrator. - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - archivaConfiguration - - - org.apache.maven.archiva.database.ArchivaDAO - stub - dao - - - - - org.apache.maven.archiva.database.ArchivaDAO - stub - org.apache.maven.archiva.web.action.admin.repositories.ArchivaDAOStub - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - configuration - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/rss/RssFeedServletTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/rss/RssFeedServletTest.xml deleted file mode 100644 index 138ffec62..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/rss/RssFeedServletTest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - org.codehaus.plexus.logging.LoggerManager - org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager - basic - - - - org.apache.maven.archiva.database.ArtifactDAO - jdo - org.apache.maven.archiva.web.rss.ArtifactDAOStub - - - - org.codehaus.plexus.redback.system.SecuritySystem - default - org.apache.maven.archiva.web.rss.SecuritySystemStub - - - - org.apache.maven.archiva.security.UserRepositories - default - org.apache.maven.archiva.web.rss.UserRepositoriesStub - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/webapp/WEB-INF/feedServletTest-web.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/webapp/WEB-INF/feedServletTest-web.xml deleted file mode 100644 index 106e9cb73..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/webapp/WEB-INF/feedServletTest-web.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - Apache Archiva - - - org.springframework.web.context.ContextLoaderListener - - - - RssFeedServlet - org.apache.maven.archiva.web.rss.RssFeedServlet - - - - RssFeedServlet - /feeds/* - - - - contextClass - org.codehaus.plexus.spring.PlexusWebApplicationContext - - - - contextConfigLocation - - classpath*:/META-INF/plexus/components.xml - classpath*:/META-INF/spring-context.xml - target/test-classes/org/apache/maven/archiva/web/rss/RssFeedServletTest.xml - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/webapp/WEB-INF/web.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/webapp/WEB-INF/web.xml deleted file mode 100644 index f47bd657f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webapp/src/test/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - Apache Archiva - - - org.springframework.web.context.ContextLoaderListener - - - - contextClass - org.codehaus.plexus.spring.PlexusWebApplicationContext - - - - contextConfigLocation - - classpath*:/META-INF/plexus/components.xml - classpath*:/META-INF/spring-context.xml - target/test-classes/org/apache/maven/archiva/web/repository/RepositoryServletTest.xml - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/pom.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/pom.xml deleted file mode 100644 index 9c95ff00d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/pom.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-web - 1.2-SNAPSHOT - - - archiva-webdav - Archiva Web :: WebDAV - - - - org.apache.archiva - archiva-configuration - - - org.apache.archiva - archiva-repository-layer - - - org.apache.archiva - archiva-proxy - - - org.apache.archiva - archiva-security - - - org.apache.jackrabbit - jackrabbit-webdav - - - joda-time - joda-time - - - org.springframework - spring-web - - - commons-io - commons-io - - - org.slf4j - slf4j-api - - - javax.servlet - servlet-api - provided - - - org.codehaus.plexus - plexus-spring - - - org.apache.maven - maven-model - - - org.codehaus.redback - redback-xwork-integration - - - org.codehaus.redback - redback-keys-memory - test - - - org.codehaus.redback - redback-rbac-memory - test - - - org.codehaus.redback - redback-users-memory - test - - - xmlunit - xmlunit - test - - - org.mortbay.jetty - jetty - test - - - org.codehaus.plexus - plexus-slf4j-logging - test - - - org.apache.maven.wagon - wagon-http-lightweight - test - - - - nekohtml - nekohtml - - - nekohtml - xercesMinimal - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavLocatorFactory.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavLocatorFactory.java deleted file mode 100644 index e2d7fa19a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavLocatorFactory.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.jackrabbit.webdav.DavLocatorFactory; -import org.apache.jackrabbit.webdav.DavResourceLocator; -import org.apache.jackrabbit.util.Text; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.ArrayUtils; -import org.apache.maven.archiva.webdav.util.RepositoryPathUtil; - -/** - * @author James William Dumay - */ -public class ArchivaDavLocatorFactory - implements DavLocatorFactory -{ - public DavResourceLocator createResourceLocator( String prefix, String href ) - { - // build prefix string and remove all prefixes from the given href. - StringBuilder b = new StringBuilder(); - if ( prefix != null && prefix.length() > 0 ) - { - b.append( prefix ); - if ( !prefix.endsWith( "/" ) ) - { - b.append( '/' ); - } - if ( href.startsWith( prefix ) ) - { - href = href.substring( prefix.length() ); - } - } - - // special treatment for root item, that has no name but '/' path. - if ( href == null || "".equals( href ) ) - { - href = "/"; - } - - final String repository = RepositoryPathUtil.getRepositoryName( href ); - return new ArchivaDavResourceLocator( b.toString(), Text.unescape( href ), repository, this ); - } - - public DavResourceLocator createResourceLocator( String prefix, String workspacePath, String resourcePath ) - { - return createResourceLocator( prefix, workspacePath, resourcePath, true ); - } - - public DavResourceLocator createResourceLocator( String prefix, String workspacePath, String path, - boolean isResourcePath ) - { - final String repository = RepositoryPathUtil.getRepositoryName( path ); - return new ArchivaDavResourceLocator( prefix, path, repository, this ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java deleted file mode 100644 index fb47038b3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java +++ /dev/null @@ -1,629 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.FileOutputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.jackrabbit.util.Text; -import org.apache.jackrabbit.webdav.DavException; -import org.apache.jackrabbit.webdav.DavResource; -import org.apache.jackrabbit.webdav.DavResourceFactory; -import org.apache.jackrabbit.webdav.DavResourceIterator; -import org.apache.jackrabbit.webdav.DavResourceIteratorImpl; -import org.apache.jackrabbit.webdav.DavResourceLocator; -import org.apache.jackrabbit.webdav.DavServletResponse; -import org.apache.jackrabbit.webdav.DavSession; -import org.apache.jackrabbit.webdav.MultiStatusResponse; -import org.apache.jackrabbit.webdav.io.InputContext; -import org.apache.jackrabbit.webdav.io.OutputContext; -import org.apache.jackrabbit.webdav.lock.ActiveLock; -import org.apache.jackrabbit.webdav.lock.LockInfo; -import org.apache.jackrabbit.webdav.lock.LockManager; -import org.apache.jackrabbit.webdav.lock.Scope; -import org.apache.jackrabbit.webdav.lock.Type; -import org.apache.jackrabbit.webdav.property.DavProperty; -import org.apache.jackrabbit.webdav.property.DavPropertyName; -import org.apache.jackrabbit.webdav.property.DavPropertyNameSet; -import org.apache.jackrabbit.webdav.property.DavPropertySet; -import org.apache.jackrabbit.webdav.property.DefaultDavProperty; -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.repository.scanner.RepositoryContentConsumers; -import org.apache.maven.archiva.security.ArchivaXworkUser; -import org.apache.maven.archiva.webdav.util.IndexWriter; -import org.apache.maven.archiva.webdav.util.MimeTypes; -import org.joda.time.DateTime; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; - -import com.opensymphony.xwork.ActionContext; - -/** - * @author James William Dumay Portions from the Apache Jackrabbit Project - */ -public class ArchivaDavResource - implements DavResource -{ - public static final String HIDDEN_PATH_PREFIX = "."; - - private final ArchivaDavResourceLocator locator; - - private final DavResourceFactory factory; - - private final File localResource; - - private final String logicalResource; - - private DavPropertySet properties = null; - - private LockManager lockManager; - - private final DavSession session; - - private String remoteAddr; - - private final ManagedRepositoryConfiguration repository; - - private final RepositoryContentConsumers consumers; - - private final MimeTypes mimeTypes; - - private List auditListeners; - - private ArchivaXworkUser archivaXworkUser; - - public ArchivaDavResource( String localResource, String logicalResource, ManagedRepositoryConfiguration repository, - DavSession session, ArchivaDavResourceLocator locator, DavResourceFactory factory, - MimeTypes mimeTypes, List auditListeners, - RepositoryContentConsumers consumers, ArchivaXworkUser archivaXworkUser ) - { - this.localResource = new File( localResource ); - this.logicalResource = logicalResource; - this.locator = locator; - this.factory = factory; - this.session = session; - this.archivaXworkUser = archivaXworkUser; - - // TODO: push into locator as well as moving any references out of the resource factory - this.repository = repository; - - // TODO: these should be pushed into the repository layer, along with the physical file operations in this class - this.mimeTypes = mimeTypes; - this.consumers = consumers; - this.auditListeners = auditListeners; - } - - public ArchivaDavResource( String localResource, String logicalResource, ManagedRepositoryConfiguration repository, - String remoteAddr, DavSession session, ArchivaDavResourceLocator locator, - DavResourceFactory factory, MimeTypes mimeTypes, List auditListeners, - RepositoryContentConsumers consumers, ArchivaXworkUser archivaXworkUser ) - { - this( localResource, logicalResource, repository, session, locator, factory, mimeTypes, auditListeners, - consumers, archivaXworkUser ); - - this.remoteAddr = remoteAddr; - } - - public String getComplianceClass() - { - return COMPLIANCE_CLASS; - } - - public String getSupportedMethods() - { - return METHODS; - } - - public boolean exists() - { - return localResource.exists(); - } - - public boolean isCollection() - { - return localResource.isDirectory(); - } - - public String getDisplayName() - { - String resPath = getResourcePath(); - return ( resPath != null ) ? Text.getName( resPath ) : resPath; - } - - public DavResourceLocator getLocator() - { - return locator; - } - - public File getLocalResource() - { - return localResource; - } - - public String getResourcePath() - { - return locator.getResourcePath(); - } - - public String getHref() - { - return locator.getHref( isCollection() ); - } - - public long getModificationTime() - { - return localResource.lastModified(); - } - - public void spool( OutputContext outputContext ) - throws IOException - { - if ( !isCollection()) - { - outputContext.setContentLength( localResource.length() ); - outputContext.setContentType( mimeTypes.getMimeType( localResource.getName() ) ); - } - - if ( !isCollection() && outputContext.hasStream() ) - { - FileInputStream is = null; - try - { - // Write content to stream - is = new FileInputStream( localResource ); - IOUtils.copy( is, outputContext.getOutputStream() ); - } - finally - { - IOUtils.closeQuietly( is ); - } - } - else if (outputContext.hasStream()) - { - IndexWriter writer = new IndexWriter( this, localResource, logicalResource ); - writer.write( outputContext ); - } - } - - public DavPropertyName[] getPropertyNames() - { - return getProperties().getPropertyNames(); - } - - public DavProperty getProperty( DavPropertyName name ) - { - return getProperties().get( name ); - } - - public DavPropertySet getProperties() - { - return initProperties(); - } - - public void setProperty( DavProperty property ) - throws DavException - { - } - - public void removeProperty( DavPropertyName propertyName ) - throws DavException - { - } - - public MultiStatusResponse alterProperties( DavPropertySet setProperties, DavPropertyNameSet removePropertyNames ) - throws DavException - { - return null; - } - - @SuppressWarnings("unchecked") - public MultiStatusResponse alterProperties( List changeList ) - throws DavException - { - return null; - } - - public DavResource getCollection() - { - DavResource parent = null; - if ( getResourcePath() != null && !getResourcePath().equals( "/" ) ) - { - String parentPath = Text.getRelativeParent( getResourcePath(), 1 ); - if ( parentPath.equals( "" ) ) - { - parentPath = "/"; - } - DavResourceLocator parentloc = locator.getFactory().createResourceLocator( locator.getPrefix(), parentPath ); - try - { - parent = factory.createResource( parentloc, session ); - } - catch ( DavException e ) - { - // should not occur - } - } - return parent; - } - - public void addMember( DavResource resource, InputContext inputContext ) - throws DavException - { - File localFile = new File( localResource, resource.getDisplayName() ); - boolean exists = localFile.exists(); - - if ( isCollection() && inputContext.hasStream() ) // New File - { - FileOutputStream stream = null; - try - { - stream = new FileOutputStream( localFile ); - IOUtils.copy( inputContext.getInputStream(), stream ); - } - catch ( IOException e ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e ); - } - finally - { - IOUtils.closeQuietly( stream ); - } - - if ( inputContext.getContentLength() != localFile.length() ) - { - FileUtils.deleteQuietly( localFile ); - - throw new DavException( HttpServletResponse.SC_BAD_REQUEST, "Content Header length was " + - inputContext.getContentLength() + " but was " + localFile.length() ); - } - - // Just-in-time update of the index and database by executing the consumers for this artifact - consumers.executeConsumers( repository, localFile ); - - triggerAuditEvent( resource, exists ? AuditEvent.MODIFY_FILE : AuditEvent.CREATE_FILE ); - } - else if ( !inputContext.hasStream() && isCollection() ) // New directory - { - localFile.mkdir(); - - triggerAuditEvent( resource, AuditEvent.CREATE_DIR ); - } - else - { - throw new DavException( HttpServletResponse.SC_BAD_REQUEST, "Could not write member " + - resource.getResourcePath() + " at " + getResourcePath() ); - } - } - - public DavResourceIterator getMembers() - { - List list = new ArrayList(); - if ( exists() && isCollection() ) - { - for ( String item : localResource.list() ) - { - try - { - if ( !item.startsWith( HIDDEN_PATH_PREFIX ) ) - { - String path = locator.getResourcePath() + '/' + item; - DavResourceLocator resourceLocator = - locator.getFactory().createResourceLocator( locator.getPrefix(), path ); - DavResource resource = factory.createResource( resourceLocator, session ); - if ( resource != null ) - { - list.add( resource ); - } - } - } - catch ( DavException e ) - { - // Should not occur - } - } - } - return new DavResourceIteratorImpl( list ); - } - - public void removeMember( DavResource member ) - throws DavException - { - File resource = checkDavResourceIsArchivaDavResource( member ).getLocalResource(); - - if ( resource.exists() ) - { - try - { - if ( resource.isDirectory() ) - { - FileUtils.deleteDirectory( resource ); - - triggerAuditEvent( member, AuditEvent.REMOVE_DIR ); - } - else - { - if ( !resource.delete() ) - { - throw new IOException( "Could not remove file" ); - } - - triggerAuditEvent( member, AuditEvent.REMOVE_FILE ); - } - } - catch ( IOException e ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR ); - } - } - else - { - throw new DavException( HttpServletResponse.SC_NOT_FOUND ); - } - } - - private void triggerAuditEvent( DavResource member, String event ) throws DavException - { - String path = logicalResource + "/" + member.getDisplayName(); - - triggerAuditEvent( checkDavResourceIsArchivaDavResource( member ).remoteAddr, locator.getRepositoryId(), path, - event ); - } - - public void move( DavResource destination ) - throws DavException - { - if ( !exists() ) - { - throw new DavException( HttpServletResponse.SC_NOT_FOUND, "Resource to copy does not exist." ); - } - - try - { - ArchivaDavResource resource = checkDavResourceIsArchivaDavResource( destination ); - if ( isCollection() ) - { - FileUtils.moveDirectory( getLocalResource(), resource.getLocalResource() ); - - triggerAuditEvent( remoteAddr, locator.getRepositoryId(), logicalResource, AuditEvent.MOVE_DIRECTORY ); - } - else - { - FileUtils.moveFile( getLocalResource(), resource.getLocalResource() ); - - triggerAuditEvent( remoteAddr, locator.getRepositoryId(), logicalResource, AuditEvent.MOVE_FILE ); - } - } - catch ( IOException e ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e ); - } - } - - public void copy( DavResource destination, boolean shallow ) - throws DavException - { - if ( !exists() ) - { - throw new DavException( HttpServletResponse.SC_NOT_FOUND, "Resource to copy does not exist." ); - } - - if ( shallow && isCollection() ) - { - throw new DavException( DavServletResponse.SC_FORBIDDEN, "Unable to perform shallow copy for collection" ); - } - - try - { - ArchivaDavResource resource = checkDavResourceIsArchivaDavResource( destination ); - if ( isCollection() ) - { - FileUtils.copyDirectory( getLocalResource(), resource.getLocalResource() ); - - triggerAuditEvent( remoteAddr, locator.getRepositoryId(), logicalResource, AuditEvent.COPY_DIRECTORY ); - } - else - { - FileUtils.copyFile( getLocalResource(), resource.getLocalResource() ); - - triggerAuditEvent( remoteAddr, locator.getRepositoryId(), logicalResource, AuditEvent.COPY_FILE ); - } - } - catch ( IOException e ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e ); - } - } - - public boolean isLockable( Type type, Scope scope ) - { - return Type.WRITE.equals(type) && Scope.EXCLUSIVE.equals(scope); - } - - public boolean hasLock( Type type, Scope scope ) - { - return getLock(type, scope) != null; - } - - public ActiveLock getLock( Type type, Scope scope ) - { - ActiveLock lock = null; - if (exists() && Type.WRITE.equals(type) && Scope.EXCLUSIVE.equals(scope)) - { - lock = lockManager.getLock(type, scope, this); - } - return lock; - } - - public ActiveLock[] getLocks() - { - ActiveLock writeLock = getLock(Type.WRITE, Scope.EXCLUSIVE); - return (writeLock != null) ? new ActiveLock[]{writeLock} : new ActiveLock[0]; - } - - public ActiveLock lock( LockInfo lockInfo ) - throws DavException - { - ActiveLock lock = null; - if (isLockable(lockInfo.getType(), lockInfo.getScope())) - { - lock = lockManager.createLock(lockInfo, this); - } - else - { - throw new DavException(DavServletResponse.SC_PRECONDITION_FAILED, "Unsupported lock type or scope."); - } - return lock; - } - - public ActiveLock refreshLock( LockInfo lockInfo, String lockToken ) - throws DavException - { - if (!exists()) { - throw new DavException(DavServletResponse.SC_NOT_FOUND); - } - ActiveLock lock = getLock(lockInfo.getType(), lockInfo.getScope()); - if (lock == null) { - throw new DavException(DavServletResponse.SC_PRECONDITION_FAILED, "No lock with the given type/scope present on resource " + getResourcePath()); - } - - lock = lockManager.refreshLock(lockInfo, lockToken, this); - - return lock; - } - - public void unlock( String lockToken ) - throws DavException - { - ActiveLock lock = getLock(Type.WRITE, Scope.EXCLUSIVE); - if (lock == null) - { - throw new DavException(HttpServletResponse.SC_PRECONDITION_FAILED); - } - else if (lock.isLockedByToken(lockToken)) - { - lockManager.releaseLock(lockToken, this); - } - else - { - throw new DavException(DavServletResponse.SC_LOCKED); - } - } - - public void addLockManager( LockManager lockManager ) - { - this.lockManager = lockManager; - } - - public DavResourceFactory getFactory() - { - return factory; - } - - public DavSession getSession() - { - return session; - } - - /** - * Fill the set of properties - */ - protected DavPropertySet initProperties() - { - if ( !exists() ) - { - properties = new DavPropertySet(); - } - - if ( properties != null ) - { - return properties; - } - - DavPropertySet properties = new DavPropertySet(); - - // set (or reset) fundamental properties - if ( getDisplayName() != null ) - { - properties.add( new DefaultDavProperty( DavPropertyName.DISPLAYNAME, getDisplayName() ) ); - } - if ( isCollection() ) - { - properties.add( new ResourceType( ResourceType.COLLECTION ) ); - // Windows XP support - properties.add( new DefaultDavProperty( DavPropertyName.ISCOLLECTION, "1" ) ); - } - else - { - properties.add( new ResourceType( ResourceType.DEFAULT_RESOURCE ) ); - - // Windows XP support - properties.add( new DefaultDavProperty( DavPropertyName.ISCOLLECTION, "0" ) ); - } - - // Need to get the ISO8601 date for properties - DateTime dt = new DateTime( localResource.lastModified() ); - DateTimeFormatter fmt = ISODateTimeFormat.dateTime(); - String modifiedDate = fmt.print( dt ); - - properties.add( new DefaultDavProperty( DavPropertyName.GETLASTMODIFIED, modifiedDate ) ); - - properties.add( new DefaultDavProperty( DavPropertyName.CREATIONDATE, modifiedDate ) ); - - properties.add( new DefaultDavProperty( DavPropertyName.GETCONTENTLENGTH, localResource.length() ) ); - - this.properties = properties; - - return properties; - } - - private ArchivaDavResource checkDavResourceIsArchivaDavResource( DavResource resource ) - throws DavException - { - if ( !( resource instanceof ArchivaDavResource ) ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "DavResource is not instance of ArchivaDavResource" ); - } - return (ArchivaDavResource) resource; - } - - private void triggerAuditEvent( String remoteIP, String repositoryId, String resource, String action ) - { - String activePrincipal = archivaXworkUser.getActivePrincipal( ActionContext.getContext().getSession() ); - AuditEvent event = new AuditEvent( repositoryId, activePrincipal, resource, action ); - event.setRemoteIP( remoteIP ); - - for ( AuditListener listener : auditListeners ) - { - listener.auditEvent( event ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java deleted file mode 100644 index f56d7abe6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java +++ /dev/null @@ -1,993 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.jackrabbit.webdav.DavException; -import org.apache.jackrabbit.webdav.DavResource; -import org.apache.jackrabbit.webdav.DavResourceFactory; -import org.apache.jackrabbit.webdav.DavResourceLocator; -import org.apache.jackrabbit.webdav.DavServletRequest; -import org.apache.jackrabbit.webdav.DavServletResponse; -import org.apache.jackrabbit.webdav.DavSession; -import org.apache.jackrabbit.webdav.lock.LockManager; -import org.apache.jackrabbit.webdav.lock.SimpleLockManager; -import org.apache.maven.archiva.common.utils.PathUtil; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.RepositoryGroupConfiguration; -import org.apache.maven.archiva.model.ArchivaRepositoryMetadata; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.ProjectReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.apache.maven.archiva.policies.ProxyDownloadException; -import org.apache.maven.archiva.proxy.RepositoryProxyConnectors; -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.RepositoryNotFoundException; -import org.apache.maven.archiva.repository.audit.AuditEvent; -import org.apache.maven.archiva.repository.audit.AuditListener; -import org.apache.maven.archiva.repository.audit.Auditable; -import org.apache.maven.archiva.repository.content.RepositoryRequest; -import org.apache.maven.archiva.repository.layout.LayoutException; -import org.apache.maven.archiva.repository.metadata.MetadataTools; -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.repository.scanner.RepositoryContentConsumers; -import org.apache.maven.archiva.security.ArchivaXworkUser; -import org.apache.maven.archiva.security.ServletAuthenticator; -import org.apache.maven.archiva.webdav.util.MimeTypes; -import org.apache.maven.archiva.webdav.util.RepositoryPathUtil; -import org.apache.maven.archiva.webdav.util.WebdavMethodUtil; -import org.apache.maven.model.DistributionManagement; -import org.apache.maven.model.Model; -import org.apache.maven.model.Relocation; -import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.codehaus.plexus.digest.ChecksumFile; -import org.codehaus.plexus.digest.Digester; -import org.codehaus.plexus.digest.DigesterException; -import org.codehaus.plexus.redback.authentication.AuthenticationException; -import org.codehaus.plexus.redback.authentication.AuthenticationResult; -import org.codehaus.plexus.redback.authorization.AuthorizationException; -import org.codehaus.plexus.redback.authorization.UnauthorizedException; -import org.codehaus.plexus.redback.policy.AccountLockedException; -import org.codehaus.plexus.redback.policy.MustChangePasswordException; -import org.codehaus.plexus.redback.system.SecuritySession; -import org.codehaus.plexus.redback.system.SecuritySystemConstants; -import org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator; -import org.codehaus.plexus.util.xml.pull.XmlPullParserException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.opensymphony.xwork.ActionContext; - -/** - * @author James William Dumay - * @plexus.component role="org.apache.maven.archiva.webdav.ArchivaDavResourceFactory" - */ -public class ArchivaDavResourceFactory - implements DavResourceFactory, Auditable -{ - private static final String PROXIED_SUFFIX = " (proxied)"; - - private static final String HTTP_PUT_METHOD = "PUT"; - - private Logger log = LoggerFactory.getLogger( ArchivaDavResourceFactory.class ); - - /** - * @plexus.requirement role="org.apache.maven.archiva.repository.audit.AuditListener" - */ - private List auditListeners = new ArrayList(); - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement - */ - private RepositoryRequest repositoryRequest; - - /** - * @plexus.requirement role-hint="default" - */ - private RepositoryProxyConnectors connectors; - - /** - * @plexus.requirement - */ - private MetadataTools metadataTools; - - /** - * @plexus.requirement - */ - private MimeTypes mimeTypes; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration archivaConfiguration; - - /** - * @plexus.requirement - */ - private ServletAuthenticator servletAuth; - - /** - * @plexus.requirement role-hint="basic" - */ - private HttpAuthenticator httpAuth; - - /** - * Lock Manager - use simple implementation from JackRabbit - */ - private final LockManager lockManager = new SimpleLockManager(); - - /** - * @plexus.requirement - */ - private RepositoryContentConsumers consumers; - - /** - * @plexus.requirement - */ - private ChecksumFile checksum; - - /** - * @plexus.requirement role-hint="sha1" - */ - private Digester digestSha1; - - /** - * @plexus.requirement role-hint="md5"; - */ - private Digester digestMd5; - - /** - * @plexus.requirement - */ - private ArchivaXworkUser archivaXworkUser; - - public DavResource createResource( final DavResourceLocator locator, final DavServletRequest request, - final DavServletResponse response ) - throws DavException - { - checkLocatorIsInstanceOfRepositoryLocator( locator ); - ArchivaDavResourceLocator archivaLocator = (ArchivaDavResourceLocator) locator; - - RepositoryGroupConfiguration repoGroupConfig = - archivaConfiguration.getConfiguration().getRepositoryGroupsAsMap().get( archivaLocator.getRepositoryId() ); - List repositories = new ArrayList(); - - boolean isGet = WebdavMethodUtil.isReadMethod( request.getMethod() ); - boolean isPut = WebdavMethodUtil.isWriteMethod( request.getMethod() ); - - if ( repoGroupConfig != null ) - { - if( WebdavMethodUtil.isWriteMethod( request.getMethod() ) ) - { - throw new DavException( HttpServletResponse.SC_METHOD_NOT_ALLOWED, - "Write method not allowed for repository groups." ); - } - repositories.addAll( repoGroupConfig.getRepositories() ); - - // handle browse requests for virtual repos - if ( RepositoryPathUtil.getLogicalResource( locator.getResourcePath() ).endsWith( "/" ) ) - { - return getResource( request, repositories, archivaLocator ); - } - } - else - { - repositories.add( archivaLocator.getRepositoryId() ); - } - - //MRM-419 - Windows Webdav support. Should not 404 if there is no content. - if (StringUtils.isEmpty(archivaLocator.getRepositoryId())) - { - throw new DavException(HttpServletResponse.SC_NO_CONTENT); - } - - List availableResources = new ArrayList(); - List resourcesInAbsolutePath = new ArrayList(); - DavException e = null; - - for ( String repositoryId : repositories ) - { - ManagedRepositoryContent managedRepository = null; - - try - { - managedRepository = getManagedRepository( repositoryId ); - } - catch ( DavException de ) - { - throw new DavException( HttpServletResponse.SC_NOT_FOUND, "Invalid managed repository <" + - repositoryId + ">" ); - } - - DavResource resource = null; - - if ( !locator.getResourcePath().startsWith( ArchivaDavResource.HIDDEN_PATH_PREFIX ) ) - { - if ( managedRepository != null ) - { - try - { - if( isAuthorized( request, repositoryId ) ) - { - LogicalResource logicalResource = - new LogicalResource( RepositoryPathUtil.getLogicalResource( locator.getResourcePath() ) ); - - if ( isGet ) - { - resource = doGet( managedRepository, request, archivaLocator, logicalResource ); - } - - if ( isPut ) - { - resource = doPut( managedRepository, request, archivaLocator, logicalResource ); - } - } - } - catch ( DavException de ) - { - e = de; - continue; - } - - if( resource == null ) - { - e = new DavException( HttpServletResponse.SC_NOT_FOUND, "Resource does not exist" ); - } - else - { - availableResources.add( resource ); - - String logicalResource = RepositoryPathUtil.getLogicalResource( locator.getResourcePath() ); - resourcesInAbsolutePath.add( managedRepository.getRepoRoot() + logicalResource ); - } - } - else - { - e = new DavException( HttpServletResponse.SC_NOT_FOUND, "Repository does not exist" ); - } - } - } - - if ( availableResources.isEmpty() ) - { - throw e; - } - - String requestedResource = request.getRequestURI(); - - // MRM-872 : merge all available metadata - // merge metadata only when requested via the repo group - if ( ( repositoryRequest.isMetadata( requestedResource ) || ( requestedResource.endsWith( "metadata.xml.sha1" ) || requestedResource.endsWith( "metadata.xml.md5" ) ) ) && - repoGroupConfig != null ) - { - // this should only be at the project level not version level! - if( isProjectReference( requestedResource ) ) - { - String artifactId = StringUtils.substringBeforeLast( requestedResource.replace( '\\', '/' ), "/" ); - artifactId = StringUtils.substringAfterLast( artifactId, "/" ); - - ArchivaDavResource res = ( ArchivaDavResource ) availableResources.get( 0 ); - String filePath = StringUtils.substringBeforeLast( res.getLocalResource().getAbsolutePath().replace( '\\', '/' ), "/" ); - filePath = filePath + "/maven-metadata-" + repoGroupConfig.getId() + ".xml"; - - // for MRM-872 handle checksums of the merged metadata files - if( repositoryRequest.isSupportFile( requestedResource ) ) - { - File metadataChecksum = new File( filePath + "." - + StringUtils.substringAfterLast( requestedResource, "." ) ); - if( metadataChecksum.exists() ) - { - LogicalResource logicalResource = - new LogicalResource( RepositoryPathUtil.getLogicalResource( locator.getResourcePath() ) ); - - ArchivaDavResource metadataChecksumResource = - new ArchivaDavResource( metadataChecksum.getAbsolutePath(), logicalResource.getPath(), null, - request.getRemoteAddr(), request.getDavSession(), archivaLocator, this, - mimeTypes, auditListeners, consumers, archivaXworkUser ); - availableResources.add( 0, metadataChecksumResource ); - } - } - else - { // merge the metadata of all repos under group - ArchivaRepositoryMetadata mergedMetadata = new ArchivaRepositoryMetadata(); - for ( String resourceAbsPath : resourcesInAbsolutePath ) - { - try - { - File metadataFile = new File( resourceAbsPath ); - ArchivaRepositoryMetadata repoMetadata = RepositoryMetadataReader.read( metadataFile ); - mergedMetadata = RepositoryMetadataMerge.merge( mergedMetadata, repoMetadata ); - } - catch ( RepositoryMetadataException r ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "Error occurred while reading metadata file." ); - } - } - - try - { - File resourceFile = writeMergedMetadataToFile( mergedMetadata, filePath ); - - LogicalResource logicalResource = - new LogicalResource( RepositoryPathUtil.getLogicalResource( locator.getResourcePath() ) ); - - ArchivaDavResource metadataResource = - new ArchivaDavResource( resourceFile.getAbsolutePath(), logicalResource.getPath(), null, - request.getRemoteAddr(), request.getDavSession(), archivaLocator, this, - mimeTypes, auditListeners, consumers, archivaXworkUser ); - availableResources.add( 0, metadataResource ); - } - catch ( RepositoryMetadataException r ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "Error occurred while writing metadata file." ); - } - catch ( IOException ie ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "Error occurred while generating checksum files." ); - } - catch ( DigesterException de ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "Error occurred while generating checksum files." ); - } - } - } - } - - DavResource resource = availableResources.get( 0 ); - setHeaders(response, locator, resource ); - - // compatibility with MRM-440 to ensure browsing the repository works ok - if ( resource.isCollection() && !request.getRequestURI().endsWith("/" ) ) - { - throw new BrowserRedirectException( resource.getHref() ); - } - resource.addLockManager(lockManager); - return resource; - } - - public DavResource createResource( final DavResourceLocator locator, final DavSession davSession ) - throws DavException - { - checkLocatorIsInstanceOfRepositoryLocator( locator ); - ArchivaDavResourceLocator archivaLocator = (ArchivaDavResourceLocator) locator; - - DavResource resource = null; - if ( !locator.getResourcePath().startsWith( ArchivaDavResource.HIDDEN_PATH_PREFIX ) ) - { - ManagedRepositoryContent managedRepository = getManagedRepository( archivaLocator.getRepositoryId() ); - String logicalResource = RepositoryPathUtil.getLogicalResource( locator.getResourcePath() ); - File resourceFile = new File( managedRepository.getRepoRoot(), logicalResource ); - resource = - new ArchivaDavResource( resourceFile.getAbsolutePath(), logicalResource, - managedRepository.getRepository(), davSession, archivaLocator, this, mimeTypes, - auditListeners, consumers, archivaXworkUser ); - } - resource.addLockManager(lockManager); - return resource; - } - - private DavResource doGet( ManagedRepositoryContent managedRepository, DavServletRequest request, - ArchivaDavResourceLocator locator, LogicalResource logicalResource ) - throws DavException - { - File resourceFile = new File( managedRepository.getRepoRoot(), logicalResource.getPath() ); - - //MRM-893, dont send back a file when user intentionally wants a directory - if ( locator.getHref( false ).endsWith( "/" ) ) - { - if ( ! resourceFile.isDirectory() ) - { - //force a resource not found - return null; - } - } - - ArchivaDavResource resource = - new ArchivaDavResource( resourceFile.getAbsolutePath(), logicalResource.getPath(), - managedRepository.getRepository(), request.getRemoteAddr(), - request.getDavSession(), locator, this, mimeTypes, auditListeners, consumers, archivaXworkUser ); - - if ( !resource.isCollection() ) - { - boolean previouslyExisted = resourceFile.exists(); - - // At this point the incoming request can either be in default or - // legacy layout format. - boolean fromProxy = fetchContentFromProxies( managedRepository, request, logicalResource ); - - try - { - // Perform an adjustment of the resource to the managed - // repository expected path. - String localResourcePath = - repositoryRequest.toNativePath( logicalResource.getPath(), managedRepository ); - resourceFile = new File( managedRepository.getRepoRoot(), localResourcePath ); - } - catch ( LayoutException e ) - { - if ( previouslyExisted ) - { - return resource; - } - throw new DavException( HttpServletResponse.SC_NOT_FOUND, e ); - } - - // Attempt to fetch the resource from any defined proxy. - if ( fromProxy ) - { - String repositoryId = locator.getRepositoryId(); - String event = ( previouslyExisted ? AuditEvent.MODIFY_FILE : AuditEvent.CREATE_FILE ) + PROXIED_SUFFIX; - triggerAuditEvent( request.getRemoteAddr(), repositoryId, logicalResource.getPath(), event ); - } - - if ( !resourceFile.exists() ) - { - resource = null; - } - else - { - resource = - new ArchivaDavResource( resourceFile.getAbsolutePath(), logicalResource.getPath(), - managedRepository.getRepository(), request.getRemoteAddr(), - request.getDavSession(), locator, this, mimeTypes, auditListeners, - consumers, archivaXworkUser ); - } - } - return resource; - } - - private DavResource doPut( ManagedRepositoryContent managedRepository, DavServletRequest request, - ArchivaDavResourceLocator locator, LogicalResource logicalResource ) - throws DavException - { - /* - * Create parent directories that don't exist when writing a file This actually makes this implementation not - * compliant to the WebDAV RFC - but we have enough knowledge about how the collection is being used to do this - * reasonably and some versions of Maven's WebDAV don't correctly create the collections themselves. - */ - - File rootDirectory = new File( managedRepository.getRepoRoot() ); - File destDir = new File( rootDirectory, logicalResource.getPath() ).getParentFile(); - - if ( request.getMethod().equals(HTTP_PUT_METHOD) && !destDir.exists() ) - { - destDir.mkdirs(); - String relPath = PathUtil.getRelative( rootDirectory.getAbsolutePath(), destDir ); - triggerAuditEvent( request.getRemoteAddr(), logicalResource.getPath(), relPath, AuditEvent.CREATE_DIR ); - } - - File resourceFile = new File( managedRepository.getRepoRoot(), logicalResource.getPath() ); - - return new ArchivaDavResource( resourceFile.getAbsolutePath(), logicalResource.getPath(), - managedRepository.getRepository(), request.getRemoteAddr(), - request.getDavSession(), locator, this, mimeTypes, auditListeners, consumers, archivaXworkUser ); - } - - private boolean fetchContentFromProxies( ManagedRepositoryContent managedRepository, DavServletRequest request, - LogicalResource resource ) - throws DavException - { - if ( repositoryRequest.isSupportFile( resource.getPath() ) ) - { - File proxiedFile = connectors.fetchFromProxies( managedRepository, resource.getPath() ); - - return ( proxiedFile != null ); - } - - // Is it a Metadata resource? - if ( repositoryRequest.isDefault( resource.getPath() ) && repositoryRequest.isMetadata( resource.getPath() ) ) - { - return connectors.fetchMetatadaFromProxies(managedRepository, resource.getPath()) != null; - } - - // Not any of the above? Then it's gotta be an artifact reference. - try - { - // Get the artifact reference in a layout neutral way. - ArtifactReference artifact = repositoryRequest.toArtifactReference( resource.getPath() ); - - if ( artifact != null ) - { - applyServerSideRelocation( managedRepository, artifact ); - - File proxiedFile = connectors.fetchFromProxies( managedRepository, artifact ); - - resource.setPath( managedRepository.toPath( artifact ) ); - - return ( proxiedFile != null ); - } - } - catch ( LayoutException e ) - { - /* eat it */ - } - catch ( ProxyDownloadException e ) - { - log.error( e.getMessage(), e ); - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Unable to fetch artifact resource." ); - } - return false; - } - - /** - * A relocation capable client will request the POM prior to the artifact, and will then read meta-data and do - * client side relocation. A simplier client (like maven 1) will only request the artifact and not use the - * metadatas. - *

    - * For such clients, archiva does server-side relocation by reading itself the <relocation> element in - * metadatas and serving the expected artifact. - */ - protected void applyServerSideRelocation( ManagedRepositoryContent managedRepository, ArtifactReference artifact ) - throws ProxyDownloadException - { - if ( "pom".equals( artifact.getType() ) ) - { - return; - } - - // Build the artifact POM reference - ArtifactReference pomReference = new ArtifactReference(); - pomReference.setGroupId( artifact.getGroupId() ); - pomReference.setArtifactId( artifact.getArtifactId() ); - pomReference.setVersion( artifact.getVersion() ); - pomReference.setType( "pom" ); - - // Get the artifact POM from proxied repositories if needed - connectors.fetchFromProxies( managedRepository, pomReference ); - - // Open and read the POM from the managed repo - File pom = managedRepository.toFile( pomReference ); - - if ( !pom.exists() ) - { - return; - } - - try - { - Model model = new MavenXpp3Reader().read( new FileReader( pom ) ); - DistributionManagement dist = model.getDistributionManagement(); - if ( dist != null ) - { - Relocation relocation = dist.getRelocation(); - if ( relocation != null ) - { - // artifact is relocated : update the repositoryPath - if ( relocation.getGroupId() != null ) - { - artifact.setGroupId( relocation.getGroupId() ); - } - if ( relocation.getArtifactId() != null ) - { - artifact.setArtifactId( relocation.getArtifactId() ); - } - if ( relocation.getVersion() != null ) - { - artifact.setVersion( relocation.getVersion() ); - } - } - } - } - catch ( FileNotFoundException e ) - { - // Artifact has no POM in repo : ignore - } - catch ( IOException e ) - { - // Unable to read POM : ignore. - } - catch ( XmlPullParserException e ) - { - // Invalid POM : ignore - } - } - - // TODO: remove? - private void triggerAuditEvent( String remoteIP, String repositoryId, String resource, String action ) - { - String activePrincipal = archivaXworkUser.getActivePrincipal( ActionContext.getContext().getSession() ); - AuditEvent event = new AuditEvent( repositoryId, activePrincipal, resource, action ); - event.setRemoteIP( remoteIP ); - - for ( AuditListener listener : auditListeners ) - { - listener.auditEvent( event ); - } - } - - public void addAuditListener( AuditListener listener ) - { - this.auditListeners.add( listener ); - } - - public void clearAuditListeners() - { - this.auditListeners.clear(); - } - - public void removeAuditListener( AuditListener listener ) - { - this.auditListeners.remove( listener ); - } - - private void setHeaders( DavServletResponse response, DavResourceLocator locator, DavResource resource ) - { - // [MRM-503] - Metadata file need Pragma:no-cache response - // header. - if ( locator.getResourcePath().endsWith( "/maven-metadata.xml" ) ) - { - response.addHeader( "Pragma", "no-cache" ); - response.addHeader( "Cache-Control", "no-cache" ); - } - - //We need to specify this so connecting wagons can work correctly - response.addDateHeader("last-modified", resource.getModificationTime()); - - // TODO: [MRM-524] determine http caching options for other types of files (artifacts, sha1, md5, snapshots) - } - - private ManagedRepositoryContent getManagedRepository( String respositoryId ) - throws DavException - { - if ( respositoryId != null ) - { - try - { - return repositoryFactory.getManagedRepositoryContent( respositoryId ); - } - catch ( RepositoryNotFoundException e ) - { - throw new DavException( HttpServletResponse.SC_NOT_FOUND, e ); - } - catch ( RepositoryException e ) - { - throw new DavException( HttpServletResponse.SC_NOT_FOUND, e ); - } - } - return null; - } - - private void checkLocatorIsInstanceOfRepositoryLocator( DavResourceLocator locator ) - throws DavException - { - if ( !( locator instanceof RepositoryLocator ) ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "Locator does not implement RepositoryLocator" ); - } - } - - class LogicalResource - { - private String path; - - public LogicalResource( String path ) - { - this.path = path; - } - - public String getPath() - { - return path; - } - - public void setPath( String path ) - { - this.path = path; - } - } - - protected boolean isAuthorized( DavServletRequest request, String repositoryId ) - throws DavException - { - try - { - AuthenticationResult result = httpAuth.getAuthenticationResult( request, null ); - SecuritySession securitySession = httpAuth.getSecuritySession(); - - return servletAuth.isAuthenticated( request, result ) && - servletAuth.isAuthorized( request, securitySession, repositoryId, - WebdavMethodUtil.isWriteMethod( request.getMethod() ) ); - } - catch ( AuthenticationException e ) - { - boolean isPut = WebdavMethodUtil.isWriteMethod( request.getMethod() ); - - // safety check for MRM-911 - String guest = archivaXworkUser.getGuest(); - try - { - if( servletAuth.isAuthorized( guest, - ( ( ArchivaDavResourceLocator ) request.getRequestLocator() ).getRepositoryId(), isPut ) ) - { - return true; - } - } - catch ( UnauthorizedException ae ) - { - throw new UnauthorizedDavException( repositoryId, - "You are not authenticated and authorized to access any repository." ); - } - - throw new UnauthorizedDavException( repositoryId, "You are not authenticated" ); - } - catch ( MustChangePasswordException e ) - { - throw new UnauthorizedDavException( repositoryId, "You must change your password." ); - } - catch ( AccountLockedException e ) - { - throw new UnauthorizedDavException( repositoryId, "User account is locked." ); - } - catch ( AuthorizationException e ) - { - throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "Fatal Authorization Subsystem Error." ); - } - catch ( UnauthorizedException e ) - { - throw new UnauthorizedDavException( repositoryId, e.getMessage() ); - } - } - - private DavResource getResource( DavServletRequest request, List repositories, ArchivaDavResourceLocator locator ) - throws DavException - { - List mergedRepositoryContents = new ArrayList(); - LogicalResource logicalResource = - new LogicalResource( RepositoryPathUtil.getLogicalResource( locator.getResourcePath() ) ); - - // flow: - // if the current user logged in has permission to any of the repositories, allow user to - // browse the repo group but displaying only the repositories which the user has permission to access. - // otherwise, prompt for authentication. - - // put the current session in the session map which will be passed to ArchivaXworkUser - Map sessionMap = new HashMap(); - if( request.getSession().getAttribute( SecuritySystemConstants.SECURITY_SESSION_KEY ) != null ) - { - sessionMap.put( SecuritySystemConstants.SECURITY_SESSION_KEY, - request.getSession().getAttribute( SecuritySystemConstants.SECURITY_SESSION_KEY ) ); - } - - String activePrincipal = archivaXworkUser.getActivePrincipal( sessionMap ); - boolean allow = isAllowedToContinue( request, repositories, activePrincipal ); - - if( allow ) - { - boolean isPut = WebdavMethodUtil.isWriteMethod( request.getMethod() ); - - for( String repository : repositories ) - { - // for prompted authentication - if( httpAuth.getSecuritySession() != null ) - { - try - { - if( isAuthorized( request, repository ) ) - { - getResource( locator, mergedRepositoryContents, logicalResource, repository ); - } - } - catch ( DavException e ) - { - continue; - } - } - else - { - // for the current user logged in - try - { - if( servletAuth.isAuthorized( activePrincipal, repository, isPut ) ) - { - getResource( locator, mergedRepositoryContents, logicalResource, repository ); - } - } - catch ( UnauthorizedException e ) - { - continue; - } - } - } - } - else - { - throw new UnauthorizedDavException( locator.getRepositoryId(), "User not authorized." ); - } - - ArchivaVirtualDavResource resource = - new ArchivaVirtualDavResource( mergedRepositoryContents, logicalResource.getPath(), mimeTypes, locator, this ); - - // compatibility with MRM-440 to ensure browsing the repository group works ok - if ( resource.isCollection() && !request.getRequestURI().endsWith("/" ) ) - { - throw new BrowserRedirectException( resource.getHref() ); - } - - return resource; - } - - private void getResource( ArchivaDavResourceLocator locator, List mergedRepositoryContents, - LogicalResource logicalResource, String repository ) - throws DavException - { - ManagedRepositoryContent managedRepository = null; - - try - { - managedRepository = getManagedRepository( repository ); - } - catch ( DavException de ) - { - throw new DavException( HttpServletResponse.SC_NOT_FOUND, "Invalid managed repository <" + - repository + ">" ); - } - - if ( !locator.getResourcePath().startsWith( ArchivaVirtualDavResource.HIDDEN_PATH_PREFIX ) ) - { - if( managedRepository != null ) - { - File resourceFile = new File( managedRepository.getRepoRoot(), logicalResource.getPath() ); - if( resourceFile.exists() ) - { - mergedRepositoryContents.add( resourceFile ); - } - } - } - } - - /** - * Check if the current user is authorized to access any of the repos - * - * @param request - * @param repositories - * @param activePrincipal - * @return - */ - private boolean isAllowedToContinue( DavServletRequest request, List repositories, String activePrincipal ) - { - boolean allow = false; - - - // if securitySession != null, it means that the user was prompted for authentication - if( httpAuth.getSecuritySession() != null ) - { - for( String repository : repositories ) - { - try - { - if( isAuthorized( request, repository ) ) - { - allow = true; - break; - } - } - catch( DavException e ) - { - continue; - } - } - } - else - { - boolean isPut = WebdavMethodUtil.isWriteMethod( request.getMethod() ); - for( String repository : repositories ) - { - try - { - if( servletAuth.isAuthorized( activePrincipal, repository, isPut ) ) - { - allow = true; - break; - } - } - catch ( UnauthorizedException e ) - { - continue; - } - } - } - - return allow; - } - - private File writeMergedMetadataToFile( ArchivaRepositoryMetadata mergedMetadata, String outputFilename ) - throws RepositoryMetadataException, DigesterException, IOException - { - File outputFile = new File( outputFilename ); - if( outputFile.exists() ) - { - FileUtils.deleteQuietly( outputFile ); - } - - outputFile.getParentFile().mkdirs(); - RepositoryMetadataWriter.write( mergedMetadata, outputFile ); - - createChecksumFile( outputFilename, digestSha1 ); - createChecksumFile( outputFilename, digestMd5 ); - - return outputFile; - } - - private void createChecksumFile( String path, Digester digester ) - throws DigesterException, IOException - { - File checksumFile = new File( path + digester.getFilenameExtension() ); - if ( !checksumFile.exists() ) - { - FileUtils.deleteQuietly( checksumFile ); - checksum.createChecksum( new File( path ), digester ); - } - else if ( !checksumFile.isFile() ) - { - log.error( "Checksum file is not a file." ); - } - } - - private boolean isProjectReference( String requestedResource ) - { - try - { - VersionedReference versionRef = metadataTools.toVersionedReference( requestedResource ); - return false; - } - catch ( RepositoryMetadataException re ) - { - return true; - } - } - - public void setServletAuth( ServletAuthenticator servletAuth ) - { - this.servletAuth = servletAuth; - } - - public void setHttpAuth( HttpAuthenticator httpAuth ) - { - this.httpAuth = httpAuth; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java deleted file mode 100644 index a6b758a35..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java +++ /dev/null @@ -1,159 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.jackrabbit.webdav.DavResourceLocator; -import org.apache.jackrabbit.webdav.DavLocatorFactory; -import org.apache.jackrabbit.util.Text; - -/** - * @author James William Dumay - */ -public class ArchivaDavResourceLocator - implements DavResourceLocator, RepositoryLocator -{ - private final String prefix; - - private final String resourcePath; - - private final String href; - - private final String repositoryId; - - private final DavLocatorFactory davLocatorFactory; - - public ArchivaDavResourceLocator( String prefix, String resourcePath, String repositoryId, - DavLocatorFactory davLocatorFactory ) - { - this.prefix = prefix; - this.repositoryId = repositoryId; - this.davLocatorFactory = davLocatorFactory; - - String path = resourcePath; - - if (!resourcePath.startsWith("/")) - { - path = "/" + resourcePath; - } - - String escapedPath = Text.escapePath( resourcePath ); - String hrefPrefix = prefix; - - // Ensure no extra slashes when href is joined - if ( hrefPrefix.endsWith( "/" ) && escapedPath.startsWith( "/" ) ) - { - hrefPrefix = hrefPrefix.substring( 0, hrefPrefix.length() - 1 ); - } - - href = hrefPrefix + escapedPath; - - //Remove trailing slashes otherwise Text.getRelativeParent fails - if (resourcePath.endsWith("/") && resourcePath.length() > 1) - { - path = resourcePath.substring( 0, resourcePath.length() - 1 ); - } - - this.resourcePath = path; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public String getPrefix() - { - return prefix; - } - - public String getResourcePath() - { - return resourcePath; - } - - public String getWorkspacePath() - { - return ""; - } - - public String getWorkspaceName() - { - return ""; - } - - public boolean isSameWorkspace( DavResourceLocator locator ) - { - return isSameWorkspace( locator.getWorkspaceName() ); - } - - public boolean isSameWorkspace( String workspaceName ) - { - return getWorkspaceName().equals( workspaceName ); - } - - public String getHref( boolean isCollection ) - { - // avoid doubled trailing '/' for the root item - String suffix = ( isCollection && !isRootLocation() && !href.endsWith("/") ) ? "/" : ""; - return href + suffix; - } - - public boolean isRootLocation() - { - return "/".equals( resourcePath ); - } - - public DavLocatorFactory getFactory() - { - return davLocatorFactory; - } - - public String getRepositoryPath() - { - return getResourcePath(); - } - - /** - * Computes the hash code from the href, which is built using the final fields prefix and resourcePath. - * - * @return the hash code - */ - public int hashCode() - { - return href.hashCode(); - } - - /** - * Equality of path is achieved if the specified object is a DavResourceLocator object with the same - * hash code. - * - * @param obj the object to compare to - * @return true if the 2 objects are equal; false otherwise - */ - public boolean equals( Object obj ) - { - if ( obj instanceof DavResourceLocator ) - { - DavResourceLocator other = (DavResourceLocator) obj; - return hashCode() == other.hashCode(); - } - return false; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSession.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSession.java deleted file mode 100644 index 95d75805c..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSession.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.HashSet; -import org.apache.jackrabbit.webdav.DavSession; - -public class ArchivaDavSession implements DavSession -{ - private final HashSet lockTokens = new HashSet(); - - public void addLockToken(String token) - { - lockTokens.add(token); - } - - public String[] getLockTokens() - { - return (String[]) lockTokens.toArray(new String[lockTokens.size()]); - } - - public void removeLockToken(String token) - { - lockTokens.remove(token); - } - - public void removeReference(Object reference) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public void addReference(Object reference) - { - throw new UnsupportedOperationException("Not supported yet."); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProvider.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProvider.java deleted file mode 100644 index 1ebf02a93..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProvider.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.jackrabbit.webdav.DavSessionProvider; -import org.apache.jackrabbit.webdav.WebdavRequest; -import org.apache.jackrabbit.webdav.DavException; -import org.apache.jackrabbit.webdav.DavServletRequest; -import org.apache.maven.archiva.webdav.util.RepositoryPathUtil; -import org.apache.maven.archiva.webdav.util.WebdavMethodUtil; -import org.apache.maven.archiva.security.ArchivaXworkUser; -import org.apache.maven.archiva.security.ServletAuthenticator; -import org.codehaus.plexus.redback.authentication.AuthenticationException; -import org.codehaus.plexus.redback.authentication.AuthenticationResult; -import org.codehaus.plexus.redback.authorization.UnauthorizedException; -import org.codehaus.plexus.redback.policy.MustChangePasswordException; -import org.codehaus.plexus.redback.policy.AccountLockedException; -import org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author James William Dumay - */ -public class ArchivaDavSessionProvider - implements DavSessionProvider -{ - private Logger log = LoggerFactory.getLogger( ArchivaDavSessionProvider.class ); - - private ServletAuthenticator servletAuth; - - private HttpAuthenticator httpAuth; - - private ArchivaXworkUser archivaXworkUser; - - public ArchivaDavSessionProvider( ServletAuthenticator servletAuth, HttpAuthenticator httpAuth, ArchivaXworkUser archivaXworkUser ) - { - this.servletAuth = servletAuth; - this.httpAuth = httpAuth; - this.archivaXworkUser = archivaXworkUser; - } - - public boolean attachSession( WebdavRequest request ) - throws DavException - { - final String repositoryId = RepositoryPathUtil.getRepositoryName( removeContextPath( request ) ); - - try - { - AuthenticationResult result = httpAuth.getAuthenticationResult( request, null ); - - //Create a dav session - request.setDavSession(new ArchivaDavSession()); - - return servletAuth.isAuthenticated( request, result ); - } - catch ( AuthenticationException e ) - { - boolean isPut = WebdavMethodUtil.isWriteMethod( request.getMethod() ); - - // safety check for MRM-911 - String guest = archivaXworkUser.getGuest(); - try - { - if( servletAuth.isAuthorized( guest, - ( ( ArchivaDavResourceLocator ) request.getRequestLocator() ).getRepositoryId(), isPut ) ) - { - request.setDavSession(new ArchivaDavSession()); - return true; - } - } - catch ( UnauthorizedException ae ) - { - throw new UnauthorizedDavException( repositoryId, - "You are not authenticated and authorized to access any repository." ); - } - - throw new UnauthorizedDavException( repositoryId, "You are not authenticated." ); - } - catch ( MustChangePasswordException e ) - { - throw new UnauthorizedDavException( repositoryId, "You must change your password." ); - } - catch ( AccountLockedException e ) - { - throw new UnauthorizedDavException( repositoryId, "User account is locked." ); - } - } - - public void releaseSession( WebdavRequest request ) - { - request.setDavSession(null); - } - - private String removeContextPath( final DavServletRequest request ) - { - String path = request.getRequestURI(); - String ctx = request.getContextPath(); - if ( path.startsWith( ctx ) ) - { - path = path.substring( ctx.length() ); - } - return path; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaVirtualDavResource.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaVirtualDavResource.java deleted file mode 100644 index f5ada0b72..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaVirtualDavResource.java +++ /dev/null @@ -1,351 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.apache.jackrabbit.util.Text; -import org.apache.jackrabbit.webdav.DavException; -import org.apache.jackrabbit.webdav.DavResource; -import org.apache.jackrabbit.webdav.DavResourceFactory; -import org.apache.jackrabbit.webdav.DavResourceIterator; -import org.apache.jackrabbit.webdav.DavResourceLocator; -import org.apache.jackrabbit.webdav.DavSession; -import org.apache.jackrabbit.webdav.MultiStatusResponse; -import org.apache.jackrabbit.webdav.io.InputContext; -import org.apache.jackrabbit.webdav.io.OutputContext; -import org.apache.jackrabbit.webdav.lock.ActiveLock; -import org.apache.jackrabbit.webdav.lock.LockInfo; -import org.apache.jackrabbit.webdav.lock.LockManager; -import org.apache.jackrabbit.webdav.lock.Scope; -import org.apache.jackrabbit.webdav.lock.Type; -import org.apache.jackrabbit.webdav.property.DavProperty; -import org.apache.jackrabbit.webdav.property.DavPropertyName; -import org.apache.jackrabbit.webdav.property.DavPropertyNameSet; -import org.apache.jackrabbit.webdav.property.DavPropertySet; -import org.apache.jackrabbit.webdav.property.DefaultDavProperty; -import org.apache.jackrabbit.webdav.property.ResourceType; -import org.apache.maven.archiva.webdav.util.IndexWriter; -import org.apache.maven.archiva.webdav.util.MimeTypes; -import org.joda.time.DateTime; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; - -/** - * DavResource for virtual repositories - * - * @author Maria Odea Ching - */ -public class ArchivaVirtualDavResource - implements DavResource -{ - public static final String HIDDEN_PATH_PREFIX = "."; - - private static final String COMPLIANCE_CLASS = "1"; - - private MimeTypes mimeTypes; - - private ArchivaDavResourceLocator locator; - - private DavResourceFactory factory; - - private String logicalResource; - - private DavPropertySet properties; - - private boolean propsInitialized = false; - - private static final String METHODS = "OPTIONS, GET, HEAD, POST, TRACE, PROPFIND, PROPPATCH, MKCOL"; - - private final List localResources; - - public ArchivaVirtualDavResource( List localResources, String logicalResource, MimeTypes mimeTypes, - ArchivaDavResourceLocator locator, DavResourceFactory factory ) - { - this.localResources = localResources; - this.logicalResource = logicalResource; - this.mimeTypes = mimeTypes; - this.locator = locator; - this.factory = factory; - this.properties = new DavPropertySet(); - } - - public void spool( OutputContext outputContext ) - throws IOException - { - if (outputContext.hasStream()) - { - Collections.sort( localResources ); - List localResourceFiles = new ArrayList(); - - for ( File resourceFile : localResources ) - { - if ( resourceFile.exists() ) - { - localResourceFiles.add( resourceFile ); - } - } - - IndexWriter writer = new IndexWriter( this, localResourceFiles, logicalResource ); - writer.write( outputContext ); - } - } - - public void addLockManager( LockManager arg0 ) - { - - } - - public void addMember( DavResource arg0, InputContext arg1 ) - throws DavException - { - - } - - public MultiStatusResponse alterProperties( List arg0 ) - throws DavException - { - return null; - } - - public MultiStatusResponse alterProperties( DavPropertySet arg0, DavPropertyNameSet arg1 ) - throws DavException - { - return null; - } - - public void copy( DavResource arg0, boolean arg1 ) - throws DavException - { - - } - - public boolean exists() - { - // localResources are already filtered (all files in the list are already existing) - return true; - } - - public ActiveLock getLock( Type arg0, Scope arg1 ) - { - return null; - } - - public ActiveLock[] getLocks() - { - return null; - } - - public DavResourceIterator getMembers() - { - return null; - } - - public String getSupportedMethods() - { - return METHODS; - } - - public long getModificationTime() - { - return 0; - } - - public boolean hasLock( Type arg0, Scope arg1 ) - { - return false; - } - - public boolean isCollection() - { - return true; - } - - public boolean isLockable( Type arg0, Scope arg1 ) - { - return false; - } - - public ActiveLock lock( LockInfo arg0 ) - throws DavException - { - return null; - } - - public void move( DavResource arg0 ) - throws DavException - { - - } - - public ActiveLock refreshLock( LockInfo arg0, String arg1 ) - throws DavException - { - return null; - } - - public void removeMember( DavResource arg0 ) - throws DavException - { - - } - - public void unlock( String arg0 ) - throws DavException - { - - } - - public String getComplianceClass() - { - return COMPLIANCE_CLASS; - } - - public DavResourceLocator getLocator() - { - return locator; - } - - public String getResourcePath() - { - return locator.getResourcePath(); - } - - public String getHref() - { - return locator.getHref( isCollection() ); - } - - public DavResourceFactory getFactory() - { - return factory; - } - - public String getDisplayName() - { - String resPath = getResourcePath(); - - return ( resPath != null ) ? Text.getName( resPath ) : resPath; - } - - public DavSession getSession() - { - return null; - } - - public DavPropertyName[] getPropertyNames() - { - return getProperties().getPropertyNames(); - } - - public DavProperty getProperty( DavPropertyName name ) - { - initProperties(); - return properties.get( name ); - } - - public DavPropertySet getProperties() - { - initProperties(); - return properties; - } - - public void setProperty( DavProperty property ) - throws DavException - { - } - - public void removeProperty( DavPropertyName propertyName ) - throws DavException - { - } - - public DavResource getCollection() - { - DavResource parent = null; - if ( getResourcePath() != null && !getResourcePath().equals( "/" ) ) - { - String parentPath = Text.getRelativeParent( getResourcePath(), 1 ); - if ( parentPath.equals( "" ) ) - { - parentPath = "/"; - } - DavResourceLocator parentloc = locator.getFactory().createResourceLocator( locator.getPrefix(), parentPath ); - try - { - // go back to ArchivaDavResourceFactory! - parent = factory.createResource( parentloc, null ); - } - catch ( DavException e ) - { - // should not occur - } - } - return parent; - } - - /** - * Fill the set of properties - */ - protected void initProperties() - { - if ( !exists() || propsInitialized ) - { - return; - } - - // set (or reset) fundamental properties - if ( getDisplayName() != null ) - { - properties.add( new DefaultDavProperty( DavPropertyName.DISPLAYNAME, getDisplayName() ) ); - } - if ( isCollection() ) - { - properties.add( new ResourceType( ResourceType.COLLECTION ) ); - // Windows XP support - properties.add( new DefaultDavProperty( DavPropertyName.ISCOLLECTION, "1" ) ); - } - else - { - properties.add( new ResourceType( ResourceType.DEFAULT_RESOURCE ) ); - - // Windows XP support - properties.add( new DefaultDavProperty( DavPropertyName.ISCOLLECTION, "0" ) ); - } - - // Need to get the ISO8601 date for properties - DateTime dt = new DateTime( 0 ); - DateTimeFormatter fmt = ISODateTimeFormat.dateTime(); - String modifiedDate = fmt.print( dt ); - - properties.add( new DefaultDavProperty( DavPropertyName.GETLASTMODIFIED, modifiedDate ) ); - - properties.add( new DefaultDavProperty( DavPropertyName.CREATIONDATE, modifiedDate ) ); - - properties.add( new DefaultDavProperty( DavPropertyName.GETCONTENTLENGTH, 0 ) ); - - propsInitialized = true; - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/BrowserRedirectException.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/BrowserRedirectException.java deleted file mode 100644 index b6c13dfe0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/BrowserRedirectException.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.jackrabbit.webdav.DavException; - -import javax.servlet.http.HttpServletResponse; - -/** - * @author James William Dumay - */ -public class BrowserRedirectException extends DavException -{ - final String location; - - public BrowserRedirectException(String location) - { - super(HttpServletResponse.SC_MOVED_PERMANENTLY); - this.location = location; - } - - public String getLocation() - { - return location; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/LogicalResource.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/LogicalResource.java deleted file mode 100644 index 964fc2e6d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/LogicalResource.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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. - */ - -/** - * @author James William Dumay - */ -public class LogicalResource -{ - private String path; - - public String getPath() - { - return path; - } - - public void setPath(String path) - { - this.path = path; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryLocator.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryLocator.java deleted file mode 100644 index a797e4176..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryLocator.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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. - */ - -/** - * @author James William Dumay - */ -public interface RepositoryLocator -{ - String getRepositoryId(); -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java deleted file mode 100644 index a73e72d5e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java +++ /dev/null @@ -1,286 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.Map; - -import javax.servlet.ServletConfig; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.jackrabbit.webdav.DavException; -import org.apache.jackrabbit.webdav.DavLocatorFactory; -import org.apache.jackrabbit.webdav.DavMethods; -import org.apache.jackrabbit.webdav.DavResource; -import org.apache.jackrabbit.webdav.DavResourceFactory; -import org.apache.jackrabbit.webdav.DavServletResponse; -import org.apache.jackrabbit.webdav.DavSessionProvider; -import org.apache.jackrabbit.webdav.WebdavRequest; -import org.apache.jackrabbit.webdav.WebdavRequestImpl; -import org.apache.jackrabbit.webdav.WebdavResponse; -import org.apache.jackrabbit.webdav.WebdavResponseImpl; -import org.apache.jackrabbit.webdav.server.AbstractWebdavServlet; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationEvent; -import org.apache.maven.archiva.configuration.ConfigurationListener; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.security.ArchivaXworkUser; -import org.apache.maven.archiva.security.ServletAuthenticator; -import org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator; -import org.codehaus.plexus.spring.PlexusToSpringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; - -/** - * RepositoryServlet - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServlet - extends AbstractWebdavServlet - implements ConfigurationListener -{ - private Logger log = LoggerFactory.getLogger( RepositoryServlet.class ); - - private ArchivaConfiguration configuration; - - private Map repositoryMap; - - private DavLocatorFactory locatorFactory; - - private DavResourceFactory resourceFactory; - - private DavSessionProvider sessionProvider; - - private final Object reloadLock = new Object(); - - public void init( javax.servlet.ServletConfig servletConfig ) - throws ServletException - { - super.init( servletConfig ); - initServers( servletConfig ); - } - - /** - * Service the given request. This method has been overridden and copy/pasted to allow better exception handling and - * to support different realms - * - * @param request - * @param response - * @throws ServletException - * @throws java.io.IOException - */ - @Override - protected void service( HttpServletRequest request, HttpServletResponse response ) - throws ServletException, IOException - { - WebdavRequest webdavRequest = new WebdavRequestImpl( request, getLocatorFactory() ); - // DeltaV requires 'Cache-Control' header for all methods except 'VERSION-CONTROL' and 'REPORT'. - int methodCode = DavMethods.getMethodCode( request.getMethod() ); - boolean noCache = - DavMethods.isDeltaVMethod( webdavRequest ) && - !( DavMethods.DAV_VERSION_CONTROL == methodCode || DavMethods.DAV_REPORT == methodCode ); - WebdavResponse webdavResponse = new WebdavResponseImpl( response, noCache ); - DavResource resource = null; - - try - { - // make sure there is a authenticated user - if ( !getDavSessionProvider().attachSession( webdavRequest ) ) - { - return; - } - - // check matching if=header for lock-token relevant operations - resource = - getResourceFactory().createResource( webdavRequest.getRequestLocator(), webdavRequest, webdavResponse ); - - if ( !isPreconditionValid( webdavRequest, resource ) ) - { - webdavResponse.sendError( DavServletResponse.SC_PRECONDITION_FAILED ); - return; - } - if ( !execute( webdavRequest, webdavResponse, methodCode, resource ) ) - { - super.service( request, response ); - } - - } - catch ( UnauthorizedDavException e ) - { - webdavResponse.setHeader( "WWW-Authenticate", getAuthenticateHeaderValue( e.getRepositoryName() ) ); - webdavResponse.sendError( e.getErrorCode(), e.getStatusPhrase() ); - } - catch ( BrowserRedirectException e ) - { - response.sendRedirect( e.getLocation() ); - } - catch ( DavException e ) - { - if ( e.getErrorCode() == HttpServletResponse.SC_UNAUTHORIZED ) - { - final String msg = "Should throw " + UnauthorizedDavException.class.getName(); - log.error( msg ); - webdavResponse.sendError( e.getErrorCode(), msg ); - } - else if ( e.getCause() != null ) - { - webdavResponse.sendError( e.getErrorCode(), e.getCause().getMessage() ); - } - else - { - webdavResponse.sendError( e.getErrorCode(), e.getMessage() ); - } - } - finally - { - getDavSessionProvider().releaseSession( webdavRequest ); - } - } - - public synchronized void initServers( ServletConfig servletConfig ) - { - WebApplicationContext wac = - WebApplicationContextUtils.getRequiredWebApplicationContext( servletConfig.getServletContext() ); - - configuration = - (ArchivaConfiguration) wac.getBean( PlexusToSpringUtils.buildSpringId( ArchivaConfiguration.class.getName() ) ); - configuration.addListener( this ); - - repositoryMap = configuration.getConfiguration().getManagedRepositoriesAsMap(); - - for ( ManagedRepositoryConfiguration repo : repositoryMap.values() ) - { - File repoDir = new File( repo.getLocation() ); - - if ( !repoDir.exists() ) - { - if ( !repoDir.mkdirs() ) - { - // Skip invalid directories. - log( "Unable to create missing directory for " + repo.getLocation() ); - continue; - } - } - } - - resourceFactory = - (DavResourceFactory) wac.getBean( PlexusToSpringUtils.buildSpringId( ArchivaDavResourceFactory.class ) ); - locatorFactory = new ArchivaDavLocatorFactory(); - - ServletAuthenticator servletAuth = - (ServletAuthenticator) wac.getBean( PlexusToSpringUtils.buildSpringId( ServletAuthenticator.class.getName() ) ); - HttpAuthenticator httpAuth = - (HttpAuthenticator) wac.getBean( PlexusToSpringUtils.buildSpringId( HttpAuthenticator.ROLE, "basic" ) ); - - ArchivaXworkUser archivaXworkUser = - (ArchivaXworkUser) wac.getBean( PlexusToSpringUtils.buildSpringId( ArchivaXworkUser.class.getName() ) ); - sessionProvider = new ArchivaDavSessionProvider( servletAuth, httpAuth, archivaXworkUser ); - } - - public void configurationEvent( ConfigurationEvent event ) - { - if ( event.getType() == ConfigurationEvent.SAVED ) - { - initRepositories(); - } - } - - private void initRepositories() - { - synchronized ( repositoryMap ) - { - repositoryMap.clear(); - repositoryMap.putAll( configuration.getConfiguration().getManagedRepositoriesAsMap() ); - } - - synchronized ( reloadLock ) - { - initServers( getServletConfig() ); - } - } - - public synchronized ManagedRepositoryConfiguration getRepository( String prefix ) - { - if ( repositoryMap.isEmpty() ) - { - repositoryMap.putAll( configuration.getConfiguration().getManagedRepositoriesAsMap() ); - } - return repositoryMap.get( prefix ); - } - - ArchivaConfiguration getConfiguration() - { - return configuration; - } - - protected boolean isPreconditionValid( final WebdavRequest request, final DavResource davResource ) - { - // check for read or write access to the resource when resource-based permission is implemented - - return true; - } - - public DavSessionProvider getDavSessionProvider() - { - return sessionProvider; - } - - public void setDavSessionProvider( final DavSessionProvider davSessionProvider ) - { - this.sessionProvider = davSessionProvider; - } - - public DavLocatorFactory getLocatorFactory() - { - return locatorFactory; - } - - public void setLocatorFactory( final DavLocatorFactory davLocatorFactory ) - { - locatorFactory = davLocatorFactory; - } - - public DavResourceFactory getResourceFactory() - { - return resourceFactory; - } - - public void setResourceFactory( final DavResourceFactory davResourceFactory ) - { - resourceFactory = davResourceFactory; - } - - public String getAuthenticateHeaderValue() - { - throw new UnsupportedOperationException(); - } - - public String getAuthenticateHeaderValue( String repository ) - { - return "Basic realm=\"Repository Archiva Managed " + repository + " Repository\""; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/UnauthorizedDavException.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/UnauthorizedDavException.java deleted file mode 100644 index d26f2f910..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/UnauthorizedDavException.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.jackrabbit.webdav.DavException; - -import javax.servlet.http.HttpServletResponse; - -/** - * @author James William Dumay - */ -public class UnauthorizedDavException extends DavException -{ - final private String repositoryName; - - public UnauthorizedDavException(String repositoryName, String message) - { - super(HttpServletResponse.SC_UNAUTHORIZED, message); - this.repositoryName = repositoryName; - } - - public String getRepositoryName() - { - return repositoryName; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/IndexWriter.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/IndexWriter.java deleted file mode 100644 index 9e5149291..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/IndexWriter.java +++ /dev/null @@ -1,168 +0,0 @@ -package org.apache.maven.archiva.webdav.util; - -/* - * 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.jackrabbit.webdav.DavResource; -import org.apache.jackrabbit.webdav.io.OutputContext; - -import java.util.ArrayList; -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 java.io.PrintWriter; -import java.io.File; - -/** - * @author James William Dumay - */ -public class IndexWriter -{ - private final DavResource resource; - - private final String logicalResource; - - private final List localResources; - - private final boolean isVirtual; - - public IndexWriter(DavResource resource, File localResource, String logicalResource) - { - this.resource = resource; - this.localResources = new ArrayList(); - this.localResources.add( localResource ); - this.logicalResource = logicalResource; - this.isVirtual = false; - } - - public IndexWriter( DavResource resource, List localResources, String logicalResource ) - { - this.resource = resource; - this.logicalResource = logicalResource; - this.localResources = localResources; - this.isVirtual = true; - } - - public void write(OutputContext outputContext) - { - outputContext.setModificationTime(new Date().getTime()); - outputContext.setContentType("text/html"); - outputContext.setETag(""); - if (outputContext.hasStream()) - { - PrintWriter writer = new PrintWriter(outputContext.getOutputStream()); - writeDocumentStart(writer); - writeHyperlinks(writer); - writeDocumentEnd(writer); - writer.flush(); - writer.close(); - } - } - - private void writeDocumentStart(PrintWriter writer) - { - writer.println(""); - writer.println(""); - writer.println("Collection: " + logicalResource + ""); - writer.println(""); - writer.println(""); - writer.println("

    Collection: " + logicalResource + "

    "); - - //Check if not root - if (!"/".equals(logicalResource)) - { - File file = new File(logicalResource); - String parentName = file.getParent().equals("") ? "/" : file.getParent(); - - //convert to unix path in case archiva is hosted on windows - parentName = StringUtils.replace(parentName, "\\", "/" ); - - writer.println(""); - } - - writer.println("
      "); - } - - private void writeDocumentEnd(PrintWriter writer) - { - writer.println("
    "); - writer.println(""); - writer.println(""); - } - - private void writeHyperlinks(PrintWriter writer) - { - if( !isVirtual ) - { - for( File localResource : localResources ) - { - List files = new ArrayList( Arrays.asList( localResource.listFiles() ) ); - Collections.sort( files ); - - for ( File file : files ) - { - writeHyperlink( writer, file.getName(), file.isDirectory() ); - } - } - } - else - { - // virtual repository - filter unique directories - Map uniqueChildFiles = new HashMap(); - List sortedList = new ArrayList(); - for( File resource : localResources ) - { - List files = new ArrayList( Arrays.asList( resource.listFiles() ) ); - - for ( File file : files ) - { - if( uniqueChildFiles.get( file.getName() ) == null ) - { - uniqueChildFiles.put( file.getName(), file ); - sortedList.add( file.getName() ); - } - } - } - - Collections.sort( sortedList ); - for ( String fileName : sortedList ) - { - writeHyperlink( writer, fileName, ( (File) uniqueChildFiles.get( fileName ) ).isDirectory()); - } - } - } - - private void writeHyperlink(PrintWriter writer, String resourceName, boolean directory ) - { - if (directory) - { - writer.println("
  • " + resourceName + "
  • "); - } - else - { - writer.println("
  • " + resourceName + "
  • "); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/MimeTypes.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/MimeTypes.java deleted file mode 100644 index 1df7ae8a5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/MimeTypes.java +++ /dev/null @@ -1,197 +0,0 @@ -package org.apache.maven.archiva.webdav.util; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; -import org.codehaus.plexus.logging.AbstractLogEnabled; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; -import java.util.StringTokenizer; - -/** - * MimeTypes - * - * @author Joakim Erdfelt - * @version $Id: MimeTypes.java 7010 2007-10-25 23:35:02Z joakime $ - * - * @plexus.component role="org.apache.maven.archiva.webdav.util.MimeTypes" - */ -public class MimeTypes - extends AbstractLogEnabled - implements Initializable -{ - private static final String DEFAULT_MIME_TYPE = "application/octet-stream"; - - private String resource = "org/apache/maven/archiva/webdav/util/mime.types"; - - private Map mimeMap = new HashMap(); - - /** - * Get the Mime Type for the provided filename. - * - * @param filename the filename to obtain the mime type for. - * @return a mime type String, or null if filename is null, has no extension, or no mime type is associated with it. - */ - public String getMimeType( String filename ) - { - String value = null; - if ( !StringUtils.isEmpty( filename ) ) - { - int index = filename.lastIndexOf( '.' ); - - if ( index >= 0 ) - { - value = (String) mimeMap.get( filename.substring( index + 1 ).toLowerCase() ); - } - } - - - if (value == null) - { - value = DEFAULT_MIME_TYPE; - } - - return value; - - } - - public void initialize() - throws InitializationException - { - load( resource ); - } - - public void load( File file ) - { - if ( !file.exists() || !file.isFile() || !file.canRead() ) - { - getLogger().error( "Unable to load mime types from file " + file.getAbsolutePath() + " : not a readable file." ); - return; - } - - FileInputStream fis = null; - - try - { - fis = new FileInputStream( file ); - } - catch ( FileNotFoundException e ) - { - getLogger().error( "Unable to load mime types from file " + file.getAbsolutePath() + " : " + e.getMessage(), e ); - } - finally - { - IOUtils.closeQuietly( fis ); - } - } - - public void load( String resourceName ) - { - ClassLoader cloader = this.getClass().getClassLoader(); - - /* Load up the mime types table */ - URL mimeURL = cloader.getResource( resourceName ); - - if ( mimeURL == null ) - { - throw new IllegalStateException( "Unable to find resource " + resourceName ); - } - - InputStream mimeStream = null; - - try - { - mimeStream = mimeURL.openStream(); - load( mimeStream ); - } - catch ( IOException e ) - { - getLogger().error( "Unable to load mime map " + resourceName + " : " + e.getMessage(), e ); - } - finally - { - IOUtils.closeQuietly( mimeStream ); - } - } - - public void load( InputStream mimeStream ) - { - mimeMap.clear(); - - InputStreamReader reader = null; - BufferedReader buf = null; - - try - { - reader = new InputStreamReader( mimeStream ); - buf = new BufferedReader( reader ); - String line = null; - - while ( ( line = buf.readLine() ) != null ) - { - line = line.trim(); - - if ( line.length() == 0 ) - { - // empty line. skip it - continue; - } - - if ( line.startsWith( "#" ) ) - { - // Comment. skip it - continue; - } - - StringTokenizer tokenizer = new StringTokenizer( line ); - if ( tokenizer.countTokens() > 1 ) - { - String type = tokenizer.nextToken(); - while ( tokenizer.hasMoreTokens() ) - { - String extension = tokenizer.nextToken().toLowerCase(); - this.mimeMap.put( extension, type ); - } - } - } - } - catch ( IOException e ) - { - getLogger().error( "Unable to read mime types from input stream : " + e.getMessage(), e ); - } - finally - { - IOUtils.closeQuietly( buf ); - IOUtils.closeQuietly( reader ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/RepositoryPathUtil.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/RepositoryPathUtil.java deleted file mode 100644 index 5071dc3da..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/RepositoryPathUtil.java +++ /dev/null @@ -1,111 +0,0 @@ -package org.apache.maven.archiva.webdav.util; - -/* - * 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.commons.lang.ArrayUtils; - -/** - * @author James William Dumay - */ -public class RepositoryPathUtil -{ - public static String getLogicalResource(final String href) - { - String logicalResource = null; - String requestPathInfo = StringUtils.defaultString( href ); - - //remove prefix ie /repository/blah becomes /blah - requestPathInfo = removePrefix(requestPathInfo); - - // Remove prefixing slash as the repository id doesn't contain it; - if ( requestPathInfo.startsWith( "/" ) ) - { - requestPathInfo = requestPathInfo.substring( 1 ); - } - - int slash = requestPathInfo.indexOf( '/' ); - if ( slash > 0 ) - { - logicalResource = requestPathInfo.substring( slash ); - - if (logicalResource.endsWith( "/.." ) ) - { - logicalResource += "/"; - } - - if ( logicalResource != null && logicalResource.startsWith( "//" ) ) - { - logicalResource = logicalResource.substring( 1 ); - } - - if ( logicalResource == null ) - { - logicalResource = "/"; - } - } - else - { - logicalResource = "/"; - } - return logicalResource; - } - - public static String getRepositoryName(final String href) - { - String requestPathInfo = StringUtils.defaultString( href ); - - //remove prefix ie /repository/blah becomes /blah - requestPathInfo = removePrefix(requestPathInfo); - - // Remove prefixing slash as the repository id doesn't contain it; - if ( requestPathInfo.startsWith( "/" ) ) - { - requestPathInfo = requestPathInfo.substring( 1 ); - } - - // Find first element, if slash exists. - int slash = requestPathInfo.indexOf( '/' ); - if ( slash > 0 ) - { - // Filtered: "central/org/apache/maven/" -> "central" - return requestPathInfo.substring( 0, slash ); - } - return requestPathInfo; - } - - private static String removePrefix(final String href) - { - String[] parts = StringUtils.split(href, '/'); - parts = (String[]) ArrayUtils.subarray(parts, 1, parts.length); - if (parts == null || parts.length == 0) - { - return "/"; - } - - String joinedString = StringUtils.join(parts, '/'); - if( href.endsWith( "/" ) ) - { - joinedString = joinedString + "/"; - } - - return joinedString; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/WebdavMethodUtil.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/WebdavMethodUtil.java deleted file mode 100644 index 2560b82c3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/WebdavMethodUtil.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.maven.archiva.webdav.util; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.commons.lang.StringUtils; - -import java.util.ArrayList; -import java.util.List; - -/** - * WebdavMethodUtil - * - * @author Joakim Erdfelt - * @version $Id: WebdavMethodUtil.java 5412 2007-01-13 01:18:47Z joakime $ - */ -public class WebdavMethodUtil -{ - private static final List READ_METHODS; - - static - { - READ_METHODS = new ArrayList(); - READ_METHODS.add( "HEAD" ); - READ_METHODS.add( "GET" ); - READ_METHODS.add( "PROPFIND" ); - READ_METHODS.add( "OPTIONS" ); - READ_METHODS.add( "REPORT" ); - } - - public static boolean isReadMethod( String method ) - { - if ( StringUtils.isBlank( method ) ) - { - return false; - } - - return READ_METHODS.contains( method.toUpperCase() ); - } - - public static boolean isWriteMethod( String method ) - { - if ( StringUtils.isBlank( method ) ) - { - return false; - } - - return !READ_METHODS.contains( method.toUpperCase() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/resources/org/apache/maven/archiva/webdav/util/mime.types b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/resources/org/apache/maven/archiva/webdav/util/mime.types deleted file mode 100644 index c479bb54b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/main/resources/org/apache/maven/archiva/webdav/util/mime.types +++ /dev/null @@ -1,127 +0,0 @@ -# This file controls what Internet media types are sent to the client for -# given file extension(s). Sending the correct media type to the client -# is important so they know how to handle the content of the file. -# Extra types can either be added here or by using an AddType directive -# in your config files. For more information about Internet media types, -# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type -# registry is at . - -# MIME type Extensions - -application/andrew-inset ez -application/atom+xml atom -application/java-archive jar -application/mac-binhex40 hqx -application/mac-compactpro cpt -application/mathml+xml mathml -application/msword doc -application/octet-stream bin dms lha lzh exe class so dll dmg -application/oda oda -application/ogg ogg -application/pdf pdf -application/pgp-encrypted pgp -application/postscript ai eps ps -application/rdf+xml rdf -application/smil smi smil -application/srgs gram -application/srgs+xml grxml -application/vnd.mif mif -application/vnd.mozilla.xul+xml xul -application/vnd.ms-excel xls -application/vnd.ms-powerpoint ppt -application/vnd.rn-realmedia rm -application/vnd.wap.wbxml wbxml -application/vnd.wap.wmlc wmlc -application/vnd.wap.wmlscriptc wmlsc -application/voicexml+xml vxml -application/x-bcpio bcpio -application/x-cdlink vcd -application/x-chess-pgn pgn -application/x-cpio cpio -application/x-csh csh -application/x-director dcr dir dxr -application/x-dvi dvi -application/x-futuresplash spl -application/x-gtar gtar -application/x-hdf hdf -application/x-java-jnlp-file jnlp -application/x-javascript js -application/x-koan skp skd skt skm -application/x-latex latex -application/x-netcdf nc cdf -application/x-sh sh -application/x-shar shar -application/x-shockwave-flash swf -application/x-stuffit sit -application/x-sv4cpio sv4cpio -application/x-sv4crc sv4crc -application/x-tar tar -application/x-tcl tcl -application/x-tex tex -application/x-texinfo texinfo texi -application/x-troff t tr roff -application/x-troff-man man -application/x-troff-me me -application/x-troff-ms ms -application/x-ustar ustar -application/x-wais-source src -application/xhtml+xml xhtml xht -application/xml xml xsl pom -application/xml-dtd dtd -application/xslt+xml xslt -application/zip zip -audio/basic au snd -audio/midi mid midi kar -audio/mpeg mpga mp2 mp3 -audio/x-aiff aif aiff aifc -audio/x-mpegurl m3u -audio/x-pn-realaudio ram ra -audio/x-wav wav -chemical/x-pdb pdb -chemical/x-xyz xyz -image/bmp bmp -image/cgm cgm -image/gif gif -image/ief ief -image/jp2 jp2 -image/jpeg jpeg jpg jpe -image/pict pict pic pct -image/png png -image/svg+xml svg -image/tiff tiff tif -image/vnd.djvu djvu djv -image/vnd.wap.wbmp wbmp -image/x-cmu-raster ras -image/x-icon ico -image/x-macpaint pntg pnt mac -image/x-portable-anymap pnm -image/x-portable-bitmap pbm -image/x-portable-graymap pgm -image/x-portable-pixmap ppm -image/x-quicktime qtif qti -image/x-rgb rgb -image/x-xbitmap xbm -image/x-xpixmap xpm -image/x-xwindowdump xwd -model/iges igs iges -model/mesh msh mesh silo -model/vrml wrl vrml -text/calendar ics ifb -text/css css -text/html html htm -text/plain asc txt sha1 md5 -text/richtext rtx -text/rtf rtf -text/sgml sgml sgm -text/tab-separated-values tsv -text/vnd.wap.wml wml -text/vnd.wap.wmlscript wmls -text/x-setext etx -video/mp4 mp4 -video/mpeg mpeg mpg mpe -video/quicktime qt mov -video/vnd.mpegurl mxu m4u -video/x-dv dv dif -video/x-msvideo avi -video/x-sgi-movie movie -x-conference/x-cooltalk ice diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletProxiedMetadataTestCase.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletProxiedMetadataTestCase.java deleted file mode 100644 index c11da99c1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletProxiedMetadataTestCase.java +++ /dev/null @@ -1,253 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.HttpUnitOptions; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; -import org.custommonkey.xmlunit.DetailedDiff; -import org.custommonkey.xmlunit.Diff; - -/** - * Abstract TestCase for RepositoryServlet Tests, Proxied, Get of Metadata. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractRepositoryServletProxiedMetadataTestCase - extends AbstractRepositoryServletProxiedTestCase -{ - protected RemoteRepoInfo remotePrivateSnapshots; - - protected void assertExpectedMetadata( String expectedMetadata, String actualMetadata ) - throws Exception - { - DetailedDiff detailedDiff = new DetailedDiff( new Diff( expectedMetadata, actualMetadata ) ); - if ( !detailedDiff.similar() ) - { - // If it isn't similar, dump the difference. - assertEquals( expectedMetadata, actualMetadata ); - } - // XMLAssert.assertXMLEqual( "Expected Metadata:", expectedMetadata, actualMetadata ); - } - - protected String requestMetadataOK( String path ) - throws Exception - { - // process the response code later, not via an exception. - HttpUnitOptions.setExceptionsThrownOnErrorStatus( false ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + path ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - return response.getText(); - } - - protected String createVersionMetadata( String groupId, String artifactId, String version ) - { - return createVersionMetadata( groupId, artifactId, version, null, null, null ); - } - - protected String createVersionMetadata( String groupId, String artifactId, String version, String timestamp, - String buildNumber, String lastUpdated ) - { - StringBuffer buf = new StringBuffer(); - - buf.append( "\n\n" ); - buf.append( "\n" ); - buf.append( " " ).append( groupId ).append( "\n" ); - buf.append( " " ).append( artifactId ).append( "\n" ); - buf.append( " " ).append( version ).append( "\n" ); - - boolean hasSnapshot = StringUtils.isNotBlank( timestamp ) || StringUtils.isNotBlank( buildNumber ); - boolean hasLastUpdated = StringUtils.isNotBlank( lastUpdated ); - - if ( hasSnapshot || hasLastUpdated ) - { - buf.append( " \n" ); - if ( hasSnapshot ) - { - buf.append( " \n" ); - buf.append( " " ).append( buildNumber ).append( "\n" ); - buf.append( " " ).append( timestamp ).append( "\n" ); - buf.append( " \n" ); - } - if ( hasLastUpdated ) - { - buf.append( " " ).append( lastUpdated ).append( "\n" ); - } - buf.append( " \n" ); - } - buf.append( "" ); - - return buf.toString(); - } - - protected String createProjectMetadata( String groupId, String artifactId, String latest, String release, - String[] versions ) - { - StringBuffer buf = new StringBuffer(); - - buf.append( "\n\n" ); - buf.append( "\n" ); - buf.append( " " ).append( groupId ).append( "\n" ); - buf.append( " " ).append( artifactId ).append( "\n" ); - - boolean hasLatest = StringUtils.isNotBlank( latest ); - boolean hasRelease = StringUtils.isNotBlank( release ); - boolean hasVersions = !ArrayUtils.isEmpty( versions ); - - if ( hasLatest || hasRelease || hasVersions ) - { - buf.append( " \n" ); - if ( hasLatest ) - { - buf.append( " " ).append( latest ).append( "\n" ); - } - if ( hasRelease ) - { - buf.append( " " ).append( release ).append( "\n" ); - } - if ( hasVersions ) - { - buf.append( " \n" ); - for ( String availVersion : versions ) - { - buf.append( " " ).append( availVersion ).append( "\n" ); - } - buf.append( " \n" ); - } - buf.append( " \n" ); - } - buf.append( "" ); - - return buf.toString(); - } - - protected String createGroupMetadata( String groupId, String[] plugins ) - { - StringBuffer buf = new StringBuffer(); - - buf.append( "\n\n" ); - buf.append( "\n" ); - buf.append( " " ).append( groupId ).append( "\n" ); - - boolean hasPlugins = !ArrayUtils.isEmpty( plugins ); - - if ( hasPlugins ) - { - buf.append( " \n" ); - for ( String plugin : plugins ) - { - buf.append( " \n" ); - buf.append( " " ).append( plugin ).append( "\n" ); - buf.append( " " ).append( plugin + "-maven-plugin" ).append( "\n" ); - buf.append( " " ).append( "The " + plugin + " Plugin" ).append( "\n" ); - buf.append( " \n" ); - } - buf.append( " \n" ); - } - buf.append( "" ); - - return buf.toString(); - } - - protected void setupPrivateSnapshotsRemoteRepo() - throws Exception - { - remotePrivateSnapshots = createServer( "private-snapshots" ); - - assertServerSetupCorrectly( remotePrivateSnapshots ); - archivaConfiguration.getConfiguration().addRemoteRepository( remotePrivateSnapshots.config ); - setupCleanRepo( remotePrivateSnapshots.root ); - } - -// private void assertGetProxiedSnapshotMetadata( int expectation, boolean hasManagedCopy, -// long deltaManagedToRemoteTimestamp ) -// throws Exception -// { -// // --- Setup -// setupSnapshotsRemoteRepo(); -// setupCleanInternalRepo(); -// -// String resourcePath = "org/apache/archiva/archivatest-maven-plugin/4.0-alpha-1-SNAPSHOT/maven-metadata.xml"; -// String expectedRemoteContents = "\n" + "\n" -// + " org.apache.maven.plugins\n" + " maven-assembly-plugin\n" -// + " 2.2-beta-2-SNAPSHOT\n" + " \n" + " \n" -// + " 20071017.162810\n" + " 20\n" -// + " \n" + " 20071017162814\n" + " \n" -// + ""; -// String expectedManagedContents = null; -// File remoteFile = populateRepo( remoteSnapshots, resourcePath, expectedRemoteContents ); -// -// if ( hasManagedCopy ) -// { -// expectedManagedContents = "\n" + " org.apache.maven.plugins\n" -// + " maven-assembly-plugin\n" + " 2.2-beta-2-SNAPSHOT\n" -// + ""; -// -// File managedFile = populateRepo( repoRootInternal, resourcePath, expectedManagedContents ); -// managedFile.setLastModified( remoteFile.lastModified() + deltaManagedToRemoteTimestamp ); -// } -// -// setupConnector( REPOID_INTERNAL, remoteSnapshots ); -// saveConfiguration(); -// -// // --- Execution -// // process the response code later, not via an exception. -// HttpUnitOptions.setExceptionsThrownOnErrorStatus( false ); -// -// WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + resourcePath ); -// WebResponse response = sc.getResponse( request ); -// -// // --- Verification -// -// switch ( expectation ) -// { -// case EXPECT_MANAGED_CONTENTS: -// assertResponseOK( response ); -// assertTrue( "Invalid Test Case: Can't expect managed contents with " -// + "test that doesn't have a managed copy in the first place.", hasManagedCopy ); -// String actualContents = response.getText(); -// XMLAssert.assertXMLEqual( expectedManagedContents, actualContents ); -// // assertEquals( "Expected managed file contents", expectedManagedContents, response.getText() ); -// break; -// case EXPECT_REMOTE_CONTENTS: -// assertResponseOK( response ); -// assertEquals( "Expected remote file contents", expectedRemoteContents, response.getText() ); -// break; -// case EXPECT_NOT_FOUND: -// assertResponseNotFound( response ); -// assertManagedFileNotExists( repoRootInternal, resourcePath ); -// break; -// } -// } - - protected void tearDown() - throws Exception - { - shutdownServer( remotePrivateSnapshots ); - - super.tearDown(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java deleted file mode 100644 index 1c1233748..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java +++ /dev/null @@ -1,252 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.WebConversation; -import com.meterware.httpunit.WebResponse; - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.policies.CachedFailuresPolicy; -import org.apache.maven.archiva.policies.ChecksumPolicy; -import org.apache.maven.archiva.policies.ReleasesPolicy; -import org.apache.maven.archiva.policies.SnapshotsPolicy; -import org.mortbay.jetty.Connector; -import org.mortbay.jetty.Server; -import org.mortbay.jetty.bio.SocketConnector; -import org.mortbay.jetty.handler.ContextHandler; -import org.mortbay.jetty.handler.ContextHandlerCollection; -import org.mortbay.jetty.servlet.DefaultServlet; -import org.mortbay.jetty.servlet.ServletHandler; - -import java.io.File; - -/** - * AbstractRepositoryServletProxiedTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractRepositoryServletProxiedTestCase - extends AbstractRepositoryServletTestCase -{ - class RemoteRepoInfo - { - public String id; - - public String url; - - public String context; - - public Server server; - - public File root; - - public RemoteRepositoryConfiguration config; - } - - protected static final long ONE_SECOND = ( 1000 /* milliseconds */ ); - - protected static final long ONE_MINUTE = ( ONE_SECOND * 60 ); - - protected static final long ONE_HOUR = ( ONE_MINUTE * 60 ); - - protected static final long ONE_DAY = ( ONE_HOUR * 24 ); - - protected static final long OVER_ONE_HOUR = ( ONE_HOUR + ONE_MINUTE ); - - protected static final long OVER_ONE_DAY = ( ONE_DAY + ONE_HOUR ); - - protected static final long OLDER = ( -1 ); - - protected static final long NEWER = 0; - - protected static final int EXPECT_MANAGED_CONTENTS = 1; - - protected static final int EXPECT_REMOTE_CONTENTS = 2; - - protected static final int EXPECT_NOT_FOUND = 3; - - protected static final boolean HAS_MANAGED_COPY = true; - - protected static final boolean NO_MANAGED_COPY = false; - - protected RemoteRepoInfo remoteCentral; - - protected RemoteRepoInfo remoteSnapshots; - - protected RemoteRepoInfo remotePrivateSnapshots; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - } - - protected RemoteRepoInfo createServer( String id ) - throws Exception - { - RemoteRepoInfo repo = new RemoteRepoInfo(); - repo.id = id; - repo.context = "/" + id; - repo.root = getTestFile( "target/remote-repos/" + id + "/" ); - - // Remove exising root contents. - if ( repo.root.exists() ) - { - FileUtils.deleteDirectory( repo.root ); - } - - // Establish root directory. - if ( !repo.root.exists() ) - { - repo.root.mkdirs(); - } - - repo.server = new Server(); - ContextHandlerCollection contexts = new ContextHandlerCollection(); - repo.server.setHandler( contexts ); - - SocketConnector connector = new SocketConnector(); - connector.setPort( 0 ); // 0 means, choose and empty port. (we'll find out which, later) - - repo.server.setConnectors( new Connector[] { connector } ); - - ContextHandler context = new ContextHandler(); - context.setContextPath( repo.context ); - context.setResourceBase( repo.root.getAbsolutePath() ); - context.setAttribute( "dirAllowed", true ); - context.setAttribute( "maxCacheSize", 0 ); - ServletHandler servlet = new ServletHandler(); - servlet.addServletWithMapping( DefaultServlet.class.getName(), "/" ); - context.setHandler( servlet ); - contexts.addHandler( context ); - - repo.server.start(); - - int port = connector.getLocalPort(); - repo.url = "http://localhost:" + port + repo.context; - System.out.println( "Remote HTTP Server started on " + repo.url ); - - repo.config = createRemoteRepository( repo.id, "Testable [" + repo.id + "] Remote Repo", repo.url ); - - return repo; - } - - protected void assertServerSetupCorrectly( RemoteRepoInfo remoteRepo ) - throws Exception - { - WebConversation wc = new WebConversation(); - WebResponse response = wc.getResponse( remoteRepo.url ); - assertResponseOK( response ); - } - - private void setupConnector( String repoId, RemoteRepoInfo remoteRepo, String releasesPolicy, String snapshotsPolicy ) - { - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( repoId ); - connector.setTargetRepoId( remoteRepo.id ); - connector.addPolicy( ProxyConnectorConfiguration.POLICY_RELEASES, releasesPolicy ); - connector.addPolicy( ProxyConnectorConfiguration.POLICY_SNAPSHOTS, snapshotsPolicy ); - connector.addPolicy( ProxyConnectorConfiguration.POLICY_CHECKSUM, ChecksumPolicy.IGNORE ); - connector.addPolicy( ProxyConnectorConfiguration.POLICY_CACHE_FAILURES, CachedFailuresPolicy.NO ); - - archivaConfiguration.getConfiguration().addProxyConnector( connector ); - } - - protected void shutdownServer( RemoteRepoInfo remoteRepo ) - { - if ( remoteRepo != null ) - { - if ( remoteRepo.server != null ) - { - if ( remoteRepo.server.isRunning() ) - { - try - { - remoteRepo.server.stop(); - // int graceful = remoteRepo.server.getGracefulShutdown(); - // System.out.println( "server set to graceful shutdown: " + graceful ); - // remoteRepo = null; - } - catch ( Exception e ) - { - e.printStackTrace( System.err ); - } - } - } - } - } - - protected File populateRepo( RemoteRepoInfo remoteRepo, String path, String contents ) - throws Exception - { - File destFile = new File( remoteRepo.root, path ); - destFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( destFile, contents, null ); - return destFile; - } - - protected void setupCentralRemoteRepo() - throws Exception - { - remoteCentral = createServer( "central" ); - - assertServerSetupCorrectly( remoteCentral ); - archivaConfiguration.getConfiguration().addRemoteRepository( remoteCentral.config ); - setupCleanRepo( remoteCentral.root ); - } - - protected void setupConnector( String repoId, RemoteRepoInfo remoteRepo ) - { - setupConnector( repoId, remoteRepo, ReleasesPolicy.ALWAYS, SnapshotsPolicy.ALWAYS ); - } - - protected void setupReleaseConnector( String managedRepoId, RemoteRepoInfo remoteRepo, String releasePolicy ) - { - setupConnector( managedRepoId, remoteRepo, releasePolicy, SnapshotsPolicy.ALWAYS ); - } - - protected void setupSnapshotConnector( String managedRepoId, RemoteRepoInfo remoteRepo, String snapshotsPolicy ) - { - setupConnector( managedRepoId, remoteRepo, ReleasesPolicy.ALWAYS, snapshotsPolicy ); - } - - protected void setupSnapshotsRemoteRepo() - throws Exception - { - remoteSnapshots = createServer( "snapshots" ); - - assertServerSetupCorrectly( remoteSnapshots ); - archivaConfiguration.getConfiguration().addRemoteRepository( remoteSnapshots.config ); - setupCleanRepo( remoteSnapshots.root ); - } - - @Override - protected void tearDown() - throws Exception - { - shutdownServer( remoteCentral ); - shutdownServer( remoteSnapshots ); - super.tearDown(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java deleted file mode 100644 index e2af9da72..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java +++ /dev/null @@ -1,235 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.WebResponse; -import com.meterware.httpunit.HttpUnitOptions; -import com.meterware.servletunit.ServletRunner; -import com.meterware.servletunit.ServletUnitClient; -import net.sf.ehcache.CacheManager; -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.maven.archiva.webdav.RepositoryServlet; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -import javax.servlet.http.HttpServletResponse; -import java.io.File; -import java.io.IOException; - -import junit.framework.Assert; - -/** - * AbstractRepositoryServletTestCase - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public abstract class AbstractRepositoryServletTestCase - extends PlexusInSpringTestCase -{ - protected static final String REPOID_INTERNAL = "internal"; - - protected ServletUnitClient sc; - - protected File repoRootInternal; - - private ServletRunner sr; - - protected ArchivaConfiguration archivaConfiguration; - - protected void saveConfiguration() - throws Exception - { - saveConfiguration( archivaConfiguration ); - } - - protected void assertFileContents( String expectedContents, File repoRoot, String path ) - throws IOException - { - File actualFile = new File( repoRoot, path ); - assertTrue( "File <" + actualFile.getAbsolutePath() + "> should exist.", actualFile.exists() ); - assertTrue( "File <" + actualFile.getAbsolutePath() + "> should be a file (not a dir/link/device/etc).", - actualFile.isFile() ); - - String actualContents = FileUtils.readFileToString( actualFile, null ); - assertEquals( "File Contents of <" + actualFile.getAbsolutePath() + ">", expectedContents, actualContents ); - } - - protected void assertRepositoryValid( RepositoryServlet servlet, String repoId ) - { - ManagedRepositoryConfiguration repository = servlet.getRepository( repoId ); - assertNotNull( "Archiva Managed Repository id:<" + repoId + "> should exist.", repository ); - File repoRoot = new File( repository.getLocation() ); - assertTrue( "Archiva Managed Repository id:<" + repoId + "> should have a valid location on disk.", repoRoot - .exists() - && repoRoot.isDirectory() ); - } - - protected void assertResponseOK( WebResponse response ) - { - assertNotNull( "Should have recieved a response", response ); - Assert.assertEquals( "Should have been an OK response code.", HttpServletResponse.SC_OK, response.getResponseCode() ); - } - - protected void assertResponseNotFound( WebResponse response ) - { - assertNotNull( "Should have recieved a response", response ); - Assert.assertEquals( "Should have been an 404/Not Found response code.", HttpServletResponse.SC_NOT_FOUND, response - .getResponseCode() ); - } - - protected ManagedRepositoryConfiguration createManagedRepository( 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; - } - - protected void dumpResponse( WebResponse response ) - { - System.out.println( "---(response)---" ); - System.out.println( "" + response.getResponseCode() + " " + response.getResponseMessage() ); - - String headerNames[] = response.getHeaderFieldNames(); - for ( String headerName : headerNames ) - { - System.out.println( "[header] " + headerName + ": " + response.getHeaderField( headerName ) ); - } - - System.out.println( "---(text)---" ); - try - { - System.out.println( response.getText() ); - } - catch ( IOException e ) - { - System.err.print( "[Exception] : " ); - e.printStackTrace( System.err ); - } - } - - protected void saveConfiguration( ArchivaConfiguration archivaConfiguration ) - throws Exception - { - archivaConfiguration.save( archivaConfiguration.getConfiguration() ); - } - - protected void setUp() - throws Exception - { - super.setUp(); - - String appserverBase = getTestFile( "target/appserver-base" ).getAbsolutePath(); - System.setProperty( "appserver.base", appserverBase ); - - File testConf = getTestFile( "src/test/resources/repository-archiva.xml" ); - File testConfDest = new File( appserverBase, "conf/archiva.xml" ); - FileUtils.copyFile( testConf, testConfDest ); - - archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.class ); - repoRootInternal = new File( appserverBase, "data/repositories/internal" ); - Configuration config = archivaConfiguration.getConfiguration(); - - config.addManagedRepository( createManagedRepository( REPOID_INTERNAL, "Internal Test Repo", repoRootInternal ) ); - saveConfiguration( archivaConfiguration ); - - CacheManager.getInstance().removeCache( "url-failures-cache" ); - - HttpUnitOptions.setExceptionsThrownOnErrorStatus( false ); - - sr = new ServletRunner( getTestFile( "src/test/resources/WEB-INF/web.xml" ) ); - sr.registerServlet( "/repository/*", UnauthenticatedRepositoryServlet.class.getName() ); - sc = sr.newClient(); - } - - @Override - protected String getPlexusConfigLocation() - { - return "org/apache/maven/archiva/webdav/RepositoryServletTest.xml"; - } - - @Override - protected void tearDown() - throws Exception - { - if ( sc != null ) - { - sc.clearContents(); - } - - if ( sr != null ) - { - sr.shutDown(); - } - - if (repoRootInternal.exists()) - { - FileUtils.deleteDirectory(repoRootInternal); - } - - super.tearDown(); - } - - protected void setupCleanRepo( File repoRootDir ) - throws IOException - { - FileUtils.deleteDirectory( repoRootDir ); - if ( !repoRootDir.exists() ) - { - repoRootDir.mkdirs(); - } - } - - protected void assertManagedFileNotExists( File repoRootInternal, String resourcePath ) - { - File repoFile = new File( repoRootInternal, resourcePath ); - assertFalse( "Managed Repository File <" + repoFile.getAbsolutePath() + "> should not exist.", repoFile - .exists() ); - } - - protected void setupCleanInternalRepo() - throws Exception - { - setupCleanRepo( repoRootInternal ); - } - - protected File populateRepo( File repoRootManaged, String path, String contents ) - throws Exception - { - File destFile = new File( repoRootManaged, path ); - destFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( destFile, contents, null ); - return destFile; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java deleted file mode 100644 index e81c134e5..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java +++ /dev/null @@ -1,111 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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 junit.framework.TestCase; - -/** - * @author James William Dumay - */ -public class ArchivaDavResourceLocatorTest extends TestCase -{ - ArchivaDavLocatorFactory factory; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - factory = new ArchivaDavLocatorFactory(); - } - - public void testAvoidDoubleSlashInHref() - throws Exception - { - String prefix = "http://myproxy/"; - String href = "/repository/internal/"; - ArchivaDavResourceLocator locator = getLocator(prefix, href); - - assertEquals("internal", locator.getRepositoryId()); - assertEquals("", locator.getWorkspaceName()); - assertEquals("", locator.getWorkspacePath()); - assertEquals("http://myproxy/", locator.getPrefix()); - assertEquals("http://myproxy/repository/internal/", locator.getHref(false)); - assertEquals("http://myproxy/repository/internal/", locator.getHref(true)); - assertEquals("/repository/internal", locator.getResourcePath()); - assertEquals("/repository/internal", locator.getRepositoryPath()); - } - - public void testLocatorWithPrefixHref() - throws Exception - { - String prefix = "http://myproxy/"; - String href = "/repository/internal"; - ArchivaDavResourceLocator locator = getLocator(prefix, href); - - assertEquals("internal", locator.getRepositoryId()); - assertEquals("", locator.getWorkspaceName()); - assertEquals("", locator.getWorkspacePath()); - assertEquals("http://myproxy/", locator.getPrefix()); - assertEquals("http://myproxy/repository/internal", locator.getHref(false)); - assertEquals("http://myproxy/repository/internal/", locator.getHref(true)); - assertEquals("/repository/internal", locator.getResourcePath()); - assertEquals("/repository/internal", locator.getRepositoryPath()); - } - - public void testLocatorWithHrefThatContainsPrefix() - throws Exception - { - String prefix = "http://myproxy/"; - String href = "http://myproxy/repository/internal"; - ArchivaDavResourceLocator locator = getLocator(prefix, href); - - assertEquals("internal", locator.getRepositoryId()); - assertEquals("", locator.getWorkspaceName()); - assertEquals("", locator.getWorkspacePath()); - assertEquals("http://myproxy/", locator.getPrefix()); - assertEquals("http://myproxy/repository/internal", locator.getHref(false)); - assertEquals("http://myproxy/repository/internal/", locator.getHref(true)); - assertEquals("/repository/internal", locator.getResourcePath()); - assertEquals("/repository/internal", locator.getRepositoryPath()); - } - - public void testLocatorWithRootHref() - throws Exception - { - String prefix = "http://myproxy/"; - String href = "/"; - ArchivaDavResourceLocator locator = getLocator(prefix, href); - - assertEquals("", locator.getRepositoryId()); - assertEquals("", locator.getWorkspaceName()); - assertEquals("", locator.getWorkspacePath()); - assertEquals("http://myproxy/", locator.getPrefix()); - assertEquals("http://myproxy/", locator.getHref(false)); - assertEquals("http://myproxy/", locator.getHref(true)); - assertEquals("/", locator.getResourcePath()); - assertEquals("/", locator.getRepositoryPath()); - } - - private ArchivaDavResourceLocator getLocator( String prefix, String href ) - { - return (ArchivaDavResourceLocator)factory.createResourceLocator(prefix, href); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProviderTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProviderTest.java deleted file mode 100644 index 1b7d82bda..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProviderTest.java +++ /dev/null @@ -1,444 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.BufferedReader; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.security.Principal; -import java.util.Enumeration; -import java.util.Locale; -import java.util.Map; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletInputStream; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import junit.framework.TestCase; -import org.apache.jackrabbit.webdav.DavSessionProvider; -import org.apache.jackrabbit.webdav.WebdavRequest; -import org.apache.jackrabbit.webdav.WebdavRequestImpl; -import org.apache.maven.archiva.security.ServletAuthenticator; -import org.codehaus.plexus.redback.authentication.AuthenticationDataSource; -import org.codehaus.plexus.redback.authentication.AuthenticationException; -import org.codehaus.plexus.redback.authentication.AuthenticationResult; -import org.codehaus.plexus.redback.authorization.AuthorizationException; -import org.codehaus.plexus.redback.authorization.UnauthorizedException; -import org.codehaus.plexus.redback.policy.AccountLockedException; -import org.codehaus.plexus.redback.policy.MustChangePasswordException; -import org.codehaus.plexus.redback.system.SecuritySession; -import org.codehaus.plexus.redback.users.User; -import org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator; - -public class ArchivaDavSessionProviderTest extends TestCase -{ - private DavSessionProvider sessionProvider; - - private WebdavRequest request; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - sessionProvider = new ArchivaDavSessionProvider(new ServletAuthenticatorMock(), new HttpAuthenticatorMock(), null); - request = new WebdavRequestImpl(new HttpServletRequestMock(), null); - } - - public void testAttachSession() - throws Exception - { - assertNull(request.getDavSession()); - sessionProvider.attachSession(request); - assertNotNull(request.getDavSession()); - } - - public void testReleaseSession() - throws Exception - { - assertNull(request.getDavSession()); - sessionProvider.attachSession(request); - assertNotNull(request.getDavSession()); - - sessionProvider.releaseSession(request); - assertNull(request.getDavSession()); - } - - private class HttpServletRequestMock implements HttpServletRequest - { - public Object getAttribute(String arg0) { - throw new UnsupportedOperationException("Not supported yet."); - } - - public Enumeration getAttributeNames() { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getCharacterEncoding() { - throw new UnsupportedOperationException("Not supported yet."); - } - - public int getContentLength() { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getContentType() { - throw new UnsupportedOperationException("Not supported yet."); - } - - public ServletInputStream getInputStream() - throws IOException - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getLocalAddr() { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getLocalName() { - throw new UnsupportedOperationException("Not supported yet."); - } - - public int getLocalPort() { - throw new UnsupportedOperationException("Not supported yet."); - } - - public Locale getLocale() { - throw new UnsupportedOperationException("Not supported yet."); - } - - public Enumeration getLocales() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getParameter(String arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public Map getParameterMap() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public Enumeration getParameterNames() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String[] getParameterValues(String arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getProtocol() { - throw new UnsupportedOperationException("Not supported yet."); - } - - public BufferedReader getReader() - throws IOException - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getRealPath(String arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getRemoteAddr() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getRemoteHost() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public int getRemotePort() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public RequestDispatcher getRequestDispatcher(String arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getScheme() - { - return ""; - } - - public String getServerName() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public int getServerPort() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public boolean isSecure() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public void removeAttribute(String arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public void setAttribute(String arg0, Object arg1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public void setCharacterEncoding(String arg0) - throws UnsupportedEncodingException - { - throw new UnsupportedOperationException("Not supported yet."); - } - - - public String getAuthType() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getContextPath() - { - return "/"; - } - - public Cookie[] getCookies() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public long getDateHeader(String arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getHeader(String arg0) { - return ""; - } - - public Enumeration getHeaderNames() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public Enumeration getHeaders(String arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public int getIntHeader(String arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getMethod() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getPathInfo() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getPathTranslated() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getQueryString() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getRemoteUser() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getRequestURI() - { - return "/"; - } - - public StringBuffer getRequestURL() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getRequestedSessionId() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public String getServletPath() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public HttpSession getSession(boolean arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public HttpSession getSession() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public Principal getUserPrincipal() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public boolean isRequestedSessionIdFromCookie() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public boolean isRequestedSessionIdFromURL() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public boolean isRequestedSessionIdFromUrl() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public boolean isRequestedSessionIdValid() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public boolean isUserInRole(String arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - } - - private class ServletAuthenticatorMock implements ServletAuthenticator - { - public boolean isAuthenticated(HttpServletRequest arg0, AuthenticationResult arg1) - throws AuthenticationException, AccountLockedException, MustChangePasswordException - { - return true; - } - - public boolean isAuthorized(HttpServletRequest arg0, SecuritySession arg1, String arg2, boolean arg3) - throws AuthorizationException, UnauthorizedException - { - return true; - } - - public boolean isAuthorized(String arg0, String arg1, boolean isWriteRequest) - throws UnauthorizedException - { - return true; - } - } - - private class HttpAuthenticatorMock extends HttpAuthenticator - { - @Override - public void challenge(HttpServletRequest arg0, HttpServletResponse arg1, String arg2, AuthenticationException arg3) - throws IOException - { - //Do nothing - } - - @Override - public AuthenticationResult getAuthenticationResult(HttpServletRequest arg0, HttpServletResponse arg1) - throws AuthenticationException, AccountLockedException, MustChangePasswordException - { - return new AuthenticationResult(); - } - - - @Override - public AuthenticationResult authenticate(AuthenticationDataSource arg0) - throws AuthenticationException, AccountLockedException, MustChangePasswordException - { - return new AuthenticationResult(); - } - - @Override - public void authenticate(HttpServletRequest arg0, HttpServletResponse arg1) - throws AuthenticationException - { - //Do nothing - } - - @Override - public Map getContextSession() - { - return super.getContextSession(); - } - - @Override - public SecuritySession getSecuritySession() - { - return super.getSecuritySession(); - } - - @Override - public User getSessionUser() - { - return super.getSessionUser(); - } - - @Override - public boolean isAlreadyAuthenticated() - { - return super.isAlreadyAuthenticated(); - } - - @Override - public void setSecuritySession(SecuritySession session) - { - super.setSecuritySession(session); - } - - @Override - public void setSessionUser(User user) { - super.setSessionUser(user); - } - - @Override - public String storeDefaultUser(String user) { - return super.storeDefaultUser(user); - } - - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavSessionTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavSessionTest.java deleted file mode 100644 index 61348bc24..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavSessionTest.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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 junit.framework.TestCase; - -public class ArchivaDavSessionTest extends TestCase -{ - public void testTokens() - { - ArchivaDavSession session = new ArchivaDavSession(); - final String myToken = "thisisadavtoken"; - - session.addLockToken(myToken); - assertEquals(1, session.getLockTokens().length); - assertEquals(myToken, session.getLockTokens()[0]); - - session.removeLockToken(myToken); - assertEquals(0, session.getLockTokens().length); - } - - public void testAddReferencesThrowsUnsupportedOperationException() - { - ArchivaDavSession session = new ArchivaDavSession(); - try - { - session.addReference(new Object()); - fail("Did not throw UnsupportedOperationException"); - } - catch (UnsupportedOperationException e) - { - assertTrue(true); - } - } - - public void testRemoveReferencesThrowsUnsupportedOperationException() - { - ArchivaDavSession session = new ArchivaDavSession(); - try - { - session.removeReference(new Object()); - fail("Did not throw UnsupportedOperationException"); - } - catch (UnsupportedOperationException e) - { - assertTrue(true); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/BypassSecuritySystem.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/BypassSecuritySystem.java deleted file mode 100644 index 9ad1ae6f9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/BypassSecuritySystem.java +++ /dev/null @@ -1,134 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.redback.authentication.AuthenticationDataSource; -import org.codehaus.plexus.redback.authentication.AuthenticationException; -import org.codehaus.plexus.redback.authentication.AuthenticationResult; -import org.codehaus.plexus.redback.authorization.AuthorizationException; -import org.codehaus.plexus.redback.authorization.AuthorizationResult; -import org.codehaus.plexus.redback.keys.KeyManager; -import org.codehaus.plexus.redback.keys.memory.MemoryKeyManager; -import org.codehaus.plexus.redback.policy.AccountLockedException; -import org.codehaus.plexus.redback.policy.DefaultUserSecurityPolicy; -import org.codehaus.plexus.redback.policy.UserSecurityPolicy; -import org.codehaus.plexus.redback.system.DefaultSecuritySession; -import org.codehaus.plexus.redback.system.DefaultSecuritySystem; -import org.codehaus.plexus.redback.system.SecuritySession; -import org.codehaus.plexus.redback.system.SecuritySystem; -import org.codehaus.plexus.redback.users.UserManager; -import org.codehaus.plexus.redback.users.UserNotFoundException; -import org.codehaus.plexus.redback.users.memory.MemoryUserManager; - -/** - * BypassSecuritySystem - used to bypass the security system for testing reasons and allow - * for every request to respond as success / true. - * - * @author Joakim Erdfelt - * @version $Id$ - * - * @plexus.component - * role="org.codehaus.plexus.redback.system.SecuritySystem" - */ -public class BypassSecuritySystem - extends DefaultSecuritySystem - implements SecuritySystem -{ - private KeyManager bypassKeyManager; - private UserSecurityPolicy bypassPolicy; - private UserManager bypassUserManager; - - public BypassSecuritySystem() - { - bypassKeyManager = new MemoryKeyManager(); - bypassPolicy = new DefaultUserSecurityPolicy(); - bypassUserManager = new MemoryUserManager(); - } - - public SecuritySession authenticate( AuthenticationDataSource source ) - throws AuthenticationException, UserNotFoundException, AccountLockedException - { - AuthenticationResult result = new AuthenticationResult( true, source.getPrincipal(), null ); - return new DefaultSecuritySession( result ); - } - - public AuthorizationResult authorize( SecuritySession session, Object permission ) - throws AuthorizationException - { - return new AuthorizationResult( true, session.getUser(), null ); - } - - public AuthorizationResult authorize( SecuritySession session, Object permission, Object resource ) - throws AuthorizationException - { - return new AuthorizationResult( true, session.getUser(), null ); - } - - public String getAuthenticatorId() - { - return "bypass-authenticator"; - } - - public String getAuthorizerId() - { - return "bypass-authorizer"; - } - - public KeyManager getKeyManager() - { - return bypassKeyManager; - } - - public UserSecurityPolicy getPolicy() - { - return bypassPolicy; - } - - public String getUserManagementId() - { - return "bypass-managementid"; - } - - public UserManager getUserManager() - { - return bypassUserManager; - } - - public boolean isAuthenticated( AuthenticationDataSource source ) - throws AuthenticationException, UserNotFoundException, AccountLockedException - { - // Always true - return true; - } - - public boolean isAuthorized( SecuritySession session, Object permission ) - throws AuthorizationException - { - // Always true - return true; - } - - public boolean isAuthorized( SecuritySession session, Object permission, Object resource ) - throws AuthorizationException - { - // Always true - return true; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java deleted file mode 100644 index b53007004..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java +++ /dev/null @@ -1,309 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.io.FileUtils; -import org.apache.jackrabbit.webdav.DavException; -import org.apache.jackrabbit.webdav.DavResource; -import org.apache.jackrabbit.webdav.DavResourceFactory; -import org.apache.jackrabbit.webdav.DavResourceLocator; -import org.apache.jackrabbit.webdav.DavServletRequest; -import org.apache.jackrabbit.webdav.DavServletResponse; -import org.apache.jackrabbit.webdav.DavSession; -import org.apache.jackrabbit.webdav.lock.ActiveLock; -import org.apache.jackrabbit.webdav.lock.LockInfo; -import org.apache.jackrabbit.webdav.lock.LockManager; -import org.apache.jackrabbit.webdav.lock.Scope; -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.scanner.RepositoryContentConsumers; -import org.apache.maven.archiva.security.ArchivaXworkUser; -import org.apache.maven.archiva.webdav.util.MimeTypes; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.codehaus.plexus.spring.PlexusToSpringUtils; - -import edu.emory.mathcs.backport.java.util.Collections; - -public class DavResourceTest extends PlexusInSpringTestCase -{ - private DavSession session; - - private MimeTypes mimeTypes; - - private ArchivaDavResourceLocator resourceLocator; - - private DavResourceFactory resourceFactory; - - private File baseDir; - - private final String REPOPATH = "myresource.jar"; - - private File myResource; - - private DavResource resource; - - private LockManager lockManager; - - private RepositoryContentConsumers consumers; - - private ManagedRepositoryConfiguration repository = new ManagedRepositoryConfiguration(); - - private ArchivaXworkUser archivaXworkUser; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - session = new ArchivaDavSession(); - mimeTypes = (MimeTypes)getApplicationContext().getBean(PlexusToSpringUtils.buildSpringId(MimeTypes.class)); - baseDir = getTestFile("target/DavResourceTest"); - baseDir.mkdirs(); - myResource = new File(baseDir, "myresource.jar"); - assertTrue("Could not create " + myResource.getAbsolutePath(), myResource.createNewFile()); - resourceFactory = new RootContextDavResourceFactory(); - resourceLocator = (ArchivaDavResourceLocator)new ArchivaDavLocatorFactory().createResourceLocator("/", REPOPATH); - resource = getDavResource(resourceLocator.getHref(false), myResource); - lockManager = new SimpleLockManager(); - resource.addLockManager(lockManager); - consumers = new RepositoryContentConsumers(); - archivaXworkUser = (ArchivaXworkUser) getApplicationContext().getBean( PlexusToSpringUtils.buildSpringId( ArchivaXworkUser.class ) ); - } - - @Override - protected void tearDown() - throws Exception - { - super.tearDown(); - release(mimeTypes); - FileUtils.deleteDirectory(baseDir); - } - - private DavResource getDavResource(String logicalPath, File file) - { - return new ArchivaDavResource( file.getAbsolutePath(), logicalPath, repository, session, resourceLocator, - resourceFactory, mimeTypes, Collections.emptyList(), consumers, archivaXworkUser ); - } - - public void testDeleteNonExistantResourceShould404() - throws Exception - { - File dir = new File(baseDir, "testdir"); - try - { - DavResource directoryResource = getDavResource("/testdir", dir); - directoryResource.getCollection().removeMember(directoryResource); - fail("Did not throw DavException"); - } - catch (DavException e) - { - assertEquals(DavServletResponse.SC_NOT_FOUND, e.getErrorCode()); - } - } - - public void testDeleteCollection() - throws Exception - { - File dir = new File(baseDir, "testdir"); - try - { - assertTrue(dir.mkdir()); - DavResource directoryResource = getDavResource("/testdir", dir); - directoryResource.getCollection().removeMember(directoryResource); - assertFalse(dir.exists()); - } - finally - { - FileUtils.deleteDirectory(dir); - } - } - - public void testDeleteResource() - throws Exception - { - assertTrue(myResource.exists()); - resource.getCollection().removeMember(resource); - assertFalse(myResource.exists()); - } - - public void testIsLockable() - { - assertTrue(resource.isLockable(Type.WRITE, Scope.EXCLUSIVE)); - assertFalse(resource.isLockable(Type.WRITE, Scope.SHARED)); - } - - public void testLock() - throws Exception - { - assertEquals(0, resource.getLocks().length); - - LockInfo info = new LockInfo(Scope.EXCLUSIVE, Type.WRITE, "/", 0, false); - lockManager.createLock(info, resource); - - assertEquals(1, resource.getLocks().length); - } - - public void testLockIfResourceUnlockable() - throws Exception - { - assertEquals(0, resource.getLocks().length); - - LockInfo info = new LockInfo(Scope.SHARED, Type.WRITE, "/", 0, false); - try - { - lockManager.createLock(info, resource); - fail("Did not throw dav exception"); - } - catch (Exception e) - { - //Simple lock manager will die - } - assertEquals(0, resource.getLocks().length); - } - - public void testGetLock() - throws Exception - { - LockInfo info = new LockInfo(Scope.EXCLUSIVE, Type.WRITE, "/", 0, false); - lockManager.createLock(info, resource); - - assertEquals(1, resource.getLocks().length); - - //Lock should exist - assertNotNull(resource.getLock(Type.WRITE, Scope.EXCLUSIVE)); - - //Lock should not exist - assertNull(resource.getLock(Type.WRITE, Scope.SHARED)); - } - - - public void testRefreshLockThrowsExceptionIfNoLockIsPresent() - throws Exception - { - LockInfo info = new LockInfo(Scope.EXCLUSIVE, Type.WRITE, "/", 0, false); - - assertEquals(0, resource.getLocks().length); - - try - { - lockManager.refreshLock(info, "notoken", resource); - fail("Did not throw dav exception"); - } - catch (DavException e) - { - assertEquals(DavServletResponse.SC_PRECONDITION_FAILED, e.getErrorCode()); - } - - assertEquals(0, resource.getLocks().length); - } - - public void testRefreshLock() - throws Exception - { - LockInfo info = new LockInfo(Scope.EXCLUSIVE, Type.WRITE, "/", 0, false); - - assertEquals(0, resource.getLocks().length); - - lockManager.createLock(info, resource); - - assertEquals(1, resource.getLocks().length); - - ActiveLock lock = resource.getLocks()[0]; - - lockManager.refreshLock(info, lock.getToken(), resource); - - assertEquals(1, resource.getLocks().length); - } - - public void testUnlock() - throws Exception - { - LockInfo info = new LockInfo(Scope.EXCLUSIVE, Type.WRITE, "/", 0, false); - - assertEquals(0, resource.getLocks().length); - - lockManager.createLock(info, resource); - - assertEquals(1, resource.getLocks().length); - - ActiveLock lock = resource.getLocks()[0]; - - lockManager.releaseLock(lock.getToken(), resource); - - assertEquals(0, resource.getLocks().length); - } - - public void testUnlockThrowsDavExceptionIfNotLocked() - throws Exception - { - LockInfo info = new LockInfo(Scope.EXCLUSIVE, Type.WRITE, "/", 0, false); - - assertEquals(0, resource.getLocks().length); - - lockManager.createLock(info, resource); - - assertEquals(1, resource.getLocks().length); - - try - { - lockManager.releaseLock("BLAH", resource); - fail("Did not throw DavException"); - } - catch (DavException e) - { - assertEquals(DavServletResponse.SC_LOCKED, e.getErrorCode()); - } - - assertEquals(1, resource.getLocks().length); - } - - public void testUnlockThrowsDavExceptionIfResourceNotLocked() - throws Exception - { - assertEquals(0, resource.getLocks().length); - - try - { - lockManager.releaseLock("BLAH", resource); - fail("Did not throw DavException"); - } - catch (DavException e) - { - assertEquals(DavServletResponse.SC_PRECONDITION_FAILED, e.getErrorCode()); - } - - assertEquals(0, resource.getLocks().length); - } - - private class RootContextDavResourceFactory implements DavResourceFactory - { - public DavResource createResource(DavResourceLocator locator, DavServletRequest request, DavServletResponse response) throws DavException { - throw new UnsupportedOperationException("Not supported yet."); - } - - public DavResource createResource(DavResourceLocator locator, DavSession session) throws DavException { - return new ArchivaDavResource( baseDir.getAbsolutePath(), "/", repository, session, resourceLocator, - resourceFactory, mimeTypes, Collections.emptyList(), consumers, archivaXworkUser ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/MimeTypesLoaderTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/MimeTypesLoaderTest.java deleted file mode 100644 index 49c10b9c3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/MimeTypesLoaderTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.webdav.util.MimeTypes; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -/** - * ArchivaMimeTypesTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class MimeTypesLoaderTest - extends PlexusInSpringTestCase -{ - public void testArchivaTypes() - throws Exception - { - lookup( MimeTypes.class ); - MimeTypes mimeTypes = (MimeTypes) lookup( MimeTypes.class ); - assertNotNull( mimeTypes ); - - // Test for some added types. - assertEquals( "sha1", "text/plain", mimeTypes.getMimeType( "foo.sha1" ) ); - assertEquals( "md5", "text/plain", mimeTypes.getMimeType( "foo.md5" ) ); - assertEquals( "pgp", "application/pgp-encrypted", mimeTypes.getMimeType( "foo.pgp" ) ); - assertEquals( "jar", "application/java-archive", mimeTypes.getMimeType( "foo.jar" ) ); - assertEquals( "Default", "application/octet-stream", mimeTypes.getMimeType(".SomeUnknownExtension")); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java deleted file mode 100644 index 169c90fab..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java +++ /dev/null @@ -1,108 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.WebLink; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -import java.io.File; - -import javax.servlet.http.HttpServletResponse; - -/** - * RepositoryServletBrowseTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletBrowseTest - extends AbstractRepositoryServletTestCase -{ - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - new File( repoRootInternal, "org/apache/archiva" ).mkdirs(); - new File( repoRootInternal, "org/codehaus/mojo/" ).mkdirs(); - new File( repoRootInternal, "net/sourceforge" ).mkdirs(); - new File( repoRootInternal, "commons-lang" ).mkdirs(); - } - - public void testBrowse() - throws Exception - { - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" ); - WebResponse response = sc.getResponse( request ); - assertEquals( "Response", HttpServletResponse.SC_OK, response.getResponseCode() ); - - // dumpResponse( response ); - - String expectedLinks[] = new String[] { "commons-lang/", "net/", "org/" }; - assertLinks(expectedLinks, response.getLinks()); - } - - public void testBrowseSubdirectory() - throws Exception - { - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/org" ); - WebResponse response = sc.getResponse( request ); - assertEquals( "Response", HttpServletResponse.SC_OK, response.getResponseCode() ); - - String expectedLinks[] = new String[] { "../", "apache/", "codehaus/" }; - assertLinks(expectedLinks, response.getLinks()); - } - - public void testGetDirectoryWhichHasMatchingFile() //MRM-893 - throws Exception - { - new File( repoRootInternal, "org/apache/archiva/artifactId/1.0" ).mkdirs(); - new File( repoRootInternal, "org/apache/archiva/artifactId/1.0/artifactId-1.0.jar" ).createNewFile(); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/org/apache/archiva/artifactId" ); - WebResponse response = sc.getResponse( request ); - assertEquals( "Response", HttpServletResponse.SC_OK, response.getResponseCode() ); - - request = new GetMethodWebRequest( "http://machine.com/repository/internal/org/apache/archiva/artifactId/" ); - response = sc.getResponse( request ); - assertEquals( "Response", HttpServletResponse.SC_OK, response.getResponseCode() ); - - request = new GetMethodWebRequest( "http://machine.com/repository/internal/org/apache/archiva/artifactId/1.0/artifactId-1.0.jar" ); - response = sc.getResponse( request ); - assertEquals( "Response", HttpServletResponse.SC_OK, response.getResponseCode() ); - - request = new GetMethodWebRequest( "http://machine.com/repository/internal/org/apache/archiva/artifactId/1.0/artifactId-1.0.jar/" ); - response = sc.getResponse( request ); - assertEquals( "Response", HttpServletResponse.SC_NOT_FOUND, response.getResponseCode() ); - } - - - private void assertLinks(String expectedLinks[], WebLink actualLinks[]) - { - assertEquals( "Links.length", expectedLinks.length, actualLinks.length ); - for ( int i = 0; i < actualLinks.length; i++ ) - { - assertEquals( "Link[" + i + "]", expectedLinks[i], actualLinks[i].getURLString() ); - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletDeployTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletDeployTest.java deleted file mode 100644 index 05c0db18d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletDeployTest.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.PutMethodWebRequest; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -import java.io.File; -import java.io.InputStream; - -import javax.servlet.http.HttpServletResponse; -import org.apache.maven.archiva.webdav.httpunit.MkColMethodWebRequest; - - -/** - * Deploy / Put Test cases for RepositoryServlet. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletDeployTest - extends AbstractRepositoryServletTestCase -{ - public void testPutWithMissingParentCollection() - throws Exception - { - setupCleanRepo( repoRootInternal ); - - String putUrl = "http://machine.com/repository/internal/path/to/artifact.jar"; - InputStream is = getClass().getResourceAsStream( "/artifact.jar" ); - assertNotNull( "artifact.jar inputstream", is ); - - WebRequest request = new PutMethodWebRequest( putUrl, is, "application/octet-stream" ); - - WebResponse response = sc.getResponse( request ); - assertResponseCreated( response ); - assertFileContents( "artifact.jar\n", repoRootInternal, "path/to/artifact.jar" ); - } - - public void testMkColWithMissingParentCollectionFails() - throws Exception - { - setupCleanRepo( repoRootInternal ); - - String putUrl = "http://machine.com/repository/internal/path/to/"; - - WebRequest request = new MkColMethodWebRequest( putUrl ); - - WebResponse response = sc.getResponse( request ); - - assertEquals(HttpServletResponse.SC_CONFLICT, response.getResponseCode()); - - File mkColLocalPath = new File(repoRootInternal, "path/to/"); - assertFalse(mkColLocalPath.exists()); - } - - protected void assertResponseCreated( WebResponse response ) - { - assertNotNull( "Should have recieved a response", response ); - assertEquals( "Should have been a 201/CREATED response code.", HttpServletResponse.SC_CREATED, response - .getResponseCode() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletNoProxyMetadataTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletNoProxyMetadataTest.java deleted file mode 100644 index 5efdb52eb..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletNoProxyMetadataTest.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; -import org.apache.commons.io.FileUtils; - -import java.io.File; - -/** - * RepositoryServletTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletNoProxyMetadataTest - extends AbstractRepositoryServletTestCase -{ - public void testGetVersionMetadataDefaultLayout() - throws Exception - { - String commonsLangMetadata = "commons-lang/commons-lang/2.1/maven-metadata.xml"; - String expectedMetadataContents = "metadata-for-commons-lang-version-2.1"; - - File checksumFile = new File( repoRootInternal, commonsLangMetadata ); - checksumFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( checksumFile, expectedMetadataContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedMetadataContents, response.getText() ); - } - - public void testGetProjectMetadataDefaultLayout() - throws Exception - { - String commonsLangMetadata = "commons-lang/commons-lang/maven-metadata.xml"; - String expectedMetadataContents = "metadata-for-commons-lang-version-for-project"; - - File checksumFile = new File( repoRootInternal, commonsLangMetadata ); - checksumFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( checksumFile, expectedMetadataContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedMetadataContents, response.getText() ); - } - - public void testGetGroupMetadataDefaultLayout() - throws Exception - { - String commonsLangMetadata = "commons-lang/maven-metadata.xml"; - String expectedMetadataContents = "metadata-for-commons-lang-group"; - - File checksumFile = new File( repoRootInternal, commonsLangMetadata ); - checksumFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( checksumFile, expectedMetadataContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedMetadataContents, response.getText() ); - } - - public void testGetSnapshotVersionMetadataDefaultLayout() - throws Exception - { - String assemblyPluginMetadata = "org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-2-SNAPSHOT/maven-metadata.xml"; - String expectedMetadataContents = "metadata-for-assembly-plugin-version-2.2-beta-2-SNAPSHOT"; - - File checksumFile = new File( repoRootInternal, assemblyPluginMetadata ); - checksumFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( checksumFile, expectedMetadataContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + assemblyPluginMetadata ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedMetadataContents, response.getText() ); - } - -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletNoProxyTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletNoProxyTest.java deleted file mode 100644 index b6b0094b3..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletNoProxyTest.java +++ /dev/null @@ -1,274 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; -import org.apache.commons.io.FileUtils; - -import java.io.File; - -/** - * RepositoryServletTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletNoProxyTest - extends AbstractRepositoryServletTestCase -{ - public void testLastModifiedHeaderExists() - throws Exception - { - String commonsLangSha1 = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1"; - - File checksumFile = new File( repoRootInternal, commonsLangSha1 ); - checksumFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( checksumFile, "dummy-checksum", null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangSha1 ); - WebResponse response = sc.getResponse( request ); - - assertNotNull(response.getHeaderField("last-modified")); - } - - public void testGetNoProxyChecksumDefaultLayout() - throws Exception - { - String commonsLangSha1 = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1"; - - File checksumFile = new File( repoRootInternal, commonsLangSha1 ); - checksumFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( checksumFile, "dummy-checksum", null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangSha1 ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", "dummy-checksum", response.getText() ); - } - - public void testGetNoProxyChecksumLegacyLayout() - throws Exception - { - String commonsLangSha1 = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1"; - - File checksumFile = new File( repoRootInternal, commonsLangSha1 ); - checksumFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( checksumFile, "dummy-checksum", null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" - + "commons-lang/jars/commons-lang-2.1.jar.sha1" ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", "dummy-checksum", response.getText() ); - } - - public void testGetNoProxyVersionedMetadataDefaultLayout() - throws Exception - { - String commonsLangMetadata = "commons-lang/commons-lang/2.1/maven-metadata.xml"; - String expectedMetadataContents = "dummy-versioned-metadata"; - - File metadataFile = new File( repoRootInternal, commonsLangMetadata ); - metadataFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( metadataFile, expectedMetadataContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedMetadataContents, response.getText() ); - } - - public void testGetNoProxyProjectMetadataDefaultLayout() - throws Exception - { - String commonsLangMetadata = "commons-lang/commons-lang/maven-metadata.xml"; - String expectedMetadataContents = "dummy-project-metadata"; - - File metadataFile = new File( repoRootInternal, commonsLangMetadata ); - metadataFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( metadataFile, expectedMetadataContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedMetadataContents, response.getText() ); - } - - public void testGetNoProxyGroupMetadataDefaultLayout() - throws Exception - { - String commonsLangMetadata = "commons-lang/maven-metadata.xml"; - String expectedMetadataContents = "dummy-group-metadata"; - - File metadataFile = new File( repoRootInternal, commonsLangMetadata ); - metadataFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( metadataFile, expectedMetadataContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedMetadataContents, response.getText() ); - } - - public void testGetNoProxyArtifactDefaultLayout() - throws Exception - { - String commonsLangJar = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar"; - String expectedArtifactContents = "dummy-commons-lang-artifact"; - - File artifactFile = new File( repoRootInternal, commonsLangJar ); - artifactFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedArtifactContents, response.getText() ); - } - - public void testGetNoProxyArtifactLegacyLayout() - throws Exception - { - String commonsLangJar = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar"; - String expectedArtifactContents = "dummy-commons-lang-artifact"; - - File artifactFile = new File( repoRootInternal, commonsLangJar ); - artifactFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" - + "commons-lang/jars/commons-lang-2.1.jar" ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedArtifactContents, response.getText() ); - } - - public void testGetNoProxySnapshotArtifactDefaultLayout() - throws Exception - { - String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-SNAPSHOT.jar"; - String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact"; - - File artifactFile = new File( repoRootInternal, commonsLangJar ); - artifactFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedArtifactContents, response.getText() ); - } - - public void testGetNoProxySnapshotArtifactLegacyLayout() - throws Exception - { - String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-SNAPSHOT.jar"; - String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact"; - - File artifactFile = new File( repoRootInternal, commonsLangJar ); - artifactFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" - + "commons-lang/jars/commons-lang-2.1-SNAPSHOT.jar" ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedArtifactContents, response.getText() ); - } - - public void testGetNoProxyTimestampedSnapshotArtifactDefaultLayout() - throws Exception - { - String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-20050821.023400-1.jar"; - String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact"; - - File artifactFile = new File( repoRootInternal, commonsLangJar ); - artifactFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedArtifactContents, response.getText() ); - } - - public void testGetNoProxyTimestampedSnapshotArtifactLegacyLayout() - throws Exception - { - String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-20050821.023400-1.jar"; - String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact"; - - File artifactFile = new File( repoRootInternal, commonsLangJar ); - artifactFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" - + "commons-lang/jars/commons-lang-2.1-20050821.023400-1.jar" ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedArtifactContents, response.getText() ); - } - - /** - * [MRM-481] Artifact requests with a .xml.zip extension fail with a 404 Error - */ - public void testGetNoProxyDualExtensionDefaultLayout() - throws Exception - { - String expectedContents = "the-contents-of-the-dual-extension"; - String dualExtensionPath = "org/project/example-presentation/3.2/example-presentation-3.2.xml.zip"; - - File checksumFile = new File( repoRootInternal, dualExtensionPath ); - checksumFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( checksumFile, expectedContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + dualExtensionPath ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - - assertEquals( "Expected file contents", expectedContents, response.getText() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedMetadataLocalOnlyTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedMetadataLocalOnlyTest.java deleted file mode 100644 index 6c9d7dac8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedMetadataLocalOnlyTest.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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. - */ - -/** - * RepositoryServlet Tests, Proxied, Get of Metadata, exists on local managed repository only. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletProxiedMetadataLocalOnlyTest - extends AbstractRepositoryServletProxiedMetadataTestCase -{ - public void testGetProxiedSnapshotVersionMetadataLocalOnly() - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupPrivateSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String path = "org/apache/archiva/archivatest-maven-plugin/4.0-alpha-1-SNAPSHOT/maven-metadata.xml"; - String expectedMetadata = createVersionMetadata( "org.apache.archiva", "archivatest-maven-plugin", - "4.0-alpha-1-SNAPSHOT" ); - - populateRepo( repoRootInternal, path, expectedMetadata ); - - setupConnector( REPOID_INTERNAL, remoteSnapshots ); - setupConnector( REPOID_INTERNAL, remotePrivateSnapshots ); - - // --- Execution - String actualMetadata = requestMetadataOK( path ); - - // --- Verification - assertExpectedMetadata( expectedMetadata, actualMetadata ); - } - - public void testGetProxiedVersionMetadataLocalOnly() - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupPrivateSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String path = "org/apache/archiva/archivatest-maven-plugin/4.0-alpha-2/maven-metadata.xml"; - String expectedMetadata = createVersionMetadata( "org.apache.archiva", "archivatest-maven-plugin", - "4.0-alpha-2" ); - - populateRepo( repoRootInternal, path, expectedMetadata ); - - // --- Execution - String actualMetadata = requestMetadataOK( path ); - - // --- Verification - assertExpectedMetadata( expectedMetadata, actualMetadata ); - } - - public void testGetProxiedProjectMetadataLocalOnly() - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupPrivateSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String path = "org/apache/archiva/archivatest-maven-plugin/maven-metadata.xml"; - String version = "1.0-alpha-4"; - String release = "1.0-alpha-4"; - String expectedMetadata = createProjectMetadata( "org.apache.archiva", "archivatest-maven-plugin", version, - release, new String[] { "1.0-alpha-4" } ); - - populateRepo( repoRootInternal, path, expectedMetadata ); - - // --- Execution - String actualMetadata = requestMetadataOK( path ); - - // --- Verification - assertExpectedMetadata( expectedMetadata, actualMetadata ); - } - - public void testGetProxiedGroupMetadataLocalOnly() - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupPrivateSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String path = "org/apache/archiva/maven-metadata.xml"; - String expectedMetadata = createGroupMetadata( "org.apache.archiva", new String[] { "archivatest-maven-plugin" } ); - - populateRepo( repoRootInternal, path, expectedMetadata ); - - // --- Execution - String actualMetadata = requestMetadataOK( path ); - - // --- Verification - assertExpectedMetadata( expectedMetadata, actualMetadata ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedMetadataRemoteOnlyTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedMetadataRemoteOnlyTest.java deleted file mode 100644 index 9a2af21c8..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedMetadataRemoteOnlyTest.java +++ /dev/null @@ -1,166 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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; - -/** - * RepositoryServlet Tests, Proxied, Get of Metadata, exists on remote repository only. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletProxiedMetadataRemoteOnlyTest - extends AbstractRepositoryServletProxiedMetadataTestCase -{ - public void testGetProxiedSnapshotVersionMetadataRemoteOnly() - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupPrivateSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String path = "org/apache/archiva/archivatest-maven-plugin/4.0-alpha-1-SNAPSHOT/maven-metadata.xml"; - String version = "4.0-alpha-1-SNAPSHOT"; - String timestamp = "20040305.112233"; - String buildNumber = "2"; - String lastUpdated = "20040305112233"; - String expectedMetadata = createVersionMetadata( "org.apache.archiva", "archivatest-maven-plugin", - version, timestamp, buildNumber, lastUpdated); - - File metadataFile = populateRepo( remoteSnapshots, path, expectedMetadata ); - - setupConnector( REPOID_INTERNAL, remoteSnapshots ); - setupConnector( REPOID_INTERNAL, remotePrivateSnapshots ); - saveConfiguration(); - - // --- Execution - String actualMetadata = requestMetadataOK( path ); - - // --- Verification - assertExpectedMetadata( expectedMetadata, actualMetadata ); - } - - public void testGetProxiedPluginSnapshotVersionMetadataRemoteOnly() - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupPrivateSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String path = "org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-2-SNAPSHOT/maven-metadata.xml"; - String version = "2.2-beta-2-SNAPSHOT"; - String timestamp = "20071017.162810"; - String buildNumber = "20"; - String lastUpdated = "20071017162810"; - String expectedMetadata = createVersionMetadata( "org.apache.maven.plugins", "maven-assembly-plugin", version, - timestamp, buildNumber, lastUpdated ); - - File metadataFile = populateRepo( remoteSnapshots, path, expectedMetadata ); - - setupConnector( REPOID_INTERNAL, remoteSnapshots ); - setupConnector( REPOID_INTERNAL, remotePrivateSnapshots ); - saveConfiguration(); - - // --- Execution - String actualMetadata = requestMetadataOK( path ); - - // --- Verification - assertExpectedMetadata( expectedMetadata, actualMetadata ); - } - - public void testGetProxiedVersionMetadataRemoteOnly() - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupPrivateSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String path = "org/apache/archiva/archivatest-maven-plugin/4.0-alpha-2/maven-metadata.xml"; - String expectedMetadata = createVersionMetadata( "org.apache.archiva", "archivatest-maven-plugin", - "4.0-alpha-2" ); - - File managedFile = populateRepo( remoteSnapshots, path, expectedMetadata ); - - setupConnector( REPOID_INTERNAL, remoteSnapshots ); - setupConnector( REPOID_INTERNAL, remotePrivateSnapshots ); - saveConfiguration(); - - // --- Execution - String actualMetadata = requestMetadataOK( path ); - - // --- Verification - assertExpectedMetadata( expectedMetadata, actualMetadata ); - } - - public void testGetProxiedProjectMetadataRemoteOnly() - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupPrivateSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String path = "org/apache/archiva/archivatest-maven-plugin/maven-metadata.xml"; - String latest = "1.0-alpha-4"; - String release = "1.0-alpha-4"; - String expectedMetadata = createProjectMetadata( "org.apache.archiva", "archivatest-maven-plugin", - latest, release, new String[] { "1.0-alpha-4" } ); - - File managedFile = populateRepo( remoteSnapshots, path, expectedMetadata ); - - setupConnector( REPOID_INTERNAL, remoteSnapshots ); - setupConnector( REPOID_INTERNAL, remotePrivateSnapshots ); - saveConfiguration(); - - // --- Execution - String actualMetadata = requestMetadataOK( path ); - - // --- Verification - assertExpectedMetadata( expectedMetadata, actualMetadata ); - } - - public void testGetProxiedGroupMetadataRemoteOnly() - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupPrivateSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String path = "org/apache/archiva/maven-metadata.xml"; - String expectedMetadata = createGroupMetadata( "org.apache.archiva", new String[] { "archivatest-maven-plugin" } ); - - File managedFile = populateRepo( remoteSnapshots, path, expectedMetadata ); - - setupConnector( REPOID_INTERNAL, remoteSnapshots ); - setupConnector( REPOID_INTERNAL, remotePrivateSnapshots ); - saveConfiguration(); - - // --- Execution - String actualMetadata = requestMetadataOK( path ); - - // --- Verification - assertExpectedMetadata( expectedMetadata, actualMetadata ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedPassthroughTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedPassthroughTest.java deleted file mode 100644 index 2de368b6b..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedPassthroughTest.java +++ /dev/null @@ -1,156 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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 com.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.HttpUnitOptions; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -/** - * RepositoryServlet Tests, Proxied, Get of resources that are not artifacts or metadata, with varying policy settings. - * - * @author Joakim Erdfelt - * @version $Id: RepositoryServletProxiedReleasePolicyTest.java 661174 2008-05-29 01:49:41Z jdumay $ - */ -public class RepositoryServletProxiedPassthroughTest - extends AbstractRepositoryServletProxiedTestCase -{ - private static final String CONTENT_SHA1 = "2aab0a51c04c9023636852f3e63a68034ba10142"; - - private static final String PATH_SHA1 = "org/apache/archiva/test/1.0/test-1.0.jar.sha1"; - - private static final String CONTENT_ASC = - "-----BEGIN PGP SIGNATURE-----\n" + "Version: GnuPG v1.4.8 (Darwin)\n" + "\n" - + "iEYEABECAAYFAkiAIVgACgkQxbsDNW2stZZjyACeK3LW+ZDeawCyJj4XgvUaJkNh\n" - + "qIEAoIUiijY4Iw82RWOT75Rt3yZuY6ZI\n" + "=WLkm\n" + "-----END PGP SIGNATURE-----\n"; - - private static final String PATH_ASC = "org/apache/archiva/test/1.0/test-1.0.jar.asc"; - - public void testGetProxiedManagedNewerSha1() - throws Exception - { - assertGetProxiedResource( EXPECT_MANAGED_CONTENTS, HAS_MANAGED_COPY, ( NEWER * OVER_ONE_DAY ), PATH_SHA1, - CONTENT_SHA1 ); - } - - public void testGetProxiedManagedOlderSha1() - throws Exception - { - assertGetProxiedResource( EXPECT_REMOTE_CONTENTS, HAS_MANAGED_COPY, ( OLDER * OVER_ONE_DAY ), PATH_SHA1, - CONTENT_SHA1 ); - } - - public void testGetProxiedNoManagedContentSha1() - throws Exception - { - assertGetProxiedResource( EXPECT_REMOTE_CONTENTS, NO_MANAGED_COPY, PATH_SHA1, CONTENT_SHA1 ); - } - - public void testGetProxiedEqualSha1() - throws Exception - { - assertGetProxiedResource( EXPECT_MANAGED_CONTENTS, HAS_MANAGED_COPY, PATH_SHA1, CONTENT_SHA1 ); - } - - public void testGetProxiedManagedNewerAsc() - throws Exception - { - assertGetProxiedResource( EXPECT_MANAGED_CONTENTS, HAS_MANAGED_COPY, ( NEWER * OVER_ONE_DAY ), PATH_ASC, - CONTENT_ASC ); - } - - public void testGetProxiedManagedOlderAsc() - throws Exception - { - assertGetProxiedResource( EXPECT_REMOTE_CONTENTS, HAS_MANAGED_COPY, ( OLDER * OVER_ONE_DAY ), PATH_ASC, - CONTENT_ASC ); - } - - public void testGetProxiedNoManagedContentAsc() - throws Exception - { - assertGetProxiedResource( EXPECT_REMOTE_CONTENTS, NO_MANAGED_COPY, PATH_ASC, CONTENT_ASC ); - } - - public void testGetProxiedEqualAsc() - throws Exception - { - assertGetProxiedResource( EXPECT_MANAGED_CONTENTS, HAS_MANAGED_COPY, PATH_ASC, CONTENT_ASC ); - } - - private void assertGetProxiedResource( int expectation, boolean hasManagedCopy, String path, String content ) - throws Exception - { - assertGetProxiedResource( expectation, hasManagedCopy, 0, path, content ); - } - - private void assertGetProxiedResource( int expectation, boolean hasManagedCopy, long deltaManagedToRemoteTimestamp, - String path, String contents ) - throws Exception - { - // --- Setup - setupCentralRemoteRepo(); - setupCleanInternalRepo(); - - String expectedRemoteContents = contents; - String expectedManagedContents = null; - File remoteFile = populateRepo( remoteCentral, path, expectedRemoteContents ); - - if ( hasManagedCopy ) - { - expectedManagedContents = contents; - File managedFile = populateRepo( repoRootInternal, path, expectedManagedContents ); - managedFile.setLastModified( remoteFile.lastModified() + deltaManagedToRemoteTimestamp ); - } - - setupConnector( REPOID_INTERNAL, remoteCentral ); - saveConfiguration(); - - // --- Execution - // process the response code later, not via an exception. - HttpUnitOptions.setExceptionsThrownOnErrorStatus( false ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + path ); - WebResponse response = sc.getResponse( request ); - - // --- Verification - - switch ( expectation ) - { - case EXPECT_MANAGED_CONTENTS: - assertResponseOK( response ); - assertTrue( "Invalid Test Case: Can't expect managed contents with " - + "test that doesn't have a managed copy in the first place.", hasManagedCopy ); - assertEquals( "Expected managed file contents", expectedManagedContents, response.getText() ); - break; - case EXPECT_REMOTE_CONTENTS: - assertResponseOK( response ); - assertEquals( "Expected remote file contents", expectedRemoteContents, response.getText() ); - break; - case EXPECT_NOT_FOUND: - assertResponseNotFound( response ); - assertManagedFileNotExists( repoRootInternal, path ); - break; - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedPluginSnapshotPolicyTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedPluginSnapshotPolicyTest.java deleted file mode 100644 index a776b5dce..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedPluginSnapshotPolicyTest.java +++ /dev/null @@ -1,195 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.HttpUnitOptions; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -import org.apache.maven.archiva.policies.SnapshotsPolicy; - -import java.io.File; - -/** - * RepositoryServlet Tests, Proxied, Get of Timestamped Snapshot Artifacts, with varying policy settings. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletProxiedPluginSnapshotPolicyTest - extends AbstractRepositoryServletProxiedTestCase -{ - public void testGetProxiedSnapshotsArtifactPolicyAlwaysManagedNewer() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.ALWAYS, - HAS_MANAGED_COPY, ( NEWER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyAlwaysManagedOlder() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ALWAYS, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyAlwaysNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ALWAYS, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyDailyFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.DAILY, HAS_MANAGED_COPY, - ( NEWER * ONE_MINUTE ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyDailyNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.DAILY, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyDailyPass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.DAILY, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyRejectFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.NEVER, - HAS_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyRejectNoManagedContentFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_NOT_FOUND, SnapshotsPolicy.NEVER, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyRejectPass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.NEVER, - HAS_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyHourlyFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.HOURLY, HAS_MANAGED_COPY, - ( NEWER * ONE_MINUTE ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyHourlyNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.HOURLY, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyHourlyPass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.HOURLY, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_HOUR ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyOnceFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.ONCE, HAS_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyOnceNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ONCE, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyOncePass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ONCE, NO_MANAGED_COPY ); - } - - private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation, String snapshotsPolicy, - boolean hasManagedCopy ) - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( expectation, snapshotsPolicy, hasManagedCopy, 0 ); - } - - private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation, String snapshotsPolicy, - boolean hasManagedCopy, long deltaManagedToRemoteTimestamp ) - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String resourcePath = "org/apache/archiva/archivatest-maven-plugin/4.0-alpha-1-SNAPSHOT/archivatest-maven-plugin-4.0-alpha-1-20070822.033400-42.jar"; - String expectedRemoteContents = "archivatest-maven-plugin-4.0-alpha-1-20070822.033400-42|jar-remote-contents"; - String expectedManagedContents = null; - File remoteFile = populateRepo( remoteSnapshots, resourcePath, expectedRemoteContents ); - - if ( hasManagedCopy ) - { - expectedManagedContents = "archivatest-maven-plugin-4.0-alpha-1-20070822.033400-42|jar-managed-contents"; - File managedFile = populateRepo( repoRootInternal, resourcePath, expectedManagedContents ); - managedFile.setLastModified( remoteFile.lastModified() + deltaManagedToRemoteTimestamp ); - } - - setupSnapshotConnector( REPOID_INTERNAL, remoteSnapshots, snapshotsPolicy ); - saveConfiguration(); - - // --- Execution - // process the response code later, not via an exception. - HttpUnitOptions.setExceptionsThrownOnErrorStatus( false ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + resourcePath ); - WebResponse response = sc.getResponse( request ); - - // --- Verification - - switch ( expectation ) - { - case EXPECT_MANAGED_CONTENTS: - assertResponseOK( response ); - assertTrue( "Invalid Test Case: Can't expect managed contents with " - + "test that doesn't have a managed copy in the first place.", hasManagedCopy ); - assertEquals( "Expected managed file contents", expectedManagedContents, response.getText() ); - break; - case EXPECT_REMOTE_CONTENTS: - assertResponseOK( response ); - assertEquals( "Expected remote file contents", expectedRemoteContents, response.getText() ); - break; - case EXPECT_NOT_FOUND: - assertResponseNotFound( response ); - assertManagedFileNotExists( repoRootInternal, resourcePath ); - break; - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedReleasePolicyTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedReleasePolicyTest.java deleted file mode 100644 index 144d49bb9..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedReleasePolicyTest.java +++ /dev/null @@ -1,193 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.HttpUnitOptions; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -import org.apache.maven.archiva.policies.ReleasesPolicy; - -import java.io.File; - -/** - * RepositoryServlet Tests, Proxied, Get of Release Artifacts, with varying policy settings. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletProxiedReleasePolicyTest - extends AbstractRepositoryServletProxiedTestCase -{ - public void testGetProxiedReleaseArtifactPolicyAlwaysManagedNewer() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, ReleasesPolicy.ALWAYS, HAS_MANAGED_COPY, - ( NEWER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedReleaseArtifactPolicyAlwaysManagedOlder() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, ReleasesPolicy.ALWAYS, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedReleaseArtifactPolicyAlwaysNoManagedContent() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, ReleasesPolicy.ALWAYS, NO_MANAGED_COPY ); - } - - public void testGetProxiedReleaseArtifactPolicyDailyFail() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, ReleasesPolicy.DAILY, HAS_MANAGED_COPY, - ( NEWER * ONE_MINUTE ) ); - } - - public void testGetProxiedReleaseArtifactPolicyDailyNoManagedContent() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, ReleasesPolicy.DAILY, NO_MANAGED_COPY ); - } - - public void testGetProxiedReleaseArtifactPolicyDailyPass() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, ReleasesPolicy.DAILY, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedReleaseArtifactPolicyRejectFail() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, ReleasesPolicy.NEVER, HAS_MANAGED_COPY ); - } - - public void testGetProxiedReleaseArtifactPolicyRejectNoManagedContentFail() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_NOT_FOUND, ReleasesPolicy.NEVER, NO_MANAGED_COPY ); - } - - public void testGetProxiedReleaseArtifactPolicyRejectPass() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, ReleasesPolicy.NEVER, HAS_MANAGED_COPY ); - } - - public void testGetProxiedReleaseArtifactPolicyHourlyFail() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, ReleasesPolicy.HOURLY, HAS_MANAGED_COPY, - ( NEWER * ONE_MINUTE ) ); - } - - public void testGetProxiedReleaseArtifactPolicyHourlyNoManagedContent() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, ReleasesPolicy.HOURLY, NO_MANAGED_COPY ); - } - - public void testGetProxiedReleaseArtifactPolicyHourlyPass() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, ReleasesPolicy.HOURLY, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_HOUR ) ); - } - - public void testGetProxiedReleaseArtifactPolicyOnceFail() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, ReleasesPolicy.ONCE, HAS_MANAGED_COPY ); - } - - public void testGetProxiedReleaseArtifactPolicyOnceNoManagedContent() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, ReleasesPolicy.ONCE, NO_MANAGED_COPY ); - } - - public void testGetProxiedReleaseArtifactPolicyOncePass() - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, ReleasesPolicy.ONCE, NO_MANAGED_COPY ); - } - - private void assertGetProxiedReleaseArtifactWithPolicy( int expectation, String releasePolicy, - boolean hasManagedCopy ) - throws Exception - { - assertGetProxiedReleaseArtifactWithPolicy( expectation, releasePolicy, hasManagedCopy, 0 ); - } - - private void assertGetProxiedReleaseArtifactWithPolicy( int expectation, String releasePolicy, - boolean hasManagedCopy, long deltaManagedToRemoteTimestamp ) - throws Exception - { - // --- Setup - setupCentralRemoteRepo(); - setupCleanInternalRepo(); - - String resourcePath = "org/apache/archiva/test/1.0/test-1.0.jar"; - String expectedRemoteContents = "archiva-test-1.0|jar-remote-contents"; - String expectedManagedContents = null; - File remoteFile = populateRepo( remoteCentral, resourcePath, expectedRemoteContents ); - - if ( hasManagedCopy ) - { - expectedManagedContents = "archiva-test-1.0|jar-managed-contents"; - File managedFile = populateRepo( repoRootInternal, resourcePath, expectedManagedContents ); - managedFile.setLastModified( remoteFile.lastModified() + deltaManagedToRemoteTimestamp ); - } - - setupReleaseConnector( REPOID_INTERNAL, remoteCentral, releasePolicy ); - saveConfiguration(); - - // --- Execution - // process the response code later, not via an exception. - HttpUnitOptions.setExceptionsThrownOnErrorStatus( false ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + resourcePath ); - WebResponse response = sc.getResponse( request ); - - // --- Verification - - switch ( expectation ) - { - case EXPECT_MANAGED_CONTENTS: - assertResponseOK( response ); - assertTrue( "Invalid Test Case: Can't expect managed contents with " - + "test that doesn't have a managed copy in the first place.", hasManagedCopy ); - assertEquals( "Expected managed file contents", expectedManagedContents, response.getText() ); - break; - case EXPECT_REMOTE_CONTENTS: - assertResponseOK( response ); - assertEquals( "Expected remote file contents", expectedRemoteContents, response.getText() ); - break; - case EXPECT_NOT_FOUND: - assertResponseNotFound( response ); - assertManagedFileNotExists( repoRootInternal, resourcePath ); - break; - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedRelocatedTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedRelocatedTest.java deleted file mode 100644 index 2303836b6..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedRelocatedTest.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.HttpUnitOptions; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -import org.apache.maven.archiva.policies.ReleasesPolicy; - -/** - * RepositoryServlet Tests, Proxied, Get of Release Artifacts, with varying policy settings. - * - * @author Joakim Erdfelt - * @version $Id: RepositoryServletProxiedReleasePolicyTest.java 590908 2007-11-01 06:21:26Z joakime $ - */ -public class RepositoryServletProxiedRelocatedTest - extends AbstractRepositoryServletProxiedTestCase -{ - public void testGetProxiedReleaseArtifactPolicyOncePass() - throws Exception - { - // --- Setup - setupCentralRemoteRepo(); - setupCleanInternalRepo(); - - String resourcePath = "org/apache/archiva/test/1.0/test-1.0.jar"; - String expectedRemoteContents = "archiva-test-1.0|jar-remote-contents"; - populateRepo( remoteCentral, resourcePath, expectedRemoteContents ); - - resourcePath = "archiva/test/1.0/test-1.0.pom"; - String pom = "" + - "4.0.0" + - "archiva" + - "test" + - "1.0" + - "" + - "" + - "org.apache.archiva" + - "" + - "" + - ""; - populateRepo( remoteCentral, resourcePath, pom ); - - resourcePath = "archiva/jars/test-1.0.jar"; - - setupReleaseConnector( REPOID_INTERNAL, remoteCentral, ReleasesPolicy.ONCE ); - saveConfiguration(); - - // --- Execution - // process the response code later, not via an exception. - HttpUnitOptions.setExceptionsThrownOnErrorStatus( false ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + resourcePath ); - WebResponse response = sc.getResponse( request ); - - // --- Verification - assertResponseOK( response ); - assertEquals( "Expected remote file contents", expectedRemoteContents, response.getText() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedSnapshotPolicyTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedSnapshotPolicyTest.java deleted file mode 100644 index da944d9f2..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedSnapshotPolicyTest.java +++ /dev/null @@ -1,195 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.HttpUnitOptions; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -import org.apache.maven.archiva.policies.SnapshotsPolicy; - -import java.io.File; - -/** - * RepositoryServlet Tests, Proxied, Get of Snapshot Artifacts, with varying policy settings. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletProxiedSnapshotPolicyTest - extends AbstractRepositoryServletProxiedTestCase -{ - public void testGetProxiedSnapshotsArtifactPolicyAlwaysManagedNewer() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.ALWAYS, - HAS_MANAGED_COPY, ( NEWER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyAlwaysManagedOlder() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ALWAYS, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyAlwaysNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ALWAYS, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyDailyFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.DAILY, HAS_MANAGED_COPY, - ( NEWER * ONE_MINUTE ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyDailyNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.DAILY, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyDailyPass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.DAILY, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyRejectFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.NEVER, - HAS_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyRejectNoManagedContentFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_NOT_FOUND, SnapshotsPolicy.NEVER, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyRejectPass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.NEVER, - HAS_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyHourlyFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.HOURLY, HAS_MANAGED_COPY, - ( NEWER * ONE_MINUTE ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyHourlyNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.HOURLY, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyHourlyPass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.HOURLY, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_HOUR ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyOnceFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.ONCE, HAS_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyOnceNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ONCE, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyOncePass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ONCE, NO_MANAGED_COPY ); - } - - private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation, String snapshotsPolicy, - boolean hasManagedCopy ) - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( expectation, snapshotsPolicy, hasManagedCopy, 0 ); - } - - private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation, String snapshotsPolicy, - boolean hasManagedCopy, long deltaManagedToRemoteTimestamp ) - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String resourcePath = "org/apache/archiva/test/2.0-SNAPSHOT/test-2.0-SNAPSHOT.jar"; - String expectedRemoteContents = "archiva-test-2.0-SNAPSHOT|jar-remote-contents"; - String expectedManagedContents = null; - File remoteFile = populateRepo( remoteSnapshots, resourcePath, expectedRemoteContents ); - - if ( hasManagedCopy ) - { - expectedManagedContents = "archiva-test-2.0-SNAPSHOT|jar-managed-contents"; - File managedFile = populateRepo( repoRootInternal, resourcePath, expectedManagedContents ); - managedFile.setLastModified( remoteFile.lastModified() + deltaManagedToRemoteTimestamp ); - } - - setupSnapshotConnector( REPOID_INTERNAL, remoteSnapshots, snapshotsPolicy ); - saveConfiguration(); - - // --- Execution - // process the response code later, not via an exception. - HttpUnitOptions.setExceptionsThrownOnErrorStatus( false ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + resourcePath ); - WebResponse response = sc.getResponse( request ); - - // --- Verification - - switch ( expectation ) - { - case EXPECT_MANAGED_CONTENTS: - assertResponseOK( response ); - assertTrue( "Invalid Test Case: Can't expect managed contents with " - + "test that doesn't have a managed copy in the first place.", hasManagedCopy ); - assertEquals( "Expected managed file contents", expectedManagedContents, response.getText() ); - break; - case EXPECT_REMOTE_CONTENTS: - assertResponseOK( response ); - assertEquals( "Expected remote file contents", expectedRemoteContents, response.getText() ); - break; - case EXPECT_NOT_FOUND: - assertResponseNotFound( response ); - assertManagedFileNotExists( repoRootInternal, resourcePath ); - break; - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java deleted file mode 100644 index 2a34b9ab0..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java +++ /dev/null @@ -1,195 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.HttpUnitOptions; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -import org.apache.maven.archiva.policies.SnapshotsPolicy; - -import java.io.File; - -/** - * RepositoryServlet Tests, Proxied, Get of Timestamped Snapshot Artifacts, with varying policy settings. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletProxiedTimestampedSnapshotPolicyTest - extends AbstractRepositoryServletProxiedTestCase -{ - public void testGetProxiedSnapshotsArtifactPolicyAlwaysManagedNewer() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.ALWAYS, - HAS_MANAGED_COPY, ( NEWER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyAlwaysManagedOlder() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ALWAYS, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyAlwaysNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ALWAYS, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyDailyFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.DAILY, HAS_MANAGED_COPY, - ( NEWER * ONE_MINUTE ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyDailyNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.DAILY, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyDailyPass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.DAILY, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_DAY ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyRejectFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.NEVER, - HAS_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyRejectNoManagedContentFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_NOT_FOUND, SnapshotsPolicy.NEVER, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyRejectPass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.NEVER, - HAS_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyHourlyFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.HOURLY, HAS_MANAGED_COPY, - ( NEWER * ONE_MINUTE ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyHourlyNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.HOURLY, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyHourlyPass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.HOURLY, HAS_MANAGED_COPY, - ( OLDER * OVER_ONE_HOUR ) ); - } - - public void testGetProxiedSnapshotsArtifactPolicyOnceFail() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.ONCE, HAS_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyOnceNoManagedContent() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ONCE, NO_MANAGED_COPY ); - } - - public void testGetProxiedSnapshotsArtifactPolicyOncePass() - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ONCE, NO_MANAGED_COPY ); - } - - private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation, String snapshotsPolicy, - boolean hasManagedCopy ) - throws Exception - { - assertGetProxiedSnapshotsArtifactWithPolicy( expectation, snapshotsPolicy, hasManagedCopy, 0 ); - } - - private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation, String snapshotsPolicy, - boolean hasManagedCopy, long deltaManagedToRemoteTimestamp ) - throws Exception - { - // --- Setup - setupSnapshotsRemoteRepo(); - setupCleanInternalRepo(); - - String resourcePath = "org/apache/archiva/test/3.0-SNAPSHOT/test-3.0-20070822.033400-42.jar"; - String expectedRemoteContents = "archiva-test-3.0-20070822.033400-42|jar-remote-contents"; - String expectedManagedContents = null; - File remoteFile = populateRepo( remoteSnapshots, resourcePath, expectedRemoteContents ); - - if ( hasManagedCopy ) - { - expectedManagedContents = "archiva-test-3.0-20070822.033400-42|jar-managed-contents"; - File managedFile = populateRepo( repoRootInternal, resourcePath, expectedManagedContents ); - managedFile.setLastModified( remoteFile.lastModified() + deltaManagedToRemoteTimestamp ); - } - - setupSnapshotConnector( REPOID_INTERNAL, remoteSnapshots, snapshotsPolicy ); - saveConfiguration(); - - // --- Execution - // process the response code later, not via an exception. - HttpUnitOptions.setExceptionsThrownOnErrorStatus( false ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + resourcePath ); - WebResponse response = sc.getResponse( request ); - - // --- Verification - - switch ( expectation ) - { - case EXPECT_MANAGED_CONTENTS: - assertResponseOK( response ); - assertTrue( "Invalid Test Case: Can't expect managed contents with " - + "test that doesn't have a managed copy in the first place.", hasManagedCopy ); - assertEquals( "Expected managed file contents", expectedManagedContents, response.getText() ); - break; - case EXPECT_REMOTE_CONTENTS: - assertResponseOK( response ); - assertEquals( "Expected remote file contents", expectedRemoteContents, response.getText() ); - break; - case EXPECT_NOT_FOUND: - assertResponseNotFound( response ); - assertManagedFileNotExists( repoRootInternal, resourcePath ); - break; - } - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletRepositoryGroupTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletRepositoryGroupTest.java deleted file mode 100644 index 7acf05969..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletRepositoryGroupTest.java +++ /dev/null @@ -1,305 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.InputStream; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.io.FileUtils; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.configuration.RepositoryGroupConfiguration; -import org.apache.maven.archiva.model.ArchivaRepositoryMetadata; -import org.apache.maven.archiva.repository.metadata.RepositoryMetadataReader; - -import com.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.PutMethodWebRequest; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - - -/** - * RepositoryServletRepositoryGroupTest - * - * Test Case 1. Accessing a valid repository group root url (e.g. http://machine.com/repository/repository-group/) returns a Bad Request (HTTP 400) - * Test Case 2. Accessing an invalid repository group root url is forwarded to managed repository checking (this is not covered here) - * Test Case 3. Accessing an artifact in a valid repository group will iterate over the managed repositories in the repository group - * Test Case 3.a. If an invalid managed repository is encountered (managed repository doesn't exist), - * a Not Found (HTTP 404) is returned and the iteration is broken - * Test Case 3.b. If an artifact is not found in a valid managed repository (after proxying, etc.), - * a Not Found (HTTP 404) is set but not returned yet, the iteration continues to the next managed repository. - * The Not Found (HTTP 404) is returned after exhausting all valid managed repositories - * Test Case 3.c. If an artifact is found in a valid managed repository, - * the artifact is returned, the iteration is broken and any Not Found (HTTP 404) is disregarded - * Test Case 4. Accessing a valid repository group with any http write method returns a Bad Request (HTTP 400) - * - * @author - * - */ -public class RepositoryServletRepositoryGroupTest - extends AbstractRepositoryServletTestCase -{ - protected File repoRootFirst; - - protected File repoRootLast; - - protected File repoRootInvalid; - - protected static final String MANAGED_REPO_FIRST = "first"; - - protected static final String MANAGED_REPO_LAST = "last"; - - protected static final String MANAGED_REPO_INVALID = "invalid"; - - protected static final String REPO_GROUP_WITH_VALID_REPOS = "group-with-valid-repos"; - - protected static final String REPO_GROUP_WITH_INVALID_REPOS = "group-with-invalid-repos"; - - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - String appserverBase = System.getProperty( "appserver.base" ); - - Configuration configuration = archivaConfiguration.getConfiguration(); - - repoRootFirst = new File( appserverBase, "data/repositories/" + MANAGED_REPO_FIRST ); - repoRootLast = new File( appserverBase, "data/repositories/" + MANAGED_REPO_LAST ); - - configuration.addManagedRepository( createManagedRepository( MANAGED_REPO_FIRST, "First Test Repo", repoRootFirst ) ); - configuration.addManagedRepository( createManagedRepository( MANAGED_REPO_LAST, "Last Test Repo", repoRootLast ) ); - - List managedRepoIds = new ArrayList(); - managedRepoIds.add( MANAGED_REPO_FIRST ); - managedRepoIds.add( MANAGED_REPO_LAST ); - - configuration.addRepositoryGroup( createRepositoryGroup( REPO_GROUP_WITH_VALID_REPOS, managedRepoIds ) ); - - // Create the repository group with an invalid managed repository - repoRootInvalid = new File( appserverBase, "data/repositories/" + MANAGED_REPO_INVALID ); - ManagedRepositoryConfiguration managedRepositoryConfiguration = createManagedRepository( MANAGED_REPO_INVALID, "Invalid Test Repo", repoRootInvalid ); - - configuration.addManagedRepository( createManagedRepository( MANAGED_REPO_FIRST, "First Test Repo", repoRootFirst ) ); - configuration.addManagedRepository( managedRepositoryConfiguration ); - configuration.addManagedRepository( createManagedRepository( MANAGED_REPO_LAST, "Last Test Repo", repoRootLast ) ); - - List invalidManagedRepoIds = new ArrayList(); - invalidManagedRepoIds.add( MANAGED_REPO_FIRST ); - invalidManagedRepoIds.add( MANAGED_REPO_INVALID ); - invalidManagedRepoIds.add( MANAGED_REPO_LAST ); - - configuration.addRepositoryGroup( createRepositoryGroup( REPO_GROUP_WITH_INVALID_REPOS, invalidManagedRepoIds ) ); - - configuration.removeManagedRepository( managedRepositoryConfiguration ); - FileUtils.deleteDirectory( repoRootInvalid ); - - saveConfiguration( archivaConfiguration ); - } - - @Override - protected void tearDown() - throws Exception - { - setupCleanRepo( repoRootFirst ); - setupCleanRepo( repoRootLast ); - - super.tearDown(); - } - - /* - * Test Case 3.c - */ - public void testGetFromFirstManagedRepositoryReturnOk() - throws Exception - { - String resourceName = "dummy/dummy-first-resource/1.0/dummy-first-resource-1.0.txt"; - - File dummyInternalResourceFile = new File( repoRootFirst, resourceName ); - dummyInternalResourceFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( dummyInternalResourceFile, "first", null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/" + REPO_GROUP_WITH_VALID_REPOS + "/" + resourceName ); - WebResponse response = sc.getResponse( request ); - - assertResponseOK( response ); - assertEquals( "Expected file contents", "first", response.getText() ); - } - - /* - * Test Case 3.c - */ - public void testGetFromLastManagedRepositoryReturnOk() - throws Exception - { - String resourceName = "dummy/dummy-last-resource/1.0/dummy-last-resource-1.0.txt"; - - File dummyReleasesResourceFile = new File( repoRootLast, resourceName ); - dummyReleasesResourceFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( dummyReleasesResourceFile, "last", null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/" + REPO_GROUP_WITH_VALID_REPOS + "/" + resourceName ); - WebResponse response = sc.getResponse( request ); - - assertResponseOK( response ); - assertEquals( "Expected file contents", "last", response.getText() ); - } - - /* - * Test Case 3.b - */ - public void testGetFromValidRepositoryGroupReturnNotFound() - throws Exception - { - String resourceName = "dummy/dummy-no-resource/1.0/dummy-no-resource-1.0.txt"; - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/" + REPO_GROUP_WITH_VALID_REPOS + "/" + resourceName ); - WebResponse response = sc.getResponse( request ); - - assertResponseNotFound( response ); - } - - /* - * Test Case 3.a - */ - public void testGetInvalidManagedRepositoryInGroupReturnNotFound() - throws Exception - { - String resourceName = "dummy/dummy-no-resource/1.0/dummy-no-resource-1.0.txt"; - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/" + REPO_GROUP_WITH_INVALID_REPOS + "/" + resourceName ); - WebResponse response = sc.getResponse( request ); - - assertResponseNotFound( response ); - } - - /* - * Test Case 4 - */ - public void testPutValidRepositoryGroupReturnBadRequest() - throws Exception - { - String resourceName = "dummy/dummy-put-resource/1.0/dummy-put-resource-1.0.txt"; - String putUrl = "http://machine.com/repository/" + REPO_GROUP_WITH_VALID_REPOS + "/" + resourceName; - InputStream is = getClass().getResourceAsStream( "/artifact.jar" ); - - WebRequest request = new PutMethodWebRequest( putUrl, is, "text/plain" ); - WebResponse response = sc.getResponse( request ); - - assertResponseMethodNotAllowed( response ); - } - - public void testBrowseRepositoryGroup() - throws Exception - { - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/" + REPO_GROUP_WITH_VALID_REPOS ); - WebResponse response = sc.getResponse( request ); - - assertNotNull( "Should have received a response", response ); - assertEquals( "Should have been an 401 response code.", HttpServletResponse.SC_UNAUTHORIZED, response.getResponseCode() ); - } - - // MRM-872 - public void testGetMergedMetadata() - throws Exception - { - // first metadata file - String resourceName = "dummy/dummy-merged-metadata-resource/maven-metadata.xml"; - - File dummyInternalResourceFile = new File( repoRootFirst, resourceName ); - dummyInternalResourceFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( dummyInternalResourceFile, "\n" + - "\ndummy\ndummy-merged-metadata-resource\n" + - "\n1.0\n1.0\n\n1.0\n" + - "2.5\n\n20080708095554\n\n", null ); - - //second metadata file - resourceName = "dummy/dummy-merged-metadata-resource/maven-metadata.xml"; - dummyInternalResourceFile = new File( repoRootLast, resourceName ); - dummyInternalResourceFile.getParentFile().mkdirs(); - FileUtils.writeStringToFile( dummyInternalResourceFile, "" + - "dummydummy-merged-metadata-resource" + - "2.02.01.0" + - "1.52.020080709095554" + - "", null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/" + REPO_GROUP_WITH_VALID_REPOS + "/dummy/" + - "dummy-merged-metadata-resource/maven-metadata.xml" ); - WebResponse response = sc.getResource( request ); - - File returnedMetadata = new File( getBasedir(), "/target/test-classes/retrievedMetadataFile.xml"); - FileUtils.writeStringToFile( returnedMetadata, response.getText() ); - ArchivaRepositoryMetadata metadata = RepositoryMetadataReader.read( returnedMetadata ); - - assertResponseOK( response ); - assertEquals( "Versions list size", 4, metadata.getAvailableVersions().size() ); - assertTrue( "Versions list contains version 1.0", metadata.getAvailableVersions().contains( "1.0" ) ); - assertTrue( "Versions list contains version 1.5", metadata.getAvailableVersions().contains( "1.5" ) ); - assertTrue( "Versions list contains version 2.0", metadata.getAvailableVersions().contains( "2.0" ) ); - assertTrue( "Versions list contains version 2.5", metadata.getAvailableVersions().contains( "2.5" ) ); - - //check if the checksum files were generated - File checksumFileSha1 = new File( repoRootFirst, resourceName + ".sha1" ); - checksumFileSha1.getParentFile().mkdirs(); - FileUtils.writeStringToFile( checksumFileSha1, "3290853214d3687134", null ); - - File checksumFileMd5 = new File( repoRootFirst, resourceName + ".md5" ); - checksumFileMd5.getParentFile().mkdirs(); - FileUtils.writeStringToFile( checksumFileMd5, "98745897234eda12836423", null ); - - // request the sha1 checksum of the metadata - request = - new GetMethodWebRequest( "http://machine.com/repository/" + REPO_GROUP_WITH_VALID_REPOS + "/dummy/" + - "dummy-merged-metadata-resource/maven-metadata.xml.sha1" ); - response = sc.getResource( request ); - - assertResponseOK( response ); - assertEquals( "add113b0d7f8c6adb92a5015a7a3701081edf998 maven-metadata-group-with-valid-repos.xml", response.getText() ); - - // request the md5 checksum of the metadata - request = - new GetMethodWebRequest( "http://machine.com/repository/" + REPO_GROUP_WITH_VALID_REPOS + "/dummy/" + - "dummy-merged-metadata-resource/maven-metadata.xml.md5" ); - response = sc.getResource( request ); - - assertResponseOK( response ); - assertEquals( "5b85ea4aa5f52bb76760041a52f98de8 maven-metadata-group-with-valid-repos.xml", response.getText().trim() ); - } - - protected void assertResponseMethodNotAllowed( WebResponse response ) - { - assertNotNull( "Should have recieved a response", response ); - assertEquals( "Should have been an 405/Method Not Allowed response code.", HttpServletResponse.SC_METHOD_NOT_ALLOWED, response.getResponseCode() ); - } - - protected RepositoryGroupConfiguration createRepositoryGroup( String id, List repositories ) - { - RepositoryGroupConfiguration repoGroupConfiguration = new RepositoryGroupConfiguration(); - repoGroupConfiguration.setId( id ); - repoGroupConfiguration.setRepositories( repositories ); - return repoGroupConfiguration; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.java deleted file mode 100644 index e029ca583..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.java +++ /dev/null @@ -1,550 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.io.InputStream; - -import javax.servlet.http.HttpServletResponse; - -import net.sf.ehcache.CacheManager; - -import org.apache.commons.io.FileUtils; -import org.apache.jackrabbit.webdav.DavResourceFactory; -import org.apache.jackrabbit.webdav.DavSessionProvider; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.security.ArchivaXworkUser; -import org.apache.maven.archiva.security.ServletAuthenticator; -import org.codehaus.plexus.redback.authentication.AuthenticationException; -import org.codehaus.plexus.redback.authentication.AuthenticationResult; -import org.codehaus.plexus.redback.authorization.UnauthorizedException; -import org.codehaus.plexus.redback.system.DefaultSecuritySession; -import org.codehaus.plexus.redback.system.SecuritySession; -import org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator; -import org.codehaus.plexus.redback.xwork.filter.authentication.basic.HttpBasicAuthentication; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.easymock.MockControl; -import org.easymock.classextension.MockClassControl; -import org.easymock.internal.AlwaysMatcher; - -import com.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.HttpUnitOptions; -import com.meterware.httpunit.PutMethodWebRequest; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; -import com.meterware.servletunit.InvocationContext; -import com.meterware.servletunit.ServletRunner; -import com.meterware.servletunit.ServletUnitClient; - -/** - * RepositoryServletSecurityTest - * - * Test the flow of the authentication and authorization checks. This does not necessarily - * perform redback security checking. - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletSecurityTest - extends PlexusInSpringTestCase -{ - protected static final String REPOID_INTERNAL = "internal"; - - protected ServletUnitClient sc; - - protected File repoRootInternal; - - private ServletRunner sr; - - protected ArchivaConfiguration archivaConfiguration; - - private DavSessionProvider davSessionProvider; - - private MockControl servletAuthControl; - - private ServletAuthenticator servletAuth; - - private MockClassControl httpAuthControl; - - private HttpAuthenticator httpAuth; - - private ArchivaXworkUser archivaXworkUser; - - private RepositoryServlet servlet; - - public void setUp() - throws Exception - { - super.setUp(); - - String appserverBase = getTestFile( "target/appserver-base" ).getAbsolutePath(); - System.setProperty( "appserver.base", appserverBase ); - - File testConf = getTestFile( "src/test/resources/repository-archiva.xml" ); - File testConfDest = new File( appserverBase, "conf/archiva.xml" ); - FileUtils.copyFile( testConf, testConfDest ); - - archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.class ); - repoRootInternal = new File( appserverBase, "data/repositories/internal" ); - Configuration config = archivaConfiguration.getConfiguration(); - - config.addManagedRepository( createManagedRepository( REPOID_INTERNAL, "Internal Test Repo", repoRootInternal ) ); - saveConfiguration( archivaConfiguration ); - - CacheManager.getInstance().removeCache( "url-failures-cache" ); - - HttpUnitOptions.setExceptionsThrownOnErrorStatus( false ); - - sr = new ServletRunner( getTestFile( "src/test/resources/WEB-INF/repository-servlet-security-test/web.xml" ) ); - sr.registerServlet( "/repository/*", RepositoryServlet.class.getName() ); - sc = sr.newClient(); - - servletAuthControl = MockControl.createControl( ServletAuthenticator.class ); - servletAuthControl.setDefaultMatcher( MockControl.ALWAYS_MATCHER ); - servletAuth = (ServletAuthenticator) servletAuthControl.getMock(); - - httpAuthControl = - MockClassControl.createControl( HttpBasicAuthentication.class, HttpBasicAuthentication.class.getMethods() ); - httpAuthControl.setDefaultMatcher( MockControl.ALWAYS_MATCHER ); - httpAuth = (HttpAuthenticator) httpAuthControl.getMock(); - - archivaXworkUser = new ArchivaXworkUser(); - archivaXworkUser.setGuest( "guest" ); - - davSessionProvider = new ArchivaDavSessionProvider( servletAuth, httpAuth, archivaXworkUser ); - } - - protected ManagedRepositoryConfiguration createManagedRepository( String id, String name, File location ) - { - ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration(); - repo.setId( id ); - repo.setName( name ); - repo.setLocation( location.getAbsolutePath() ); - return repo; - } - - protected void saveConfiguration() - throws Exception - { - saveConfiguration( archivaConfiguration ); - } - - protected void saveConfiguration( ArchivaConfiguration archivaConfiguration ) - throws Exception - { - archivaConfiguration.save( archivaConfiguration.getConfiguration() ); - } - - protected void setupCleanRepo( File repoRootDir ) - throws IOException - { - FileUtils.deleteDirectory( repoRootDir ); - if ( !repoRootDir.exists() ) - { - repoRootDir.mkdirs(); - } - } - - @Override - protected String getPlexusConfigLocation() - { - return "org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.xml"; - } - - @Override - protected void tearDown() - throws Exception - { - if ( sc != null ) - { - sc.clearContents(); - } - - if ( sr != null ) - { - sr.shutDown(); - } - - if ( repoRootInternal.exists() ) - { - FileUtils.deleteDirectory(repoRootInternal); - } - - servlet = null; - - super.tearDown(); - } - - // test deploy with invalid user, and guest has no write access to repo - // 401 must be returned - public void testPutWithInvalidUserAndGuestHasNoWriteAccess() - throws Exception - { - setupCleanRepo( repoRootInternal ); - - String putUrl = "http://machine.com/repository/internal/path/to/artifact.jar"; - InputStream is = getClass().getResourceAsStream( "/artifact.jar" ); - assertNotNull( "artifact.jar inputstream", is ); - - WebRequest request = new PutMethodWebRequest( putUrl, is, "application/octet-stream" ); - InvocationContext ic = sc.newInvocation( request ); - servlet = (RepositoryServlet) ic.getServlet(); - servlet.setDavSessionProvider( davSessionProvider ); - - AuthenticationResult result = new AuthenticationResult(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - servletAuthControl.expectAndThrow( servletAuth.isAuthenticated( null, null ), - new AuthenticationException( "Authentication error" ) ); - - servletAuth.isAuthorized( "guest", "internal", true ); - servletAuthControl.setMatcher( MockControl.EQUALS_MATCHER ); - servletAuthControl.setThrowable( new UnauthorizedException( "'guest' has no write access to repository" ) ); - - httpAuthControl.replay(); - servletAuthControl.replay(); - - servlet.service( ic.getRequest(), ic.getResponse() ); - - httpAuthControl.verify(); - servletAuthControl.verify(); - - //assertEquals(HttpServletResponse.SC_UNAUTHORIZED, response.getResponseCode()); - } - - // test deploy with invalid user, but guest has write access to repo - public void testPutWithInvalidUserAndGuestHasWriteAccess() - throws Exception - { - setupCleanRepo( repoRootInternal ); - - String putUrl = "http://machine.com/repository/internal/path/to/artifact.jar"; - InputStream is = getClass().getResourceAsStream( "/artifact.jar" ); - assertNotNull( "artifact.jar inputstream", is ); - - WebRequest request = new PutMethodWebRequest( putUrl, is, "application/octet-stream" ); - - InvocationContext ic = sc.newInvocation( request ); - servlet = (RepositoryServlet) ic.getServlet(); - servlet.setDavSessionProvider( davSessionProvider ); - - ArchivaDavResourceFactory archivaDavResourceFactory = (ArchivaDavResourceFactory) servlet.getResourceFactory(); - archivaDavResourceFactory.setHttpAuth( httpAuth ); - archivaDavResourceFactory.setServletAuth( servletAuth ); - - servlet.setResourceFactory( archivaDavResourceFactory ); - - AuthenticationResult result = new AuthenticationResult(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - servletAuthControl.expectAndThrow( servletAuth.isAuthenticated( null, null ), - new AuthenticationException( "Authentication error" ) ); - - servletAuth.isAuthorized( "guest", "internal", true ); - servletAuthControl.setMatcher( MockControl.EQUALS_MATCHER ); - servletAuthControl.setReturnValue( true ); - - // ArchivaDavResourceFactory#isAuthorized() - SecuritySession session = new DefaultSecuritySession(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - httpAuthControl.expectAndReturn( httpAuth.getSecuritySession(), session ); - servletAuthControl.expectAndThrow( servletAuth.isAuthenticated( null, result ), - new AuthenticationException( "Authentication error" ) ); - - // check if guest has write access - servletAuth.isAuthorized( "guest", "internal", true ); - servletAuthControl.setMatcher( MockControl.EQUALS_MATCHER ); - servletAuthControl.setReturnValue( true ); - - httpAuthControl.replay(); - servletAuthControl.replay(); - - servlet.service( ic.getRequest(), ic.getResponse() ); - - httpAuthControl.verify(); - servletAuthControl.verify(); - - // assertEquals( HttpServletResponse.SC_CREATED, response.getResponseCode() ); - } - - // test deploy with a valid user with no write access - public void testPutWithValidUserWithNoWriteAccess() - throws Exception - { - setupCleanRepo( repoRootInternal ); - - String putUrl = "http://machine.com/repository/internal/path/to/artifact.jar"; - InputStream is = getClass().getResourceAsStream( "/artifact.jar" ); - assertNotNull( "artifact.jar inputstream", is ); - - WebRequest request = new PutMethodWebRequest( putUrl, is, "application/octet-stream" ); - - InvocationContext ic = sc.newInvocation( request ); - servlet = (RepositoryServlet) ic.getServlet(); - servlet.setDavSessionProvider( davSessionProvider ); - - ArchivaDavResourceFactory archivaDavResourceFactory = (ArchivaDavResourceFactory) servlet.getResourceFactory(); - archivaDavResourceFactory.setHttpAuth( httpAuth ); - archivaDavResourceFactory.setServletAuth( servletAuth ); - servlet.setResourceFactory( archivaDavResourceFactory ); - - AuthenticationResult result = new AuthenticationResult(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - servletAuthControl.expectAndReturn( servletAuth.isAuthenticated( null, null ), true ); - - // ArchivaDavResourceFactory#isAuthorized() - SecuritySession session = new DefaultSecuritySession(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - httpAuthControl.expectAndReturn( httpAuth.getSecuritySession(), session ); - servletAuthControl.expectAndReturn( servletAuth.isAuthenticated( null, result ), true ); - servletAuthControl.expectAndThrow( servletAuth.isAuthorized( null, session, "internal", true ), - new UnauthorizedException( "User not authorized" ) ); - - httpAuthControl.replay(); - servletAuthControl.replay(); - - servlet.service( ic.getRequest(), ic.getResponse() ); - - httpAuthControl.verify(); - servletAuthControl.verify(); - - // assertEquals(HttpServletResponse.SC_UNAUTHORIZED, response.getResponseCode()); - } - - // test deploy with a valid user with write access - public void testPutWithValidUserWithWriteAccess() - throws Exception - { - setupCleanRepo( repoRootInternal ); - assertTrue( repoRootInternal.exists() ); - - String putUrl = "http://machine.com/repository/internal/path/to/artifact.jar"; - InputStream is = getClass().getResourceAsStream( "/artifact.jar" ); - assertNotNull( "artifact.jar inputstream", is ); - - WebRequest request = new PutMethodWebRequest( putUrl, is, "application/octet-stream" ); - - InvocationContext ic = sc.newInvocation( request ); - servlet = (RepositoryServlet) ic.getServlet(); - servlet.setDavSessionProvider( davSessionProvider ); - - ArchivaDavResourceFactory archivaDavResourceFactory = (ArchivaDavResourceFactory) servlet.getResourceFactory(); - archivaDavResourceFactory.setHttpAuth( httpAuth ); - archivaDavResourceFactory.setServletAuth( servletAuth ); - - servlet.setResourceFactory( archivaDavResourceFactory ); - - AuthenticationResult result = new AuthenticationResult(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - servletAuthControl.expectAndReturn( servletAuth.isAuthenticated( null, null ), true ); - - // ArchivaDavResourceFactory#isAuthorized() - SecuritySession session = new DefaultSecuritySession(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - httpAuthControl.expectAndReturn( httpAuth.getSecuritySession(), session ); - servletAuthControl.expectAndReturn( servletAuth.isAuthenticated( null, result ), true ); - servletAuthControl.expectAndReturn( servletAuth.isAuthorized( null, session, "internal", true ), true ); - - httpAuthControl.replay(); - servletAuthControl.replay(); - - servlet.service( ic.getRequest(), ic.getResponse() ); - - httpAuthControl.verify(); - servletAuthControl.verify(); - - // assertEquals(HttpServletResponse.SC_CREATED, response.getResponseCode()); - } - - // test get with invalid user, and guest has read access to repo - public void testGetWithInvalidUserAndGuestHasReadAccess() - throws Exception - { - String commonsLangJar = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar"; - String expectedArtifactContents = "dummy-commons-lang-artifact"; - - File artifactFile = new File( repoRootInternal, commonsLangJar ); - artifactFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar ); - InvocationContext ic = sc.newInvocation( request ); - servlet = (RepositoryServlet) ic.getServlet(); - servlet.setDavSessionProvider( davSessionProvider ); - - ArchivaDavResourceFactory archivaDavResourceFactory = (ArchivaDavResourceFactory) servlet.getResourceFactory(); - archivaDavResourceFactory.setHttpAuth( httpAuth ); - archivaDavResourceFactory.setServletAuth( servletAuth ); - - servlet.setResourceFactory( archivaDavResourceFactory ); - - AuthenticationResult result = new AuthenticationResult(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - servletAuthControl.expectAndThrow( servletAuth.isAuthenticated( null, null ), - new AuthenticationException( "Authentication error" ) ); - servletAuthControl.expectAndReturn( servletAuth.isAuthorized( "guest", "internal", false ), true ); - - // ArchivaDavResourceFactory#isAuthorized() - SecuritySession session = new DefaultSecuritySession(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - httpAuthControl.expectAndReturn( httpAuth.getSecuritySession(), session ); - servletAuthControl.expectAndReturn( servletAuth.isAuthenticated( null, result ), true ); - servletAuthControl.expectAndReturn( servletAuth.isAuthorized( null, session, "internal", true ), true ); - - httpAuthControl.replay(); - servletAuthControl.replay(); - - WebResponse response = sc.getResponse( request ); - - httpAuthControl.verify(); - servletAuthControl.verify(); - - assertEquals( HttpServletResponse.SC_OK, response.getResponseCode() ); - assertEquals( "Expected file contents", expectedArtifactContents, response.getText() ); - } - - // test get with invalid user, and guest has no read access to repo - public void testGetWithInvalidUserAndGuestHasNoReadAccess() - throws Exception - { - String commonsLangJar = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar"; - String expectedArtifactContents = "dummy-commons-lang-artifact"; - - File artifactFile = new File( repoRootInternal, commonsLangJar ); - artifactFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar ); - InvocationContext ic = sc.newInvocation( request ); - servlet = (RepositoryServlet) ic.getServlet(); - servlet.setDavSessionProvider( davSessionProvider ); - - AuthenticationResult result = new AuthenticationResult(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - servletAuthControl.expectAndThrow( servletAuth.isAuthenticated( null, null ), - new AuthenticationException( "Authentication error" ) ); - servletAuthControl.expectAndReturn( servletAuth.isAuthorized( "guest", "internal", false ), false ); - - httpAuthControl.replay(); - servletAuthControl.replay(); - - WebResponse response = sc.getResponse( request ); - - httpAuthControl.verify(); - servletAuthControl.verify(); - - assertEquals( HttpServletResponse.SC_UNAUTHORIZED, response.getResponseCode() ); - } - - // test get with valid user with read access to repo - public void testGetWithAValidUserWithReadAccess() - throws Exception - { - String commonsLangJar = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar"; - String expectedArtifactContents = "dummy-commons-lang-artifact"; - - File artifactFile = new File( repoRootInternal, commonsLangJar ); - artifactFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar ); - InvocationContext ic = sc.newInvocation( request ); - servlet = (RepositoryServlet) ic.getServlet(); - servlet.setDavSessionProvider( davSessionProvider ); - - ArchivaDavResourceFactory archivaDavResourceFactory = (ArchivaDavResourceFactory) servlet.getResourceFactory(); - archivaDavResourceFactory.setHttpAuth( httpAuth ); - archivaDavResourceFactory.setServletAuth( servletAuth ); - - servlet.setResourceFactory( archivaDavResourceFactory ); - - AuthenticationResult result = new AuthenticationResult(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - servletAuthControl.expectAndReturn( servletAuth.isAuthenticated( null, null ), true ); - - // ArchivaDavResourceFactory#isAuthorized() - SecuritySession session = new DefaultSecuritySession(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - httpAuthControl.expectAndReturn( httpAuth.getSecuritySession(), session ); - servletAuthControl.expectAndReturn( servletAuth.isAuthenticated( null, result ), true ); - servletAuthControl.expectAndReturn( servletAuth.isAuthorized( null, session, "internal", true ), true ); - - httpAuthControl.replay(); - servletAuthControl.replay(); - - WebResponse response = sc.getResponse( request ); - - httpAuthControl.verify(); - servletAuthControl.verify(); - - assertEquals( HttpServletResponse.SC_OK, response.getResponseCode() ); - assertEquals( "Expected file contents", expectedArtifactContents, response.getText() ); - } - - // test get with valid user with no read access to repo - public void testGetWithAValidUserWithNoReadAccess() - throws Exception - { - String commonsLangJar = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar"; - String expectedArtifactContents = "dummy-commons-lang-artifact"; - - File artifactFile = new File( repoRootInternal, commonsLangJar ); - artifactFile.getParentFile().mkdirs(); - - FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null ); - - WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar ); - InvocationContext ic = sc.newInvocation( request ); - servlet = (RepositoryServlet) ic.getServlet(); - servlet.setDavSessionProvider( davSessionProvider ); - - ArchivaDavResourceFactory archivaDavResourceFactory = (ArchivaDavResourceFactory) servlet.getResourceFactory(); - archivaDavResourceFactory.setHttpAuth( httpAuth ); - archivaDavResourceFactory.setServletAuth( servletAuth ); - - servlet.setResourceFactory( archivaDavResourceFactory ); - - AuthenticationResult result = new AuthenticationResult(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - servletAuthControl.expectAndReturn( servletAuth.isAuthenticated( null, null ), true ); - - // ArchivaDavResourceFactory#isAuthorized() - SecuritySession session = new DefaultSecuritySession(); - httpAuthControl.expectAndReturn( httpAuth.getAuthenticationResult( null, null ), result ); - httpAuthControl.expectAndReturn( httpAuth.getSecuritySession(), session ); - servletAuthControl.expectAndReturn( servletAuth.isAuthenticated( null, result ), true ); - servletAuthControl.expectAndThrow( servletAuth.isAuthorized( null, session, "internal", true ), - new UnauthorizedException( "User not authorized to read repository." ) ); - - httpAuthControl.replay(); - servletAuthControl.replay(); - - WebResponse response = sc.getResponse( request ); - - httpAuthControl.verify(); - servletAuthControl.verify(); - - assertEquals( HttpServletResponse.SC_UNAUTHORIZED, response.getResponseCode() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletTest.java deleted file mode 100644 index 41b0b09fc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletTest.java +++ /dev/null @@ -1,123 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.webdav.RepositoryServlet; - -import com.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -import java.io.File; - -/** - * RepositoryServletTest - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class RepositoryServletTest - extends AbstractRepositoryServletTestCase -{ - private static final String REQUEST_PATH = "http://machine.com/repository/internal/"; - - private static final String NEW_REPOSITORY_ID = "new-id"; - - private static final String NEW_REPOSITORY_NAME = "New Repository"; - - public void testGetRepository() - throws Exception - { - RepositoryServlet servlet = (RepositoryServlet) sc.newInvocation( REQUEST_PATH ).getServlet(); - assertNotNull( servlet ); - - assertRepositoryValid( servlet, REPOID_INTERNAL ); - } - - public void testGetRepositoryAfterDelete() - throws Exception - { - RepositoryServlet servlet = (RepositoryServlet) sc.newInvocation( REQUEST_PATH ).getServlet(); - assertNotNull( servlet ); - - ArchivaConfiguration archivaConfiguration = servlet.getConfiguration(); - Configuration c = archivaConfiguration.getConfiguration(); - c.removeManagedRepository( c.findManagedRepositoryById( REPOID_INTERNAL ) ); - saveConfiguration( archivaConfiguration ); - - ManagedRepositoryConfiguration repository = servlet.getRepository( REPOID_INTERNAL ); - assertNull( repository ); - } - - public void testGetRepositoryAfterAdd() - throws Exception - { - RepositoryServlet servlet = (RepositoryServlet) sc.newInvocation( REQUEST_PATH ).getServlet(); - assertNotNull( servlet ); - - ArchivaConfiguration archivaConfiguration = servlet.getConfiguration(); - Configuration c = archivaConfiguration.getConfiguration(); - ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration(); - repo.setId( NEW_REPOSITORY_ID ); - repo.setName( NEW_REPOSITORY_NAME ); - File repoRoot = new File( getBasedir(), "target/test-repository-root" ); - if ( !repoRoot.exists() ) - { - repoRoot.mkdirs(); - } - repo.setLocation( repoRoot.getAbsolutePath() ); - c.addManagedRepository( repo ); - saveConfiguration( archivaConfiguration ); - - ManagedRepositoryConfiguration repository = servlet.getRepository( NEW_REPOSITORY_ID ); - assertNotNull( repository ); - assertEquals( NEW_REPOSITORY_NAME, repository.getName() ); - - // check other is still intact - assertRepositoryValid( servlet, REPOID_INTERNAL ); - } - - public void testGetRepositoryInvalidPathPassthroughPresent() - throws Exception - { - String path = REQUEST_PATH + ".index/filecontent/segments.gen"; - - populateRepo( repoRootInternal, ".index/filecontent/segments.gen", "index file" ); - - WebRequest request = new GetMethodWebRequest( path ); - WebResponse response = sc.getResponse( request ); - assertResponseOK( response ); - assertEquals( "index file", response.getText() ); - } - - public void testGetRepositoryInvalidPathPassthroughMissing() - throws Exception - { - String path = REQUEST_PATH + ".index/filecontent/foo.bar"; - - WebRequest request = new GetMethodWebRequest( path ); - WebResponse response = sc.getResponse( request ); - assertResponseNotFound( response ); - assertEquals( "Invalid path to Artifact: legacy paths should have an expected type ending in [s] in the second part of the path.", response.getResponseMessage() ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/StubRepositoryContentConsumers.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/StubRepositoryContentConsumers.java deleted file mode 100644 index ff9dbd237..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/StubRepositoryContentConsumers.java +++ /dev/null @@ -1,21 +0,0 @@ -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; - -import java.util.List; - -public class StubRepositoryContentConsumers - extends RepositoryContentConsumers -{ - public List getSelectedKnownConsumers() - { - return getAvailableKnownConsumers(); - } - - public synchronized List getSelectedInvalidConsumers() - { - return getAvailableInvalidConsumers(); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedDavResourceFactory.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedDavResourceFactory.java deleted file mode 100644 index 81d739d3a..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedDavResourceFactory.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.jackrabbit.webdav.DavException; -import org.apache.jackrabbit.webdav.DavServletRequest; -import org.apache.maven.archiva.webdav.ArchivaDavResourceFactory; - -/** - * UnauthenticatedDavResourceFactory - * - * @author Maria Odea Ching - * @version $Id: - */ -public class UnauthenticatedDavResourceFactory - extends ArchivaDavResourceFactory -{ - @Override - protected boolean isAuthorized( DavServletRequest request, String repositoryId ) - throws DavException - { - return true; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedDavSessionProvider.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedDavSessionProvider.java deleted file mode 100644 index 082d62dfc..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedDavSessionProvider.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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.jackrabbit.webdav.DavException; -import org.apache.jackrabbit.webdav.WebdavRequest; - -/** - * @author James William Dumay - */ -public class UnauthenticatedDavSessionProvider extends ArchivaDavSessionProvider -{ - public UnauthenticatedDavSessionProvider() - { - super(null, null, null); - } - - @Override - public boolean attachSession( WebdavRequest request ) - throws DavException - { - request.setDavSession(new ArchivaDavSession()); - return true; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedRepositoryServlet.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedRepositoryServlet.java deleted file mode 100644 index d62ddf9ac..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedRepositoryServlet.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.apache.maven.archiva.webdav; - -/* - * 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 javax.servlet.ServletConfig; - -/** - * UnauthenticatedRepositoryServlet - * - * @author Joakim Erdfelt - * @version $Id$ - */ -public class UnauthenticatedRepositoryServlet - extends RepositoryServlet -{ - @Override - public synchronized void initServers( ServletConfig servletConfig ) - { - super.initServers(servletConfig); - - UnauthenticatedDavSessionProvider sessionProvider = new UnauthenticatedDavSessionProvider(); - setDavSessionProvider(sessionProvider); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/httpunit/MkColMethodWebRequest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/httpunit/MkColMethodWebRequest.java deleted file mode 100644 index 39cdd3b34..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/httpunit/MkColMethodWebRequest.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.apache.maven.archiva.webdav.httpunit; - -/* - * 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.meterware.httpunit.HeaderOnlyWebRequest; -import java.net.URL; - -/** - * MkColMethodWebRequest - * See RFC-2518 Section 8.3 - * @author James William Dumay - */ -public class MkColMethodWebRequest extends HeaderOnlyWebRequest -{ - public MkColMethodWebRequest( String urlString ) - { - super(urlString); - } - - @Override - public String getMethod() { - return "MKCOL"; - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/util/MimeTypesTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/util/MimeTypesTest.java deleted file mode 100644 index addefe168..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/util/MimeTypesTest.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.webdav.util; - -/* - * 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.spring.PlexusInSpringTestCase; - -/** - * MimeTypesTest - * - * @author Joakim Erdfelt - * @version $Id: MimeTypesTest.java 6556 2007-06-20 20:44:46Z joakime $ - */ -public class MimeTypesTest extends PlexusInSpringTestCase -{ - public void testGetMimeType() throws Exception - { - MimeTypes mime = (MimeTypes) lookup( MimeTypes.class ); - assertNotNull( "MimeTypes should not be null.", mime ); - - assertEquals( "application/pdf", mime.getMimeType( "big-book.pdf" ) ); - assertEquals( "application/octet-stream", mime.getMimeType( "BookMaker.class" ) ); - assertEquals( "application/vnd.ms-powerpoint", mime.getMimeType( "TypeSetting.ppt" ) ); - assertEquals( "application/java-archive", mime.getMimeType( "BookViewer.jar" ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/util/RepositoryPathUtilTest.java b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/util/RepositoryPathUtilTest.java deleted file mode 100644 index 11a845c46..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/util/RepositoryPathUtilTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.apache.maven.archiva.webdav.util; - -/* - * 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 junit.framework.TestCase; - -/** - * @author James William Dumay - */ -public class RepositoryPathUtilTest extends TestCase -{ - public void testGetRepositoryId() - { - String href = "/path/to/my/resource"; - assertEquals("to", RepositoryPathUtil.getRepositoryName(href)); - - href = "path/to/my/resource"; - assertEquals("to", RepositoryPathUtil.getRepositoryName(href)); - - href = "mypath"; - assertEquals("/", RepositoryPathUtil.getLogicalResource(href)); - } - - public void testGetLogicalPath() - { - String href = "/repository/internal/org/apache/maven/someartifact.jar"; - assertEquals("/org/apache/maven/someartifact.jar", RepositoryPathUtil.getLogicalResource(href)); - - href = "repository/internal/org/apache/maven/someartifact.jar"; - assertEquals("/org/apache/maven/someartifact.jar", RepositoryPathUtil.getLogicalResource(href)); - - href = "repository/internal/org/apache/maven/"; - assertEquals( "/org/apache/maven/", RepositoryPathUtil.getLogicalResource( href ) ); - } -} diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/META-INF/plexus/components.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/META-INF/plexus/components.xml deleted file mode 100644 index 921c1cca1..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/META-INF/plexus/components.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - org.apache.maven.archiva.webdav.util.MimeTypes - org.apache.maven.archiva.webdav.util.MimeTypes - MimeTypes - - archiva-mime-types.txt - - - - \ No newline at end of file diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/repository-servlet-security-test/web.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/repository-servlet-security-test/web.xml deleted file mode 100644 index 291aa01ec..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/repository-servlet-security-test/web.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - Apache Archiva - - - org.springframework.web.context.ContextLoaderListener - - - - contextClass - org.codehaus.plexus.spring.PlexusWebApplicationContext - - - - contextConfigLocation - - classpath*:/META-INF/plexus/components.xml - classpath*:/META-INF/spring-context.xml - target/test-classes/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.xml - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/web.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/web.xml deleted file mode 100644 index cfe7c5fbe..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/WEB-INF/web.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - Apache Archiva - - - org.springframework.web.context.ContextLoaderListener - - - - contextClass - org.codehaus.plexus.spring.PlexusWebApplicationContext - - - - contextConfigLocation - - classpath*:/META-INF/plexus/components.xml - classpath*:/META-INF/spring-context.xml - target/test-classes/org/apache/maven/archiva/webdav/RepositoryServletTest.xml - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/archiva-mime-types.txt b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/archiva-mime-types.txt deleted file mode 100644 index 43e6cb24f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/archiva-mime-types.txt +++ /dev/null @@ -1,127 +0,0 @@ -# This file controls what Internet media types are sent to the client for -# given file extension(s). Sending the correct media type to the client -# is important so they know how to handle the content of the file. -# Extra types can either be added here or by using an AddType directive -# in your config files. For more information about Internet media types, -# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type -# registry is at . - -# MIME type Extensions - -application/andrew-inset ez -application/atom+xml atom -application/java-archive jar -application/mac-binhex40 hqx -application/mac-compactpro cpt -application/mathml+xml mathml -application/msword doc -application/octet-stream bin dms lha lzh exe class so dll dmg -application/oda oda -application/ogg ogg -application/pdf pdf -application/pgp-encrypted pgp -application/postscript ai eps ps -application/rdf+xml rdf -application/smil smi smil -application/srgs gram -application/srgs+xml grxml -application/vnd.mif mif -application/vnd.mozilla.xul+xml xul -application/vnd.ms-excel xls -application/vnd.ms-powerpoint ppt -application/vnd.rn-realmedia rm -application/vnd.wap.wbxml wbxml -application/vnd.wap.wmlc wmlc -application/vnd.wap.wmlscriptc wmlsc -application/voicexml+xml vxml -application/x-bcpio bcpio -application/x-cdlink vcd -application/x-chess-pgn pgn -application/x-cpio cpio -application/x-csh csh -application/x-director dcr dir dxr -application/x-dvi dvi -application/x-futuresplash spl -application/x-gtar gtar -application/x-hdf hdf -application/x-java-jnlp-file jnlp -application/x-javascript js -application/x-koan skp skd skt skm -application/x-latex latex -application/x-netcdf nc cdf -application/x-sh sh -application/x-shar shar -application/x-shockwave-flash swf -application/x-stuffit sit -application/x-sv4cpio sv4cpio -application/x-sv4crc sv4crc -application/x-tar tar -application/x-tcl tcl -application/x-tex tex -application/x-texinfo texinfo texi -application/x-troff t tr roff -application/x-troff-man man -application/x-troff-me me -application/x-troff-ms ms -application/x-ustar ustar -application/x-wais-source src -application/xhtml+xml xhtml xht -application/xml xml xsl pom -application/xml-dtd dtd -application/xslt+xml xslt -application/zip zip -audio/basic au snd -audio/midi mid midi kar -audio/mpeg mpga mp2 mp3 -audio/x-aiff aif aiff aifc -audio/x-mpegurl m3u -audio/x-pn-realaudio ram ra -audio/x-wav wav -chemical/x-pdb pdb -chemical/x-xyz xyz -image/bmp bmp -image/cgm cgm -image/gif gif -image/ief ief -image/jp2 jp2 -image/jpeg jpeg jpg jpe -image/pict pict pic pct -image/png png -image/svg+xml svg -image/tiff tiff tif -image/vnd.djvu djvu djv -image/vnd.wap.wbmp wbmp -image/x-cmu-raster ras -image/x-icon ico -image/x-macpaint pntg pnt mac -image/x-portable-anymap pnm -image/x-portable-bitmap pbm -image/x-portable-graymap pgm -image/x-portable-pixmap ppm -image/x-quicktime qtif qti -image/x-rgb rgb -image/x-xbitmap xbm -image/x-xpixmap xpm -image/x-xwindowdump xwd -model/iges igs iges -model/mesh msh mesh silo -model/vrml wrl vrml -text/calendar ics ifb -text/css css -text/html html htm -text/plain asc txt sha1 md5 -text/richtext rtx -text/rtf rtf -text/sgml sgml sgm -text/tab-separated-values tsv -text/vnd.wap.wml wml -text/vnd.wap.wmlscript wmls -text/x-setext etx -video/mp4 mp4 -video/mpeg mpeg mpg mpe -video/quicktime qt mov -video/vnd.mpegurl mxu m4u -video/x-dv dv dif -video/x-msvideo avi -video/x-sgi-movie movie -x-conference/x-cooltalk ice diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/artifact.jar b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/artifact.jar deleted file mode 100644 index e6f67ee94ef952e2b4b3c5d7a5494bc58978edd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13 UcmYc+D#=VsOfJ#ON-W|603;Fw!~g&Q diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/log4j.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/log4j.xml deleted file mode 100644 index a2e7ea23d..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/log4j.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.xml deleted file mode 100644 index 53e79073f..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletSecurityTest.xml +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - org.codehaus.plexus.logging.LoggerManager - org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager - basic - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configured - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - configured - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - org.apache.maven.archiva.webdav.DavServerManager - default - org.apache.maven.archiva.webdav.DefaultDavServerManager - DefaultDavServerManager - - - org.apache.maven.archiva.webdav.DavServerComponent - proxied - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - default - org.apache.maven.archiva.webdav.StubRepositoryContentConsumers - - - - org.codehaus.plexus.redback.system.SecuritySystem - default - org.codehaus.plexus.redback.system.DefaultSecuritySystem - - - - org.apache.maven.archiva.webdav.ArchivaDavResourceFactory - org.apache.maven.archiva.webdav.ArchivaDavResourceFactory - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - archivaConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - repositoryFactory - - - org.apache.maven.archiva.repository.content.RepositoryRequest - repositoryRequest - - - org.apache.maven.archiva.proxy.RepositoryProxyConnectors - connectors - - - org.apache.maven.archiva.repository.metadata.MetadataTools - metadataTools - - - org.apache.maven.archiva.security.ServletAuthenticator - servletAuth - - - org.apache.maven.archiva.webdav.util.MimeTypes - mimeTypes - - - org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator - basic - httpAuth - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - default - - - org.codehaus.plexus.digest.ChecksumFile - checksum - - - org.codehaus.plexus.digest.Digester - sha1 - digestSha1 - - - org.codehaus.plexus.digest.Digester - md5 - digestMd5 - - - org.apache.maven.archiva.security.ArchivaXworkUser - archivaXworkUser - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletTest.xml deleted file mode 100644 index c691ee037..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/RepositoryServletTest.xml +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - org.codehaus.plexus.logging.LoggerManager - org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager - basic - - - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - org.apache.maven.archiva.configuration.DefaultArchivaConfiguration - - - org.codehaus.plexus.registry.Registry - configured - - - org.apache.maven.archiva.policies.PreDownloadPolicy - prePolicies - - - org.apache.maven.archiva.policies.PostDownloadPolicy - postPolicies - - - - - org.codehaus.plexus.registry.Registry - configured - org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry - - - - - - - - - - org.apache.maven.archiva.webdav.DavServerManager - default - org.apache.maven.archiva.webdav.DefaultDavServerManager - DefaultDavServerManager - - - org.apache.maven.archiva.webdav.DavServerComponent - proxied - - - - - - org.codehaus.plexus.cache.Cache - url-failures-cache - org.codehaus.plexus.cache.ehcache.EhcacheCache - URL Failure Cache - - 600 - false - ${java.io.tmpdir}/archiva/urlcache - false - 1000 - LRU - url-failures-cache - false - - 2700 - - 1800 - - - - - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - default - org.apache.maven.archiva.webdav.StubRepositoryContentConsumers - - - - org.codehaus.plexus.redback.system.SecuritySystem - default - org.apache.maven.archiva.webdav.BypassSecuritySystem - - - - org.apache.maven.archiva.webdav.ArchivaDavResourceFactory - org.apache.maven.archiva.webdav.UnauthenticatedDavResourceFactory - - - org.apache.maven.archiva.configuration.ArchivaConfiguration - archivaConfiguration - - - org.apache.maven.archiva.repository.RepositoryContentFactory - repositoryFactory - - - org.apache.maven.archiva.repository.content.RepositoryRequest - repositoryRequest - - - org.apache.maven.archiva.proxy.RepositoryProxyConnectors - connectors - - - org.apache.maven.archiva.repository.metadata.MetadataTools - metadataTools - - - org.apache.maven.archiva.security.ServletAuthenticator - servletAuth - - - org.apache.maven.archiva.webdav.util.MimeTypes - mimeTypes - - - org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator - basic - httpAuth - - - org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers - default - - - org.codehaus.plexus.digest.ChecksumFile - checksum - - - org.codehaus.plexus.digest.Digester - sha1 - digestSha1 - - - org.codehaus.plexus.digest.Digester - md5 - digestMd5 - - - org.apache.maven.archiva.security.ArchivaXworkUser - archivaXworkUser - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/repository-archiva.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/repository-archiva.xml deleted file mode 100644 index 997d62b00..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/repository-archiva.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - 2 - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentBasicTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentBasicTest.xml deleted file mode 100644 index 323862265..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentBasicTest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - org.apache.maven.archiva.webdav.DavServerManager - simple - org.apache.maven.archiva.webdav.DefaultDavServerManager - DefaultDavServerManager - - - org.apache.maven.archiva.webdav.DavServerComponent - simple - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentIndexHtmlTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentIndexHtmlTest.xml deleted file mode 100644 index 323862265..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentIndexHtmlTest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - org.apache.maven.archiva.webdav.DavServerManager - simple - org.apache.maven.archiva.webdav.DefaultDavServerManager - DefaultDavServerManager - - - org.apache.maven.archiva.webdav.DavServerComponent - simple - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentMultiTest.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentMultiTest.xml deleted file mode 100644 index 323862265..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleDavServerComponentMultiTest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - org.apache.maven.archiva.webdav.DavServerManager - simple - org.apache.maven.archiva.webdav.DefaultDavServerManager - DefaultDavServerManager - - - org.apache.maven.archiva.webdav.DavServerComponent - simple - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleWebdavServer.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleWebdavServer.xml deleted file mode 100644 index 323862265..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/org/apache/maven/archiva/webdav/simple/SimpleWebdavServer.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - org.apache.maven.archiva.webdav.DavServerManager - simple - org.apache.maven.archiva.webdav.DefaultDavServerManager - DefaultDavServerManager - - - org.apache.maven.archiva.webdav.DavServerComponent - simple - - - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/repository-archiva.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/repository-archiva.xml deleted file mode 100644 index 997d62b00..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/resources/repository-archiva.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - 2 - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/webapp/WEB-INF/web.xml b/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/webapp/WEB-INF/web.xml deleted file mode 100644 index 93634b40e..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/archiva-webdav/src/test/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - Apache Archiva - - - org.springframework.web.context.ContextLoaderListener - - - - contextClass - org.codehaus.plexus.spring.PlexusWebApplicationContext - - - - contextConfigLocation - - classpath*:/META-INF/plexus/components.xml - - - - diff --git a/archiva-security-fix/archiva-modules/archiva-web/pom.xml b/archiva-security-fix/archiva-modules/archiva-web/pom.xml deleted file mode 100644 index a46196010..000000000 --- a/archiva-security-fix/archiva-modules/archiva-web/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - 4.0.0 - - org.apache.archiva - archiva-modules - 1.2-SNAPSHOT - ../pom.xml - - - archiva-web - Archiva Web - pom - - - archiva-applet - archiva-security - archiva-webapp - archiva-webdav - archiva-rss - - - - - webapp-test - - archiva-webapp-test - - - - diff --git a/archiva-security-fix/archiva-modules/pom.xml b/archiva-security-fix/archiva-modules/pom.xml deleted file mode 100644 index 65a1868ae..000000000 --- a/archiva-security-fix/archiva-modules/pom.xml +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - archiva - org.apache.archiva - 1.2-SNAPSHOT - - 4.0.0 - archiva-modules - pom - Archiva :: Modules - http://archiva.apache.org/ref/${project.version} - - archiva-base - archiva-database - archiva-reporting - archiva-scheduled - archiva-web - - - - - org.codehaus.mojo - cobertura-maven-plugin - 2.2 - - - org.apache.maven.plugins - maven-checkstyle-plugin - 2.1 - - true - config/maven_checks.xml - - - - - - org.codehaus.mojo - changelog-maven-plugin - - - org.codehaus.mojo - taglist-maven-plugin - - - maven-jxr-plugin - - true - - - - maven-surefire-report-plugin - 2.4.2 - - - maven-javadoc-plugin - 2.4 - - 1.5 - true - gr.spinellis.umlgraph.doclet.UmlGraphDoc - - gr.spinellis - UmlGraph - 4.6 - - - -inferrel -inferdep -quiet -hide java.* - -collpackages java.util.* -qualify - -postfixpackage -nodefontsize 9 - -nodefontpackagesize 7 - - - http://java.sun.com/j2se/1.4.2/docs/api - http://java.sun.com/j2ee/1.4/docs/api - http://java.sun.com/j2se/1.5.0/docs/api - http://commons.apache.org/collections/apidocs-COLLECTIONS_3_0/ - http://commons.apache.org/dbcp/apidocs/ - http://commons.apache.org/fileupload/apidocs/ - http://commons.apache.org/httpclient/apidocs/ - http://commons.apache.org/logging/apidocs/ - http://commons.apache.org/pool/apidocs/ - http://junit.sourceforge.net/javadoc/ - http://logging.apache.org/log4j/1.2/apidocs/ - http://jakarta.apache.org/regexp/apidocs/ - http://velocity.apache.org/engine/releases/velocity-1.5/apidocs/ - - - - - org.apache.maven.plugins - maven-pmd-plugin - - - 1.5 - - - - org.codehaus.mojo - clirr-maven-plugin - - - - - - ci - - - - org.apache.maven.plugins - maven-pmd-plugin - - - - - cpd-check - - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - - - - - - - - - - org.codehaus.mojo - cobertura-maven-plugin - 2.2 - - - - 77 - 95 - - - - **/*$* - - - - - - clean - - clean - - - - check - - check - - - - - - - - - - - apache.website - ${siteBaseDeployment}/ref/${project.version} - - - diff --git a/archiva-security-fix/archiva-modules/src/site/site.xml b/archiva-security-fix/archiva-modules/src/site/site.xml deleted file mode 100644 index 8f7ecf05d..000000000 --- a/archiva-security-fix/archiva-modules/src/site/site.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - diff --git a/archiva-security-fix/pom.xml b/archiva-security-fix/pom.xml deleted file mode 100644 index bdffb05b2..000000000 --- a/archiva-security-fix/pom.xml +++ /dev/null @@ -1,1061 +0,0 @@ - - - - - - 4.0.0 - - 2.0.6 - - - - org.apache.archiva - archiva-parent - 3 - ../parent/pom.xml - - Archiva - archiva - pom - 1.2-SNAPSHOT - http://archiva.apache.org - - scm:svn:http://svn.apache.org/repos/asf/archiva/trunk - scm:svn:https://svn.apache.org/repos/asf/archiva/trunk - http://svn.apache.org/viewvc/archiva/trunk - - - - - - - org.apache.maven.plugins - maven-remote-resources-plugin - - - - process - - - - org.apache:apache-jar-resource-bundle:1.3 - - - - - - - org.apache.maven.plugins - maven-enforcer-plugin - 1.0-alpha-3 - - - - enforce - - - - - - org.codehaus.plexus:plexus-container-default - commons-logging:commons-logging - velocity:velocity-dep - classworlds:classworlds - javax.transaction:jta - javax.sql:jdbc-stdext - ant:ant-optional - - xom:xom - - - - - - - - - org.codehaus.plexus - plexus-maven-plugin - 1.3.5 - - - generate - - descriptor - - - - - - - - - org.codehaus.modello - modello-maven-plugin - 1.0-alpha-15 - - - org.apache.maven.plugins - maven-compiler-plugin - 2.0.2 - - 1.5 - 1.5 - - - - org.apache.maven.plugins - maven-remote-resources-plugin - 1.0-beta-2 - - - org.apache.maven.plugins - maven-deploy-plugin - 2.3 - - - org.apache.maven.plugins - maven-gpg-plugin - 1.0-alpha-4 - - - org.apache.maven.plugins - maven-install-plugin - 2.2 - - - org.apache.maven.plugins - maven-jar-plugin - 2.2 - - - org.apache.maven.plugins - maven-release-plugin - 2.0-beta-7 - - https://svn.apache.org/repos/asf/archiva/tags - false - deploy - clean install - -Prelease - - - - org.apache.maven.plugins - maven-resources-plugin - 2.2 - - - org.apache.maven.plugins - maven-surefire-plugin - 2.4.2 - - true - - - - maven-idea-plugin - - 1.5 - - - - - - - archiva-cli - archiva-docs - archiva-jetty - archiva-modules - - - - junit - junit - 3.8.1 - test - - - httpunit - httpunit - 1.6.2 - test - - - easymock - easymock - 1.2_Java1.3 - test - - - easymock - easymockclassextension - 1.2 - test - - - org.slf4j - jcl104-over-slf4j - test - - - org.slf4j - slf4j-log4j12 - test - - - - - - org.apache.jackrabbit - jackrabbit-webdav - 1.4 - - - commons-logging - commons-logging - - - - - xerces - xercesImpl - 2.8.1 - - - javax.activation - activation - 1.1 - - - org.apache.archiva - archiva-applet - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-artifact-converter - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-artifact-reports - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-checksum - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-common - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-configuration - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-consumer-api - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-converter - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-dependency-graph - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-core - ${pom.version} - - - org.apache.archiva - archiva-core-consumers - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-database - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-database-consumers - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-indexer - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-lucene-consumers - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-model - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-policies - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-proxy - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-report-manager - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-repository-layer - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-scheduled - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-security - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-signature-consumers - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-transaction - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-docs - 1.2-SNAPSHOT - zip - docs - - - org.apache.archiva - archiva-webapp - 1.2-SNAPSHOT - war - - - org.apache.archiva - archiva-xml-tools - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-webdav - 1.2-SNAPSHOT - - - org.apache.archiva - archiva-rss - 1.2-SNAPSHOT - - - org.codehaus.plexus - plexus-spring - 1.0 - - - org.codehaus.plexus - plexus-container-default - - - - - stax - stax - 1.2.0 - - - commons-codec - commons-codec - 1.3 - - - commons-collections - commons-collections - 3.2 - - - commons-fileupload - commons-fileupload - 1.2 - - - commons-io - commons-io - 1.4 - - - commons-lang - commons-lang - 2.2 - - - org.apache.derby - derby - 10.1.3.1 - - - org.apache.derby - derbytools - 10.1.3.1 - - - dom4j - dom4j - 1.6.1 - - - hsqldb - hsqldb - 1.8.0.7 - test - - - jaxen - jaxen - 1.1 - - - xom - xom - - - - - javax.jdo - jdo2-api - 2.0 - - - jpox - jpox - 1.1.9 - - - javax.transaction - jta - - - - - javax.servlet - jsp-api - 2.0 - provided - - - javax.servlet - jstl - 1.1.2 - - - log4j - log4j - 1.2.14 - - - org.apache.lucene - lucene-core - 2.3.1 - - - javax.mail - mail - 1.4 - - - org.apache.maven - maven-artifact-manager - ${maven.version} - - - org.codehaus.plexus - plexus-container-default - - - - - org.apache.maven - maven-model - ${maven.version} - - - org.apache.maven - maven-repository-metadata - ${maven.version} - - - org.codehaus.plexus - plexus-component-api - 1.0-alpha-22 - - - org.codehaus.plexus - plexus-digest - 1.1 - - - org.codehaus.plexus - plexus-expression-evaluator - 1.0-rc1 - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.plexus - plexus-i18n - 1.0-beta-6 - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.plexus - plexus-jdo2 - 1.0-alpha-8 - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.plexus - plexus-quartz - 1.0-alpha-3 - - - commons-logging - commons-logging - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.plexus - plexus-slf4j-logging - 1.1-alpha-1 - - - org.slf4j - slf4j-simple - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.plexus - plexus-taskqueue - 1.0-alpha-8 - - - org.codehaus.plexus - plexus-utils - 1.4.5 - - - org.codehaus.plexus.cache - plexus-cache-api - 1.0-alpha-2 - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.plexus.cache - plexus-cache-ehcache - 1.0-alpha-2 - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.redback - redback-rbac-memory - ${redback.version} - test - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.redback - redback-users-memory - ${redback.version} - test - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.redback - redback-keys-memory - ${redback.version} - test - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.redback - redback-rbac-model - ${redback.version} - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.redback - redback-authorization-rbac - ${redback.version} - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.redback - redback-rbac-role-manager - ${redback.version} - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.redback - redback-system - ${redback.version} - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.redback - redback-taglib - ${redback.version} - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.redback - redback-xwork-content - ${redback.version} - war - - - classworlds - classworlds - - - - - org.codehaus.redback - redback-xwork-integration - ${redback.version} - - - classworlds - classworlds - - - velocity - velocity-dep - - - commons-logging - commons-logging - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.plexus.registry - plexus-registry-api - 1.0-alpha-2 - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.plexus.registry - plexus-registry-commons - 1.0-alpha-2 - - - ant - ant-optional - - - jdom - jdom - - - commons-logging - commons-logging-api - - - commons-logging - commons-logging - - - - - javax.servlet - servlet-api - 2.4 - - - opensymphony - sitemesh - 2.2.1 - - - org.slf4j - jcl104-over-slf4j - 1.5.0 - - - org.slf4j - slf4j-api - 1.5.0 - - - org.slf4j - slf4j-simple - 1.5.0 - - - org.slf4j - slf4j-log4j12 - 1.5.0 - - - taglibs - standard - 1.1.2 - - - org.apache.maven.wagon - wagon-file - ${wagon.version} - - - org.apache.maven.wagon - wagon-http-lightweight - ${wagon.version} - - - nekohtml - xercesMinimal - - - - - org.apache.maven.wagon - wagon-provider-api - ${wagon.version} - - - com.opensymphony - webwork - 2.2.6 - - - commons-logging - commons-logging - - - - - xmlunit - xmlunit - 1.0 - - - joda-time - joda-time - 1.5.2 - - - org.mortbay.jetty - jetty - ${jetty.version} - - - - - org.springframework - spring-context - 2.5.1 - - - commons-logging - commons-logging - - - - - org.springframework - spring-web - 2.5.1 - - - commons-logging - commons-logging - - - - - org.apache.maven - maven-artifact - ${maven.version} - - - org.apache.maven - maven-project - ${maven.version} - - - org.codehaus.plexus - plexus-container-default - - - - - jdom - jdom - 1.0 - - - org.apache.maven.shared - maven-model-converter - 2.1 - - - org.codehaus.plexus - plexus-container-default - - - - - org.codehaus.plexus - plexus-xwork-integration - 1.0-alpha-7 - - - velocity - velocity-dep - - - - - net.sf.ehcache - ehcache - 1.3.0 - - - commons-logging - commons-logging - - - - - - - 2.0.8 - 1.0-beta-4 - 1.1.1 - 6.1.6 - - - - release - - - - maven-assembly-plugin - 2.2-beta-2 - false - - - src/main/assembly/src.xml - - gnu - apache-archiva-${project.version}-src - - - - make-assembly - package - - single - - - - - - - org.apache.maven.plugins - maven-gpg-plugin - - ${gpg.passphrase} - - - - - sign - - - - - - - true - org.apache.maven.plugins - maven-deploy-plugin - - ${deploy.altRepository} - true - - - - org.apache.maven.plugins - maven-source-plugin - 2.0.4 - - - attach-sources - - jar - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.4 - - - attach-javadocs - - jar - - - - - - - - - buildWithSnapshots - - - - false - - - true - - codehaus.org.snapshots - Codehaus Snapshots Repository - http://snapshots.repository.codehaus.org - - - - - diff --git a/archiva-security-fix/src/main/assembly/src.xml b/archiva-security-fix/src/main/assembly/src.xml deleted file mode 100644 index ff66e9a6f..000000000 --- a/archiva-security-fix/src/main/assembly/src.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - src - - zip - - - - false - . - / - - **/CVS/** - - - - . - / - - **/target/** - **/archiva-webapp/src/main/webapp/archiva-applet.jar - **/archiva-webapp/src/main/webapp/META-INF/** - **/archiva-webapp/src/main/webapp/images/redback/** - **/archiva-webapp/src/main/webapp/template/redback/** - **/archiva-webapp/src/main/webapp/WEB-INF/classes/** - **/archiva-webapp/src/main/webapp/WEB-INF/lib/** - **/archiva-webapp/src/main/webapp/WEB-INF/database/** - **/archiva-webapp/src/main/webapp/WEB-INF/logs/** - **/archiva-webapp/src/main/webapp/redback/** - **/archiva-webapp/src/main/webapp/css/redback/** - **/archiva-webapp/src/main/webapp/WEB-INF/jsp/redback/** - **/archiva-webapp/src/main/webapp/WEB-INF/template/redback/** - **/archiva-webapp/src/main/webapp/WEB-INF/logs/** - **/archiva-webapp/src/main/webapp/WEB-INF/temp/** - - - - target/maven-shared-archive-resources/META-INF/ - / - - NOTICE - LICENSE - - - - -